实现特定功能的键盘及led显示 接口课程设计

上传人:第*** 文档编号:34063583 上传时间:2018-02-20 格式:DOC 页数:12 大小:126.87KB
返回 下载 相关 举报
实现特定功能的键盘及led显示  接口课程设计_第1页
第1页 / 共12页
实现特定功能的键盘及led显示  接口课程设计_第2页
第2页 / 共12页
实现特定功能的键盘及led显示  接口课程设计_第3页
第3页 / 共12页
实现特定功能的键盘及led显示  接口课程设计_第4页
第4页 / 共12页
实现特定功能的键盘及led显示  接口课程设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《实现特定功能的键盘及led显示 接口课程设计》由会员分享,可在线阅读,更多相关《实现特定功能的键盘及led显示 接口课程设计(12页珍藏版)》请在金锄头文库上搜索。

1、河北科技大学接口技术课程设计报告学生姓名: 学 号: 专业班级: 课程名称: 学年学期: 2 0 2 0 学年第 学期 指导教师: 2 0 年 月课程设计成绩评定表学生姓名 学 号 成绩专业班级 起止时间设计题目验收内容课程设计小组验收结果:硬件设计:优秀 良好 中等 及格 需努力程序设计:优秀 良好 中等 及格 需努力实验结果:优秀 良好 中等 及格 需努力课程设计个人验收结果:操作能力:优秀 良好 中等 及格 需努力软件理解:优秀 良好 中等 及格 需努力硬件理解:优秀 良好 中等 及格 需努力指导教师: 年 月 日0目 录一、设计题目: -2二、设计目的: -2三、设计原理及方案: -2

2、1、实验电路图 -22、实验框图 -33、各功能实现方案 -44、实验程序 -4四、实验方法 -91、实验电路测试 -92、软件测试 -9五、实验结果 -9六、改进意见及建议 -9七、设计体会 -91一、设计题目:实现特定功能的键盘及 LED 显示。二、设计目的:1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和 LED 八段码显示器的工作原理。三、设计原理及方案:1、实验电路图2说明:使用 PC 机与伟福 lab8000 实验箱连接起来,安装好相应驱动,做好接线分析,由于 lab8000 实验箱已经将部分电路接线内置,所以接线仅需要将 KEY/LED_CS 选通端口与 CS0 相连

3、即可。2、实验框图开始显示缓冲区初始化LED 显示读取键值键值转换为显示数据有键输入?是否主程序框图是是否开始输出列扫描信号列扫描信号移位该列有键输入?读入行信号返回6 列扫描完?初始化地址参数读键输入子程序框图(接下页)3(接上页)3、各功能实现方案(1)功能 1:按 1 键显示年当读取到寄存器 AL=02H 时,说明按键为 1 号键。关于显示年份,首先定义一个显示缓冲区,用于存储表示年份的数字。然后依次读取其值,再显示到数码管上。(2)功能 2:按 2 显示月日当读取到寄存器 AL=0AH 时,说明按键为 2 号键。显示月日方法和显示年份一样,首先定义一个显示缓冲区,用于存储表示月日的数字

4、。然后依次读取其值,再显示与数码管上。(3)功能 3:按 3 显示 GOOD将 G,O,O,D 分别以七段代码 6FH,3FH,3FH,5EH 代替,以显示 GOOD 字样。然后清空 LED 数码管的显示,通过延时,让 GOOD 字样显示与数码管。(4)功能 4:按 4 键数码管由左到右 8 字循环显示当 8279 扫描寄存器 AL=01H 时,说明按键为 4 号键。通过设置循环及延迟及上述相似的方法显示出指定效果。4、实验程序OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN_KEY equ 08001h ; 键盘读入口data segmen

5、tLEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?)LEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKeyTable: ; 键码定义db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h,

6、04h, 07hdata ends按照行列计算键值查表得键码等待按键释放返回4code segmentassume cs:code, ds:dataDelay proc nearpush ax ; 延时子程序push cxmov al, 0mov cx,axloop $pop cxpop axretDelay endpDelay1 proc nearpush ax ; 延时子程序push cxmov al, 0mov cx,38000loop $pop cxpop axretDelay1 endpDisplayLED proc nearmov bx, offset LEDBufmov cl,

7、6 ; 共 6 个八段管mov ah, 00100000b ; 从左边开始显示DLoop:mov dx, OUTBITmov al, 0out dx,al ; 关所有八段管mov al, bxmov dx, OUTSEGout dx,almov dx, OUTBITmov al, ahout dx, al ; 显示一位八段管push ax5mov ah, 1call Delaypop axshr ah, 1inc bxdec cljnz DLoopmov dx, OUTBITmov al, 0out dx,al ; 关所有八段管retDisplayLED endpTestKey proc ne

8、armov dx, OUTBITmov al, 0out dx, al ; 输出线置为 0mov dx, IN_KEYin al, dx ; 读入键状态not aland al, 0fh ; 高四位不用retTestKey endpGetKey proc nearmov ch, 00100000bmov cl, 6KLoop:mov dx, OUTBITmov al, ch ; 找出键所在列not alout dx, alshr ch, 1mov dx, IN_KEYin al, dxnot aland al, 0fhjne Goon_ ; 该列有键入dec cljnz KLoop6mov c

9、l, 0ffh ; 没有键按下, 返回 0ffhjmp Exit1Goon_:dec clshl cl, 2 ; 键值 = 列 X 4 + 行mov ch, 4LoopC:test al, 1jnz Exit1shr al, 1inc cldec chjnz LoopCExit1:mov dx, OUTBITmov al, 0out dx, almov ch, 0mov bx, offset KeyTableadd bx, cxmov al, bx ; 取出键码mov bl, alWaitRelease:mov dx, OUTBITmov al, 0out dx, al ; 等键释放mov a

10、h, 10call Delaycall TestKeyjne WaitReleasemov al, blretGetKey endpStart proc nearmov ax, datamov ds, axmov di,offset LEDBufp1: mov di,offset LEDBufmov di, 05bh ; 显示 2015.mov di+1, 03fhmov di+2, 03fh7mov di+3, 0ffhmov di+4, 0mov di+5, 06hjmp MLoopp2: mov di,offset LEDBufmov di, 03fh ; 显示 08.08.mov di+1, 0ffhmov di+2, 03fhmov di+3, 0ffhmov di+4, 0mov di+5, 5bhjmp MLoopp3: mov di,offset LEDBufmov di,6fh ;显示 goodmov di+1,5chmov di+2,5chmov di+3,0dehmov di+4,0mov di+5,4fhjmp MLoopp4: push

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号