;******************************************************************************** * ;******************************************************************************** ;* 描述: * ;* DS18B20温度控制1602LCD显示 * ;* * ;* 使用方法参考readme.txt文档 * ;* * ;* * ;******************************************************************************** * ;******************************************************************************** TEMP_ZH DATA 24H ;实时温度值存放单元 TEMPL DATA 25H ; TEMPH DATA 26H ; TEMP_TH DATA 27H ;高温报警值存放单元 TEMP_TL DATA 28H ;低温报警值存放单元 TEMPHC DATA 29H ; TEMPLC DATA 2AH K1 EQU P1.4 K2 EQU P1.5 K3 EQU P1.6 K4 EQU P1.7 BEEP EQU P3.7 RELAY EQU P1.3 LCD_X EQU 2FH ;LCD 地址变量 LCD_RS EQU P2.0 LCD_RW EQU P2.1 LCD_EN EQU P2.2 flag1 equ 20H.0 ;DS18B20 是否存在标记 KEY_UD EQU 20H.1 ;设定 KEY 的UP 与DOWN 标记 date_line equ p3.3 ;===================================================== ORG 0000H JMP MAIN ORG 0030H MAIN: MOV SP,#60H MOV A,#00H MOV R0,#20H ;将 20H-2FH 单元清零 MOV R1,#10H CLEAR: MOV @R0,A INC R0 DJNZ R1,CLEAR CALL SET_LCD CALL RE_18B20 start: CALL RESET ;18B20 复位子程序 JNB FLAG1,START1 ;DS1820 不存在 CALL MENU_OK CALL READ_E2 CALL TEMP_BJ ;显示温度标记 JMP START2 START1: CALL MENU_ERROR CALL TEMP_BJ ;显示温度标记 JMP $ START2: CALL RESET JNB FLAG1,START1 ;DS1820 不存在 MOV A,#0CCH ; 跳过 ROM 匹配 CALL WRITE MOV A,#44H ; 发出温度转换命令 CALL WRITE CALL RESET MOV A,#0CCH ; 跳过 ROM 匹配 CALL WRITE MOV A,#0BEH ; 发出读温度命令 CALL WRITE CALL READ call CONVTEMP Call DISPBCD CALL CONV CALL TEMP_COMP CALL PROC_KEY ; 键扫描 SJMP START2 ;----------------------------------------------------- PROC_KEY: JB K1,PROC_K1 ; 按键 K1 处理 CALL BEEP_BL JNB K1,$ MOV DPTR,#M_ALAX1 MOV A,#1 CALL LCD_PRINT CALL LOOK_ALARM JB K3,$ CAL...