您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 键盘扫描显示实验原理及分析报告
键盘扫描显示实验原理及分析报告一、实验目的-------------------------------------------------------------1二、实验要求-------------------------------------------------------------1三、实验器材-------------------------------------------------------------1四、实验电路-------------------------------------------------------------2五、实验说明-------------------------------------------------------------2六、实验框图-------------------------------------------------------------2七、实验程序-------------------------------------------------------------3八、键盘及LED显示电路---------------------------------------------14九、心得体会-------------------------------------------------------------15十、参考文献--------------------------------------------------------------15一、实验目的;1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和LED八段数码管显示器的工作原理。二、实验要求:在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。实验程序可分成三个模块。1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。2、显示模块:将显示单元的内容在显示器上动态显示。3、主程序:调用键输入模块和显示模块。三、实验器材:1、超想-3000TC综合实验仪1台2、KEIL仿真器1台3、计算机1台四、实验电路:五、实验说明:本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。列扫描码还可以分时用作LED的位选通信号。六、实验框图:主程序框图列码(0e101H)行码(0e103H)显示缓冲区初始化LED显示读取键值键值转换为显示数据有键输入?否是显示程序框图读键输入子框图否是否开始输出列扫描信号列扫描信号移位该列有键输入?读入行信号6列扫描完?初始化地址参数按照行列计算键值查表得键码等待键盘释放S待按键释放返回是返回否开始初始化显示参数关所有位显示取显示数据数据移位输出到164输出时钟脉冲到1648段码完成输出位选通信号延时位选通信号移位指向下一个显示数据6位完成否是七、实验程序:;键盘扫描实验OUTBITequ0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)INequ0e103h;键盘读入口ORG0000HLJMPSTAR;====================================================================KEY1:MOV13H,#06HMOV12H,#20HKEY2:MOVA,12HCPLAMOVR7,AMOVDPTR,#0E101HMOVA,R7MOVX@DPTR,AMOVA,12HCLRCRRCAMOV12H,AMOVDPTR,#0E103HMOVXA,@DPTRMOVR7,AMOVA,R7CPLAMOVR7,AMOVA,R7ANLA,#0FHMOV14H,ADEC13HMOVR7,13HMOVA,R7JZKEYDISMOVA,14HJZKEY2KEYDIS:MOVA,14HJZTESTKEY5MOVA,13HADDA,ACCADDA,ACCMOV13H,AMOVA,14HJNBACC.1,TESTKEYINC13HSJMPTESTKEY2;;=================================================;键盘扫描TESTKEY:MOVA,14HJNBACC.2,TESTKEY1INC13HINC13HSJMPTESTKEY2TESTKEY1:MOVA,14HJNBACC.3,TESTKEY2MOVA,#03HADDA,13HMOV13H,ATESTKEY2:MOVDPTR,#0E101HCLRAMOVX@DPTR,ATESTKEY3:MOVR7,#0AHLCALLMLOOPLCALLMLOOP4MOVA,R7JNZTESTKEY3MOVR7,13HMOVA,R7MOVDPTR,#0134HMOVCA,@A+DPTRMOVR7,ARET;====================================================================TESTKEY4:DB22H;;====================================================================TESTKEY5:MOVR7,#0FFHRET;====================================================================GETKEY:MOV10H,#20HMOV0EH,#00HGETKEY1:MOVA,0EHCLRCSUBBA,#06HJNCGOON2MOVDPTR,#0E101HCLRAMOVX@DPTR,AMOVR7,0EHMOVA,#08HADDA,R7MOVR0,AMOVA,@R0MOVR7,AMOV11H,R7MOV0FH,#00HGETKEY2:MOVA,0FHCLRCSUBBA,#08HJNCGOON1MOVA,11HJNBACC.7,KLOOPMOVDPTR,#0E102HMOVA,#01HMOVX@DPTR,ASJMPKLOOP1;;==========================================KLOOP:MOVDPTR,#0E102HCLRAMOVX@DPTR,AKLOOP1:MOVDPTR,#0E102HMOVXA,@DPTRMOVR7,AMOVA,R7ORLA,#02HMOVR7,AMOVA,R7MOVX@DPTR,AMOVDPTR,#0E102HMOVXA,@DPTRMOVR7,AMOVA,R7ANLA,#0FDHMOVR7,AMOVA,R7MOVX@DPTR,AMOVA,11HADDA,ACCMOV11H,AINC0FHSJMPGETKEY2GOON1:MOVDPTR,#0E101HMOVA,10HMOVX@DPTR,AMOVR7,#01HLCALLMLOOPMOVA,10HCLRCRRCAMOV10H,AINC0EHSJMPGETKEY1GOON2:RET;====================================================================WAIT:MOVDPTR,#0E100HMOVA,#03HMOVX@DPTR,AMOV08H,#0FFHMOV09H,#0FFHMOV0AH,#0FFHMOV0BH,#0FFHMOV0CH,#00HMOV0DH,#00HWAIT1:LCALLGETKEYLCALLMLOOP4MOVA,R7JZWAIT1LCALLKEY1MOVR6,#00HMOVR6,#00HMOVA,R7ANLA,#0FHMOVR7,AMOVA,#24HADDA,R7MOVDPL,AMOVA,#01HADDCA,R6MOVDPH,ACLRAMOVCA,@A+DPTRMOVR7,AMOV0DH,R7SJMPWAIT1RET;====================================================================TAB:Q0124:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;?.[Ofm}.Q012C:DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;ow|9^yqQ0134:DB00H,01H,04H,07H,0FH,02H,05H,08H;........Q013C:DB0EH,03H,06H,09H,0DH,0CH,0BH,0AH;........Q0144:DB10H,11H,12H,13H,14H,15H,16H;.......;====================================================================MLOOP:MOV15H,R7MLOOP1:MOVR7,15HDEC15HMOVA,R7JZMLOOP3MOV16H,#64HMLOOP2:MOVA,16HJZMLOOP1DEC16HSJMPMLOOP2SJMPMLOOP1MLOOP3:RET;====================================================================MLOOP4:MOVDPTR,#0E101HCLRAMOVX@DPTR,AMOVDPTR,#0E103HMOVXA,@DPTRMOVR7,AMOVA,R7CPLAMOVR7,AMOVA,R7ANLA,#0FHMOVR7,ARET;==========================================================================STAR:MOVR0,#7FHCLRASTAR1:MOV@R0,ADJNZR0,STAR1MOVSP,#16HLJMPWAITEND八、键盘及LED显示电路九、心得体会由于时间有限和本身知识水平的限制,本课程设计还存在一些不够完善的地方。但是通过这次的学习和研究,加深了我对单片机专业知识的理解。这次做课程设计的经历也会使我终身受益,我感受到做课程设计是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。无论是在现在还是以后的学习和工作中,我将铭记此点。在此感谢李永老师的关心和指导。十、参考文献《单片机原理与应用》闻新李东江马文弟编著;
本文标题:键盘扫描显示实验原理及分析报告
链接地址:https://www.777doc.com/doc-5553464 .html