位P1.0、P1.1、P1.2相连,用数据线进行通道选择,由P1.0、P1.1、P1.2三位决定选择那一通道。
(3) ADC0809启动:ADC0809的启动端START、地址所存端ALE均为高电平
有效。将START和ALE连在一起,与74LS02的输出端相连。或非门74LS02的两个输入端/WR和P3.5均为低电平时,其输出为高电平,执行外部I/O口的写操。
溢出标志TF1 是否为零 输出控制量 PSW出栈并返回 Y N Y 启动定时器T1 N 调PID控制算法程序 关闭报警 F0是否等于零 F0=0 -20%<结果<20% 调显示程序 开始 将PSW压栈 读A/D结果 设定值与AD结果比较 结果=0 置位状态位F0 结果>or<设定值的20% F0=0 报警子程序 交流电是否过零 图4.2.1A/D转换结束中断服务程序流程图
11
按键检测与处理流程图如图4.2.2所示
结束 图4.2.2按键检测与处理流程图
编写D/A转换控制程序:
DAC0832实现D/A转换,可以采用下面程序段。设定要转换的数据放在1000H单元中。 MOV BX,1000H MOV AL,[BX] 取转换资料
MOV DX,PORTA PORTA为D/A转换端口地址 OUT DX,AL
12
是否有按键 N Y 延时10-20ms 是否有按键 N Y N 按键已释放 Y 获得键值,键处 4.3 LED显示模块
图4.3显示子程序
13
4.4数字控制算法子程序流程图
4.5报警模块
根据设计要求,在保温阶段,温度控制精度为正负1度,故当温度下降或上升2度时为故障状态,需要报警提醒。所以在电路设计上应用了蜂鸣器和发光二极管,系统正常运行时绿色发光二极管点亮,当出现故障时红色发光二极管点亮并且蜂鸣器鸣叫,提醒操作人员注意。报警状态可通过按键复位和系统恢复正常后自动复位
子程序返回 清除报警状态位F0 置报警位P3.4 开始 图4.4报警子程序
14
4.6程序清单
4.5.1 主程序 ORG 0000H AJMP MAIN ORG 0003H AJMP KEYS ORG 000BH AJMP PIT0 ORG 001BH
AJMP PIT1 MAIN: MOV SP,#00H
CLR 5FH MOV A,#00H MOV R7,#09H MOV R0,#28H LP1: MOV @R0,A INC R0 DJNZ R7,LP1 MOV R7,#06H MOV R0,#39H
LP2: MOV @R0,A INC R0
DJNZ R7,LP2 MOV R7,#06H MOV RO,#50H LP3: MOV @R0,A INC R0
DINZ R7,LP3 MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#00H ; MOV 37H,#00H MOV 38H,#00H MOV 42H,#00H
MOV 43H,#00H MOV TMOD,#56H MOV TLO,#06H MOV THO,#06H MOV 25H,#163H SETB TR0 SETB ET0 SETB EX0
;中断入口及优先级 :清上下限越限标志;清显示缓冲区 ;赋KP高低字节 赋KI高低字节 ; 赋KD高低字节 ;赋K高低字节 ;T0方式2,T1方式1计数;设定值默认值350 ;键盘高优先级 15