一个红外发射程序 KEY |= 0x0f; 怎么理解?

[复制链接]
查看11 | 回复2 | 2011-11-12 05:01:54 | 显示全部楼层 |阅读模式
#includereg52.h#includeintrins.h#defineuintunsignedint#defineucharunsignedchar#defineKEY=P1sbitSENDTO=P3^4;uintth0tl0;ucharttimes;voidTimer0_Init(void);voidIrCoding(void);voidDelay_1ms(uchart);voidKeyScan(void);voidmain(void){SENDTO=0;Delay_1ms(200);Timer0_Init();EA=1;while(1){KeyScan();IrCoding();}}voidDelay_1ms(uchart){uchari,j;do{j=2;do{i=165;do{_nop_();}while(--i);}while(--j);}while(--t);}voidTimer0_Init(void){TMOD=0x01;ET0=0;TR0=0;}voidKeyScan(void){ucharkeystate;KEY|=0x0f;//此处不懂,运行时报错!keystate=KEY;keystate=~keystateif(keystate){Delay_1ms(200);keystate=KEY;keystate=~keystateif(keystate){if(keystateif(keystateif(keystateelseth0tl0=-4000;while(1){keystate=KEY;keystate=~keystateif(!keystate)break;}}elseth0tl0=0;}elseth0tl0=0;}voidIrCoding(void){if(!th0tl0)return;ttimes=20;TH0=th0tl0/256;TL0=th0tl0%6;ET0=1;TR0=1;while(ttimes);ET0=0;TR0=0;SENDTO=0;}voidINTT0_ISR(void){TH0=th0tl0/256;TL0=th0tl0%6;SENDTO=~SENDTO;ttimes--;}
回复

使用道具 举报

千问 | 2011-11-12 05:01:54 | 显示全部楼层
我用keil运行了一下没有报错结果是这个\"csdfa\"-0Error(s),2Warning(s).上面题目中标注的语句为逻辑运算符,如下:defds123=逻辑与赋值*=乘法赋值|=逻辑或赋值/=除法赋值^=逻辑异或赋值
回复

使用道具 举报

千问 | 2011-11-12 05:01:54 | 显示全部楼层
voidmain(){unsignedchari,m;m=0x22;while(1赞同
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行