1、进入软件,最基础的创建工程我就不说了,直接到按键程序,写程序,首先要了解按键,对于按键,分为独立式和矩阵式按键。
2、先说说独立式按键,这个十分简单,特点是每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编制简单。所以,如果按键就那么两三个的话用起来还是占优势的哦。这样的开关程序就是一个检测过程,看I/O端口是否低电平,如果是则有按键按下,否则就没有。如下是独立式按键的接法。
3、复杂的是矩阵式按键,但是他也有很大的优势,电路连接复杂,但提高了I/O口利用率,软件编程较复杂。要是你的东西有很多的按键要操作,那么采用这种方式的优势就十分明显了。如下图就是矩阵式按键,矩阵式按键的程序较独立式按键复杂的多,方法也很多,基本的有线翻转法,扫描法,计算法,因为程序很复杂的原因,在这里就不一一讲解了,有兴趣的自己可以查查资料。
4、附加简单程序如下:独立按键程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit P27=P2^7;sbit K5=P1^4;sbit fmq=P3^6;uchar num;unsigned char code s8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};void delay1ms(uint i){uchar j;while(i--){for(j=0;j<115;j++) //1ms基准延时程序{ ;}} }void beep() //产生1KHZ频率声音的函数{ fmq=0; delay500us(); fmq=1; delay500us();}void delay500us(){unsigned char j;for(j=0;j<57;j++) //500us基准延时程序{ ;}}void main(){ uchar t; P27=0; while(1){ if(K5==0){ delay1ms(15); if(K5==0){ for(t=0;t<100;t++) { beep(); } num=num+1; if(num==16){ num=0; } while(!K5);//等待按键释放 } } P0=s8[num]; }}void beep() //产生1KHZ频率声音的函数{ fmq=0; delay500us(); fmq=1; delay500us();}void delay500us(){unsigned char j;for(j=0;j<57;j++) //500us基准延时程序{ ;}}
5、附加矩阵键盘的键值码: