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

📄 wdj.lst

📁 一个利用ds1820进行温度采集的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
8215 C4              177             SWAP    A
8216 2537            178             ADD     A,TEMPER_NUM
8218 F537            179             MOV     TEMPER_NUM,A ; 保存变换后的温度数据
                     180             
821A 12821E          181             LCALL   BIN_BCD
                     182             
821D 22              183             RET
                     184     
                     185     
                     186     ;-------将16进制的温度数据转换成压缩BCD码
821E                 187     BIN_BCD:
821E 908227          188             MOV     DPTR,#TEMP_TAB
8221 E537            189             MOV     A,TEMPER_NUM
8223 93              190             MOVC    A,@A+DPTR
A51 MACRO ASSEMBLER  WDJ                                                                  01/22/2007 15:43:45 PAGE     4

8224 F537            191             MOV     TEMPER_NUM,A   
8226 22              192             RET
8227                 193     TEMP_TAB:
8227 00010203        194             DB 00H,01H,02H,03H,04H,05H,06H,07H
822B 04050607                
822F 08091011        195             DB 08H,09H,10H,11H,12H,13H,14H,15H
8233 12131415                
8237 16171819        196             DB 16H,17H,18H,19H,20H,21H,22H,23H
823B 20212223                
823F 24252627        197             DB 24H,25H,26H,27H,28H,29H,30H,31H
8243 28293031                
8247 32333435        198             DB 32H,33H,34H,35H,36H,37H,38H,39H
824B 36373839                
824F 40414243        199             DB 40H,41H,42H,43H,44H,45H,46H,47H
8253 44454647                
8257 48495051        200             DB 48H,49H,50H,51H,52H,53H,54H,55H
825B 52535455                
825F 56575859        201             DB 56H,57H,58H,59H,60H,61H,62H,63H
8263 60616263                
8267 64656667        202             DB 64H,65H,66H,67H,68H,69H,70H,71H
826B 68697071                
826F 72737475        203             DB 72H,73H,74H,75H,76H,77H,78H,79H
8273 76777879                
8277 80818283        204             DB 80H,81H,82H,83H,84H,85H,86H,87H
827B 84858687                
827F 88899091        205             DB 88H,89H,90H,91H,92H,93H,94H,95H
8283 92939495                
8287 96979899        206             DB 96H,97H,98H,99H
828B                 207     CIN_BCD:
828B 908294          208             MOV     DPTR,#TEMP_CAB
828E E545            209             MOV     A,TEMPER_SUB
8290 93              210             MOVC    A,@A+DPTR
8291 F545            211             MOV     TEMPER_SUB,A
8293 22              212             RET
8294                 213     TEMP_CAB:
8294 00010203        214             DB 00H,01H,02H,03H,04H,05H,06H,07H
8298 04050607                
829C 08091011        215             DB 08H,09H,10H,11H,12H,13H,14H,15H
82A0 12131415                
82A4 16171819        216             DB 16H,17H,18H,19H,20H,21H,22H,23H
82A8 20212223                
82AC 24252627        217             DB 24H,25H,26H,27H,28H,29H,30H,31H
82B0 28293031                
82B4 32333435        218             DB 32H,33H,34H,35H,36H,37H,38H,39H
82B8 36373839                
82BC 40414243        219             DB 40H,41H,42H,43H,44H,45H,46H,47H
82C0 44454647                
82C4 48495051        220             DB 48H,49H,50H,51H,52H,53H,54H,55H
82C8 52535455                
82CC 56575859        221             DB 56H,57H,58H,59H,60H,61H,62H,63H
82D0 60616263                
82D4 64656667        222             DB 64H,65H,66H,67H,68H,69H,70H,71H
82D8 68697071                
82DC 72737475        223             DB 72H,73H,74H,75H,76H,77H,78H,79H
82E0 76777879                
82E4 80818283        224             DB 80H,81H,82H,83H,84H,85H,86H,87H
82E8 84858687                
82EC 88899091        225             DB 88H,89H,90H,91H,92H,93H,94H,95H
82F0 92939495                
82F4 96979899        226             DB 96H,97H,98H,99H
                     227     ;-------DS18B20初始化程序
82F8                 228     INIT_1820:
82F8 D2B3            229             SETB    DQ
82FA 00              230             NOP
82FB C2B3            231             CLR     DQ
82FD 7880            232             MOV     R0,#80H
A51 MACRO ASSEMBLER  WDJ                                                                  01/22/2007 15:43:45 PAGE     5

82FF D8FE            233     TSR1:   DJNZ    R0,TSR1 ; 延时
8301 D2B3            234             SETB    DQ
8303 7825            235             MOV     R0,#25H ;96US-25H
8305 D8FE            236     TSR2:   DJNZ    R0,TSR2
8307 30B303          237             JNB     DQ,TSR3
830A 028312          238             LJMP    TSR4    ; 延时
830D D200            239     TSR3:   SETB    FLAG1   ; 置标志位,表示DS1820存在
830F 028317          240             LJMP    TSR5
8312 C200            241     TSR4:   CLR     FLAG1   ; 清标志位,表示DS1820不存在
8314 02831B          242             LJMP    TSR7
8317 786B            243     TSR5:   MOV     R0,#06BH ;200US
8319 D8FE            244     TSR6:   DJNZ    R0,TSR6 ; 延时
831B D2B3            245     TSR7:   SETB    DQ
831D 22              246             RET
                     247     
                     248     ;-------重新写DS18B20暂存存储器设定值
831E                 249     RE_CONFIG:
831E 200001          250             JB      FLAG1,RE_CONFIG1 ; 若DS18B20存在,转RE_CONFIG1
8321 22              251             RET
8322                 252     RE_CONFIG1:
8322 74CC            253             MOV     A,#0CCH ; 发SKIP ROM命令
8324 1281C7          254             LCALL   WRITE_1820
8327 744E            255             MOV     A,#4EH ; 发写暂存存储器命令
8329 1281C7          256             LCALL   WRITE_1820
                     257             
832C 7400            258             MOV     A,#00H ; TH(报警上限)中写入00H
832E 1281C7          259             LCALL   WRITE_1820
8331 7400            260             MOV     A,#00H ; TL(报警下限)中写入00H
8333 1281C7          261             LCALL   WRITE_1820
8336 747F            262             MOV     A,#7FH ; 选择12位温度分辨率
8338 1281C7          263             LCALL   WRITE_1820
833B 22              264             RET
                     265     
                     266     ;------------------延时子程序
833C                 267     DELAY:
833C 7F00            268             MOV     R7,#00H
833E DF01            269     MIN:    DJNZ    R7,YS500
8340 22              270             RET
8341 128347          271     YS500:  LCALL   YS500US
8344 02833E          272             LJMP    MIN
8347 7E00            273     YS500US:MOV     R6,#00H
8349 DEFE            274             DJNZ    R6,$
834B 22              275             RET
834C 7F20            276     DELAY1: MOV     R7,#20H
834E DFFE            277             DJNZ    R7,$
8350 22              278             RET
                     279     
                     280     ;$include (VI2C_ASM.INC) ;包含VIIC软件包
                +1   281     ;------------------------------------------------------------------------------------------
                             --------------
                +1   282     ;                 MCS-51单片机模拟I2C软件包(V1.1)
                +1   283     ;    文件名:VI2C_ASM.INC
                +1   284     ;    功能说明:本模拟I2C软件包包含了I2C操作的底层子程序,使用前要定义
                +1   285     ;好SCL和SDA。在标准8051模式(12 Clock)下,对主频要求是不高于12MHz(即1个
                +1   286     ;机器周期1us);若Fosc>12MHz则要增加相应的NOP指令数(总线时序符合I2C标
                +1   287     ;准模式,100Kbit/S)
                +1   288     ;    版本说明:本版新增了两个子程序,IWRNBYTEEXT,IRDNBYTEEXT两个子程序,
                +1   289     ;这两个子程序用于主从通讯上及一此特殊器件的读写操作较为方便.
                +1   290     ;                                         更新时间:2002.06.04
                +1   291     ;------------------------------------------------------------------------------------------
                             --------------
                +1   292     
                +1   293     ;启动I2C总线子程序      
8351 D297       +1   294     START:    SETB  SDA
8353 00         +1   295               NOP
8354 D296       +1   296               SETB  SCL                             ;起始条件建立时间大于4.7us
A51 MACRO ASSEMBLER  WDJ                                                                  01/22/2007 15:43:45 PAGE     6

8356 00         +1   297               NOP
8357 00         +1   298               NOP
8358 00         +1   299               NOP
8359 00         +1   300               NOP
835A 00         +1   301               NOP
835B C297       +1   302               CLR   SDA      
835D 00         +1   303               NOP                                   ;起始条件锁定时大于4us
835E 00         +1   304               NOP
835F 00         +1   305               NOP
8360 00         +1   306               NOP
8361 00         +1   307               NOP
8362 C296       +1   308               CLR   SCL                             ;钳住总线,准备发数据
8364 00         +1   309               NOP
8365 22         +1   310               RET
                +1   311     
                +1   312     ;结束总线子程序
8366 C297       +1   313     STOP:     CLR    SDA
8368 00         +1   314               NOP
8369 D296       +1   315               SETB   SCL                            ;发送结束条件的时钟信号
836B 00         +1   316               NOP                                   ;结束总线时间大于4us
836C 00         +1   317               NOP            
836D 00         +1   318               NOP
836E 00         +1   319               NOP
836F 00         +1   320               NOP
8370 D297       +1   321               SETB  SDA                             ;结束总线
8372 00         +1   322               NOP                                   ;保证一个终止信号和起始信号的空闲时间大于4.7us
8373 00         +1   323               NOP
8374 00         +1   324               NOP
8375 00         +1   325               NOP
8376 22         +1   326               RET
                +1   327     
                +1   328     ;发送应答信号子程序
8377 C297       +1   329     MACK:     CLR   SDA                             ;将SDA置0 
8379 00         +1   330               NOP
837A 00         +1   331               NOP
837B D296       +1   332               SETB  SCL
837D 00         +1   333               NOP                                   ;保持示菔奔洌

⌨️ 快捷键说明

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