发布时间 : 星期四 文章计算机控制技术课程设计报告-电阻炉温度控制系统设计更新完毕开始阅读ccc06bc8a200a6c30c22590102020740bf1ecd2c
.
键盘子程序
KEYS: CLR EX0 CLR
EA
;关中断
PUSH PSW
PUSH ACC
CC:
JB
P3.2 AA
LCALL DLY10MS ;消抖
BB: JB AA: POP .
SETB 5DH MOV A,25H MOV B,#10H
DIV A B MOV 52H,A MOV A, B MOV
51H, A
MOV R0,#50H
LCALL DIR NOP
LCALL DLY10MS NOP
LCALL DLY10MS JB
P1.7 ,BB
MOV R1,#25H LCALL DAAD1 NOP LCALL DLY10MS AJMP CC
P1.6 CC MOV R1,#25H
LCALL DEEC1
NOP
LCALL DLY10MS AJMP CC
ACC
POP PSW SETB EX0
;置“显示设定值温度值标志”
;取运算位的值
;BCD码转化
;显示设定温度.
SETB EA ;出栈 RETI
显示子程序
DIR: MOV
SCON ,#00H ;置串行口移位寄存器状态 SETB P1.4 ;开显示
JB
DL2: MOV DL0: MOV
MOVC A,@A+DPTR MOV LOOP1: JNB CLR
INC MOV MOVC ANL MOV
LOOP2: JNB
CLR INC MOV MOVC MOV
LOOP3: JNB
CLR CLR CLR RET
DL1: MOV
AJMP SEGT: DB 加一子程序
DAAD1: MOV ORL ADD
.
5DH,DL1 ;显示设定温度
DPTR,#SEGT A,@R0
SBUF ,A
TI, LOOP1 TI R0 A,@R0
A,@A+DPTR
A, #7FH ;使数带小数点 SBUF ,A TI,LOOP2 TI R0 A,@R0 A,@A+DPTR
SBUF,A TI,LOOP3 TI P1.4 5DH
50H,#0AH ;小数位黑屏
DL2
0C0H ,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
A,#00H A,@R1 A,#01H
.
CJNE A,#30H,DAAD2 ;超过48度了吗?
DAAD3: MOV DAA: RET DAAD2: JC
MOV
DAAD3
@R1,#15EH ;超过48则转回到355 @R1,A
AJMP DAA
减一子程序
DEEC1: MOV
A,@R1 DEC A CJNE A,#15EH,DEEC2 DEEC3: MOV @R1,A DEE : RET DEEC2: JNC DEEC3
MOV
@R1,#30H
AJMP
DEE
T0中断子程序
PTT0:
CLR EA
PUSH ACC PUSH PSW PUAH DPL PUSH DPH
SETB EA PPP: LCALL SMAP LCALL FILTER MOV A,2AH ;CJNE A,#07H,AAA AJMP BBB
AAA: JC
CCC CJNE
A,#0FEH ,DDD AJMP BBB
DDD: JC
BB
CLR P1.2 SETB 5EH CLR
P1.1
AJMP PPP
.
355度了吗?
;低于355则转回到48
;压栈后开中断响应键盘
;采样数据
取采样值 ;下限48比较 ;小于48度转 ;上限355比较
;转至48~355正常范围处理355黄灯亮 ;置标志 启动风扇
;低于;数字滤波
;大于.
CCC: CLR P1.3 ;小于48红灯亮
SETB 5FH
BBB: CLR P1.0 ;置标志启动电炉
AJMP
PPP
SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 CLR CLR JNB MOV CLR
5EH
5FH ;50~350之间正常
20H,EEF ;设定温度小于实际值转到风扇 A,29H P1.0
;存放相乘结果的首址
LCALL PID
LCALL FFF
LOOP10: MOV R0,#56H
MOV R1,#55H ;赋显示缓冲区最高位地址 LCALL SCACOV ;标度转化 MOV JB CLR POP
R0,#53H
;;赋显示首址
CLR DIR
D5H,LOOP10 ;等待T1中断 EA DPH
POP DPL POP PSW
SETB RETI
EEE: MOV A,28H ;风扇处理 LCALL FFF CLR
P1.1
AJMP LOOP10
FFF: CRL A ;根据PID结果计算T1初值 INC A MOV TL1,A
EA
POP ACC
.