辽宁科技大学本科生毕业设计 第37页
CLR SPK
;如果十位数大于8就报警
SETB WATER-SW-H ;关闭给水泵 CLR RED
SETB GREEN AJMP COMPARE3
;转去当前温度与设定的报警温度比较
LOOP1: CLR C
SETB flag CLR SPK
;报警标记置位
;如果个位数大于0就报警
MOV A,WATER_AL1 ;取得当前水位的个位数 JZ COMPARE3
;如果个位数等于0去比较温度
SETB GREEN CLR RED
SETB WATER-SW-H ;当前水位高于上限值关闭给水泵开关
AJMP COMPARE3 COMPARE2: CLR C
;当前水位与下限比较
;取得当前水位的十位数
MOV A,WATER_AL2
CJNE A,#2,NEXT12 ;个数比较 AJMP COMPARE3
;如果十位数等于2,则表明水位大于或等于20就转去
比较温度
NEXT12: JNC COMPARE3 比较
SETB FLAG
;报警标记置位
;如果十位数小于2就报警
;十位数大于2就转去当前温度与设定的报警温度
CLR SPK
CLR WATER_SW_H ;如果当前水位低于下限值就打开给水泵开关
CLR BOILER_SW ;当前温度超过温度报警值关闭锅炉燃烧器开关,停止加
热
CLR RED
SETB GREEN
辽宁科技大学本科生毕业设计 第38页
AJMP COMPARE3
;转去当前温度与设定的报警温度比较
COMPARE3: CLR C
MOV A,72H
;当前温度与设定的报警温度比较
CJNE A,TEMP_AL2,NEXT1 ;实际温度值与报警温度值的十位数比较 AJMP NEXT
;十位数相等时就转去比较个位数
;实际温度值的十位数少时则转START0
NEXT1: JC START0
;SETB flag CLR SPK
;报警标记置位
;实际温度值的十位数高于报警温度值的十位数就报警
SETB BOILER_SW ;当前温度超过温度报警值关闭锅炉燃烧器开关,
停止加热 SETB RED
CLR GREEN
CLR BOILER_SW ;打开锅炉燃烧器开关,继续加热 LJMP START
;比较完毕,重新采集温度和水位
NEXT: CLR C
MOV A,71H
CJNE A,TEMP_AL1,NEXT2 ;实际温度值与报警温度值的个位数比较 AJMP NEXT0
;个位数相等时就转去比较十分位数
;实际温度值的个位数少时则转START0
NEXT2: JC START0
;SETB flag
;报警标记置位
CLR SPK ;十位数相等时,实际温度值的个位数高于报警温度值的个位数就报警
SETB BOILER_SW ;如果当前温度超过温度报警值时就关闭锅炉燃烧
器开关,停止加热
CLR RED SETB GREEN
LJMP START ;比较完毕,重新采集温度和水位
辽宁科技大学本科生毕业设计 第39页
NEXT0: MOV A,6FH JZ START0
;SETB flag CLR SPK
;实际温度值的十分位数等于0时则转START0
;报警标记置位
;十位数和个位数相等时,实际温度值的十分位数大于0就报警
SETB BOILER_SW ;如果当前温度超过温度报警值时就关闭锅炉燃烧
器开关,停止加热
CLR RED SETB GREEN LJMP START
;比较完毕,重新采集温度和水位
START0:
JB flag,LOOP4 集温度和水位
SETB SPK 续采集温度和水位
SETB RED CLR GREEN
;如果水位和温度都没有出现报警时就使绿灯亮,然后继
;如果水位出现报警但温度没有出现报警时就继续采
LOOP4: LJMP START
;====================================================================
;==============================================
;================================================ LP:
ORL P1,#03H;逻辑或,检测水位 MOV A,P1;读P1口
JNB ACC.3,LP1, P1.3=0跳转到LP1
JB ACC.4,LP2;当P1.4=0表示实际水位在下限,跳转 BK: MOV A #20
ACALL D2S;调延时2S子程序
AJMP LP
LP1:JNB ACC 4,L00P3;当P1.4=0则转
辽宁科技大学本科生毕业设计 第40页
SETB SPK;报警
SETB P1. 2;使P1 2=1,停止电机工作 LP4:SJMP L00P4;出现故障后程序进入 等待状态
LP3: CLR P1.2;启动电机 AJMP BK
LP2: SETB P1 2;电动机停止工作 电机工作 AJMP BK END
;================================================== ;LCD显示温度标记子程序
;================================================== TEMP_BJ:
;MOV A,#0CAH
CALL WCOM ;调用LCD写命令子程序 MOV DPTR,#BJ1 ;指针指到显示消息 MOV R1,#0 MOV R0,#2
BBJJ1: MOV A,R1 MOVC A,@A+DPTR
CALL WDATA ;调用LCD写数据子程序 INC R1
DJNZ R0,BBJJ1 RET BJ1:
DB 00H,\
;摄示度标记
;================================================= TEMP_SET:
;设定温度报警值
辽宁科技大学本科生毕业设计 第41页
MOV DPTR,#TEMP_SET1 ;指针指到显示消息 MOV A,#1 ;显示在第一行
CALL LCD_PRINT ;在LCD的第一行或第二行显示字符 RET TEMP_SET1:
DB \
;================================================= MENU_OK1:
;LCD显示温度采集和水位控制信息
MOV DPTR,#M_OK1 ;指针指到显示消息 MOV A,#1 ;显示在第一行
CALL LCD_PRINT ;在LCD的第一行或第二行显示字符 MOV DPTR,#M_OK2 ;指针指到显示消息 MOV A,#2 ;显示在第二行
CALL LCD_PRINT ;在LCD的第一行或第二行显示字符 RET M_OK1:
DB \ L:20\M_OK2:
DB \ \
;================================================= MENU_ERROR1:
;LCD显示传感器1不存在信息
MOV DPTR,#M_ERROR1 ;指针指到显示消息1 MOV A,#1 ;显示在第一行
CALL LCD_PRINT ;在LCD的第一行或第二行显示字符 MOV DPTR,#M_ERROR2 ;指针指到显示消息1 MOV A,#2 ;显示在第一行
CALL LCD_PRINT ;在LCD的第一行或第二行显示字符 RET M_ERROR1:
DB \ DS18B20 ERROR \M_ERROR2:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于单片机的锅炉温度控制系统的设计(9)在线全文阅读。
相关推荐: