一、实验目的
- 掌握8086最小工作模式
- 掌握可编程中断控制器8259A工作方式及应用编程
- 掌握可编程定时/计数器8253/8254工作方式及应用编程
- 掌握可编程并行接口8255A控制字和工作方式
- 熟悉汇编语言,能够编写中断服务程序
- 能够构建8086模型机
二、实验环境
- Proteus
三、实验内容
编写汇编程序,完成以下功能:
- 8253通道0输入2KHz时钟信号,经过分频产生1Hz的时钟信号
- 产生的1Hz的时钟信号,作为8259的中断源控制产生中断信号
- 中断发生后,十进制显示的2位数码管作为00~99秒表加一
- 在程序开始,从8255的A口读入二进制学号最低两位作为秒表初值
使用 Proteus 工具完成电路图的设计,编写相应的汇编语言程序,完成从 A 口读入两位的二进制数,以十进制显示到与 B 口连接的 2 位数码管上,该 2 位数码管为一个 00 99 秒表,即把读入的学号作为秒表的初值,然后开始跳秒。
四、实验步骤及实验分析
整体结构分析:
首先硬件上对整体电路进行搭建。把8086连接使其工作在最小模式下,把其数据线和地址线进行分离。
其次根据实验指导书给的端口,进行译码电路设计。然后进行8253、8253、8255的设计。
8253编程的时候,要把A口设成输入,B口位输出进行数码管的显示。此外,因为初始要显示学号后两位,需要增加PROTA口的输入电路。
8253设计,使用计数器0进行分频。2KHz分成1Hz,2000<65535,所以计数器0可以完成任务。
8259使用边沿触发,每当信号来,触发中断服务函数进行工作。
1. 首先对8086设置位最小工作模式:
READY和MN/MX接高电平。
2. 使用74LS373和74LS245把8086复用的地址线和数据线进行分离:
3. 进行端口译码:
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
|