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

📄 18b20hh.lst

📁 --- --- 下面是DS18B20测温实验源程序 --------- ORG 0000H START: MOV SP,#60H 开机初始化 MOV P0,#0FFH MOV P1
💻 LST
字号:
A51 MACRO ASSEMBLER  18B20HH                                                              05/02/2008 02:18:47 PAGE     1


MACRO ASSEMBLER A51 V8.00d
OBJECT MODULE PLACED IN 18B20hh.OBJ
ASSEMBLER INVOKED BY: D:\PROGRA~1\KEIL\C51\BIN\KA51.EXE 18B20hh.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;--------- 下面是DS18B20测温实验源程序 ---------
0000                   2             ORG   0000H
0000 758160            3     START:  MOV   SP,#60H           ;开机初始化
0003 7580FF            4             MOV   P0,#0FFH
0006 7590FF            5                     MOV   P1,#0FFH
0009 75A0FF            6                     MOV   P2,#0FFH
000C 75B0FF            7                     MOV   P3,#0FFH
                       8     
000F 120017            9     MAIN:   LCALL GET_TEMPER        ;调用读温度子程序
0012 1200A6           10                     LCALL DISP                      ;调用数码管显示子程序
0015 010F             11                     AJMP  MAIN                      ;重复循环
                      12     ;------ 读DS18B20传感器的温度值 ------
0017                  13     GET_TEMPER:
0017 D2B7             14                     SETB P3.7
0019 12003B           15                     LCALL RET18B20      ;复位
001C 200001           16                     JB 00H,DSS2
001F 22               17                     RET
0020 74CC             18     DSS2:   MOV A,#0CCH                     ;跳过ROM匹配
0022 12006A           19             LCALL WR18B20
0025 7444             20                     MOV A,#44H                      ;向DS18B20发出温度转换命令
0027 12006A           21                     LCALL WR18B20
002A 12003B           22                     LCALL RET18B20          ;准备读温度前先复位DS18B20
002D 74CC             23                     MOV A,#0CCH                     ;跳过ROM匹配
002F 12006A           24                     LCALL WR18B20
0032 74BE             25                     MOV A,#0BEH                     ;向DS18B20发出读温度命令
0034 12006A           26                     LCALL WR18B20
0037 120082           27                     LCALL RE18B20           ;读出温度数据
003A 22               28                     RET
                      29     ;------ DS18B20复位初始化程序 ------
003B                  30     RET18B20:
003B D2B7             31             SETB P3.7               
003D 00               32                     NOP
003E C2B7             33                     CLR P3.7
0040 786B             34                     MOV R0,#06BH            ;主机发出复位低脉冲
0042 7903             35                     MOV R1,#03H
0044 D8FE             36     DSR1:   DJNZ R0,DSR1
0046 786B             37                     MOV R0,#6BH
0048 D9FA             38                     DJNZ R1,DSR1
004A D2B7             39                     SETB P3.7                       ;拉高数据线
004C 00               40                     NOP
004D 00               41                     NOP
004E 00               42                     NOP
004F 7825             43                     MOV R0,#25H
0051 30B705           44     DSR2:   JNB P3.7,DSR3            ;等待DS18B20回应
0054 D8FB             45                     DJNZ R0,DSR2
0056 02005E           46                     LJMP DSR4
0059 D200             47     DSR3:   SETB 00H                          ;置标志位,表示DS1820存在
005B 020063           48             LJMP DSR5
005E C200             49     DSR4:   CLR 00H                           ;清标志位,表示DS1820不存在
0060 020067           50                     LJMP DSR7
0063 786B             51     DSR5:   MOV R0,#06BH
0065 D8FE             52     DSR6:   DJNZ R0,DSR6               ;延时一段时间
0067 D2B7             53     DSR7:   SETB P3.7
0069 22               54                     RET
                      55     ;------ 写DS18B20的子程序 ------
006A                  56     WR18B20:
006A 7A08             57                     MOV R2,#8
006C C3               58                     CLR C
A51 MACRO ASSEMBLER  18B20HH                                                              05/02/2008 02:18:47 PAGE     2

006D C2B7             59     WR1:    CLR P3.7
006F 7B06             60             MOV R3,#6
0071 DBFE             61                     DJNZ R3,$
0073 13               62                     RRC A
0074 92B7             63                     MOV P3.7,C
0076 7B17             64                     MOV R3,#23
0078 DBFE             65                     DJNZ R3,$
007A D2B7             66                     SETB P3.7
007C 00               67                     NOP
007D DAEE             68                     DJNZ R2,WR1
007F D2B7             69                     SETB P3.7
0081 22               70                     RET
                      71     ;------ 从DS18B20中读温度数据程序 ------
0082                  72     RE18B20:
0082 7C02             73             MOV R4,#2
0084 792F             74                     MOV R1,#2FH
0086 7A08             75     RE00:   MOV R2,#8
0088 C3               76     RE01:   CLR C
0089 D2B7             77             SETB P3.7
008B 00               78                     NOP
008C 00               79                     NOP
008D C2B7             80                     CLR P3.7
008F 00               81                     NOP
0090 00               82                     NOP
0091 00               83                     NOP
0092 D2B7             84                     SETB P3.7
0094 7B09             85                     MOV R3,#09
0096 DBFE             86     RE10:   DJNZ R3,RE10
0098 A2B7             87             MOV C,P3.7
009A 7B17             88                     MOV R3,#23                      
009C DBFE             89     RE20:   DJNZ R3,RE20
009E 13               90             RRC A
009F DAE7             91                     DJNZ R2,RE01
00A1 F7               92                     MOV @R1,A
00A2 19               93                     DEC R1
00A3 DCE1             94                     DJNZ R4,RE00
00A5 22               95                     RET
                      96     ;-------- 显示子程序 --------
00A6 E52F             97     DISP:   MOV A,2FH
00A8 A270             98             MOV C,70H
00AA 13               99                     RRC A
00AB A271            100                     MOV C,71H
00AD 13              101                     RRC A
00AE A272            102                     MOV C,72H
00B0 13              103                     RRC A
00B1 A273            104                     MOV C,73H
00B3 13              105                     RRC A
00B4 F52F            106                     MOV 2FH,A
00B6 E52F            107                     MOV A,2FH
00B8 75F00A          108                     MOV B,#10
00BB 84              109                     DIV AB
00BC F530            110                     MOV 30H,A
00BE 85F031          111                     MOV 31H,B
00C1 E530            112                     MOV A,30H
00C3 9000E8          113                     MOV DPTR,#SGTB
00C6 93              114                     MOVC A,@A+DPTR     
00C7 F5A0            115                     MOV P2,A                        ;显示温度"十位"值
00C9 758080          116                     MOV P0,#80H                     
00CC 1200FC          117                     LCALL YS4722U
00CF E531            118                     MOV A,31H
00D1 9000E8          119                     MOV DPTR,#SGTB
00D4 93              120                     MOVC A,@A+DPTR          
00D5 F5A0            121                     MOV P2,A                        ;显示温度"个位"值
00D7 758001          122                     MOV P0,#01H
00DA 1200FC          123                     LCALL YS4722U
00DD 74C6            124                     MOV A,#11000110B
A51 MACRO ASSEMBLER  18B20HH                                                              05/02/2008 02:18:47 PAGE     3

00DF F5A0            125                     MOV P2,A                        ;显示温度符号"C"
00E1 758002          126                     MOV P0,#02H
00E4 1200FC          127                     LCALL YS4722U
00E7 22              128                     RET
                     129     ;************* 8位共阳数码管显示器字型码表 *****************
00E8 C0F9A4B0        130     SGTB:   DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
00EC 999282F8                
00F0 8090                    
00F2 8883C6A1        131             DB 88H,83H,0C6H,0A1H,86H,8EH,89H,0A3H,8CH,0C8H
00F6 868E89A3                
00FA 8CC8                    
00FC                 132     YS4722U:
00FC 7C0A            133                     MOV R4,#10                      ;延时子程序
00FE 7DD8            134     Y3:     MOV R5,#216
0100 DDFE            135             DJNZ R5,$
0102 DCFA            136                     DJNZ R4,Y3
0104 22              137                     RET
                     138     
                     139                     
                     140     END
A51 MACRO ASSEMBLER  18B20HH                                                              05/02/2008 02:18:47 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

B. . . . . . . . .  D ADDR   00F0H   A   
DISP . . . . . . .  C ADDR   00A6H   A   
DSR1 . . . . . . .  C ADDR   0044H   A   
DSR2 . . . . . . .  C ADDR   0051H   A   
DSR3 . . . . . . .  C ADDR   0059H   A   
DSR4 . . . . . . .  C ADDR   005EH   A   
DSR5 . . . . . . .  C ADDR   0063H   A   
DSR6 . . . . . . .  C ADDR   0065H   A   
DSR7 . . . . . . .  C ADDR   0067H   A   
DSS2 . . . . . . .  C ADDR   0020H   A   
GET_TEMPER . . . .  C ADDR   0017H   A   
MAIN . . . . . . .  C ADDR   000FH   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RE00 . . . . . . .  C ADDR   0086H   A   
RE01 . . . . . . .  C ADDR   0088H   A   
RE10 . . . . . . .  C ADDR   0096H   A   
RE18B20. . . . . .  C ADDR   0082H   A   
RE20 . . . . . . .  C ADDR   009CH   A   
RET18B20 . . . . .  C ADDR   003BH   A   
SGTB . . . . . . .  C ADDR   00E8H   A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   0000H   A   
WR1. . . . . . . .  C ADDR   006DH   A   
WR18B20. . . . . .  C ADDR   006AH   A   
Y3 . . . . . . . .  C ADDR   00FEH   A   
YS4722U. . . . . .  C ADDR   00FCH   A   


REGISTER BANK(S) USED: 0 


ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)
  PA51 中文汇编系统
Version 8.1 (C) Copyright 2007.7

登陆 http://pa51.cn 了解更多咨询
技术论坛 http://bbs.pa51.cn


⌨️ 快捷键说明

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