单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc

上传人:laozhun 文档编号:2385802 上传时间:2023-02-17 格式:DOC 页数:16 大小:816.50KB
返回 下载 相关 举报
单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc_第1页
第1页 / 共16页
单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc_第2页
第2页 / 共16页
单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc_第3页
第3页 / 共16页
单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc_第4页
第4页 / 共16页
单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc》由会员分享,可在线阅读,更多相关《单片机课程设计实验报告键盘扫描显示实验原理及分析报告.doc(16页珍藏版)》请在三一办公上搜索。

1、JINGCHU UNIVERSITY OF TECHNOLOGY键盘扫描显示实验原理及分析报告学 院 计算机工程学院专 业 计算机科学与技术年级班别 09计算机科学与技术1班学 号 学生姓名 指导教师 2012年01月目录一、内容提要二、实验目的三、实验要求四、实验器材五、实验电路六、实验说明七、实验框图八、实验程序九、实验分析十、实验心得十一、参考文献一、内容提要单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机在人们的生活中得到广泛的应用。本文介绍了基于单片机的键盘扫描显示实验,

2、详细讨论了它从软件上实现的过程,以及硬件接口的原理及其实现 ,根据输出的列码和读取的行码来判断按下的是什在么键,即有按键时向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,理解读取键盘按键的原理,和最简单的单片机接口原理二、实验目的:1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和LED八段数码管显示器的工作原理。二、实验要求:在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。实验程序可分成三个模块:1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。2、显

3、示模块:将显示单元的内容在显示器上动态显示。3、主程序:调用键输入模块和显示模块。三、实验器材:1、超想-3000TC综合实验仪 1 台 2、KEIL仿真器 1 台 3、计算机 1 台 四、实验电路:这里只是键盘草图,详细原理参见“8155键显模块”。 行码(0e103H) 列码(0e101H)五、实验说明:本实验仪提供了一个64的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖

4、动。列扫描码还可以分时用作LED的位选通信号。六、 实验框图:显示缓冲区初始化 LED显示读取键值键值转换为显示数据有键输入?否是 主程序框图否是否开始输出列扫描信号列扫描信号移位 该列有键输入?读入行信号6列扫描完?初始化地址参数按照行列计算键值查表得键码等待键盘释放S待按键释放返回读键输入子程序框图 七、实验程序如下: ST MOV 11H,R7 键盘扫描实验OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位)DAT164 equ 0e102h ; 段控制口(接164数据位)IN equ 0e103h ; 键盘读入口 ORG 0

5、000H LJMP STAR ;=KEY1: MOV 13H,#06H MOV 12H,#20H KEY2: MOV A,12H CPL A MOV R7,A MOV DPTR,#0E101H MOV A,R7 MOVX DPTR,A MOV A,12H CLR C RRC A MOV 12H,A MOV DPTR,#0E103H MOVX A,DPTR MOV R7,A MOV A,R7 CPL A MOV R7,A MOV A,R7 ANL A,#0FH MOV 14H,A DEC 13H MOV R7,13H MOV A,R7 JZ KEYDIS MOV A,14H JZ KEY2 KE

6、YDIS: MOV A,14H JZ TESTKEY5 MOV A,13H ADD A,ACC ADD A,ACC MOV 13H,A MOV A,14H JNB ACC.1,TESTKEY INC 13H SJMP TESTKEY2 ;=;键盘扫描 TESTKEY: MOV A,14H JNB ACC.2,TESTKEY1 INC 13H INC 13H SJMP TESTKEY2 TESTKEY1: MOV A,14H JNB ACC.3,TESTKEY2 MOV A,#03H ADD A,13H MOV 13H,A TESTKEY2: MOV DPTR,#0E101H CLR A MOV

7、X DPTR,A TE KEY3: MOV R7,#0AH LCALL MLOOP LCALL MLOOP4 MOV A,R7 JNZ TESTKEY3 MOV R7,13H MOV A,R7 MOV DPTR,#0134H MOVC A,A+DPTR MOV R7,A RET ;=TESTKEY4: DB 22H;=TESTKEY5: MOV R7,#0FFH RET ;=GETKEY: MOV 10H,#20H MOV 0EH,#00H GETKEY1: MOV A,0EH CLR C SUBB A,#06H JNC GOON2 MOV DPTR,#0E101H CLR A MOVX DP

8、TR,A MOV R7,0EH MOV A,#08H ADD A,R7 MOV R0,A MOV A,R0 MOV R7,A MOV 0FH,#00H GETKEY2: MOV A,0FH CLR C SUBB A,#08H JNC GOON1 MOV A,11H JNB ACC.7,KLOOP MOV DPTR,#0E102H MOV A,#01H MOVX DPTR,A SJMP KLOOP1 ;= KLOOP: MOV DPTR,#0E102H CLR A MOVX DPTR,A KLOOP1: MOV DPTR,#0E102H MOVX A,DPTR MOV R7,A MOV A,R7

9、 ORL A,#02H MOV R7,A MOV A,R7 MOVX DPTR,A MOV DPTR,#0E102H MOVX A,DPTR MOV R7,A MOV A,R7 ANL A,#0FDH MOV R7,A MOV A,R7 MOVX DPTR,A MOV A,11H ADD A,ACC MOV 11H,A INC 0FH SJMP GETKEY2 GOON1: MOV DPTR,#0E101H MOV A,10H MOVX DPTR,A MOV R7,#01H LCALL MLOOP MOV A,10H CLR C RRC A MOV 10H,A INC 0EH SJMP GET

10、KEY1 GOON2: RET ;=WAIT: MOV DPTR,#0E100H MOV A,#03H MOVX DPTR,A MOV 08H,#0FFH MOV 09H,#0FFH MOV 0AH,#0FFH MOV 0BH,#0FFH MOV 0CH,#00H MOV 0DH,#00H WAIT1: LCALL GETKEY LCALL MLOOP4 MOV A,R7 JZ WAIT1 LCALL KEY1 MOV R6,#00H MOV R6,#00H MOV A,R7 ANL A,#0FH MOV R7,A MOV A,#24H ADD A,R7 MOV DPL,A MOV A,#01

11、H ADDC A,R6 MOV DPH,A CLR A MOVC A,A+DPTR MOV R7,A MOV 0DH,R7 SJMP WAIT1 RET ;=TAB:Q0124: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H;?.Ofm.Q012C: DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H;ow|9yqQ0134: DB 00H, 01H, 04H, 07H, 0FH, 02H, 05H, 08H;.Q013C: DB 0EH, 03H, 06H, 09H, 0DH, 0CH, 0BH, 0AH;.Q0144:

12、DB 10H, 11H, 12H, 13H, 14H, 15H, 16H;.;=MLOOP: MOV 15H,R7 MLOOP1: MOV R7,15H DEC 15H MOV A,R7 JZ MLOOP3 MOV 16H,#64H MLOOP2: MOV A,16H JZ MLOOP1 DEC 16H SJMP MLOOP2 SJMP MLOOP1 MLOOP3: RET ;=MLOOP4: MOV DPTR,#0E101H CLR A MOVX DPTR,A MOV DPTR,#0E103H MOVX A,DPTR MOV R7,A MOV A,R7 CPL A MOV R7,A MOV

13、A,R7 ANL A,#0FH MOV R7,A RET ;=STAR: MOV R0,#7FH CLR A STAR1: MOV R0,A DJNZ R0,STAR1 MOV SP,#16H LJMP WAIT END;=八实验分析: 一:主程序分析 主程序执行步: 1:显示缓冲区初始化2:LED显示3:判断是否有键输入。4:如果有键盘输入读取键值: 5:键值转换为显示数据 二:子程序分析: 子程序执行步骤:1:初始化地址参数2:输出列扫描信号列3:扫描信号移位4:读入行信号5:该列有键输入若是则执行6,7,8,若不是则执行9,2,3,4.6按照行列计算键值7查表得键码 9 :6列扫描完?

14、10:子程序主要代码分析如下:键盘扫描子程序分析: 程序段TESTKEY分析: 本段程序主要作用是初始化地址参数,将14H放入运算器A中,判断A的值是否不小于ACC.2的值如果是则跳转到TESTKEY1 如果不是则A的值加13H再加13H, 程序无条件跳转到TESTKEY2 TESTKEY: MOV A,14H JNB ACC.2,TESTKEY1 INC 13H INC 13H SJMP TESTKEY2 程序段TESTKEY1分析: 将14H的值放入运算器A中判断A的值是否不小于ACC.3的值如果是则跳转到TESTKEY2 如果不是则将A的值加立即数03再放入运算器A中,再将地址13H的值

15、加上运算器A中的值放入A中。再将A中的值放入13H中。TESTKEY1: MOV A,14H JNB ACC.3,TESTKEY2 MOV A,#03H ADD A,13H MOV 13H,A 程序段TESTKEY2分析: 本程序段主要功能是:输出列扫描信号列扫描信号移位具体分析如下:地址指针DPTR指向立即数#0E101H的地址,将运算器A内存放的值的所有位都向左移动1位,将运算器A的值放入地址0E101H 中TESTKEY2: MOV DPTR,#0E101H CLR A MOVX DPTR,A 程序段TESTKEY3分析: 将立即数#OA放入R7中,程序长跳转到MLOOP,长跳转到MLOOP4将R7中存放的内容放入运算器A中,如果A中的值不等于0

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号