接口课程设计实现特定功能的键盘及LED显示.docx
- 文档编号:7826447
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:12
- 大小:1.24MB
接口课程设计实现特定功能的键盘及LED显示.docx
《接口课程设计实现特定功能的键盘及LED显示.docx》由会员分享,可在线阅读,更多相关《接口课程设计实现特定功能的键盘及LED显示.docx(12页珍藏版)》请在冰豆网上搜索。
接口课程设计实现特定功能的键盘及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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 课程设计 实现 特定 功能 键盘 LED 显示