资源描述:
《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