基于单片机的锅炉温度控制系统的设计(8)

2019-08-03 13:30

辽宁科技大学本科生毕业设计 第32页

FLAG1 EQU 2FH.7 ;DS18B20是否存在标记

FLAG EQU 2FH.6 ;报警标记

DATE_LINE1 EQU P3.3 ;通道1DS18B20数据口 ;===================================================== ORG 0000H JMP MAIN

MAIN: MOV SP,#60H MOV A,#00H

MOV R0,#20H ;将 20H-2FH 单元清零 MOV R1,#10H CLEAR: MOV @R0,A INC R0

DJNZ R1,CLEAR

MOV WATER,#50

;对 LCD 做初始化设置及测试,并写自定义数据

MOV TEMP_AL,#23 CALL SET_LCD 入CGRAM

CALL TEMP_SET ;显示设定温度报警值的信息 MOV A,#0C9H

;设定温度摄示度标记的显示位置

;设置堆栈

;跳到主程序入口

CALL TEMP_BJ ;显示温度摄示度的标记

LCALL DIS_TEMP

;显示初始化的报警温度

MAIN1: MOV 20H,#0

LCALL KEY

;调用按键扫描程序

JNB 20H.0,DEC_TEMP

;报警湿度值加1

ADD_TEMP: INC TEMP_AL

LCALL DIS_TEMP AJMP MAIN1 DEC TEMP_AL LCALL DIS_TEMP

;显示改变后的报警温度

DEC_TEMP: JNB 20H.1,CONFIRM

;报警湿度值减1 ;显示改变后的报警温度

辽宁科技大学本科生毕业设计 第33页

AJMP MAIN1

CONFIRM: JNB 20H.2,MAIN1 ;如果没按任何键就返回MAIN1继续扫描 ;SETB SPK ;

LCALL DIS_TEMP1

CALL MENU_OK1 ;LCD显示温度采集和水位控制信息 LCALL DIS_TEMP1 ;显示已设定的温度报警值 MOV A,#0CEH

;当前温度摄示度标记的显示位置

CALL TEMP_BJ ;显示当前温度摄示度的标记

;SETB SPK SETB RED ;CLR GREEN

;

LJMP START

;================================================== DIS_TEMP: MOV A,TEMP_AL ;显示改变后的报警温度

MOV B,#10 DIV AB

MOV TEMP_AL2,A ;保存温度报警值的十位数 MOV LCD_X,#7 ;设置位置

;显示报警温度值的十位

CALL SHOW_DIG2 INC LCD_X

MOV A,TEMP_AL MOV B,#10 DIV AB

MOV A,B

;个位

MOV TEMP_AL1,A ;保存温度报警值的个位数

;显示报警温度值的个位

CALL SHOW_DIG2

RET

;================================================== DIS_WATER: MOV A,WATER

;显示当前水位的值

MOV B,#10 DIV AB

辽宁科技大学本科生毕业设计 第34页

MOV WATER_AL2,A ;保存温度报警值的十位数 MOV LCD_X,#7 ;设置位置

;显示报警温度值的十位

CALL SHOW_DIG1 INC LCD_X

MOV A,WATER MOV B,#10 DIV AB

MOV A,B

;个位

MOV WATER_AL1,A ;保存温度报警值的个位数

;显示报警温度值的个位

CALL SHOW_DIG1

RET

;================================================== ;================================================== DIS_TEMP1: MOV A,TEMP_AL ;显示已设定的温度报警值

MOV B,#10 DIV AB

MOV TEMP_AL2,A ;保存温度报警值的十位数 MOV LCD_X,#3 ;设置位置

;显示报警温度值的十位

CALL SHOW_DIG2 INC LCD_X

MOV A,TEMP_AL MOV B,#10 DIV AB

MOV A,B

;个位

MOV TEMP_AL1,A ;保存温度报警值的个位数

;显示报警温度值的个位

CALL SHOW_DIG2

RET

;================================================== START: CALL RE_18B20_1 确度

;检测通道1的DS18B20是否存在,并设置12位精

辽宁科技大学本科生毕业设计 第35页

CALL RESET1 ;18B20复位子程序,检测18B20是否存在 JNB FLAG1,START11 ;如果DS1820不存在则跳START11 ; CALL MENU_OK1 ; MOV A,#0CEH

; CALL TEMP_BJ ;显示温度摄示度的标记 JMP START21 START11: CALL MENU_ERROR1 MOV A,#0CBH

CALL TEMP_BJ ;显示温度摄示度的标记 JMP START

START21: ;检查到有温度传感器后的处理 CALL RESET1

;18B20复位子程序,再次检测18B20是否存在

;如果不存在则显示ERROR ;如果存在则显示OK

JNB FLAG1,START11 ;DS1820不存在则转到START11报错 MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1

MOV A,#44H ; 发出温度转换命令 CALL WRITE1 CALL RESET1

MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1

MOV A,#0BEH ; 发出读温度命令 CALL WRITE1 CALL READ1

M1: CAll CONVTEMP TEMPHC、TEMPLC CAll DISPBCD

;显示区BCD码温度值刷新子程序,即把BCD转为十六进制 6FH-73H,;其中70H存放小数点,6FH存放十分

;处理温度BCD码子程序,并将处理结果存放到

LJMP M1

;读出温度值到TEMPH、TEMPL

;跳到温度处理、显示程序

辽宁科技大学本科生毕业设计 第36页

位数,71H存放个位数,72H存放十位数,73H存入百位数

MOV A,72H ;跳过85.0摄氏度

DISPLAY: CALL DELAY2

CALL CONV

;将采集到的温度在LCD1602显示出来

CJNE A,#8,DISPLAY MOV A,71H CJNE A,#5,DISPLAY MOV A,6FH CJNE A,#0,DISPLAY LJMP START

;LCALL DIS_TEMP1 ;显示已设定的温度报警值

MOV A,#0C5H

CALL TEMP_BJ ;显示报警温度摄示度的标记

LCALL DIS_WATER ;显示当前水位的值 MOV 20H,#0 LCALL KEY

;调用按键扫描程序

JNB 20H.0,DEC_WATER

LCALL DIS_WATER ;显示当前水位的值 AJMP COMPARE1

;当前水位与水位上限值80比较

;当前水位与水位上限值80比较

ADD_WATER:INC WATER

DEC_WATER:JNB 20H.1,COMPARE1

COMPARE1: CLR C

DEC WATER

;水位减1

LCALL DIS_WATER ;显示当前水位的值

;当前水位与水位上限值80比较

MOV A,WATER_AL2 ;取得当前水位的十位数 CJNE A,#8,NEXT11 ;十位数比较 AJMP LOOP1

;如果十位数相等,则转去比较个位数

;如果十位数小于8,转去比较下限值

NEXT11: JC COMPARE2


基于单片机的锅炉温度控制系统的设计(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:好习惯案例(江菊)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: