⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds18b20-lcd1602.lst

📁 KT800综合系统板实验源程序库
💻 LST
字号:
A51 MACRO ASSEMBLER  DS18B20_LCD1602                                                      06/11/2005 16:41:49 PAGE     1


MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\DS18B20-LCD1602.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\DS18B20-LCD1602.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ; 
                       2     
                       3     
                       4     
  0024                 5               TEMP_ZH   DATA  24H     ;实时温度值存放单元
  0025                 6               TEMPL     DATA  25H     ;
  0026                 7               TEMPH     DATA  26H     ;
  0027                 8               TEMP_TH   DATA  27H     ;高温报警值存放单元
  0028                 9               TEMP_TL   DATA  28H     ;低温报警值存放单元
  0029                10               TEMPHC    DATA  29H     ;
  002A                11               TEMPLC    DATA  2AH
                      12     
  0094                13               K1     EQU  P1.4
  0095                14               K2     EQU  P1.5
  0096                15               K3     EQU  P1.6
  0097                16               K4     EQU  P1.7
                      17     
  00B7                18               BEEP   EQU  P3.7
  0093                19               RELAY  EQU  P1.3
  002F                20               LCD_X     EQU  2FH      ;LCD 地址变量
  00A0                21               LCD_RS    EQU  P2.0
  00A1                22               LCD_RW    EQU  P2.1
  00A2                23               LCD_EN    EQU  P2.2
  0000                24               flag1     equ  20H.0    ;DS18B20是否存在标记
  0001                25               KEY_UD    EQU  20H.1    ;设定 KEY 的UP与DOWN 标记
  00B3                26               date_line equ p3.3
                      27     ;=====================================================
0000                  28                ORG  0000H
0000 8000             29                JMP  MAIN
                      30     
0002 758160           31     MAIN:     MOV  SP,#60H
0005 7400             32               MOV  A,#00H
0007 7820             33               MOV  R0,#20H       ;将 20H-2FH 单元清零
0009 7910             34               MOV  R1,#10H
000B F6               35     CLEAR:    MOV  @R0,A
000C 08               36               INC  R0
000D D9FC             37               DJNZ  R1,CLEAR
                      38     
000F 9115             39               CALL  SET_LCD
0011 31EF             40               CALL  RE_18B20
                      41     
0013 31C3             42     start:    CALL  RESET          ;18B20复位子程序
0015 300008           43               JNB   FLAG1,START1   ;DS1820不存在
0018 3161             44               CALL  MENU_OK
001A 511C             45               CALL  READ_E2
001C 314C             46               CALL  TEMP_BJ        ;显示温度标记
001E 8006             47               JMP   START2
0020 3192             48     START1:   CALL  MENU_ERROR
0022 314C             49               CALL  TEMP_BJ        ;显示温度标记
0024 80FE             50               JMP  $
                      51     
0026                  52     START2:
0026 31C3             53               CALL  RESET
0028 3000F5           54               JNB  FLAG1,START1    ;DS1820不存在
002B 74CC             55               MOV   A,#0CCH        ; 跳筊OM匹配
002D 5143             56               CALL  WRITE
002F 7444             57               MOV   A,#44H         ; 发出温度转换命令
0031 5143             58               CALL  WRITE
A51 MACRO ASSEMBLER  DS18B20_LCD1602                                                      06/11/2005 16:41:49 PAGE     2

0033 31C3             59               CALL  RESET
0035 74CC             60               MOV   A,#0CCH        ; 跳筊OM匹配
0037 5143             61               CALL  WRITE
0039 74BE             62               MOV   A,#0BEH        ; 发出读温度命令
003B 5143             63               CALL  WRITE
003D 515B             64               CALL  READ
003F 5180             65               call CONVTEMP
0041 719B             66               Call DISPBCD
0043 71CF             67               CALL CONV
0045 3110             68               CALL TEMP_COMP
0047 114B             69               CALL  PROC_KEY       ; 键扫描
                      70     
0049 80DB             71               SJMP  START2
                      72     ;-----------------------------------------------------
004B                  73     PROC_KEY:
004B 209415           74              JB  K1,PROC_K1           ; 按键K1处理
004E 91A4             75              CALL  BEEP_BL
0050 3094FD           76              JNB  K1,$
0053 900319           77              MOV  DPTR,#M_ALAX1
0056 7401             78              MOV  A,#1
0058 9148             79              CALL  LCD_PRINT
005A 51FB             80              CALL  LOOK_ALARM
005C 2096FD           81              JB  K3,$
005F 91A4             82              CALL  BEEP_BL
0061 8015             83              JMP  PROC_K2
0063                  84     PROC_K1:                          ; 按键K2处理
0063 209516           85              JB  K2,PROC_END
0066 91A4             86              CALL  BEEP_BL
0068 3095FD           87              JNB  K2,$
006B 900100           88              MOV   DPTR,#RESET_A1
006E 7401             89              MOV   A,#1
0070 9148             90              CALL  LCD_PRINT
0072 117D             91              CALL  SET_ALARM
0074 31EF             92              CALL  RE_18B20           ;将设定的TH,TL值写入DS18B20内
0076 510F             93              CALL  WRITE_E2
0078                  94     PROC_K2:
0078 3161             95              CALL  MENU_OK
007A 314C             96              CALL  TEMP_BJ
007C                  97     PROC_END:
007C 22               98              RET
                      99     ;============================================
                     100     ;设定报警值 TH、TL
                     101     ;============================================
007D                 102     SET_ALARM:
                     103              ;CALL  RESET_ALARM
007D 51FB            104              CALL  LOOK_ALARM
007F                 105     AS0:
007F 209407          106              JB   K1,AS00
0082 91A4            107              CALL  BEEP_BL
0084 3094FD          108              JNB  K1,$
0087 B201            109              CPL  20H.1            ;UP/DOWN 标记
0089 200102          110     AS00:    JB  20H.1,ASZ01       ;20H.1=1,UP
008C 8037            111              JMP  ASJ01            ;20H.1=0,DOWN
                     112     
008E 209514          113     ASZ01:   JB  K2,ASZ02          ;TH值调整(增加)
0091 91A4            114              CALL  BEEP_BL
0093 0527            115              INC  TEMP_TH
0095 E527            116              MOV  A,TEMP_TH
0097 B47803          117              CJNE  A,#120,ASZ011
009A 752700          118              MOV  TEMP_TH,#0
009D 51FB            119     ASZ011:  CALL  LOOK_ALARM
009F 7D0A            120              MOV  R5,#10
00A1 91B7            121              CALL  DELAY
00A3 80E9            122              JMP  ASZ01
                     123     
00A5 209614          124     ASZ02:   JB  K3,ASZ03          ;TL值调整(增加)
A51 MACRO ASSEMBLER  DS18B20_LCD1602                                                      06/11/2005 16:41:49 PAGE     3

00A8 91A4            125              CALL  BEEP_BL
00AA 0528            126              INC  TEMP_TL
00AC E528            127              MOV  A,TEMP_TL
00AE B46303          128              CJNE  A,#99,ASZ021
00B1 752800          129              MOV  TEMP_TL,#00H
00B4 51FB            130     ASZ021:  CALL  LOOK_ALARM    ;
00B6 7D0A            131              MOV  R5,#10
00B8 91B7            132              CALL  DELAY
00BA 80E9            133              JMP  ASZ02
00BC 2097C0          134     ASZ03:   JB  K4,AS0          ;确定调整 OK
00BF 91A4            135              CALL  BEEP_BL
00C1 3097FD          136              JNB  K4,$
00C4 22              137              RET
                     138     
00C5                 139     ASJ01:
00C5 209513          140              JB  K2,ASJ02          ;TH值调整 (减少)
00C8 91A4            141              CALL  BEEP_BL
00CA 1527            142              DEC   TEMP_TH
00CC E527            143              MOV  A,TEMP_TH
00CE B4FF02          144              CJNE  A,#0FFH,ASJ011
00D1 801E            145              JMP  ASJ022
00D3 51FB            146     ASJ011:  CALL  LOOK_ALARM
00D5 7D0A            147              MOV  R5,#10
00D7 91B7            148              CALL  DELAY
00D9 80A4            149              JMP  AS0
                     150     
00DB 209617          151     ASJ02:   JB  K3,ASJ03         ;TL值调整(减少)
00DE 91A4            152              CALL  BEEP_BL
00E0 1528            153              DEC  TEMP_TL
00E2 E528            154              MOV  A,TEMP_TL
00E4 B4FF02          155              CJNE  A,#0FFH,ASJ021
00E7 8008            156              JMP  ASJ022
00E9 51FB            157     ASJ021:  CALL  LOOK_ALARM    ;
00EB 7D0A            158              MOV  R5,#10
00ED 91B7            159              CALL  DELAY
00EF 808E            160              JMP  AS0
00F1 B201            161     ASJ022:  CPL  20H.1
00F3 8099            162              JMP  ASZ01
00F5 80C5            163     ASJ03:   JMP  ASZ03
00F7 22              164              RET
                     165     
                     166     
00F8                 167     RESET_ALARM:
00F8 900100          168               MOV  DPTR,#RESET_A1  ;指针指到显示信息区
00FB 7401            169               MOV  A,#1            ;显示在第一行
00FD 9148            170               CALL  LCD_PRINT
00FF 22              171               RET
0100                 172     RESET_A1:
0100 52455345        173          DB  "RESET ALERT CODE"
0104 5420414C                
0108 45525420                
010C 434F4445                
                     174     ;====================================================
                     175     ;实际温度值与标记温度值比较子程序
                     176     ;====================================================
0110                 177     TEMP_COMP:
0110 E527            178               MOV  A,TEMP_TH       
0112 9524            179               SUBB  A,TEMP_ZH       ;减

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -