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

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

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

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

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

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

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

了解键盘及LED显示接口原理,设计实验电路图完成以下功能:

1.按1键显示年;

2.按2键显示月日;

3.按3键显示GOOD;

4.按4键数码管由左到右字符“0”循环显示。

5.自行设计特效显示功能。

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE

START:

MOVAX,CS

MOVDS,AX

INPUT:

CALLKEYBOARD

LEASI,KEYBUFFER;取按键的值

MOVAL,[SI]

CMPAL,1

JNZL0

JMPSHOW_YEAR;显示年

L0:

CMPAL,2

JNZL1

JMPSHOW_MD;显示月日

L1:

CMPAL,3

JNZL2

JMPSHOW_GOOD;显示GOOD

L2:

CMPAL,4

JNZL3

JMPSHOW_0;由左到右字符“0”循环显示

L3:

CMPAL,7

JNZL4

JMPSHOW_SUN;显示SUN

L4:

JMPSHOW_HERO;显示HERO

;----------------------------------结束---------------------------------------------

;--------------------------------显示年开始----------------------------------------

SHOW_YEAR:

MOVCH,01111111B;初始化位选码01111111B

MOVBH,11110111B;显示位选结束位

LEASI,YEARBUFFER

CALLDISPLAY

DECCOUNT;重复显示COUNT次

JNZSHOW_YEAR

MOVCOUNT,250

JMPINPUT

;--------------------------------------结束-------------------------------------------

;-----------------------------------显示月开始---------------------------------------

SHOW_MD:

MOVCH,01111111B;初始化位选码01111111B

MOVBH,11110111B;显示位选结束位

LEASI,MDBUFFER

CALLDISPLAY

DECCOUNT;重复显示COUNT次

JNZSHOW_MD

MOVCOUNT,250

JMPINPUT

;---------------------------------结束--------------------------------------------------

;---------------------------------显示GOOD-----------------------------------------------

SHOW_GOOD:

MOVCH,01111111B;初始化位选码01111111B

MOVBH,11110111B;显示位选结束位

LEASI,GOODBUFFER

CALLDISPLAY

DECCOUNT;重复显示COUNT次

JNZSHOW_GOOD

MOVCOUNT,250

JMPINPUT

;----------------------------------结束--------------------------------------------------

;---------------------------------显示HERO-----------------------------------------------

SHOW_HERO:

DE:

MOVCH,01111111B;初始化位选码01111111B

LEASI,HEROBUFFER

MOVBH,11110111B;显示位选结束位

CALLDISPLAY

DECCOUNT;重复显示COUNT次

JNZSHOW_HERO

MOVCOUNT,10

DECXUN

MOVCOUNT,10

CALLSHOWDELAY_H

CMPXUN,00H;闪光显示

JNZDE

MOVXUN,15

MOVCOUNT,250

JMPINPUT

;----------------------------------结束-------------------------------------------------

;---------------------------显示由左到右字符“0”循环------------------------------------

SHOW_0:

MOVBX,3

LSHOW0:

MOVCH,01111111B;初始化位选码01111111

LEADI,LINBUFFER

MOVAL,80H

MOVDX,203H

OUTDX,AL;再次初始化8255

DISPLAY_0:

MOVAL,CH

MOVDX,202H

OUTDX,AL

;位选码送PC口

MOVAL,[DI]

MOVDX,200H

;MOVAL,5BH

OUTDX,AL;显示段码

CALLSHOWDELAY0

RORCH,1;指向下一个数码管

CMPCH,11110111B

JNZDISPLAY_0

DECBX;重复显示3次

JNZLSHOW0

JMPINPUT

;----------------------------------结束-------------------------------------------------

;-----------------------------显示SUN-------------------------------------------

SHOW_SUN:

MOVCH,01111111B;初始化位选码01111111B

MOVBH,11101111B;显示位选结束位

LEASI,SUNBUFFER

 

CALLDISPLAY

DECCOUNT;重复显示COUNT次

JNZSHOW_SUN

MOVCOUNT,250

JMPINPUT

;-----------------------------------结束------------------------------------------------

;----------------------------------显示延时-----------------------------------------------

SHOWDELAYPROCNEAR

PUSHBX

PUSHCX

MOVBX,10

SHOWDEL1:

MOVCX,100

SHOWDEL2:

LOOPSHOWDEL2

DECBX

JNZSHOWDEL1

POPCX

POPBX

RET

SHOWDELAYENDP

;-----------------------------------结束-----------------------------------------------

;----------------------------------显示延时0--------------------------------------------

SHOWDELAY0PROCNEAR

PUSHBX

PUSHCX

MOVBX,100

SHOW0DEL1:

MOVCX,2000

SHOW0DEL2:

LOOPSHOW0DEL2

DECBX

JNZSHOW0DEL1

POPCX

POPBX

RET

SHOWDELAY0ENDP

;-----------------------------------结束---------------------------------------------

SHOWDELAY_HPROCNEAR

PUSHBX

PUSHCX

MOVBX,10

SHOW_HDEL1:

MOVCX,2000

SHOW_HDEL2:

LOOPSHOW_HDEL2

DECBX

JNZSHOW_HDEL1

POPCX

POPBX

RET

SHOWDELAY_HENDP

;---------------------------------显示程序------------------------------------------

DISPLAYPROCNEAR

MOVAL,80H

MOVDX,203H

OUTDX,AL;再次初始化8255

DISPLAY1:

MOVAL,CH

MOVDX,202H

OUTDX,AL;位选码送PC口

MOVAL,[SI]

MOVDX,200H

OUTDX,AL;显示段码

CALLSHOWDELAY;延时

INCSI

RORCH,1;指向下一个数码管

CMPCH,BH

JNZDISPLAY1

RET

DISPLAYENDP

;-----------------------------------结束---------------------------------------------

;---------------------------------读取按键盘------------------------------------------

KEYBOARDPROCNEAR

LEASI,KEYBUFFER

MOVAL,10000001B;初始化8255控制字

MOVDX,203H

OUTDX,AL

KS1:

CALLKS;读取按键

CMPAL,0FH;判断有无按键

JZKS1

CALLDELAY

CALLKS

CMPAL,0FH

JZKS1

MOVBL,0EFH;初始化列码

MOVBH,0;初始化列计数器

AGAIN:

MOVDX,202H

MOVAL,BL

OUTDX,AL;输出列码

INAL,DX;读取行码

ANDAL,0FH

CMPAL,0FH

JZNEXT;该列无键闭合,准备下一列扫描

CMPAL,0DH;判断列是否是第一个键闭合?

JNZTWO

MOVAL,1

JMPFREE

TWO:

;判断列是否是第二个键闭合?

CMPAL,0BH

JNZTHREE

MOVAL,4

JMPFREE

THREE:

;判断列是否是第三个键闭合?

CMPAL,07H

JNZNEXT

MOVAL,7

FREE:

PUSHAX

WAIT1:

CALLKS

CMPAL,0FH

JNZWAIT1

POPAX

ADDAL,BH

MOV[SI],AL;保存键值,并返回

JMPRETURN

NEXT:

INCBH

ROLBL,1

CMPBL,0FEH

JNZAGAIN

JMPKS1

KSPROCNEAR

MOVDX,202H

MOVAL,0FH

OUTDX,AL

INAL,DX

ANDAL,0FH

RET

KSENDP

DELAYPROCNEAR

PUSHBX

PUSHCX

MOVBX,2000

DEL1:

MOVCX,10

DEL2:

LOOPDEL2

DECBX

JNZDEL1

POPCX

POPBX

RET

DELAYENDP

RETURN:

RET

KEYBOARDENDP

EXIT:

MOVAH,4CH

INT21H

XUNDB15

YEARBUFFERDB5BH,3FH,3FH,6FH;存放年2009

MDBUFFERDB3FH,6FH,3FH,66H;存放月日0904

GOODBUFFERDB6FH,5CH,5CH,5EH;GOOD

KEYBUFFERDB1

LINBUFFERDB3FH

HEROBUFFERDB76H,79H,77H,3FH;HERO

SUNBUFFERDB6DH,3EH,37H;SUN

COUNTDB250;显示次数----------------------------------结束-----------------------------------------

CODEENDS

ENDSTART

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

当前位置:首页 > 工程科技 > 电子电路

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

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