合肥工业大学计算机与信息学院课程设计课程:微机原理与接口技术设计专业班级:计算机科学与技术班学号:2姓名:一、设计题目及要求:利用8259A中断,实现对8253多种计数初值的设定:1.在中断服务程序中设定8253的计数初值。2.开关K1用于设定0.5秒方波的计数初值,K2用于设定1秒方波的计数初值,K3用于设定2秒方波的计数初值。3.用8253的输出信号,控制一个发光二极管,以演示修改效果。二、设计思想:整体设计:①利用8259A芯片设定IR1、IR2、IR3三个中断,分别用三个开关的高低电平触发中断。②在三个终端的中断服务子程序里面为8253芯片通道0设定不同频率的方波计数初值,使得在触发不同中断时8253芯片产生周期为0.5秒、1,秒、2秒的方波。③将8253的输出端口与发光二极管连接,通过二极管的亮灭显示出8253内部方波的频率。部分设计:①8253芯片方式3初值确定:根据分频电路T(n)=T/2*公式以及0.5s、1s、2s方波的频率计算出初值分别为2580H、4B00H、9600H。②8253芯片和8259芯片的片选方法:设定8259A和8253芯片的端口号分别为0FFE0H、0FFE1H,以及0FFFCH—0FFFFH,使得在连接138译码器时,A连A2,B连A3,C连A4,T0连接8259A芯片的CS端,T7连接8253芯片的CS端。③8259A中断向量表写入以及芯片初始化:根据8259A各个中断在中断向量表中的地址,将IR0、IR1、IR2的中断服务程序入口地址写入向量表中;ICW4设定除中断0、1、2外其他位屏蔽。④手动设置中断结束:为了不影响各个中断之间的交替响应,在每个中断服务程序结束之前写入中断结束方式,将20H输出到8259端口,将当前中断结束响应后再响应下一个中断。三、功能流程图:四、结果讨论:附录:实验代码:(完整的源程序)CODESEGMENTASSUMECS:CODE,DS:CODE,ES:CODEORG3400HPort0EQU0FFE0H;8259芯片的端口号Port1EQU0FFE1HSTART:CALLF8259P0:CLIMOVAX,OFFSETINT0MOVBX,0020HMOV[BX],AXMOVBX,0022HMOVAX,0000HMOV[BX],AXSTIP1:CLIMOVAX,OFFSETINT1MOVBX,0024HMOV[BX],AXMOVBX,0026HMOVAX,0000HMOV[BX],AX;CALLF8259STIP2:CLIMOVAX,OFFSETINT2MOVBX,0028HMOV[BX],AXMOVBX,002AHMOVAX,0000HMOV[BX],AX;CALLF8259STIP:JMPP;------------------------------------F8259:MOVAL,1BH;8259的初始化00011011icw1MOVDX,Port0OUTDX,ALMOVAL,08H;00001000icw2MOVDX,Port1OUTDX,ALMOVAL,01H;00000001icw4OUTDX,ALMOVAL,00H;屏蔽只留IR0,IR1,IR2。OCW1OUTDX,ALRET;---------------------------INT0:CLICALLFB0STIMOVDX,Port0MOVAL,20HOUTDX,ALIRETINT1:CLICALLFB1STIMOVDX,Port0MOVAL,20HOUTDX,ALIRETINT2:CLICALLFB2STIMOVDX,Port0MOVAL,20HOUTDX,ALIRETFB0:MOVDX,0FFFFHMOVAL,00110110BOUTDX,ALMOVAL,80HMOVDX,0FFFCHOUTDX,ALMOVAL,25HOUTDX,ALRETFB1:MOVDX,0FFFFHMOVAL,00110110BOUTDX,ALMOVAL,00HMOVDX,0FFFCHOUTDX,ALMOVAL,4bHOUTDX,ALRETFB2:MOVDX,0FFFFHMOVAL,00110110BOUTDX,ALMOVAL,00HMOVDX,0FFFCHOUTDX,ALMOVAL,96HOUTDX,ALRET;--------------------------DONE:CODEENDSENDSTART