版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、功能说明:本装置的功能是对温度进行实时监测与控制。由温度传感器DS18B20对温度进行采样和转换成数字信号送入单片机,并与设定的报警温度上、下限值进行比较,信息通过LCD显示出来。如实时温度超过设定的上、下限值,一方面由LCD显示信息,并发出警报声;另一方面自动控制继电器(Relay)开接通或断开,从而控制加热源的开与断,达到对温度进行实时控制的目的。;程序清单:; TEMP_ZH EQU 24H ;实时温度值存放单元TEMPL EQU 25H ;低温度值存放单元TEMPH EQU 26H ;高温度值存放单元TEMP_TH EQU 27H ;高温报警值存放单元TEMP_TL EQU 28H ;
2、低温报警值存放单元TEMPHC EQU 29H ;存十位数 BCD码TEMPLC EQU 2AH ;存个位数 BCD码;-K1 EQU P2.1K2 EQU P2.2K3 EQU P2.3K4 EQU P2.4;-SPK EQU P3.4RELAY EQU P2.0X EQU 2FH ;LCD 地址变量;-RS EQU P3.5RW EQU P3.6E EQU P3.7;-FLAG EQU 20H.0 ;DS18B20是否存在标记KEY_UD EQU 20H.1 ;设定 KEY 的UP与DOWN 标记 DQ EQU P2.5;= 主程序 =MAIN:ACALL SET_LCD ;LCD初始化设
3、置子程序ACALL WR_THL ;将报警上下线写入暂存寄存器TOOP: ACALL RESET_1820 ;18B20复位子程序JNB FLAG,TOOP1 ;DS1820不存在ACALL MEU_OK ;显示OK菜单ACALL RE_THL ;把EEROM里温度报警值拷贝回暂存器 ACALL TEMP_BJ ;显示温度标记CJMP TOOP2TOOP1: ACALL MEU_ERROR ;显示ERROR菜单ACALL TEMP_BJ ;显示温度标记JMP $;-TOOP2:ACALL RE_TEMPACALL SET_DATAACALL TEMP_COMP ;实际温度值与标记温度值比较子程
4、序 ACALL P_KEY ;键扫描子程序SJMP TOOP2; 读取温度数据子程序 RE_TEMP:ACALL RESET_1820 ;18B20复位子程序JNB FLAG,TOOP1 ;DS1820不存在MOV A,#0CCH ;跳过ROM匹配ACALL WRITE_1820 ;写入子程序MOV A,#44H ;发出温度转换命令ACALL WRITE_1820 ;调写入子程序ACALL RESET_1820 ;调复位子程序MOV A,#0CCH ;跳过ROM匹配ACALL WRITE_1820 ;写入子程序MOV A,#0BEH ;发出读温度命令ACALL WRITE_1820 ;写入子程
5、序ACALL READ_1820 ;调用读入子程序RET; 温度数据处理显示子程序SET_DATA:ACALL CONV_TEMP ;处理温度 BCD 码子程序ACALL DISP_BCD ;显示区 BCD 码温度值刷新子程序 ACALL CONV ;数据转换子程序RET; 按键键扫描子程序 P_KEY: ;按键K1处理JB K1,PK1 ; K1键未按,转到PK1处ACALL SPK_BZ ;K1键按下,一声鸣响JNB K1,$ ;等按键放开MOV DPTR,#M_ALAX1 ;存M_ALAX1表MOV A,#1ACALL LCD_PRINT ;显示字符ACALL LOOK_ALARM ;显
6、示信息区JB K3,$ ;等待K3按下ACALL SPK_BZ ;一声鸣响JMP PK2 ;转到标号 PK2处PK1: ; 按键K2处理JB K2,PK3 ;K2键未按,转到PK3处 ACALL SPK_BZ ;K2键按下,一声鸣响 JNB K2,$ ;等按键放开MOV DPTR,#TA1 ;存#TA1表MOV A,#1ACALL LCD_PRINT ;显示字符ACALL SET_ALARM ;设定报警值 TH、TL ACALL WR_THL ;将设定的TH,TL值写入DS18B20内 ACALL WRITE_E2 ;PK2:ACALL MEU_OK ;显示OK菜单ACALL TEMP_BJ
7、;显示温度标记PK3:RET;-TA1:DB RESET ALERT CODE;-; 设定报警值 TH、TL子程序 ;设定报警值 TH、TLSET_ALARM:ACALL LOOK_ALARMA0:JB K1,A2ACALL SPK_BZJNB K1,$CPL 20H.1 ;UP/DOWN 标记A2: JB 20H.1,A3 ;20H.1=1,UPJMP A8 ;20H.1=0,DOWNA3: JB K2,A5 ;TH值调整(增加)ACALL SPK_BZINC TEMP_THMOV A,TEMP_THCJNE A,#120,A4MOV TEMP_TH,#0A4: ACALL LOOK_ALA
8、RMMOV R5,#10ACALL DELAYJMP A3A5: JB K3,A7 ;TL值调整(增加)ACALL SPK_BZINC TEMP_TLMOV A,TEMP_TLCJNE A,#99,A6MOV TEMP_TL,#00HA6: ACALL LOOK_ALARM ;MOV R5,#10ACALL DELAYJMP A5A7: JB K4,A0 ;确定调整 OKACALL SPK_BZJNB K4,$RETA8:JB K2,A10 ;TH值调整 (减少)ACALL SPK_BZDEC TEMP_THMOV A,TEMP_THCJNE A,#0FFH,A9JMP A12A9: ACAL
9、L LOOK_ALARMMOV R5,#10ACALL DELAYJMP A0A10: JB K3,A13 ;TL值调整(减少)ACALL SPK_BZDEC TEMP_TLMOV A,TEMP_TLCJNE A,#0FFH,A11JMP A12A11: ACALL LOOK_ALARM ;MOV R5,#10ACALL DELAYJMP A0A12: CPL 20H.1JMP A3A13: JMP A7RET; 显示信息区子程序 LOOK_ALARM:MOV DPTR,#M_ALAX2 ;指针指到显示信息区 MOV A,#2 ;显示在第二行 ACALL LCD_PRINTMOV A,#0C6
10、HACALL TEMP_BJ1MOV A,TEMP_TH ;加载TH数据 MOV X,#3 ;设置位置ACALL SHOW_LINE2H ;显示数据MOV A,#0CEHACALL TEMP_BJ1MOV A,TEMP_TL ;加载TL数据 MOV X,#12 ;设置位置ACALL SHOW_LINE2L ;显示数据RET;-M_ALAX1:DB LOOK ALERT CODE,0M_ALAX2:DB TH: TL: ,0;-TEMP_BJ1:ACALL WR_COMMMOV DPTR,#BJ2 ;指针指到显示信息区 MOV R1,#0MOV R0,#2B0: MOV A,R1MOVC A,A
11、+DPTRACALL WR_DATAINC R1DJNZ R0,B0RETBJ2:DB 00H,C;-SHOW_LINE2H: ;在 LCD 的第二行显示数字 MOV B,#100DIV ABADD A,#30HPUSH BMOV B,XACALL LCDP2POP BMOV A,#0AHXCH A,BDIV ABADD A,#30HINC XPUSH BMOV B,XACALL LCDP2POP BINC XMOV A,BMOV B,XADD A,#30HACALL LCDP2RET;-SHOW_LINE2L: ;在 LCD 的第二行显示数字 MOV B,#100DIV ABMOV A,#0
12、AHXCH A,BDIV ABADD A,#30HPUSH BMOV B,XCALL LCDP2POP BINC XMOV A,BMOV B,XADD A,#30HACALL LCDP2RET;-; 温度值比较子程序;实际温度值与标记温度值比较子程序TEMP_COMP:MOV A,TEMP_THSUBB A,TEMP_ZH ;减数被减数,则JC TCL1 ;借位标志位C=1,转MOV A,TEMP_ZHSUBB A,TEMP_TL ;减数被减数,则JC TCL2 ;借位标志位C=1,转MOV DPTR,#BJ5ACALL TEMP_BJ3CLR RELAY ;继电器吸合RETTCL1:MOV
13、DPTR,#BJ3 ;存入#BJ3表ACALL TEMP_BJ3 ;调用显示高、低温度及加热标记子程序 SETB RELAY ;继电器关闭ACALL SPK_BZRETTCL2:MOV DPTR,#BJ4 ;存入#BJ4表ACALL TEMP_BJ3 ;调用显示高、低温度及加标记子程序 ACALL SPK_BZ ;调用鸣响子程序RET; 显示高、低温度及加热标记程序TEMP_BJ3:MOV A,#0CEHACALL WR_COMMMOV R1,#0MOV R0,#2BJJ: MOV A,R1MOVC A,A+DPTRACALL WR_DATAINC R1DJNZ R0,BJJRETBJ3:DB
14、 HBJ4:DB BCDDIV AB ;B= A % 100MOV R4,A ;R7 = 百位数MOV A,#0AHXCH A,BDIV AB ;B = A % BSWAP AORL A,BRET;-; 小数部分码表DOTTAB:DB 00H,00H,01H,01H,02H,03H,03H,04HDB 05H,05H,06H,06H,07H,08H,08H,09H;-; 显示区BCD 码温度值刷新子程序 ;显示区 BCD 码温度值刷新DISP_BCD:MOV A,TEMPLCANL A,#0FHMOV 70H,A ;小数位MOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,
15、A ;个位MOV A,TEMPHCANL A,#0FHMOV 72H,A ;十位MOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,A ;百位MOV A,TEMPHCANL A,#0F0HCJNE A,#010H,DI0SJMP DI2DI0: MOV A,TEMPHCANL A,#0FHJNZ DI2 ;十位数是0MOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,#0AH ;符号位不显示 MOV 72H,A ;十位数显示符号 DI2: RET;- DS18B20复位初始化子程序 -RESET_1820: ;复位(有具体的时序要求) SETB DQNO
16、PCLR DQ;主机发出延时537微秒的复位低脉冲MOV R1,#3DLY: MOV R0,#107DJNZ R0,$DJNZ R1,DLY;然后拉高数据线SETB DQNOPNOPNOP;MOV R0,#25HT2: JNB DQ ,T3 ;等待DS18B20回应DJNZ R0, T2JMP T4;T3: SETB FLAG ;置标志位,表示DS1820存在JMP T5;T4: CLR FLAG ;清标志位,表示DS1820不存在 JMP T7;T5: MOV R0,#117T6: DJNZ R0,T6 ;时序要求延时一段时间;T7: SETB DQRET ;复位子程序;- 写入DS18B2
17、0子程序 -WRITE_1820: ;写入DS18B20(有具体的时序要求)MOV R2,#8 ;一共8位数据CLR CWR1:CLR DQ ;总线低位,开始写入MOV R3,#6DJNZ R3,$ ;保持16微秒以上RRC A ;把字节DATA分成8个BIT环移给CMOV DQ, C ;写入一个BITMOV R3,#23DJNZ R3,$ ;等待SETB DQ ;重新释放总线NOPDJNZ R2,WR1 ;写入下一个BITSETB DQRET ;写入子程序;- 读出DS18B20子程序 -READ_1820: ; 将温度低位、高位、TH、TL从DS18B20中读出 MOV R4,#4 ;mo
18、v r4,#4MOV R1,#TEMPL ; 存入25H、26H、27H、28H RE0:MOV R2,#8 ;数据一共有8位RE1:CLR CSETB DQNOPNOPCLR DQ ;读前总线保持为低 NOPNOPNOPSETB DQ ;开始读总线释放MOV R3,#9DJNZ R3,$ ;延时18微妙MOV C, DQ ;从总线读到一个BITMOV R3,#23 ;DJNZ R3,$ ;等待50微秒RRC A ;把读得的位价值环移给ADJNZ R2,RE1 ;读下一个BITMOV R1,AINC R1 ; R1内数据递增DJNZ R4,RE0RET ;读出子程序;= LCD 1602 显示
19、程序 =;初始化设置SET_LCD: ;对 LCD 做初始化设置及测试 CLR ECALL INIT_LCD ;初始化 LCDCALL STORE_DATA ;将自定义字符存入LCD的CGRAM RET; LCD 初始化子程序 INIT_LCD: ;8位I/O控制 LCD 接口初始化MOV A,#38HCALL WR_COMMcall delay1MOV A,#0CH ;开显示,显示光标,光标不闪烁 CALL WR_COMMcall delay1MOV A,#01H ;清除 LCD 显示屏CALL WR_COMMcall delay1RET; 显示温度标记子程序 ;显示温度标记子程序TEMP_
20、BJ:MOV A, #0CBHACALL WR_COMMMOV DPTR,#BJ ;指针指到显示消息MOV R1 ,#0MOV R0 ,#2TP1: MOV A,R1MOVC A,A+DPTRACALL WR_DATAINC R1DJNZ R0,TP1RETBJ:DB 00H,C; 自定义字符子程序 ;将自定义字符写入LCD1602的CGRAM中STORE_DATA:MOV A,#40HACALL WR_COMMMOV R2,#08HMOV DPTR,#D_DATAMOV R3,#00HS_DATA:MOV A,R3MOVC A,A+DPTRACALL WR_DATA ;写入数据INC R3D
21、JNZ R2,S_DATARET;-D_DATA:DB 0CH,12H,12H,0CH,00H,00H,00H,00H; 显示“OK”信息子程序 MEU_OK:MOV DPTR,#M_OK1 ;指针指到显示消息MOV A,#1 ;显示在第一行CALL LCD_PRINTMOV DPTR,#M_OK2 ;指针指到显示消息MOV A,#2 ;显示在第一行CALL LCD_PRINTRETM_OK1:DB DS18B20 OK ,0M_OK2:DB TEMP: ,0;显示“ERROR”信息子程序MEU_ERROR:MOV DPTR,#M_ERROR1 ;指针指到显示消息1 MOV A,#1 ;显示在
22、第一行ACALL LCD_PRINTMOV DPTR,#M_ERROR2 ;指针指到显示消息1 MOV A,#2 ;显示在第一行ACALL LCD_PRINTRET;M_ERROR1:DB DS18B20 ERROR ,0M_ERROR2:DB TEMP: - ,0;显示菜单 LCD_PRINT: ;在LCD的第一行或第二行显示字符CJNE A,#1,LINE2 ;判断是否为第一行LINE1:ACALL CLR_LINE ;清除该行字符数据MOV A,#80H ;设置 LCD 的第一行地址 ACALL WR_COMM ;写入命令JMP FILLLINE2:ACALL CLR_LINE ;清除该
23、行字符数据MOV A,#0C0H ;设置 LCD 的第二行地址 ACALL WR_COMMFILL: CLR A ;填入字符MOVC A,A+DPTR ;由消息区取出字符CJNE A,#0,LC1 ;判断是否为结束码RETLC1: ACALL WR_DATA ;写入数据INC DPTR ;指针加1JMP FILL ;继续填入字符RET; 数据转换 CONV:MOV A,73H ;加载百位数据MOV X,#6 ;设置位置CJNE A,#1,CO1JMP CO2CO1: MOV A,# MOV B,XACALL LCDP2JMP CO3CO2: ACALL SHOW_LINE2 ;显示数据CO3:
24、 INC X ;MOV A,72H ;mov a,72h ;十位 ACALL SHOW_LINE2INC X ;inc XMOV A, 71H ;mov a,71h ;个位 ACALL SHOW_LINE2INC X ;inc XMOV A,#.MOV B,XACALL LCDP2MOV A,70H ;h ;加载小数点位 INC X ;设置位置ACALL SHOW_LINE2 ;显示数据RET;显示第二行 SHOW_LINE2: ;在 LCD 的第二行显示数字 ADD A,#30HMOV B,XACALL LCDP2RET;-LCDP2: ;在LCD的第二行显示字符 PUSH ACC ;MOV A,B ;设置显示地址ADD A,#0C0H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省温州市育英国际实验学校2026届物理八上期末联考模拟试题含解析
- 湖北黄冈市麻城市思源实验学校2026届物理九上期末考试模拟试题含解析
- 2026届山东省邹城市邹城中学八年级物理第一学期期末统考模拟试题含解析
- 四川省简阳市养马区2026届九年级物理第一学期期中达标检测试题含解析
- 2026届浙江东阳物理九上期中学业水平测试试题含解析
- 广西钦州市2026届物理八上期末学业质量监测模拟试题含解析
- 2026届陕西省咸阳市实验中学物理八年级第一学期期末质量跟踪监视模拟试题含解析
- 驻马店市重点中学2026届九上物理期中学业质量监测试题含解析
- 2026届广东省佛山市顺德区物理八年级第一学期期末学业质量监测模拟试题含解析
- 商铺租赁保险责任合同协议2025
- 建筑业十项新技术
- 鱼蛋白饲料生产线项目分析方案
- 二层小楼拆除施工方案
- 第11课 《课生态和谐新景观》说课稿 2024-2025学年岭南美版(2024) 初中美术七年级上册
- 光伏电站安全检查表
- 2025年4月自考03346项目管理试题
- 中国农业银行笔试题库(含答案)
- 基于单元视角解读教学设计 选择性必修一 植物生命活动的调节 环境因素参与调节植物的生命活动
- 血液净化中心规章制度
- 高考报名社会实践(10篇)
- 家政服务职业技能家庭照护员理论知识考核试题及答案
评论
0/150
提交评论