实验八 键盘扫描和显示实验 实验目的: 掌握键盘和显示器的接口方法和编程方法; 掌握键盘扫描和LED 八段数码管显示器的工作原理。 实验内容: 利用LAB6000 通用微控制器提供的键盘扫描电路和显示电路,完成键盘扫描和显示实验。把按键输入的键码在六位LED 数码管上显示出来。 可分成三个模块: ① 键输入模块:扫描键盘,读取一次键盘并将键值存入键值缓冲单元。 ② 显示模块:将显示单元的内容在六位LED 数码管上动态显示。 ③ 主程序:调用键输入模块和显示模块。 实验步骤: 1. 按照流程图分析参考程序,在读懂的基础上编写或修改程序; 2. 将键盘和显示器的片选连接孔 KEY /LED—CS 与片选口CS0 连接; 3. 输入编好的程序,汇编并运行。 4. 观察程序运行后 LED 的显示,按下数字键,再观察 LED 的显示。 5. 按照思考题的要求,修改程序进行实验。 实验电路原理图: 实验报告要求: 记录实验现象,分析原因。整理好运行正确的程序,写出总结和体会。 思考题: 1. 如果显示5、6、7、8 如何修改? 2. LEDTAB(字形表)每一个码代表什么? 3. 如果把 CS0 改为 CS1,程序如何修改? 4. 怎样关显示,开放键盘? 5. CPL A 指令是什么功能?为什么要用该指令? 6. MOVC 和MOVX 指令有何不同? 7. LEDBu f eq u 60H 是什么指令?什么含义? 8. MOV LEDBu f+1,#5BH 是什么含义? 附: 参考流程图 附: 参考程序 Org 0000h OUTBIT equ 8002h ;位控制口 OUTSEG equ 8004h ;段控制口 IN equ 8001h ;键盘读入口 LEDBuf equ 60h ;显示缓冲器首址 ljmp Start LED字形表 LEDTAB:db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: mov r7, #00h 延时子程序 Delay1:djnz r7, Delay1 djnz r6, Delay1 ret Display: LED显示子程序 mov r0, #LEDBuf mov r1, #06h ;共6个八段LED mov r2, #00100000b ;从左边开始显示 Loop: mov dptr, #OUTBIT ;指向位控制口 mov a, #00h ;关显示 movx @dptr, a mov a, @r0 ;取一个待显示数 mov dptr, #OUTSEG ;指向段控制口 movx @dptr, a ;输出段码 mov dptr, #OUTBIT ;指向位控制口 mov a, r2 ;取位码 movx @dptr, a ;输出位码 mov r6, #01h call Delay mov a, r2 ;位码右...