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

上传人:b****2 文档编号:25754452 上传时间:2023-06-12 格式:DOCX 页数:14 大小:77.89KB
下载 相关 举报
实现特定功能键盘及LED显示接口课程设计.docx_第1页
第1页 / 共14页
实现特定功能键盘及LED显示接口课程设计.docx_第2页
第2页 / 共14页
实现特定功能键盘及LED显示接口课程设计.docx_第3页
第3页 / 共14页
实现特定功能键盘及LED显示接口课程设计.docx_第4页
第4页 / 共14页
实现特定功能键盘及LED显示接口课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

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

《实现特定功能键盘及LED显示接口课程设计.docx》由会员分享,可在线阅读,更多相关《实现特定功能键盘及LED显示接口课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

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

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

 

河北科技大学

《接口技术》课程设计报告

学生姓名:

学号:

专业班级:

课程名称:

学年学期:

20—20学年第学期

 

指导教师:

20年月

 

课程设计成绩评定表

学生姓名

学号

成绩

专业班级

起止时间

设计题目

课程设计小组验收结果:

硬件设计:

优秀□良好□中等□及格□需努力□

程序设计:

优秀□良好□中等□及格□需努力□

实验结果:

优秀□良好□中等□及格□需努力□

课程设计个人验收结果:

操作能力:

优秀□良好□中等□及格□需努力□

软件理解:

优秀□良好□中等□及格□需努力□

硬件理解:

优秀□良好□中等□及格□需努力□

 

指导教师:

年月日

 

 

一、设计题目:

实现特定功能的键盘及LED显示。

二、设计目的:

1、掌握键盘和显示器的接口方法和编程方法。

2、掌握键盘扫描和LED八段码显示器的工作原理。

三、设计原理及方案:

1、实验电路图

 

 

说明:

使用PC机与伟福lab8000实验箱连接起来,安装好相应驱动,做好接线分析,由于lab8000实验箱已经将部分电路接线内置,所以接线仅需要将KEY/LED_CS选通端口与CS0相连即可。

2、实验框图

 

 

(接上页)

3、各功能实现方案

(1)功能1:

按1键显示年

当读取到寄存器AL=02H时,说明按键为1号键。

关于显示年份,首先定义一个显示缓冲区,用于存储表示年份的数字。

然后依次读取其值,再显示到数码管上。

(2)功能2:

按2显示月日

当读取到寄存器AL=0AH时,说明按键为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、实验程序

OUTBITequ08002h;位控制口

OUTSEGequ08004h;段控制口

IN_KEYequ08001h;键盘读入口

datasegment

LEDBufdb6dup(?

);显示缓冲

Numdb1dup(?

);显示的数据

DelayTdb1dup(?

LEDMAP:

;八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

KeyTable:

;键码定义

db16h,15h,14h,0ffh

db13h,12h,11h,10h

db0dh,0ch,0bh,0ah

db0eh,03h,06h,09h

db0fh,02h,05h,08h

db00h,01h,04h,07h

dataends

codesegment

assumecs:

code,ds:

data

Delayprocnear

pushax;延时子程序

pushcx

moval,0

movcx,ax

loop$

popcx

popax

ret

Delayendp

Delay1procnear

pushax;延时子程序

pushcx

moval,0

movcx,38000

loop$

popcx

popax

ret

Delay1endp

DisplayLEDprocnear

movbx,offsetLEDBuf

movcl,6;共6个八段管

movah,00100000b;从左边开始显示

DLoop:

movdx,OUTBIT

moval,0

outdx,al;关所有八段管

moval,[bx]

movdx,OUTSEG

outdx,al

movdx,OUTBIT

moval,ah

outdx,al;显示一位八段管

pushax

movah,1

callDelay

popax

shrah,1

incbx

deccl

jnzDLoop

movdx,OUTBIT

moval,0

outdx,al;关所有八段管

ret

DisplayLEDendp

 

TestKeyprocnear

movdx,OUTBIT

moval,0

outdx,al;输出线置为0

movdx,IN_KEY

inal,dx;读入键状态

notal

andal,0fh;高四位不用

ret

TestKeyendp

GetKeyprocnear

movch,00100000b

movcl,6

KLoop:

movdx,OUTBIT

moval,ch;找出键所在列

notal

outdx,al

shrch,1

movdx,IN_KEY

inal,dx

notal

andal,0fh

jneGoon_;该列有键入

deccl

jnzKLoop

movcl,0ffh;没有键按下,返回0ffh

jmpExit1

Goon_:

deccl

shlcl,2;键值=列X4+行

movch,4

LoopC:

testal,1

jnzExit1

shral,1

inccl

decch

jnzLoopC

Exit1:

movdx,OUTBIT

moval,0

outdx,al

movch,0

movbx,offsetKeyTable

addbx,cx

moval,[bx];取出键码

movbl,al

WaitRelease:

movdx,OUTBIT

moval,0

outdx,al;等键释放

movah,10

callDelay

callTestKey

jneWaitRelease

moval,bl

ret

GetKeyendp

Startprocnear

movax,data

movds,ax

movdi,offsetLEDBuf

p1:

movdi,offsetLEDBuf

mov[di],05bh;显示2015.

mov[di+1],03fh

mov[di+2],03fh

mov[di+3],0ffh

mov[di+4],0

mov[di+5],06h

jmpMLoop

p2:

movdi,offsetLEDBuf

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

jmpMLoop

p3:

movdi,offsetLEDBuf

mov[di],6fh;显示good

mov[di+1],5ch

mov[di+2],5ch

mov[di+3],0deh

mov[di+4],0

mov[di+5],4fh

jmpMLoop

p4:

pushcx

movcx,08h

movbx,offsetLEDBuf

p4l:

mov[bx],00

incbx

loopp4l

popcx

mov[di],7fh;显示8

incdi

cmpdi,offsetLEDBuf+06h

jnznext

movdi,offsetLEDBuf

next:

calldelay1

callDisplayLED;显示

callTestKey

jneMLoop

jmpp4

MLoop:

callDisplayLED;显示

callTestKey;有键入?

jeMLoop;无键入,继续显示

callGetKey;读入键码

andal,0fh;显示键码

cmpal,01h

jzmmpp1

cmpal,02h

jzmmpp2

cmpal,03h

jzp3

cmpal,04h

jzp4

movah,0

movbx,offsetLEDMAP

addbx,ax

moval,[bx]

movLEDBuf+5,al

jmpMLoop

mmpp1:

jmpp1

mmpp2:

jmpp2

Startendp

codeends

endstart

四、实验方法

1、实验电路测试

(1)将KEY/LED_CS选通端口与CS0相连。

(2)接通电源,检查LED数码管是否正常工作。

2、软件测试

(1)将实验箱连接电脑,调试运行试验程序。

(2)按实验要求一次按下1至4号按键进行测试,观察LED数码管反应。

五、实验结果

1、按下1键:

LED显示“2015.”。

2、按下2键:

LED显示“06.13”。

3、按下3键:

LED显示“GOOD”。

4、按下4键:

LED从左至右循环显示“8”。

六、改进意见及建议

可以在实现基本效果的基础上在添加一些特效显示。

例如,将特定数字或字母进行闪烁显示,闪烁10次后不再闪烁。

这项功能的实现需要加入中断技术,通过边沿触发中断,执行中断服务子程序,进而达到效果。

七、设计体会

本次课程设计,我看到了自己许多不足之处。

这次课程设计完全改变了我以前的错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。

因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到了各种各样的问题,在这些问题中也认识到了自己的种种不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

其实这也给了我一个警告,在今后的学习中,我力争扎实学习。

 

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

当前位置:首页 > 自然科学 > 物理

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

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