C51独立按键的识别示例程序

控制/MCU

1818人已加入

描述

每按一次独立键盘的S2键,与P1口相连的一个发光二极管往下移动一位。

#include

sbit BY1=P3^4;      //定义按键的输入端S2键

unsigned char count; //按键计数,每按一下,count加1

unsigned char temp;

unsigned char a,b;

void delay10ms(void) //延时程序

{

unsigned char i,j;

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

key()          //按键判断程序

{

if(BY1==0)  //判断是否按下键盘,当单片机上电时所有IO口为//高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口//直接接地,此时检测P3.4肯定为低电平。

{

delay10ms(); //延时,软件去干扰

if(BY1==0)  //确认按键按下

{

count++;    //按键计数加1

if(count==8) //计8次重新计数

{

count=0;    //将count清零

}

}

while(BY1==0);//等待按键释放,如果键未释放则一直在此等待。

}

}

move()        //广告灯向下移动移动函数

{

a=temp(8-count);//  _crol_()函数

P1=a|b;

}

main()

{

count=0;  //初始化参数设置

temp=0xfe;

P1=0xff;

P1=temp;

while(1)  //永远循环,扫描判断按键是否按下

{

key();    //调用按键识别函数

move();  //调用广告灯移动函数

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分