1、内蒙古师范大学计算机与信息工程学院微机原理与接口技术期末实验设计报告实习题目指导教师 职 称学生姓名学 号日 期设计题目 倒计时秒表指导教师 希润高娃 职称 讲师姓 名学 号日 期一、 实验要求设计一个倒计时表,用 8255 设置灯,用 8254 记录时间,8259 提供中断。其中 MIR7 接 KK1 设置倒计时的总时间,每按一次脉冲,总时间加 1,SIR1 接 KK2确认开始倒计时(DI=0 对 KK2 屏蔽,DI=1 对 KK2 开放) ,MIR6 接 8254 设置准确的 1s 倒计间隔时间。利用 8254 芯片的计数功能,芯片有 5 中工作方式,选择方式 2 和方式 3 都可以输出连
2、续的波形,故都可以符合实验要求。8254 可以采用二进制计数或是BCD 码计数,如果用二进制计数,最大范围是 65535,如果采用 BCD 码计数,最大范围是 99999。使用 2 个计数器,可以达到输出周期为 1 秒的方波。计数初值=fclki/fouti。利用 8255 芯片,设置灯的初始状态。利用 8259 芯片的中断功能,当中断来时,启动 8254 芯片,进入计数状态。IP=中断向量*4,CS=中断向量*4+2;二、 设计2.1 硬件设计2.1.1 按下图的电路图连接电路图 1 电路连线2.1.2 电路说明该电路是在唐都实验箱上的操作,2 片 8259 芯片是嵌在系统总线下,只有主片的
3、中断序号为 6 和 7 的两个口是对外开放的,从片的中断序号为 1 的口是对外开放的。8254 芯片计数器 0 的端口地址为 06C0H,计数器 1 的端口地址为 06C2H, 计数器 2 的端口地址为 06C4H, 计数器 3 的端口地址为 06C6H。8255 芯片 PA 口的端口地址为 0640H,PB 口的端口地址为 0642H,PC 口的端口地址为 0644H,控制口的端口地址为 0646H。主 8259 芯片的偶地址为 20H,奇地址为 21H。从 8259 芯片的偶地址为 A0H,奇地址为 A1H。IOY0 的编址空间:0600H063FHIOY1 的编址空间:0640H067F
4、HIOY2 的编址空间:0680H06BFHIOY3 的编址空间:06C0H06FFH2.2 软件设计2.2.1 思路利用 8254 芯片的计数功能,输出周期为 1 秒的方波。控制灯 1 秒 1 秒往下减。利用 8255 芯片,设置灯的初始状态。开始全 0 状态。利用 8259 芯片的中断功能,当中断来时,启动 8254 芯片,进入计数状态。2.2.2 流程图2.2.3 附代码SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK END开始初始化8259装入 MIR6,MIR7 ,SIR1 的服务子程序初始化 8254写入控制口计数器 0 装入初值 计数器 1 装入初值
5、写入控制口初始化 8255初始化从片 8259初始化主片 8259结束CODE SEGMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7 ;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV SI, AX ;填 IRQ7 的偏移矢量MOV AX, CS ;段地址MOV SI, 003EH ;0FMOV SI, AX ;填 IRQ7 的段地址矢量PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR6 ;取中断入口地址MOV SI, 0038H
6、;中断矢量地址MOV SI, AX ;填 IRQ6 的偏移矢量MOV AX, CS ;段地址 0EMOV SI, 003AHMOV SI, AX ;填 IRQ6 的段地址矢量MOV AX, OFFSET SIR1MOV SI, 00C4H ;31HMOV SI, AX MOV AX, CSMOV SI, 00C6HMOV SI, AXCLIPOP DSMOV DX, 06C6H ;8254MOV AL, 37H ;计数器 0,方式 3OUT DX, ALMOV DX, 06C0HMOV Ax, 100HOUT DX, ALMOV AL, AHOUT DX, ALMOV DX,06C6HMOV
7、AL,77H OUT DX,ALMOV DX,06C2HMOV AX,10000HOUT DX,ALMOV AL,AHOUT DX,AL;8255HW: MOV DX, 0646HMOV AL, 80HOUT DX, AL;初始化主片 8259MOV AL, 11HOUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4;从片MOV AL, 11HOUT 0A0H, AL ;ICW1MOV AL, 30HOUT 0A1H, AL ;ICW2MOV A
8、L, 02HOUT 0A1H, AL ;ICW3MOV AL, 01HOUT 0A1H, AL ;ICW4MOV AL, 0FDHOUT 0A1H,AL ;OCW1 = 1111 1101MOV AL, 6BH ;OCW1OUT 21H, ALSTIAA1: NOPJMP AA1MIR7: STICALL DELAYINC BXMOV DX, 0640HMOV AL, BHOUT DX, ALMOV DX, 0642HMOV AL, BLOUT DX, ALMOV AL, 20HOUT 20H, AL ;中断结束命令IREMIR6: STICALL DELAYDEC BXCMP BX,0FFF
9、FHJNZ AMOV BX, 0HMOV AL, 6BH ;OCW1 0010 1101OUT 21H, ALA: MOV DX, 0640HMOV AL, BHOUT DX, ALMOV DX, 0642HMOV AL, BLOUT DX, ALMOV AL, 20HOUT 20H, AL ;中断结束命令IRESIR1: STICALL DELAY;初始化主片 825MOV AL, 0ABH ;OCW1 1010 1101OUT 21H, ALMOV AL, 20HOUT 0A0H, AL OCW2OUT 20H, ALIRETDELAY: PUSH CXMOV CX, 0F00HAA0: PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START三、 实验分析及心得实验中按 KK1,8259 的主片中断响应,每按一次加一,8255 的 A 口(高八位) 、B口(第八位)输出时间加 1 并在 LED 单元显示,当触发 KK2 时,8259 的从片中断响应,主片的 6 端口开放,8254 每一秒发出一个中断,执行中断程序,倒计时,倒计时的时间 8255 的 A 口(高八位) 、B 口(第八位)输出并在 LED 单元显示。在实验过程中,大家积极合作,努力完成任务,加以老师耐心的指导,我们终于完成,这次实验扩展了我们的思维,使我受益匪浅。