资源描述:
《单片机课程设计实验报告-键盘扫描显示实验原理及分析报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JINGCHUUNIVERSITYOFTECHNOLOGY键盘扫描显示实验原理及分析报告学院计算机工程学院专业计算机科学与技术年级班别09计算机科学与技术1班学号学生姓名指导教师2012年01月目录一、内容提要二、实验目的三、实验要求四、实验器材五、实验电路六、实验说明七、实验框图八、实验程序九、实验分析十、实验心得十一、参考文献一、内容提要单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机在人们的生活中得到广泛的
2、应用。本文介绍了基于单片机的键盘扫描显示实验,详细讨论了它从软件上实现的过程,以及硬件接口的原理及其实现,根据输出的列码和读取的行码来判断按下的是什在么键,即有按键时向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,理解读取键盘按键的原理,和最简单的单片机接口原理二、实验目的:1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和LED八段数码管显示器的工作原理。二、实验要求:在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六
3、位数码管上显示出来。实验程序可分成三个模块:1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。2、显示模块:将显示单元的内容在显示器上动态显示。3、主程序:调用键输入模块和显示模块。三、实验器材:1、超想-3000TC综合实验仪1台2、KEIL仿真器1台3、计算机1台四、实验电路:这里只是键盘草图,详细原理参见“8155键显模块”。行码(0e103H)列码(0e101H)五、实验说明:本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下
4、,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。列扫描码还可以分时用作LED的位选通信号。六、实验框图:显示缓冲区初始化LED显示读取键值键值转换为显示数据有键输入?否是主程序框图否是否开始输出列扫描信号列扫描信号移位该列有键输入?读入行信号6列扫描完?初始化地址参数按照行列计算键值查表得键码等待键盘释放S待按键释放返回读键输入子程序框图七、实验程序如下:STMOV11H,R7键盘扫描实验OUTBITequ
5、0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)INequ0e103h;键盘读入口ORG0000HLJMPSTAR;==========================================================================KEY1:MOV13H,#06HMOV12H,#20HKEY2:MOVA,12HCPLAMOVR7,AMOVDPTR,#0E101HMOVA,R7MOVX@DPTR,AMOVA
6、,12HCLRCRRCAMOV12H,AMOVDPTR,#0E103HMOVXA,@DPTRMOVR7,AMOVA,R7CPLAMOVR7,AMOVA,R7ANLA,#0FHMOV14H,ADEC13HMOVR7,13HMOVA,R7JZKEYDISMOVA,14HJZKEY2KEYDIS:MOVA,14HJZTESTKEY5MOVA,13HADDA,ACCADDA,ACCMOV13H,AMOVA,14HJNBACC.1,TESTKEYINC13HSJMPTESTKEY2;;=========================
7、========================;键盘扫描TESTKEY:MOVA,14HJNBACC.2,TESTKEY1INC13HINC13HSJMPTESTKEY2TESTKEY1:MOVA,14HJNBACC.3,TESTKEY2MOVA,#03HADDA,13HMOV13H,ATESTKEY2:MOVDPTR,#0E101HCLRAMOVX@DPTR,ATEKEY3:MOVR7,#0AHLCALLMLOOPLCALLMLOOP4MOVA,R7JNZTESTKEY3MOVR7,13HMOVA,R7MOVDPTR,#
8、0134HMOVCA,@A+DPTRMOVR7,ARET;==========================================================================TESTKEY4:DB22H;";=========================