-
一、实验目的
- 熟练掌握附件中8086+8259+8255+8253电路的工作原理,硬件连接及程序流程。
- 掌握8259向量中断方式的硬件连接和软件编程的方法,掌握中断和其它接口芯片配合来完成某一特定任务的方法。
-
二、实验任务
- 任务A:
利用8253的OUT1产生频率为1赫兹的周期脉冲作为中断请求信号连接到8259的IR_i上,这里,IR_i为8259的第i个中断输入引脚,i为你学号最后一位进行模8运算的结果。8253每产生一次中断,8255的第i个LED灯就亮或灭一次(上次亮,当前就灭;上次灭,当前就亮)。
- 任务B(选做):
利用8253的OUT2产生频率为2赫兹的周期脉冲信号作为中断信号连接到8259的IR_j上,这里,IR_j为8259的第j个中断输入引脚,j=i+1(如果i=7,则j=0)。中断产生时,8255的PB口控制7段数码管,实现该中断的模10计数功能。提示:以“7seg”为关键词在元器件库中找到合适的7段数码管,连线后修改程序,实现该功能。
-
三、思考题
- 给出任务A的程序流程图,并对8259、8255及8253的初始化命令给出解释说明。
8259初始化命令:
ICW1:00010011B:边沿触发,单片方式,写ICW4
ICW2:01100000B:高五位中断号,自动填写。
ICW4:00011011B:特殊嵌套,数据线缓冲,从片,自动结束方式,16位系统
8255初始化命令:
10000001B:C端口输入,AB为0方式,输出
8253的初始化命令
计数器0:00110100 先低字节,再高字节,2方式,二进制
计数器1:01010110 只读写低字节,3方式,二进制
- ICW2、ICW4应写入奇端口,但程序中为什么写入了偶数端口?试给出解释说明。
链接8259的片内地址线是ADR1,奇偶端口相对于ADR1来说,当ADR1=0,端口地址为300H,为偶端口,当ADR=1,端口地址为302H,为奇端口。
四、实验过程
任务A:
学号20231167
i=7%8=7
引脚和中断向量更改修改:
代码修改:将循环移位操作改为异或操作,BL初值10000000B
实验结果: