键盘扫描显示实验原理及分析报告_第1页
键盘扫描显示实验原理及分析报告_第2页
键盘扫描显示实验原理及分析报告_第3页
键盘扫描显示实验原理及分析报告_第4页
键盘扫描显示实验原理及分析报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JINGCHUJINGCHUUNIVERSITYOFTECHNOLOGY键盘扫描显示试验原理及分析报告学院计算机工程学院专业计算机科学与技术年级班别 09计算机科学与技术1班学 号 2023404010131学生姓名 李雅旖指导教师 李永202301名目一、内容提要二、试验目的三、试验要求四、试验器材五、试验电路六、试验说明七、试验框图八、试验程序九、试验分析十、试验心得十一、参考文献一、内容提要到了举足轻重的作用。单片机在人们的生活中得到广泛的应用。本文介绍了基于单片机的键盘扫描显示试验,具体争论了它从软件上实现的过程,以及硬件接口的原理及其实现,依据输出的列码和读取的行码来推断按下的是什在么键,即有按键时向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,理解读取键盘按键的原理,和最简洁的单片机接口原理二、试验目的:1、把握键盘和显示器的接口方法和编程方法。2LED二、试验要求:个扫描键盘和数码显示试验,把按键输入的键码在六位数码管上显示出来。试验程序可分成三个模块:1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。2、显示模块:将显示单元的内容在显示器上动态显示。3、主程序:调用键输入模块和显示模块。三、试验器材:1、超想-3000TC综合试验仪 1台2、KEIL仿真器 1 台3、计算机 1台四、试验电路:“8155”。行码(0e103H)行码(0e103H)列码(0e101H)五、试验说明:(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,假设有键按下,则相应行的值应为低,假设无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码LED六、试验框图:显示缓冲区初始化显示缓冲区初始化LED否有键输入?是读取键值键值转换为显示数据主程序框图主程序框图开头初始化地址参数输出列扫描信号列扫描信号移位读入行信号是该列有键输入?依据行列计算键值否否查表得键码6列扫描完?等待键盘释放待按键释放返回读键输入子程序框图七、试验程序如下:ST MOV 11H,R7键盘扫描试验OUTBITequ0e101h;位把握口CLK164equ0e102h;164DAT164equ0e102h;164IN equ0e103h;键盘读入口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,ATEKEY3:MOVR7,#0AHLCALLMLOOPLCALLMLOOP4MOVA,R7JNZTESTKEY3MOVR7,13HMOVA,R7MOVDPTR,#0134HMOVCA,@A+DPTRMOVR7,ARET;==========================================================================TESTKEY4: DB22H;“;==========================================================================TESTKEY5: MOV R7,#0FFHRET;==========================================================================GETKEY:MOV10H,#20HMOV0EH,#00HGETKEY1:MOVA,0EHCLRCSUBBA,#06HJNCGOON2MOVDPTR,#0E101HCLRAMOVX@DPTR,AMOVR7,0EHMOVA,#08HADDA,R7MOVR0,AMOVA,@R0MOVR7,AMOV0FH,#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,#01HLCALLMLOOPMOV A,10HCLR CRRC AMOV 10H,AINC 0EHSJMPGETKEY1GOON2: 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: MOV DPTR,#0E101HCLR AMOVX@DPTR,AMOV DPTR,#0E103HMOVXA,@DPTRMOV R7,AMOV A,R7CPL AMOV R7,AMOV A,R7ANL A,#0FHMOV R7,ARET;==========================================================================STAR:MOVR0,#7FHCLRASTAR1:MOV@R0,ADJNZR0,STAR1MOVSP,#16HLJMPWAITEND;==================================================================八.试验分析:一:主程序分析主程序执行步:1:显示缓冲区初始化2:LED3:推断是否有键输入。4:假设有键盘输入读取键值: 5:键值转换为显示数据二:子程序分析:子程序执行步骤:1:初始化地址参数2:输出列扫描信号列3:扫描信号移位4:读入行信号56,7,89,2,3,4.依据行列计算键值查表得键码9:6列扫描完?10:子程序主要代码分析如下:键盘扫描子程序分析:程序段TESTKEY分析:14H放入运算器A中,推断A的值是否不小于ACC.2的值假设是则跳转到TESTKEY1假设不是则A13H13HTESTKEY2TESTKEY:MOVA,14HJNBACC.2,TESTKEY1INC13HINC13HSJMPTESTKEY2TESTKEY1分析:TESTKEY1:MOVA,14HJNBACC.3,TESTKEY2MOVA,#03HADDA,13HMOV13H,A14HAAACC.3TESTKEY2假设不是则将A03ATESTKEY1:MOVA,14HJNBACC.3,TESTKEY2MOVA,#03HADDA,13HMOV13H,A程序段TESTKEY2分析:本程序段主要功能是:输出列扫描信号列扫描信号移位DPTR指向马上数#0E101HA内存放的值的全部位都向左移动1A0E101H中TESTKEY2:MOVDPTR,#0E101HCLRAMOVX@DPTR,ATESTKEY3分析:将马上数#OA放入R7中,程序长跳转到MLOOP,长跳MLOOP4R7AA0TESTKEY3将13HR713HR7R7A0134H放入DPTR所指的地址空间,将运算器A的值加上DPTR所指地址的值相加取地址再放入运算器A中,将A中的值放入R7TESTKEY3: MOV R7,#0AHLCALLMLOOPLCALLMLOOP4MOV A,R7JNZ TESTKEY3MOV R7,13HMOV A,R7MOV DPTR,#0134HMOVCA,@A+DPTRMOV R7,ARETTESTKEY4: DB22H;“;==========================================================================TESTKEY5: MOV R7,#0FFHRET;==========================================================================本程序段主要作用时读取键盘的值。程序段GETKEY分析:将马上数20H放入地址为10H的存储空间内,将马上数00H0EHGETKEY: MOV 10H,#20HMOV 0EH,#00H程序段GETKEY1将地址段0EH的值放入运算器A中,将C中存储的二进A06H放入运算器A中,0E101HDOTR0EHR708HA中,将R7AAR0R0AR700H址OFHGETKEY1:MOVA,0EHCLRCSUBBA,#06HJNCGOON2MOVDPTR,#0E101HCLRAMOVX@DPTR,AMOVR7,0EHMOVA,#08HADDA,R7MOVR0,AMOVA,@R0MOVR7,AMOV11H,R7MOV0FH,#00H程序段GETKEY2GETKEY2:MOVA,0FHCLRCSUBBA,#08HJNCGOON1将地址值为0FH的内容放入运算器A中,将C每位都向左移动一位,将A中的二进制数加上马上数08H,将地址为11H内的值放入运算器A中,推断A中的值是否不小于ACC.7假设是不下于条转到标号KLOOP假设不是则将马上数0E102放入指针DPTR所指的地址空间,将马上数01HGETKEY2:MOVA,0FHCLRCSUBBA,#08HJNCGOON1MOV A,11HJNB ACC.7,KL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论