ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:77.89KB ,
资源ID:25754452      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25754452.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实现特定功能键盘及LED显示接口课程设计.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实现特定功能键盘及LED显示接口课程设计.docx

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

2、显示。二、设计目的:1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和LED八段码显示器的工作原理。三、设计原理及方案:1、实验电路图 说明:使用PC机与伟福lab8000实验箱连接起来,安装好相应驱动,做好接线分析,由于lab8000实验箱已经将部分电路接线内置,所以接线仅需要将KEY/LED_CS选通端口与CS0相连即可。2、实验框图 (接上页)3、各功能实现方案(1)功能1:按1键显示年当读取到寄存器AL=02H时,说明按键为1号键。关于显示年份,首先定义一个显示缓冲区,用于存储表示年份的数字。然后依次读取其值,再显示到数码管上。(2)功能2:按2显示月日当读取到寄存器AL=0

3、AH时,说明按键为2号键。显示月日方法和显示年份一样,首先定义一个显示缓冲区,用于存储表示月日的数字。然后依次读取其值,再显示与数码管上。(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

4、08001h ; 键盘读入口data segmentLEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?)LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db

5、 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hdata endscode segment assume cs:code, ds:dataDelay proc near push ax ; 延时子程序 push cx mov al, 0 mov cx,ax loop $ pop cx pop ax retDelay endpDelay1 proc near push ax ; 延时子程序 push cx mov al, 0 mov cx,38000 loop $ pop cx pop ax retDelay1 endpDisplayLED proc near

6、mov bx, offset LEDBuf mov cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边开始显示DLoop: mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 mov al, bx mov dx, OUTSEG out dx,al mov dx, OUTBIT mov al, ah out dx, al ; 显示一位八段管 push ax mov ah, 1 call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0 out

7、 dx,al ; 关所有八段管 retDisplayLED endpTestKey proc near mov dx, OUTBIT mov al, 0 out dx, al ; 输出线置为0 mov dx, IN_KEY in al, dx ; 读入键状态 not al and al, 0fh ; 高四位不用 retTestKey endpGetKey proc near mov ch, 00100000b mov cl, 6KLoop: mov dx, OUTBIT mov al, ch ; 找出键所在列 not al out dx, al shr ch, 1 mov dx, IN_KEY

8、 in al, dx not al and al, 0fh jne Goon_ ; 该列有键入 dec cl jnz KLoop mov cl, 0ffh ; 没有键按下, 返回 0ffh jmp Exit1Goon_: dec cl shl cl, 2 ; 键值 = 列 X 4 + 行 mov ch, 4LoopC: test al, 1 jnz Exit1 shr al, 1 inc cl dec ch jnz LoopCExit1: mov dx, OUTBIT mov al, 0 out dx, al mov ch, 0 mov bx, offset KeyTable add bx,

9、cx mov al, bx ; 取出键码 mov bl, alWaitRelease: mov dx, OUTBIT mov al, 0 out dx, al ; 等键释放 mov ah, 10 call Delay call TestKey jne WaitRelease mov al, bl retGetKey endpStart proc near mov ax, data mov ds, ax mov di,offset LEDBufp1: mov di,offset LEDBuf mov di, 05bh ; 显示 2015. mov di+1, 03fh mov di+2, 03f

10、h mov di+3, 0ffh mov di+4, 0 mov di+5, 06h jmp MLoopp2: mov di,offset LEDBuf mov di, 03fh ; 显示 08.08. mov di+1, 0ffh mov di+2, 03fh mov di+3, 0ffh mov di+4, 0 mov di+5, 5bh jmp MLoopp3: mov di,offset LEDBuf mov di,6fh ;显示good mov di+1,5ch mov di+2,5ch mov di+3,0deh mov di+4,0 mov di+5,4fh jmp MLoop

11、p4: push cx mov cx,08h mov bx,offset LEDBufp4l: mov bx,00 inc bx loop p4l pop cx mov di, 7fh ; 显示 8 inc di cmp di,offset LEDBuf + 06h jnz next mov di,offset LEDBufnext: call delay1 call DisplayLED ; 显示 call TestKey jne MLoop jmp p4MLoop: call DisplayLED ; 显示 call TestKey ; 有键入? je MLoop ; 无键入, 继续显示

12、call GetKey ; 读入键码 and al, 0fh ; 显示键码 cmp al,01h jz mmpp1 cmp al,02h jz mmpp2 cmp al,03h jz p3 cmp al,04h jz p4 mov ah, 0 mov bx, offset LEDMAP add bx, ax mov al, bx mov LEDBuf+5, al jmp MLoop mmpp1: jmp p1mmpp2: jmp p2 Start endpcode ends end start四、实验方法1、实验电路测试(1)将KEY/LED_CS选通端口与CS0相连。(2)接通电源,检查LE

13、D数码管是否正常工作。2、软件测试(1)将实验箱连接电脑,调试运行试验程序。(2)按实验要求一次按下1至4号按键进行测试,观察LED数码管反应。五、实验结果1、按下1键:LED显示“2015.”。2、按下2键:LED显示“06.13”。3、按下3键:LED显示“GOOD”。4、按下4键:LED从左至右循环显示“8”。六、改进意见及建议可以在实现基本效果的基础上在添加一些特效显示。例如,将特定数字或字母进行闪烁显示,闪烁10次后不再闪烁。这项功能的实现需要加入中断技术,通过边沿触发中断,执行中断服务子程序,进而达到效果。七、设计体会本次课程设计,我看到了自己许多不足之处。这次课程设计完全改变了我

14、以前的错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到了各种各样的问题,在这些问题中也认识到了自己的种种不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固。其实这也给了我一个警告,在今后的学习中,我力争扎实学习。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1