键盘扫描显示实验原理及分析报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘扫描显示实验原理及分析报告
一、实验目的-------------------------------------------------------------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)
七、实验程序:
;键盘扫描实验
OUTBIT equ 0e101h ; 位控制口
CLK164 equ 0e102h ; 段控制口(接164时钟位)
DAT164 equ 0e102h ; 段控制口(接164数据位)
IN equ 0e103h ; 键盘读入口
ORG 0000H
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 KEYDIS: MOV A,14H JZ TESTKEY5 MOV A,13H
ADD A,ACC
ADD A,ACC
MOV 13H,A
MOV A,14H
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
MOVX @DPTR,A TESTKEY3: MOV R7,#0AH LCALL MLOOP
LCALL MLOOP4
MOV A,R7