资源描述:
《单片机键盘接口实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验六键盘接口实验一、实验目的1、掌握Kc订C51软件与Protucs软件联合仿真调试的方法;2、掌握单片机的键盘接口电路;3、掌握单片机的键盘扫描原理;4、掌握键盘的去抖原理及处理方法。二、实验仪器与设备1>微机一台2、KeilC51集成开发环境3、Protucs仿真软件三、实验内容1、用Protues设计一矩阵键盘接口电路。要求利用Pl口接一4X4矩阵键盘。串行口通过一74LS164接一共阴极数码管。用线反转法编写矩阵键盘识别程序,用中断方式,并将按键的键值0-F通过串行口输岀,显示在数码管上。2、将P1口矩阵键盘改成8个独立按键,重新编写识别
2、和显示程序。四、实验说明矩阵键盘识别一般包括以下内容:⑴判别有无键按下。⑵键盘扫描取得闭合键的行、列号。⑶用计算法或查表发的到键值;⑷判断闭合键是否释放,如没释放则继续等待。⑸将闭合键的键值保存,同时转去执行该闭合键的功能。五、实验步骤1、用Protues设计键盘接口电路;2、在Kc订C51屮编写键盘识别程序,编译通过后,与Protucs联合调试;3、按动任意键,观察键值是否能正确显示。六、实验电路仿真图矩阵键盘电路图见附录1。独立按键电路图见附录2。七、实验程序实验程序见附录3、4。丿I、总1、矩阵键盘常用的检测方法有线反转法、逐行扫描法。线反转
3、法较简单且高效。在矩阵键盘的列线上接一与门,利用中断方式查询按键,可提高CPU的运行效率。2、注意用线反转法扫描按键时,得到的键值不要再赋给temp,最好再设一新变量接收键值,否则再按下按键显示数字的过程中,再按按键会出现乱码。3、学会常用与门、与非门的使用方法。附录1:矩阵键盘实验电路图♦?pjfcTEfT>・・・P1D1F112P123P134F1.4、tSP0j&A»6FO.?/A»?/SL1不■八y■■丫RVIFSEMALIkZ*P2XTA2^2.1M>PZ2fAWFZ3TA11F2.WA12FZSTA13r2j&A1«F2.HA1S■rnmv■lJ・M■人VF3^®t7P3.VTDP3STT1r3«WRR3.7/IFr1«J・■▲rln•■,FinAT^CSI5、LADSPQj&AOePOMMF1?2PBEIIAL6FIDF1.1P1ZFOP1.«PISF1j6PI.?P2a>2PZ.V>SFZ2TA1CPHP2WA12P2S*A13P2»A1«P27^A1SP3DTRX.R3.1fD<»P32HWT6paariHTTP3VTTJpa^riP3fiW£px?/IFIf:~IT"附录3:矩阵键盘实验程序^includecharcodeLED_TAB[]={OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,0x8&0x83,0xc6,Oxal,
6、0x86,0x8e};charcodeKEY_TABLE[]={Oxee,Oxde,Oxbe,0x7e,Oxed,Oxdd,Oxbd,0x7d,Oxeb,Oxdb,Oxbb,0x7b,0xe7,0xd7,0xb7,0x77};charcodetabl[10]={0xfe,Oxde,0x9e,0x9a,0x92,0x82,0x82,0x80,Oxff};chartemp,num,i,m;intt;bitflag=0;voidDelay_ms(t){irrti;for(:t>0;t--)for(i=0;i<124;i++);}voidmain(void
7、){TM0D=0x01;THO=(65536-10000)/256;TLO=(65536-10000)%256;ETO=1;PTO=1;SCON=O;EXO=1;IT0=l;EA=1;Pl=0xf0;wh订e⑴{SBUF=tabl[m];while(TI==0):TI=0;Delay_ms(400);//500msm++;if(m==9)m=0;}}voidint_l()interrupt0{Pl=0xf0;辻(Pl!=0xf0){Delay_ms(10);辻(Pl!=0xf0){temp=Pl;Pl=0x0f;temp=temp
8、Pl;for(i
9、=0;i<16;i++){辻(temp==KEY_TABLE[i]){temp=i;break;SBUF=LED_TAB[