51单片机_独立按键检测

51单片机_独立按键检测

ID:9879104

大小:37.50 KB

页数:0页

时间:2018-05-13

51单片机_独立按键检测_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《51单片机_独立按键检测》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《51系列单片机_独立按键检测》此程序使用单片机89SC52//1、此程序实现独立按键的检测功能,每次按下按键key5时,数码管最后一位显示的数值加1,按键同时响蜂鸣器#includesbitkey5=P1^4;//独立按键sbitP3_6=P3^6;//蜂鸣器控制端口unsignedcharcodeBitSet[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//用于设置(低电平位选)数码管的位选信号,从低到高对应8个数码管unsignedcharcod

2、eNumberCode[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};//用于设置(共阴极)数码管的段选信号,从0~f共16个数值voiddelay_ms(unsignedintn){//软件延时函数,延时n毫秒unsignedinti,j;for(i=n;i>0;i--)for(j=110;j>0;j--);}voidbeep(intn){inti=n;//喇叭连续响n毫秒while(i

3、>0)//向喇叭输入1000HZ的方波震荡源{P3_6=1;delay_ms(1);//0.5毫秒高电平P3_6=0;delay_ms(1);//0.5毫秒低电平i--;}}voidmain(){intnum=0;while(1){P2=BitSet[7];//选择最低位的数码管if(key5==0)//判断按键key5是否按下{delay_ms(10);//延时重新判断按键是否按下,延时消除抖动if(key5==0){num++;//每按下一次显示的数值加1beep(200);//喇叭响200毫秒if(num==

4、16)num=0;while(!key5);//直到按键释放,按下时key5==0,持续循环}}P0=~NumberCode[num];}}//2、此程序实现独立按键的检测功能,key5和key6每次按下按键时,数码管次低位和最低位显示的数值加1,按键同时响蜂鸣器#includesbitkey5=P1^4;sbitkey6=P1^5;sbitP3_6=P3^6;unsignedcharcodeBitSet[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};/

5、/用于设置(低电平位选)数码管的位选信号,从低到高对应8个数码管unsignedcharcodeNumberCode[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};//用于设置(共阴极)数码管的段选信号,从0~f共16个数值voiddelay_ms(unsignedintn){//软件延时函数,延时n毫秒unsignedinti,j;for(i=n;i>0;i--)for(j=110;j>

6、0;j--);}voidbeep(intn){inti=n;//喇叭连续响n毫秒while(i>0)//向喇叭输入1000HZ的方波震荡源{P3_6=1;delay_ms(1);//0.5毫秒高电平P3_6=0;delay_ms(1);//0.5毫秒低电平i--;}}voidmain(){intnum=0,num2=0;while(1){P2=BitSet[6];//选择最低位的数码管if(key5==0)//判断按键key5是否按下{delay_ms(10);//延时重新判断按键是否按下,延时消除抖动if(key

7、5==0){num++;//每按下一次显示的数值加1beep(100);//喇叭响100毫秒if(num==16)num=0;while(!key5){P2=BitSet[6];//选择次低位的数码管P0=~NumberCode[num];delay_ms(3);P2=0xff;P2=BitSet[7];//选择最低位的数码管P0=~NumberCode[num2];delay_ms(3);P2=0xff;};//直到按键释放,按下时key5==0,持续循环}}P0=~NumberCode[num];delay_m

8、s(3);P2=0xff;P2=BitSet[7];//选择最低位的数码管if(key6==0)//判断按键key6是否按下{delay_ms(10);//延时重新判断按键是否按下,延时消除抖动if(key6==0){num2++;//每按下一次显示的数值加1beep(100);//喇叭响100毫秒if(num2==16)num2=0;while(!key6

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。