1、微机原理课程设计报告2微机原理与接口技术课程设计报告一、课程设计题目:数字控制系统在加热器中的应用1) 设计内容当把物品放入加热器中,首先要启动加热器和电机工作,设定加热时间为3(5)分钟,为使物品均匀加热,每隔20(30)秒电机要反转一次,(正转反转、反转正转),加热时间到后,停止加热器和电机工作,并发声,告知加热结束。2) 设计提示1 注意加热器和电机起停,正反转的规律;2 用8253控制时间;用8255完成起停加热器,起停电机及电机正、反转,发声报告的控制;用8259A管理可屏蔽中断。3) 设计及报告要求1 写出设计思路;2 画硬件线路图;3 画程序流程图,并用8086/8088汇编语言
2、完成全部程序的设计,要有适当的注释;4 写出设计认识,包括心得、不足之处和应注意的问题;5 列写相关参考文献。二、设计思路: 1、 首先分析设计所用到的芯片的原理及使用方法:8259A的使用方法:8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图11-2所示,OCW1-OCW3各命令字格式如图11-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的8操作命令字,OCW
3、3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。8255的使用方法:方式0 基本输入/出方式; 方式1 选通输入/出方式; 方式2 双向选通工作方式。 8253的使用方法:(1) 方式0:计数到0结束输出正跃变信号方式。 (2) 方式1:硬件可重触发单稳方式。 (3) 方式2:频率发生器方式。 (4) 方式3:方波发生器。 (5) 方式4:软件触发选通方式。 (6) 方式5:硬件触发选通方式。 2、通过分析控制系统所要求实现的功能,综合考虑各芯片的功能,决定各芯片在系统中所起的作用,以及它们之间的组合方式,大体上画出系统的框架图,然后对框架图的细节部分进行
4、填充。3、画程序流程图:结合各芯片的使用方法、系统的功能要求画出程序的实现过程。4、编写代码5、调试试运行6、修改并系统最终定型设计题目中的加热器控制系统,由CPU、8259A、8253、8255四个芯片组成,使用8255的A口输出,PA0、PA1、PA2、PA3分别控制加热器的起停、电机的起停、电机的正反转、发声报告。8259A的输出与系统的INTR相连用于提供中断申请,8253的OUT0与8259A的IR0相连用于提供中断信号。由CPU协调控制其它三个芯片的工作,由8253提供计时功能,输入系统时钟信号,计数器0输出周期为50毫秒的方波,即每隔50毫秒,8255向8259提供一个中断脉冲,
5、通过对CX、SI的设置循环判断,每20秒对8255的A口的PA2进行数据改变,即电机反转一次,当到达加热时间,通过写8255的A口的数据,实现电机和加热器的停止工作,警告报告。三、硬件线路图:8253的输入时钟频率为系统时钟频率1.1932MHZ四、程序流程图程序代码: DATA SEGMENT INTR_IVADD EQU 01CCH ;INTR对应的中断矢量地址 INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址 INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址 INTR_IM EQU 0F7H ;INTR对应的中断屏蔽
6、字 PCI_INTCSR EQU 9438H ;PCI卡中断控制寄存器地址 IOY0 EQU 9C00H ;片选IOY0对应的端口始地址 MY8259_ICW1 EQU IOY0+00H ;实验系统中8259的ICW1端口地址 MY8259_ICW2 EQU IOY0+04H ;实验系统中8259的ICW2端口地址 MY8259_ICW3 EQU IOY0+04H ;实验系统中8259的ICW3端口地址 MY8259_ICW4 EQU IOY0+04H ;实验系统中8259的ICW4端口地址 MY8259_OCW1 EQU IOY0+04H ;实验系统中8259的OCW1端口地址 MY8259
7、_OCW2 EQU IOY0+00H ;实验系统中8259的OCW2端口地址 MY8259_OCW3 EQU IOY0+00H ;实验系统中8259的OCW3端口地址 MY8255_A EQU IOY0+00H*4 ;8255的A口地址 MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址 MY8253_COUNT0 EQU IOY0+00H*4 ;8253的计数器0端口地址 MY8253_COUNT2 EQU IOY0+02H*4 ;8253的计数器2端口地址 MY8253_MODE EQU IOY0+03H*4 ;8253的控制寄存器地址 MES DB Pres
8、s any key to exit!,0AH,0DH,0AH,0DH,$ CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量 IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量 IM_BAK DB ? ;保存INTR原中断屏蔽字的变量 DATA ENDS STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES ;显示退出提示 MOV AH,09H INT
9、21H CLI MOV DX,PCI_INTCSR SUB DX,19H IN AL,DX MOV DX,PCI_INTCSR ;初始化PCI卡中断控制寄存器 MOV AX,1F00H ;向PCI_INTCSR中写入003F1F00H OUT DX,AX ADD DX,2 MOV AX,003FH OUT DX,AX MOV AX,0000H ;替换INTR的中断矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,ES:DI MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISR MOV ES:DI,AX ;设置当前
10、中断处理程序入口偏移地址 ADD DI,2 MOV AX,ES:DI MOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址 MOV AX,SEG MYISR MOV ES:DI,AX ;设置当前中断处理程序入口段地址 MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位 IN AL,DX MOV IM_BAK,AL ;保存INTR原中断屏蔽字 AND AL,INTR_IM OUT DX,AL MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4 OUT DX,AL MOV
11、DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,01H ;非自动结束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV AL,0FEH ;打开IR0的屏蔽位 OUT DX,AL MOV DX,MY8255_MODE ;定义8255工作方式 MOV AL,80H ;工作方式0,A口为输出 OUT DX,AL MOV DX,MY8255_A ;写A口发出的起始数据 MOV AL,07H O
12、UT DX,AL MOV DX,MY8253_MODE ;定义8253工作方式 MOV AL,36H ;工作方式3,计数器0 OUT DX,AL MOV DX,MY8253_COUNT0 MOV AL,9CH ;送计数初值,产生周期50ms的方波 OUT DX,AL MOV AL,2EH OUT DX,AL MOV CX,600 MOV SI,6000 STI WAIT1: MOV AH,1 ;判断是否有按键按下 INT 16H JZ WAIT1 ;无按键则跳回继续等待,有则退出 QUIT: CLI MOV DX,PCI_INTCSR ;恢复PCI卡中断控制寄存器 MOV AX,0000H O
13、UT DX,AX MOV AX,0000H ;恢复INTR原中断矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,IP_BAK ;恢复INTR原中断处理程序入口偏移地址 MOV ES:DI,AX ADD DI,2 MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址 MOV ES:DI,AX MOV DX,INTR_OCW1 ;恢复INTR原中断屏蔽寄存器的屏蔽字 MOV AL,IM_BAK OUT DX,AL STI MOV AX,4C00H ;返回到DOS INT 21H MYISR PROC NEAR ;中断处理程序MYISR QUERY: MOV
14、 DX,MY8259_OCW3 ;向8259的OCW3发送查询命令 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 TEST AL,80H ;判断中断是否已响应 JZ QUERY ;没有响应则继续查询 DEC CX DEC SI CMP SI,0 JZ STOP CMP CX,0 JNZ EOI MOV DX,MY8255_A IN AL,DX AND AL,04H CMP AL,00H JE FZ1 JNE FZ2 STOP: MOV DX,MY8255_A MOV AL,08H OUT DX,AL CALL SPEAKER DELAY: LOOP DELAY DE
15、C BX JNZ DELAY CALL SPEAKOFF JMP EOI SPEAKER PROC ;扬声器子程 MOV AX,0533H PUSH AX MOV BX,1 MOV DX,MY8253_MODE MOV AL,0B6H OUT DX,AL ;写入控制字 POP AX MOV DX,MY8253_COUNT2 OUT DX,AL ;写入低8位计数值 MOV AL,AH OUT DX,AL ;写入高8位计数值 RET SPEAKER ENDP SPEAKOFF PROC MOV DX,MY8255_A MOV AL,00H OUT DX,AL RET SPEAKOFF ENDP F
16、Z1: MOV DX,MY8255_A MOV AL,07H OUT DX,AL MOV CX,600 JMP EOI FZ2: MOV DX,MY8255_A MOV AL,03H OUT DX,AL MOV CX,600 JMP EOI EOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令 MOV AL,20H OUT DX,AL OVER: MOV DX,PCI_INTCSR SUB DX,19H IN AL,DX MOV DX,PCI_INTCSR ;清PCI卡中断控制寄存器标志位 ADD DX,2 MOV AX,003FH OUT DX,AX MOV DX,INTR_OCW2 ;向PC机内部8259发送中断结束命令 MOV AL,20H OUT DX,AL MOV AL,20H OUT 20H,AL IRET MYISR ENDP CODE ENDS END START五、设计心得六、参考文献微机原理与应用王忠民 西安电子科技大学出版社