標題: 每一個按鍵控制一個燈,實現按鍵按下一次小燈的狀態取反一次。 [打印本頁]
作者: 123321123455432 時間: 2020-12-2 21:15
標題: 每一個按鍵控制一個燈,實現按鍵按下一次小燈的狀態取反一次。
程序代碼:
#include <reg51.h>
#define ucharunsigned char
#define uintunsigned int
uchar keyval;
sbitP2_0=P2^0;
sbitP2_1=P2^1;
sbitP2_2=P2^2;
sbitP2_3=P2^3;
sbitP2_4=P2^4;
sbitP2_5=P2^5;
sbitP2_6=P2^6;
sbitP2_7=P2^7;
void delay(uint j) /*延時函數*/
{ uchart;
while (j--)
{ for(t = 0; t < 125; t++);
}
}
void keyscan()
{
P1=0xff;
keyval=P1;
if(keyval!=0xff)
{
delay(10);
keyval=P1;
if(keyval!=0xff)
{keyval=~keyval;while(P1!=0xff);}
}
}
void main( )
{
keyval=0;
while(1)
{ keyscan();
switch(keyval)
{
case 1:P2_0=~P2_0; break;
case 2:P2_1=~P2_1; break;
case 4:P2_2=~P2_2; break;
case 8:P2_3=~P2_3; break;
case 16:P2_4=~P2_4; break;
case 32:P2_5=~P2_5; break;
case 64:P2_6=~P2_6; break;
case 128:P2_7=~P2_7;break;
}
}
}
-
圖片1.png
(180.61 KB, 下載次數: 48)
下載附件
2020-12-2 21:13 上傳
這是仿真圖
| 歡迎光臨 (http://www.denmoz.com/bbs/) |
Powered by Discuz! X3.1 |