欢迎来到天天文库
浏览记录
ID:38181946
大小:99.50 KB
页数:6页
时间:2019-05-24
《单片机按键矩阵识别(含程序、原理图)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、按键矩阵识别技术实验说明如图2所示,把P1端口的8条I/O口分成4条列线4条行线交叉但不接触构成4×4键盘阵列,16个按键放置交叉位置,这样在单片机复杂系统需要较多按键时,这种接法可以节省单片机的硬件资源。1.结合给出的电路原理图试分析4*4键盘矩阵识别原理,及LED动态扫描原理。(6分)2.根据分析的键盘矩阵识别原理设计程序实现一下功能:当按下某个按键时在2个七段数码管上显示该按键的编号(注意考虑同时按下多个按键时程序处理过程)、按下某个按键使其弹起时对于消抖情况程序的处理。(9分)2.0相关原理图如下:3.0实验说明本试验给了1-8键判断方法。按1-8键
2、中任意键,则数码管显示该键编号。想想怎样实现1-16个键的判断显示?参考程序见程序范例。/*******************************************************************************************描述:按键距阵识别技术*编写:秦立春*版本信息:V1.02008年4月20日*说明:sp1,sp2,SP3跳线向右;****************************************************************************************
3、**/#include#defineucharunsignedchar#defineuintunsignedint#defineON0#defineOFF1ucharbdataOUT;sbitJDQ=OUT^0;sbitHF=OUT^1;sbitBZ=OUT^2;sbitAA=OUT^3;sbitBB=OUT^4;sbitCC=OUT^5;sbitDD=OUT^6;sbitX0=P2^0;sbitX1=P2^1;sbitX2=P2^2;sbitX3=P2^3;sbitY0=P2^4;sbitY1=P2^5;sbitY2=P2^6;sbitY
4、3=P2^7;sbitRS=P1^7;sbitRW=P3^4;sbitE=P3^5;sbitHC574_LE=P3^3;//-----------------------------------------------------voiddelay(unsignedintt)//延时函数{for(;t!=0;t--);}//------------------------------------------------------voidHC574(void)//74HC574控制输出;{P0=OUT;HC574_LE=1;delay(2);HC574_LE
5、=0;}//==================================================unsignedcharKey_Scan(void){uchara,key;P2=0xf0;if(!(Y0&&Y1&&Y2&&Y3)){P2=0xf0;delay(200);if(!(Y0&&Y1&&Y2&&Y3)){P2=0xff;X0=0;if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x0e);gotopp1;}P2=0xff;X1=0;if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x
6、0d);gotopp1;}P2=0xff;X2=0;if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x0b);gotopp1;}P2=0xff;X3=0;if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x07);gotopp1;}}elsea=0xff;}elsea=0xff;pp1:key=a;returnkey;}//-----------------------------------------------------------ucharkey(void){uchark,KEY;KEY=0xf
7、f;k=Key_Scan();if(k!=0xff){while(k==Key_Scan());switch(k)//键码{case0x7e:KEY=0x04;break;//4case0x7d:KEY=0x08;break;//8case0x7b:KEY=0x0b;break;//case0x77:KEY=0x0f;break;//case0xbe:KEY=0x03;break;//3case0xbd:KEY=0x07;break;//7case0xbb:KEY=0x0a;break;//case0xb7:KEY=0x0e;break;//case0xde
8、:KEY=0x02;break;//2case0xd
此文档下载收益归作者所有