8b6ffe166d34c398
获得 0 次赞
帮助过0人
以下是吴鉴鹰单片机课程里的按键扫描unsigned char Key_Scan(void){ uchar Key_TempScan_CodeTemp_Code; P2 = 0XF0; Key_Temp = P2; if((Key_Temp&0xf0)^0xf0) //0XE0 0b1110 0000 & 0b1111 0000 --0b1110 0000 ^0b1111 0000= 0b0001 0000 { Scan_Code = 0xfe; //0B1111 1110 while((Scan_Code&0x10) != 0x00) //0XFE = 0B1111 1110 0B1111 0111 { P2 = Scan_Code; if((P2&0XF0)^0XF0) { Temp_Code = (P2&0XF0)|0X0F;//1101 0111 &0x f0 = 0b1101 0000 |0x0f = 0b1101 1111 ~0b0010 0000 return((~Temp_Code)+(~Scan_Code)); } else { Scan_Code = (Scan_Code<<1)|0X01;// 0b1111 1110 <<1 = 1111 1100 | 0000 0001 = 1111 1101 } Delay(10); 这里不明白 } } return(0);}视频里说硬件响应需要时间,这里不明白为什么要加延时。