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

📄 text1.lst

📁 基于DS18B20的数字温度驱动程序
💻 LST
字号:
A51 MACRO ASSEMBLER  TEXT1                                                                04/18/2008 16:15:40 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN Text1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Text1.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  0022                 1     RTE EQU 22H
  0030                 2     RTG EQU 30H
  0032                 3     RTO EQU 32H
  0035                 4     RSH EQU 35H
  0040                 5     TEMPL EQU 40H;存放温度值低位
  0041                 6     TEMPH EQU 41H;存放温度值高位
  0050                 7     TEMP EQU 50H
0000                   8     ORG 000H
0000 021000            9     LJMP  MAIN
1000                  10     ORG 1000H
1000 758160           11     MAIN:MOV SP,#60H
1003 D290             12          SETB P1.0
1005 121030           13              LCALL RST;调用复位子程序
1008 303222           14              JNB RTO,MA;判断复位是否成功
100B 74CC             15              MOV A,#0CCH;跳过RAM
100D 121056           16              LCALL WRS ;调用写子程序
1010 7444             17              MOV A,#44H;启动温度转换
1012 121056           18              LCALL WRS
1015 121030           19              LCALL RST
1018 74CC             20              MOV A,#0CCH
101A 121056           21              LCALL WRS
101D 74BE             22              MOV A,#0BEH;读内部RAM命令
101F 121056           23              LCALL WRS
1022 00               24              NOP
1023 12106F           25              LCALL RRS
1026 00               26              NOP
1027 121099           27              LCALL WDZ;调用温度转换子程序
102A 1210C7           28              LCALL SMX;调用数码管显示程序
102D 021000           29      MA: LJMP MAIN
                      30     
                      31     
1030 D290             32     RST: SETB P1.0
1032 00               33          NOP 
1033 00               34              NOP 
1034 C290             35              CLR P1.0 ;下拉数据线
1036 12113B           36              LCALL DELAY1;调用延时程序延时540微妙
1039 00               37              NOP
103A D290             38              SETB P1.0;释放数据线
103C 752203           39              MOV RTE,#03H;短暂延时等待
103F D522FD           40     RTD: DJNZ RTE,RTD
1042 309005           41              JNB P1.0,RTH;判断是否收到复位成功信号
1045 C232             42              CLR RTO;复位失败RT0清零
1047 00               43              NOP
1048 1153             44              ACALL RTA
104A D232             45     RTH: SETB RTO ;复位成功RT0置一
104C 00               46          NOP
104D 75305B           47          MOV RTG ,#5BH;短暂延时
1050 D530FD           48     RTT: DJNZ RTG ,RTT
1053 D290             49     RTA: SETB P1.0;使P1.0置一
1055 22               50          RET
                      51     
                      52     
1056 C3               53     WRS: CLR C ;
1057 7C08             54          MOV R4,#8;字节数
1059 00               55          NOP
105A C290             56     W0:      CLR P1.0
105C 7A05             57              MOV R2,#05H
105E DAFE             58     W1:      DJNZ R2, W1
A51 MACRO ASSEMBLER  TEXT1                                                                04/18/2008 16:15:40 PAGE     2

1060 13               59          RRC A ;循环右移
1061 9290             60              MOV P1.0,C     ;将结果送入
1063 00               61              NOP
1064 7B1C             62              MOV R3,#28;延时
1066 DBFE             63     W2:      DJNZ R3,W2
1068 D290             64          SETB P1.0
106A DCEE             65              DJNZ R4,W0;判断送完没
106C D290             66              SETB P1.0
106E 22               67              RET
                      68     
                      69     
106F 7D02             70     RRS:  MOV  R5, #2;字节行数
1071 7840             71           MOV  R0,#40H
1073 7E08             72     RL0     : MOV R6,#8;每行字节数
1075 C3               73     RL1: CLR C 
1076 D290             74              SETB P1.0
1078 00               75              NOP 
1079 00               76              NOP 
107A 00               77              NOP 
107B C290             78              CLR P1.0
107D 753505           79              MOV RSH ,#05H ;延时
1080 D535FD           80     RL2: DJNZ RSH,RL2
1083 00               81          NOP
1084 D290             82              SETB P1.0
1086 00               83              NOP
1087 00               84              NOP
1088 00               85              NOP
1089 A290             86              MOV C,P1.0     ;将P1.0位信息放到C
108B 7A1E             87              MOV R2, #30
108D DAFE             88     RL3: DJNZ R2,RL3
108F 00               89          NOP
1090 00               90              NOP
1091 13               91              RRC A
1092 DEE1             92              DJNZ  R6,RL1;判断送完没
1094 F6               93              MOV @R0,A ;将数据放在TEMPL中
1095 08               94              INC R0    ;TEMPH
1096 DDDB             95              DJNZ R5, RL0;判断整个数据送完没
1098 22               96              RET
                      97     
                      98     
1099 E541             99     WDZ:MOV A,TEMPH
109B 5480            100         ANL A,#80H;判断温度正负
109D 6022            101         JZ  WD2;正温度跳转WD2
109F D291            102             SETB  P1.1;负温度则使P1.1置1
10A1 C3              103             CLR C     ;负温度转换部分
10A2 E540            104         MOV A,TEMPL
10A4 F4              105             CPL A ;取反
10A5 2401            106             ADD  A,#01H;加1
10A7 F540            107             MOV TEMPL,A
10A9 E541            108             MOV A,TEMPH
10AB F4              109             CPL A
10AC 3400            110             ADDC A,#00H
10AE F541            111             MOV TEMPH,A
10B0 E540            112     WD1:MOV A,TEMPL
10B2 54F0            113         ANL A, #0F0H;屏蔽小数位
10B4 C4              114         SWAP A
10B5 F540            115         MOV TEMPL,A
10B7 E541            116         MOV A,TEMPH
10B9 540F            117         ANL A,#0FH  ;屏蔽符号位
10BB C4              118         SWAP A
10BC 4540            119         ORL A,TEMPL
10BE F550            120         MOV TEMP,A  ;将转换后温度置及8字节数据放在TEMP
10C0 22              121         RET
10C1 C291            122     WD2:CLR P1.1 ;使P1.1清零作为正温度标志
10C3 1210B0          123         LCALL WD1 ;转到温度处理部分
10C6 22              124             RET
A51 MACRO ASSEMBLER  TEXT1                                                                04/18/2008 16:15:40 PAGE     3

                     125     
10C7 7D00            126     SMX:MOV R5,#0
10C9 7851            127         MOV R0,#51H
10CB E550            128             MOV A,TEMP
10CD 75F064          129         MOV B,#100 ;百位数据
10D0 84              130             DIV AB
10D1 F551            131             MOV 51H,A;将百位数据放在51H
10D3 85F054          132             MOV 54H,B ;十位数据
10D6 75F00A          133             MOV B,#10
10D9 E554            134             MOV A,54H
10DB 84              135             DIV AB
10DC F552            136             MOV 52H,A ;十位数据送到52H
10DE 85F057          137             MOV 57H,B ;个位数据
10E1 75F001          138             MOV B,#1
10E4 E557            139             MOV A,57H
10E6 84              140             DIV AB
10E7 F553            141             MOV 53H,A ;个位数据放到53H
10E9 85F054          142             MOV 54H,B ;小数位为零放到54H
10EC 901159          143     S1: MOV DPTR,#TABF
10EF ED              144         MOV A,R5
10F0 93              145         MOVC A,@A+DPTR ;查表2
10F1 F5B0            146         MOV P3,A
10F3 90114D          147         MOV DPTR,#TABE
10F6 209126          148             JB P1.1, S3     ;判断温度正负,负温度跳到S3
10F9 E551            149             MOV A,51H
10FB B4000B          150             CJNE A,#0,S7;判断百位是否为零,为零则不显
10FE 75510A          151             MOV 51H,#0AH
1101 E552            152             MOV A,52H;判断十位是否为零,为零不显
1103 B40003          153         CJNE A,#0,S7
1106 75520A          154             MOV 52H,#0AH
1109 E6              155     S7:     MOV A,@R0
110A 93              156     S8:  MOVC A,@A+DPTR;查表1
110B F556            157          MOV 56H,A
110D ED              158              MOV A,R5
110E B40224          159              CJNE A,#2,S4;处理后个位后显示点
1111 E556            160              MOV A,56H
1113 4480            161          ORL A,#80H
1115 F5A0            162     S5:  MOV P2,A
1117 3144            163              ACALL DELAY2
1119 0D              164              INC R5
111A 08              165              INC R0
111B BD04CE          166          CJNE  R5, #4,S1
111E 22              167              RET
111F E552            168     S3:      MOV A,52H;判断温度十位是否为零
1121 B4000A          169          CJNE A,#0,S31;不为零则百位显示—号
1124 75510A          170              MOV 51H,#0AH;直接使负温度百位不显
1127 75520B          171              MOV 52H,#0BH;负温度显示—号
112A 121131          172              LCALL S32
112D 22              173              RET
112E 75510B          174     S31:  MOV  51H,#0BH;使百位显示--号
1131 121109          175     S32:  LCALL S7
1134 22              176               RET
1135 E556            177     S4:       MOV A,56H
1137 121115          178           LCALL S5
113A 22              179               RET
                     180     
113B 780A            181     DELAY1:MOV R0,#10
113D 7919            182     DE1:   MOV R1,#25
113F D9FE            183     DE2:   DJNZ R1,DE2
1141 D8FA            184                DJNZ R0,     DE1
1143 22              185                RET
                     186     
1144 7F32            187     DELAY2:MOV R7,#50
1146 7E64            188     DE3:   MOV R6,#100
1148 DEFE            189     DE4:   DJNZ R6,DE4
114A DFFA            190            DJNZ R7,DE3
A51 MACRO ASSEMBLER  TEXT1                                                                04/18/2008 16:15:40 PAGE     4

114C 22              191                RET
114D 3F065B4F        192     TABE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H
1151 666D7D07                
1155 7F6F0040                
                     193             ;0 ,1,2,3,4,5,6,7,8,9,消零,--
1159 FEFDFBF7        194     TABF:DB 0FEH,0FDH,0FBH,0F7H
                     195             ;百位,十位,个位,小位
                     196                     END
                             
A51 MACRO ASSEMBLER  TEXT1                                                                04/18/2008 16:15:40 PAGE     5

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


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

B. . . . . . . . .  D ADDR   00F0H   A   
DE1. . . . . . . .  C ADDR   113DH   A   
DE2. . . . . . . .  C ADDR   113FH   A   
DE3. . . . . . . .  C ADDR   1146H   A   
DE4. . . . . . . .  C ADDR   1148H   A   
DELAY1 . . . . . .  C ADDR   113BH   A   
DELAY2 . . . . . .  C ADDR   1144H   A   
MA . . . . . . . .  C ADDR   102DH   A   
MAIN . . . . . . .  C ADDR   1000H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RL0. . . . . . . .  C ADDR   1073H   A   
RL1. . . . . . . .  C ADDR   1075H   A   
RL2. . . . . . . .  C ADDR   1080H   A   
RL3. . . . . . . .  C ADDR   108DH   A   
RRS. . . . . . . .  C ADDR   106FH   A   
RSH. . . . . . . .  N NUMB   0035H   A   
RST. . . . . . . .  C ADDR   1030H   A   
RTA. . . . . . . .  C ADDR   1053H   A   
RTD. . . . . . . .  C ADDR   103FH   A   
RTE. . . . . . . .  N NUMB   0022H   A   
RTG. . . . . . . .  N NUMB   0030H   A   
RTH. . . . . . . .  C ADDR   104AH   A   
RTO. . . . . . . .  N NUMB   0032H   A   
RTT. . . . . . . .  C ADDR   1050H   A   
S1 . . . . . . . .  C ADDR   10ECH   A   
S3 . . . . . . . .  C ADDR   111FH   A   
S31. . . . . . . .  C ADDR   112EH   A   
S32. . . . . . . .  C ADDR   1131H   A   
S4 . . . . . . . .  C ADDR   1135H   A   
S5 . . . . . . . .  C ADDR   1115H   A   
S7 . . . . . . . .  C ADDR   1109H   A   
S8 . . . . . . . .  C ADDR   110AH   A   
SMX. . . . . . . .  C ADDR   10C7H   A   
SP . . . . . . . .  D ADDR   0081H   A   
TABE . . . . . . .  C ADDR   114DH   A   
TABF . . . . . . .  C ADDR   1159H   A   
TEMP . . . . . . .  N NUMB   0050H   A   
TEMPH. . . . . . .  N NUMB   0041H   A   
TEMPL. . . . . . .  N NUMB   0040H   A   
W0 . . . . . . . .  C ADDR   105AH   A   
W1 . . . . . . . .  C ADDR   105EH   A   
W2 . . . . . . . .  C ADDR   1066H   A   
WD1. . . . . . . .  C ADDR   10B0H   A   
WD2. . . . . . . .  C ADDR   10C1H   A   
WDZ. . . . . . . .  C ADDR   1099H   A   
WRS. . . . . . . .  C ADDR   1056H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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