标题: 每一个按键控制一个灯,实现按键按下一次小灯的状态取反一次。 [打印本页]
作者: 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)
这是仿真图
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |