接口实验指导书(6)

2019-05-18 19:44

四、程序框图

主程序:

开始 重新设置堆栈区地址 用INT21H的25H功能设置0AH外中断(IRQ2)的中断向量 重新设置数据段并显示提示信息 关中断 清除IRQ2的中断屏蔽位 开中断(STI) 主程序等待输入任意键 设置IRQ2中断屏蔽位 用INT21H的4CH功能返回DOS

26

开始 中断计数值COUNT加1 保存寄存器 COUNT=40?用XLAT指令获得显示数字所对应的七段数码管段值 往段锁存器中输入段值 往位锁存器中送入位值Y (CL);(延时CL)中某位为 1,则对应的数码管被选中 (CL)=20H即显示完第六个数码管 N 位值(CL)左移1位即将选下一位数码管显示 COUNT=0,秒的低位值SEC2加1 SEC2=10? SEC2=0,秒的高位值SEC1加1 SEC1=6? SEC1=0,分的低位值MIN2加1 MIN2=10 MIN2=0,分的高位值MIN1加1 MIN1=6? MIN1=0? 熄灭所有的数码管,清除ISR中的标志,并恢复寄存器 IRET 五、程序清单:

INTA00 EQU 20H INTA01 EQU 21H

PORTSEG EQU 211H PORTBIT EQU 210H

STACK SEGMENT

STA DW 512 DUP (?)

TOP EQU LENGTH STA STACK ENDS DATA SEGMENT

27

;PC/XT系统中8259A端口偶

地址

;PC/XT系统中8259A端口奇 地址

;段锁存器端口地址 ;位锁存器端口地址 ;堆栈定义

MIN1 MIN2 GAP1 GAP2 SEC1 SEC2 COUNT LED MES DATA CODE ASSUME START: MOV MOV MOV MOV MOV MOV MOV INT MOV MOV MOV MOV INT CLI MOV IN AND OUT STI

AGAIN:MOV TT: LOOP MOV INT JZ CLI

MOV

DB 0 DB 0

DB 10 DB 10 ;对应6个 LED数码管的显示 DB 0 值 DB 0

DB 0 ;中断次数的计数单元 DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH, 6FH,40H ;LED段码表 DB ‘DISPLAY THE LEDS,PRESS ANY KEY RETURN DOS!’,0AH,0DH,‘$’ ENDS SEGMENT CS:CODE,DS:DATA,SS:STACK

AX,STACK SS,AX ;设置堆栈段及栈指针 ,TOP ,CS ;DS 指向代码段 ,AX

,OFFSET INT_PROC AX,250AH ;设置 OAH号中断向量 21H AX,DATA ;DS指向数据段 DS,AX DX,OFFSET MES AH,09 ;显示提示信息 21 H

;关中断

DX,INTA01 AL,DX ;开放 IRQ2中断的对应的屏蔽 AL,0FBH 位 DX,AL CX,5000 ;延时等待硬件中断 TT AH,01 16H ;BIOS键盘功能判别有否键被 AGAIN 按下 DX, INTA01

28

SP AX DS DX IN OR OUT STI

MOV INT INT_ PROC: PUSH PUSH MOV MOV RIS1: MOV MOV XLAT MOV OUT MOV MOV OUT PUSH MOV DELAY:LOOP POP CMP JZ INC SHL JMP CHG: INC CMP JL MOV 1NC CMP JL MOV INC CMP JL MOV

AL,DX AL,04 DX,AL

AX,4C00H 21H

AX CX

BX,OFFSET MIN1 CL,01 AL,[DI] BX,OFFSET LED

DX,PORTSEG DX,AL AL,CL

DX,PORTBIT DX,AL

CX CX,350H DELAY CX CL,20H CHG DI CL,1 DIS1 COUNT COUNT,40 QUIT

COUNT,0 SEC2 SEC2,10 QUIT SEC2,0 SEC1 SEC1,6 QUIT SEC1,0 29

;关闭IRQ2中断对应的屏蔽位

;返回DOS

;保存寄存器 ;指向数码管显示数据区首址 ;指向第一个数码管

;得到该显示数字对应的段码 ;输出段码 ;输出位码 ;人栈 ;等待一段时间 ;退栈 ;已显示完6个数码管则转 CHG ;显示数据指针加1 ;位码左移 1次 ;对下一位作显示 ;中断次数的计数器加 l ;不足40次转 QUIT ;计数器清0 ;秒值加1 ;秒的低位值不足10,则不产生 进位转 QIJIT ;秒的低位值清0 ;秒的高位值加1 ;秒的高位值不足6,则不产生 ;进位转 QUIT ;清0秒的高位值

INC MIN2 CMP MIN2,10 JL QUIT MOV MIN2,0 INC MIN1 CMP MIN1,6 JL QUIT MOV MIN1,0 QUIT: MOV DX,PORTBIT MOV AL,00 OUT DX,AL MOV DX,INTA00 MOV AL,20H OUT DX,A L POP CX POP AX IRET CODE ENDS END START

六、实验报告要求:

1.总结控制LED显示的方法。 2.说明本实验中74LS273的作用。 3.说明8253在本实验中的功能。

30

;分值加1 ;分的低位值不足10,则不产生

进位转QUIT ;分的低位值清0 ;分的高位值加1 ;分的高位值不足6则不产生 进位转QUIT ;清0分的高位值 ;熄灭所有的数码管 ;发中断结束命令 ;寄存器出栈 ;中断返回


接口实验指导书(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅论实践教学中的指导环节

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: