肉炒出来发硬怎么处理理测试出来的数据

串行数据口键盘检测最终程序,终于弄出来了
#define uchar unsigned char
#define uint unsigned int
#define MY_R_DATA_LENGTH (0x06)//我的单片机接收的数据长度,键盘发出的数据
#define MY_T_DATA_LENGTH (0x08)//通讯正常
#define X_RAY (0x08)//高压指示
#define X_RAY1 (0x08)//高压反馈
#define BUZZ (0x08)//键盘蜂鸣器
sbit key1=P3^6;//键盘灯检测按钮
sbit key2=P3^2;//键盘灯检测按钮S4
sbit key3=P3^7;//蜂鸣器检测按钮S5
uchar RI_//单片机接收到的数据
uchar content_RI;//单片机接收到的数据再给content_RI
uchar RComm_Index=0x00;//串口接收字节次数
uchar TComm_Index=0x00;//串口发送字节次数
uchar R_over=0;//我的单片机接收完毕键盘发过来的数据完毕标志位
uchar i=0;//发送数据标字节位置
uchar j=0;
uchar k=0;
uchar m=0;
sbit lcden=P3^4;//液晶en端口
sbit lcdrs=P3^5;//液晶rs端口
sbit dula=P2^6;//防数码管乱动,要删除
sbit wela=P2^7;
uchar RI_interrupt=0;//串口接收中断标志位,单片机每接收一次数据,让标志位置1
uchar data
RCommData[MY_R_DATA_LENGTH];//我的单片机接收的数据数组,接收键盘发送过来的数据
uchar data
TCommData[MY_T_DATA_LENGTH]={0xaa,0x81,0x00,0x00,0x00,0x00,0xef,0xab};//我的单片机发送的数据数组,发给键盘握手数据
uchar data
TXrayData[X_RAY]={0xaa,0xc1,0x00,0x00,0x00,0x00,0xfe,0xc3};//我的单片机发送的高压指示数据
uchar data
TXray1Data[X_RAY1]={0xaa,0xa1,0x00,0x00,0x00,0x00,0xe7,0x1f};//我得单片机发送的高压反馈数据
uchar data
TBuzzData[BUZZ]={0xaa,0x91,0x00,0x00,0x00,0x00,0xeb,0xf1};//key蜂鸣器置0数据
bit HeadF//接收包头正确错误标志位,为1正确,为0错误
void init()//串口初始化
TMOD=0x20;//设置定时器1工作方式2
TH1=0//波特率用14400,晶振11.0592时高8位装初值
TR1=1;//启动定时器1,TR1是控制寄存器TCON中控制定时器启停的控制位
SCON=0x50;//串口工作方式寄存器,选用串口工作方式1,其中设置了REN=1,允许单片机串行接收数据
EA=1;//总中断开启
ES=1;//串口中断允许位,打开串口中断
////上述程序是串口使用的模板,用于串口初始化的设置
void delay(uint z)//延时ms
for(x=z;x&0;x--)
for(y=110;y&0;y--);
void write_com(uchar com)//lcd写指令子函数
lcdrs=0;//=0时候写指令=1时写数据
void write_data(uchar date)
lcdrs=1;//=0时候写指令=1时写数据
void write_1602(uchar add,uchar
dat)//将写指令,写数据两个子函数放在一个总的1602函数中,调用起来方便
write_com(add);//写指令,也就是写一个要写数据的地址,指明写数据的地址
write_data(dat);//写数据,写进去要写的东西
void LCDint()//LCD1602初始化
write_com(0x38);//显示模式设置
write_com(0x0c);//光标不显示
write_com(0x06);//写完一个字符后地址指针+1
write_com(0x01);//显示清楚
void keynumber()//按键检测子函数
switch (RCommData[1])
case 0x14:
write_+0x40+8,'A');
write_+0x40+9,0x20);
case 0x23:
write_+0x40+8,'B');
write_+0x40+9,0x20);
case 0x25:
write_+0x40+8,'C');
write_+0x40+9,0x20);
case 0x22:
write_+0x40+8,'D');
write_+0x40+9,0x20);
case 0x1f:
write_+0x40+8,'E');
write_+0x40+9,0x20);
case 0x16:
write_+0x40+8,'F');
write_+0x40+9,0x20);
case 0x29:
write_+0x40+8,'G');
write_+0x40+9,0x20);
case 0x21:
write_+0x40+8,'H');
write_+0x40+9,0x20);
case 0x00:
write_+0x40+8,'F');
write_+0x40+9,'1');
case 0x01:
write_+0x40+8,'F');
write_+0x40+9,'2');
case 0x02:
write_+0x40+8,'F');
write_+0x40+9,'3');
case 0x08:
write_+0x40+8,'1');
write_+0x40+9,0x20);
case 0x13:
write_+0x40+8,'2');
write_+0x40+9,0x20);
case 0x09:
write_+0x40+8,'3');
write_+0x40+9,0x20);
case 0x0b:
write_+0x40+8,'4');
write_+0x40+9,0x20);
case 0x0c:
write_+0x40+8,'5');
write_+0x40+9,0x20);
case 0x0d:
write_+0x40+8,'6');
write_+0x40+9,0x20);
case 0x0e:
write_+0x40+8,'7');
write_+0x40+9,0x20);
case 0x0f:
write_+0x40+8,'8');
write_+0x40+9,0x20);
case 0x10:
write_+0x40+8,'9');
write_+0x40+9,0x20);
case 0x12:
write_+0x40+8,'0');
write_+0x40+9,0x20);
case 0x26:
write_+0x40+8,'-');
write_+0x40+9,0x20);
case 0x11:
write_+0x40+8,'+');
write_+0x40+9,0x20);
case 0x03:
write_+0x40+8,'I');
write_+0x40+9,0x20);
case 0x05:
write_+0x40+8,'J');
write_+0x40+9,0x20);
case 0x06:
write_+0x40+8,'K');
write_+0x40+9,0x20);
case 0x04:
write_+0x40+8,'L');
write_+0x40+9,0x20);
case 0x07:
write_+0x40+8,'M');
write_+0x40+9,0x20);
case 0x37:
write_+0x40+8,'a');
write_+0x40+9,0x20);
case 0x17:
write_+0x40+8,'b');
write_+0x40+9,0x20);
case 0x39:
write_+0x40+8,'c');
write_+0x40+9,0x20);
case 0x18:
write_+0x40+8,'d');
write_+0x40+9,0x20);
case 0x40:
write_+0x40+8,'e');
write_+0x40+9,0x20);
case 0x19:
write_+0x40+8,'f');
write_+0x40+9,0x20);
case 0x36:
write_+0x40+8,'g');
write_+0x40+9,0x20);
case 0x1a:
write_+0x40+8,'h');
write_+0x40+9,0x20);
case 0x38:
write_+0x40+8,'i');
write_+0x40+9,0x20);
void LCDconstant()
write_+0x40+4,'K');
write_+0x40+5,'e');
write_+0x40+6,'y');
write_+0x40+7,':');
void main()
LCDconstant();
keynumber();
if(R_over==1)//如果接收完毕6个字节
if(key1==1&&key2==1&&key3==1)
ES=0;//接收完了6位数据,关闭串口中断,以处理接下来要发送的数据,我的单片机发送出8个字节
SBUF=TCommData[i];
while(!TI);
if(key1==0)
ES=0;//接收完了6位数据,关闭串口中断,以处理接下来要发送的数据,我的单片机发送出8个字节
SBUF=TXrayData[j];
while(!TI);
if(key2==0)
ES=0;//接收完了6位数据,关闭串口中断,以处理接下来要发送的数据,我的单片机发送出8个字节
SBUF=TXray1Data[k];
while(!TI);
if(key3==0)
ES=0;//接收完了6位数据,关闭串口中断,以处理接下来要发送的数据,我的单片机发送出8个字节
SBUF=TBuzzData[m];
while(!TI);
void serial() interrupt 4
if(RI)//如果接收1字节数据完毕
RI_data=SBUF;
content_RI=RI_//收到的数据从SBUF存入RI_data后再给content_RI
if((content_RI==0xaa)&&(RComm_Index==0x00))//如果接收到了包头,并且串口接收字节次数等于0
RCommData[RComm_Index]=content_RI;//将包头0xaa放在数组里边第一位RComData[0x00]里边
RComm_Index=1;//串口接收字节次数加1
HeadFlag=1;//包头接收正确标志
if((HeadFlag==1)&&(content_RI!=0xaa))//如果接收数据包头正确,且接收的数据不等于通讯数据包头,说明包头接收完了而且正确,该接收下一个数据了
if((RComm_Index&=(MY_R_DATA_LENGTH-1)))//如果串口接收字节次数小于等于新键盘主控制板发送数据帧长度-1(5)
RCommData[RComm_Index]=content_RI;//此时RComm_Index=1,包头0xaa已经存入了RComData[0x00],这次是把0xff存入RComData[0x01]
RComm_Index++;//循环依次放入收到的6个数据
if(RComm_Index==MY_R_DATA_LENGTH)//如果接收字节次数等于6,我的单片机接收完毕了一组数据,6个数据接收完毕
RComm_Index=0;//我的单片机接收完毕6次,次数复位
HeadFlag=0;
R_over=1;//键盘发送6个数完毕标志位
RI=0;//软件置接收中断标志为0
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。后使用快捷导航没有帐号?
查看: 1405|回复: 4
最后登录QQ注册时间阅读权限10精华0积分60帖子
QQ野人, 积分 60, 距离下一级还需 90 积分
最近登陆游戏就会出现这样的情况 尤其是天梯 刚刚开始就掉线
(0 Bytes, 下载次数: 97)
22:18 上传
点击文件名下载附件
(0 Bytes, 下载次数: 96)
22:18 上传
点击文件名下载附件
(0 Bytes, 下载次数: 96)
22:18 上传
点击文件名下载附件
最后登录注册时间阅读权限200精华0积分228183帖子
黄金骑士, 积分 228183, 距离下一级还需 21817 积分
TGP用户请按数序看,非TGP用户请从第4点往下看~
1.把TGP加速模式改为自定义并选择延迟低的节点!
2.问题依然出现请尝试更换TGP节点直至没有出现~
3.如果换了多个节点仍然无效请尝试停用TGP加速!& & & &
4.楼主您好,请检查电脑是否中毒了,中毒了请杀毒~
5.楼主您好,请检查电脑是否开了其他第三软件,尽量把第三软件关掉~
6.请您重新登录客户端,看看是否能够正常进行游戏。若再次出现错误提示就有可能是您的客户端数据出现了异常,建议您卸载当前客户端,到官网重新下载安装完整的客户端,并换个路径进行安装。
最后登录注册时间阅读权限100精华20积分818405帖子
人生就像一场戏,因为有缘来相聚。 相扶到老不容易,是否更该去
数据异常(帐号异常)
--出现该种情况的原因有多种,例如您当前游戏环境存在病毒、木马、第三方辅助类插件或者其他未知的软件、网络延迟过高、您在游戏中有卡BUG操作,或是您修改过客户端文件等等都会出现这种情况,您只需退出游戏稍后重新登录即可。
最后登录QQ注册时间阅读权限20精华0积分1210帖子
大咕噜, 积分 1210, 距离下一级还需 1290 积分
作为一个过来人。。首先KD不要太高。 手速不要太快。 反应尽量迟钝点。&&SB 系统会检测你。
最后登录QQ注册时间阅读权限10精华0积分1011帖子
, 积分 1011, 距离下一级还需 189 积分
楼主不要杀的太多,一定要装作小学生一样的技术,TX的SB系统自带小学生保护功能,你要是太刁了,他会把你干下线,懂了吗
逆战发帖王勋章
发表主题帖超过100
辛勤灌水勋章
论坛积分达到2W5
在逆战版面发表20精华帖
发帖数达到10W
Powered by用IE和Chrome打开需要安全验证的网页(如教务系统和托福官网)只能显示一部分页面。
降低IE的安全级别,允许混合显示安全内容和非安全内容。在“高级”里面改。
已有帐号?
无法登录?
社交帐号登录
前端小学生

我要回帖

更多关于 磨出来的水泡怎么处理 的文章

 

随机推荐