多加热炉炉温检测课程设计报告Word格式.doc
《多加热炉炉温检测课程设计报告Word格式.doc》由会员分享,可在线阅读,更多相关《多加热炉炉温检测课程设计报告Word格式.doc(13页珍藏版)》请在冰豆网上搜索。
![多加热炉炉温检测课程设计报告Word格式.doc](https://file1.bdocx.com/fileroot1/2022-10/19/119d508a-9fb7-48b7-b955-840a8265aaad/119d508a-9fb7-48b7-b955-840a8265aaad1.gif)
A/D采样结束后由EOC信号发出中断请求。
0809的译码地址为3C0H。
通道0~7分别为3C0H,3C4H,3C8H,3CCH,3D0H,3D4H,3D8H,3DCH。
A/D采样结束后由EOC信号发出中断请求;
⑶PD32实验系统中利用8253提供定时服务。
8253的译码地址控制口:
30CH,
计数器1:
300H,计数器2:
304H,计数器3:
308H;
8051单片机实验系统中利用单片机内部定时器提供定时;
⑷PD32实验系统中利用8259提供中断服务。
偶地址:
3A0H,奇地址:
3A8H;
8051单片机实验系统中利用单片机内部定时中断和外部中断为系统提供中断服务;
⑸PD32实验系统中利用74LS273驱动七段码显示器。
位地址:
360H,段地址:
340H;
8051单片机实验系统中利用驱动芯片驱动七段码显示器;
⑹PD32实验系统中利用74LS245驱动报警发光二极管。
地址:
8051单片机实验系统中利用P1口驱动报警发光二极管;
⑺数据存储器62256不需连接,地址范围08000H~0FFFFH;
⑻PD32实验系统中功能键连到8259的中断端;
8051单片机实验系统中功能键利用P1口和外部中断1实现中断检测;
⑼实际温度由电位器给出,可由外部调节。
电压范围0~5V;
2.检测系统应用软件主要包括:
⑴主程序;
⑵A/D转换中断服务子程序;
⑶定时器中断服务子程序;
⑷代码转换子程序;
⑸显示子程序;
⑹按键中断服务子程序;
3.程序流程图;
4.多加热炉炉温检测系统硬件图。
三、源程序
.486
DATASEGMENTAT0USE16
;
8255各个端口的地址
PORTAEQU203H
PORTBEQU207H
PORTCEQU20BH
CONTROLPORTEQU20FH
七段码地址
WEIEQU360H
DUANEQU340H
8253各个端口地址
DS0EQU300H
DSIEQU304H
DS2EQU308H
DSCEQU30CH
8259端口地址
OPORTEQU3A0H
JPORTEQU3A8H
0809地址
ADPORTEQU3C0H
ADPORTIEQU3C4H
ADPORI2EQU3C8H
中断向量
ZDIROEQU20H;
定时器中断
ZDLR1EQU24H;
AD中断
ZDIR2EQU28H;
开笑1中断
ZDIR3EQU2CH;
开关2中断
ZDIR4EQU30H;
开关3中断
定义数据缓冲区
ORG4000H
DATA4ADDB3DUP(?
);
AD转换后的数据存储处
DATA4LEDDB18DUP(?
十六进制列BCD的显爪数据存储处
DATAENDS
CODESEGMENTUSE16
ORG2000H
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
BEG:
CLI
JMPSTART
TABDB3FH,06H.5BH,4FH,66H,6DH,7DH.07H,7FH,67H,77H,7CI-L39H,5EH.79H,71H;
段码表
AD转换中断用
ADATANWDWDATA4AD
ADPTNWDW3C0H;
通道口内存保留
显示程序用
LEDNWDWDATA4LED
定时中断用
TIMEDB150;
设置计数值
开关中断用
SWH1DB0FFH
SWH2DB0FFH
SWH3DB0FFH
START:
MOVAX,DATA
MOVDS,AX
MOVAX,0
MOVSS,AX
MOVSP,1000H
MOVAL,0C0H
MOVDX,WEI,
OUTDX,AL
INITA8259:
MOVAL,00010011B;
ICWI;
写入ICW1
MOVDX,OPORT
OUTDX,AL
MOVAL,00001000B;
写入ICW2
MOVDX,JPORT
MOVAL,00000001B;
写入ICW4
MOVAL,11100000B;
写入OCW1屏蔽字
MOVDX,JPORT
OUTDX,AL
MOVAL,20H;
清ISR
MOVDX,OPORT
OUTDX.AL
INITLA8255:
MOVAL,10000000B;
A、B、C口都工作于方式0,都为输出
MOVDX,CONTROLPORT
OUTDX,AL
MOVAL,0FFH
MOVDX,PORTA
INITIA8253:
MOVDX,DSC
MOVAL,00110110B;
方式3二进制计数
OUTDX,AL
MOVDX,DS0
MOVAL,60H;
计数初值设为0EA60H/6000D
MOVAL,0EAH
中断向量初始化
MOVDI,ZDIR0
MOVAX,OFFSETTIMER
STOSW
MOVAX,SEGTIMER
MOVDI,ZDIRI
MOVAX,OFFSETADPROC
STOSW
MOVAX,SEGADPROC
MOVDI,ZDIR2
MOVAX,OFFSETSWITCH1
MOVAX,SEGSWITCH1
MOVDI,ZDIR3
MOVAX,OFFSETSWITH2
MOVAX,SEGSWITH2
MOVDI,ZDIR4
MOVAX,OFFSETswitcb3
MOVAX,SEGSWITCH3
MOVDX,ADPORT;
启动ADC
OUTDX.AL
炉号初始化
MOVDX,4003H
MOVBYTEPTR[DI],0
INCDI
MOVBYTEPTR[DI],0
MOVBYTEPTR[DI],1
ADDDI,4
MOVBYTEPTR[DI],0
INCDI
MOVBYTEPTR[DI],0
MOVBYTEPTR[D1],2
ADDDL4
MOVBYTEPTR[DI],0
INCDI
MOVBYTEPTR[DI],3
AGAIN:
STI
CALLCZBCD
CALLDISP
JMPAGAIN
一一拆字十六进制转BCD码一一
CZBCDPROC
PUSHBx
PUSHCX
PUSHAX
LEASI,DATA4AD;
LEADI,DATA4LED;
十六进制到BCD的显示数据存储处
ADDDI,2
CZ0
MOVAL,[SI]
CMPAL,11H;
与60比较
JBEST0
CMPAL,0DDH;
与180比较
JAEST1
JMPCZ00
ST0:
MOVBYTEPTR[DI+1],0EH
MOVBYTEPTR[DI+2],00H
ST1:
MOVBYTEPTR[DI+2],0FH
CZ00:
MOVBX,1EH;
转换为实际温度值
MULBX
MOVDL,51
DIVDL
ADDAX,50
MOVAH,00H
MOVBL,0AH
MOVCX,3
CZ1:
DIVBL
MOV[DI],AH
DECDI
MOVAH,00H
LOOPCZ1
ADDDI,9
INCSI
CMPSI,4002H:
AD转换后的数据存储处是否到头
JBECZ0
POPAX
POPCX
POPBX
RET
CZBCDENDP
DISPPROC
PUSHDX
PUSHCX
PUSHBX