有关单片机程序的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:54:17
#include<reg51.h>
void main ()
{
unsigned char SW
while (1)
{
sw=P3;
sw=sw&0x3c;
if(sw==0x38)
P1=0xfc;
else
P1=0xf8;
}
}
0xf8 和sw=sw&0x3c;是什么意思,怎么确定这些参数的?
这些十六进制的数字是怎么确定的,在实际使用中怎么看出是对应什么端口

sw=sw&0x3c是sw的值与0x3c按位作与运算,结果送回sw. 即sw的中间4位有效,前面两位和后面两位都清0;0xf8是16进制数f8,相当于二进制的11111000,或者十进制的248
其实程序的作用就是P3.3作为一个开关,控制P1.2的通断