當前位置:編程學習大全網 - 編程軟體 - 51單片機 C語言編程的疑問

51單片機 C語言編程的疑問

void?keyscan(void)

{?P1=0xF0;?//高四位輸入列為高電平?行為低電平

delay(1);

temp=P1; ?//延時//讀P1口?

temp=temp&0xF0; ?//屏蔽低四位

temp=~((temp>>4)|0xF0); ?

if(temp==1) ?//?p1.4?被拉低

key=1;?//第1個按鍵鍵值

else?if(temp==2)//?p1.5?被拉低

key=2; ?//第2個按鍵鍵值

else?if(temp==4)//?p1.6?被拉低

key=3; ?//第3個按鍵鍵值

else?if(temp==8)//?p1.7?被拉低

key=4; ?//第4個按鍵鍵值

else

?key?=?16;

P1=0x0F;?//低四位輸入?行為高電平?列為低電平

delay(1); ?//延時

temp=P1;?//讀P1口

temp=temp&0x0F;

temp=~(temp|0xF0);

if(temp==2) //第壹行?p1.1?被拉低(直接P1==2?是因為我們P1.0空的,是3*4的矩陣鍵盤)

key=key+0;?

else?if(temp==4)//第二行?p1.2?被拉低

key=key+4;

else?if(temp==8)//第三行?p1.3?被拉低

key=key+8;

else

?key?=?16;

您好!檢測下來問題不大,但還是建議不要替換!

  • 上一篇:其他國家的年輕人也會像我們壹樣有鬥圖文化嗎?
  • 下一篇:如何利用超輕量仿人機械臂來提高復雜應用場景中的操作效率?
  • copyright 2024編程學習大全網