微机课程设计 广工 倒计数器_第1页
微机课程设计 广工 倒计数器_第2页
微机课程设计 广工 倒计数器_第3页
微机课程设计 广工 倒计数器_第4页
微机课程设计 广工 倒计数器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计课程名称 微机原理及应用 题目名称 倒计数器 学生学院 自动化学院 专业班级 学 号 学生姓名 指导教师 李传芳 实践时间 编程使用四位LED同时显示59FC(要求将59FC设在数据段并用XLAT译码显示) 程序如下:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTORG 1000HDAT1 DB 05H,09H,0FH,0CH ORG 1100HTABL DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH DB 79H,71H DATA ENDSCO

2、DE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,89H OUT 63H,ALMAIN:MOV SI,OFFSET DAT1 CALL DISP JMP MAINDISP:PUSH SI PUSH CX PUSH BX MOV CL,0F7HA1:MOV AL,CL OUT 60H,AL MOV AL,SI MOV BX,OFFSET TABL XLAT OUT 61H,AL CALL DALLY1 ROL CL,1 INC SI TEST CL,01H PUSH AX MOV AL,00H

3、OUT 60H,AL POP AX JNE A1 POP BX POP CX POP SI RETDALLY1:PUSH CX MOV CX,01FFHA3:LOOP A3 POP CX RETCODE ENDSEND START实验结果:数码管上显示59FC,按键无效将8个键按实验室要求定义键值,按任意键在显示器上显示对应键值,要求显示值能左移,上行为71BE,下行为AF69。程序如下:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTORG 1000HDAT1 DB 00H,00H,00H,00H,00H ORG 1500HTABL

4、 DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH DB 79H,71H DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,89H OUT 63H,AL LEA SI,DAT1 CALL DISPSTT:MOV AL,00H OUT 60H,ALNEXT:IN AL,62H AND AL,022H CMP AL,022H JNZ KEYABC CALL DISP JMP STTKEYABC:CA

5、LL TIME IN AL,62H AND AL,022H CMP AL,022H JNZ KEY_0 JMP STTKEYTEST MACRO PORTVALUE,X,Y,Z,J MOV AL,PROTVALUE OUT 60H,AL IN AL,62H TEST AL,20H JNZ J CALL X JMP STTKJ:TEST AL,02H JNZ Z CALL Y JMP STTK ENDMKEY_0:KEYTEST 0F7H,KEY0,KEY1,KEY_2,JJ0KEY_2:KEYTEST 0EFH,KEY2,KEY3,KEY_4,JJ1KEY_4:KEYTEST 0DFH,KEY

6、4,KEY5,KEY_6,JJ2KEY_6:KEYTEST 0BFH,KEY6,KEY7,KEY_H,JJ3KEY_H:JMP STTKSHOW MARCO VAR CALL LP1 MOV AL,VAR MOV SI,AL CALL DISP RET ENDMKEY0:SHOW 0AHKEY1:SHOW 07HKEY2:SHOW 0FHKEY3:SHOW 01HKEY4:SHOW 06HKEY5:SHOW 0BHKEY6:SHOW 09HKEY7:SHOW 0EHLP1:MOV CX,3 MOV SI,OFFSET DAT1LP2:MOV AL,SI+1 MOV SI,AL INC SI L

7、OOP LP2 RETTIME:PUSH AX PUSH CX MOV CX,0040HTIME1:MOV AX,0010HTIME2:DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RETSTTK:CALL DISP MOV AL,00H OUT 60H,AL IN AL,62H AND AL,022H CMP AL,022H JNZ STTK JMP STTDISP:PUSH SI PUSH CX PUSH BX MOV CL,0F7H LEA SI,DAT1A1:MOV AL,CL OUT 60H,AL MOV AL,SI MOV BX,OFFSET

8、TABL XLAT OUT 61H,AL CALL DALLY1 ROL CL,1 INC SI TEST CL,01H PUSH AX MOV AL,00H OUT 61H,AL POP AX JNE A1 POP BX POP CX POP SI RETDALLY1:PUSH CX MOV CX.0060HDALL1:LOOP DALL1 POP CX RETCODE ENDS ENDS START实验结果:按动任意键键,数码管显示相应键值,并左移显示。实现:a) 定义键盘按键,5个为数字键:2、3、5、8、9,3个功能键:设置SET、清零CLR、开始START;b) 显示器上的四位显示为

9、秒(两位)、10毫秒(两位);c) 通过键盘的按键SET,可以设置倒计数器初始时间(最大为55秒);d) 按START键启动倒计数器直至计到零停止,或松开START键停止计数,按CLR键清零。程序如下:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTDATA1 DB 0F7H,0EFH,0DFH,0BFHDATA2 DB 00H,00H,00H,00H,00H, 00H,00H,00HDATA3 DB 00H,00H,00H,00H,00H, 00H,00H,00HTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7D

10、H,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,89H OUT 63H,ALSTT:MOV AL,0F7H OUT 60H,AL IN AL,62H TEST AL,20H JZ SET CALL DISPSTAR:MOV AL,0DFH OUT 60H,AL IN AL,62H TEST AL,20H JZ STT JMP SUCLEAR:MOV AL,0EFH OUT 60H,AL IN A

11、L,62H TEST AL,20H JNZ STAR CALL CLEAR1 CALL DISP JMP STTSET:CALL DISP CALL TIME MOV AL,00H OUT 60H,AL IN AL,62H AND AL,022H CMP AL,022H JNZ KEY_2STAR1:MOV AL,0DFH OUT 61H,AL IN AL,62H TEST AL,20H JZ STAR JMP SETKEY_2:MOV AL,0F7H OUT 60H,AL IN AL,62H TEST AL,02H JNZ KEY_3 CALL KEY2 JMP STTKKEY_3:MOV

12、AL,0EFH OUT 60H,AL IN AL,62H TEST AL,02H JNZ KEY_5 CALL KEY3 JMP STTKKEY_5:MOV AL,0DFH OUT 60H,AL IN AL,62H TEST AL,02H JNZ KEY_8 CALL KEY5 JMP STTKKEY_8:MOV AL,0BFH OUT 60H,AL IN AL,62H TEST AL,02H JNZ KEY_9 CALL KEY8 JMP STTKKEY_9:MOV AL,0BFH OUT 60H,AL IN AL,62H TEST AL,20H JNZ CLEAR CALL KEY9 JM

13、P STTKKEY2:CALL DIS MOV AL,02H MOV DI+3,AL CALL CPR CALL DISP RETKEY9:CALL DIS MOV AL,09H MOV DI+3,AL CALL CPR CALL DISP RETKEY8:CALL DIS MOV AL,08H MOV DI+3,AL CALL CPR CALL DISP RETKEY3:CALL DIS MOV AL,03H MOV DI+3,AL CALL CPR CALL DISP RETKEY5:CALL DIS MOV AL,05H MOV DI+3,AL CALL CPR CALL DISP RE

14、TCPR:MOV DI,OFFSET DATA2 MOV AL,DI CMP AL,05H JA L2L0:RETL2:MOV DI,AL MOV AL,04H MOV DI,OFFSET DATA2 MOV AL,05H MOV DI+1,AL MOV AL,04H MOV DI+0,AL MOV AL,09H MOV DI+3,AL MOV AL,09H MOV DI+2,AL JMP STTSU:MOV DI,OFFSET DATA2SU1:JMP ZRSU5:MOV AL,DI+2 CLC SUB AL,01H AAS MOV DI+2,ALSU2: MOV AL,DI+3 SBB A

15、L,00H AAS MOV DI+3,ALSU3:MOV AL,DI+0 SBB AL,00H AAS MOV DI+0,ALSU9:MOV AL,DI+1 SBB AL,00H AAS MOV DI+1,ALSU6:CALL DISP CALL TIME JMP SETZR:LEA DI,DATA2 MOV BX,0000H MOV CX,0004HL1:CMP DI+BX,00H JNZ SU5 INC BX LOOP L1 JMP SU6DIS:MOV DI,OFFSET DATA2 MOV AL,DI+0 MOV DI+1,AL MOV AL,DI+3 MOV DI+0,AL MOV

16、AL,DI+2 MOV DI+3,AL RETDISP:MOV DI,OFFSET DATA2 MOV SI,OFFSET DATA1 MOV BX,OFFSET TABLE MOV CX,0004HNEXT1:MOV AL,SI+3 OUT 60H,AL MOV AL,DI+3 XLAT OUT 61H,AL DEC SI DEC DI CALL TIME LOOP NEXT1 RETTIME:PUSH AX PUSH CX MOV CX,0009HTIME1:MOV AX,0030HTIME2:DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RETCLE

17、AR1:MOV DI,OFFSET DATA2 MOV CX,0004HL3:MOV AL,00H MOV DI,AL INC DI LOOP L3 RETSTTK:CALL DISP MOV AL,00H OUT 60H,AL IN AL,62H AND AL,022H CMP AL,022H JNZ STTK JMP SETCODE ENDS END START实验结果:数码管前两位为秒数,后两位为10毫秒数,最大倒计时数为55秒,设置秒数时,若检测到秒数大于55,则自动将秒数改为55。 按动SET键,可以设置倒计数器初始时间,期间按CLR键可对设 置秒数重新设置,再按START键启动倒计数直到计到零停止,或 松开START键停止计数,按CLR键清零。心得:此次课程设计收获真的很大。我从中学会了如何系统地设计一个小系统,让它实现你想要的结果。同时也培养了我发现问题,找出问题到最后解决问题的能力。此次课程设计可谓一波三折,主要时间花在调试上面。到了上机验证的时候,我才发现我的设计还存在着这样那样的漏洞。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论