《单片机矩阵按键控制数码管(共2页).doc》由会员分享,可在线阅读,更多相关《单片机矩阵按键控制数码管(共2页).doc(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数码管显示4X4矩阵键盘按键号/*名称:数码管显示4X4矩阵键盘按键号说明:按下任意键时,数码管都会显示其键的序号,扫描程序首先判断按键发生在哪一列,然后根据所发生的行附加不同的值,从而得到按键的序号。*/#include#define uchar unsigned char#define uint unsigned int/段码uchar code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00;sbit BEEP=P37;/上
2、次按键和当前按键的序号,该矩阵中序号范围015,16表示无按键uchar Pre_KeyNo=16,KeyNo=16;/延时void DelayMS(uint x)uchar i;while(x-) for(i=0;i40x0f;/按键后f0变成XXXX0000,X中有1个为0,三个仍为1;高4位转移到低4位并异或得到改变的值switch(Tmp)/对03行分别附加起始值0,4,8,12case 1:KeyNo+=0;break;case 2:KeyNo+=4;break;case 4:KeyNo+=8;break;case 8:KeyNo+=12;/蜂鸣器void Beep()uchar i;for(i=0;i100;i+)DelayMS(1);BEEP=BEEP;BEEP=0;/主程序void main()P0=0x00;BEEP=0;while(1)P1=0xf0;if(P1!=0xf0) Keys_Scan(); /获取键序号if(Pre_KeyNo!=KeyNo)P0=DSY_CODEKeyNo;Beep();Pre_KeyNo=KeyNo;DelayMS(100);专心-专注-专业