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

📄 ds18b20.ls1

📁 usblab usb程序开发实验 一个实例
💻 LS1
📖 第 1 页 / 共 5 页
字号:
  00CD               208     HLTEN   BIT     0C8H.5
  00CF               209     PLLEN   BIT     0C8H.7
  00A7               210     WDCON   DATA    0A7H
  00E3               211     SPDAT   DATA    0E3H
                     212     ?PR?DS18B20_Initial?DS18B20              SEGMENT CODE 
                     213     ?PR?_DS18B20_Write?DS18B20               SEGMENT CODE 
                     214     ?PR?DS18B20_Read?DS18B20                 SEGMENT CODE 
                     215     ?PR?DS18B20_Start?DS18B20                SEGMENT CODE 
                     216     ?PR?DS18B20_WaitDQ?DS18B20               SEGMENT CODE 
                     217     ?PR?DS18B20_ReadTM?DS18B20               SEGMENT CODE 
                     218     ?DT?DS18B20_ReadTM?DS18B20               SEGMENT DATA OVERLAYABLE 
                     219     ?DT?DS18B20          SEGMENT DATA 
                     220             EXTRN   CODE (?C?IMUL)
                     221             PUBLIC  ROM64Bit
                     222             PUBLIC  RealTimeTM
                     223             PUBLIC  RAM9Byte
                     224             PUBLIC  DS18B20_ReadTM
                     225             PUBLIC  DS18B20_WaitDQ
                     226             PUBLIC  DS18B20_Start
                     227             PUBLIC  DS18B20_Read
                     228             PUBLIC  _DS18B20_Write
                     229             PUBLIC  DS18B20_Initial
                     230     
----                 231             RSEG  ?DT?DS18B20_ReadTM?DS18B20
0000                 232     ?DS18B20_ReadTM?BYTE:
0000                 233               j?549:   DS   2
                     234     
----                 235             RSEG  ?DT?DS18B20
0000                 236            RAM9Byte:   DS   9
0009                 237          RealTimeTM:   DS   4
000D                 238            ROM64Bit:   DS   8
                     239     ; #include "hardware.h"
                     240     ; 
                     241     ; UCHAR ROM64Bit[8];
                     242     ; UCHAR RAM9Byte[9];
                     243     ; 
                     244     ; RealTM        RealTimeTM;
                     245     ; 
                     246     ; bit DS18B20_Initial(void)
                     247     
----                 248             RSEG  ?PR?DS18B20_Initial?DS18B20
0000                 249     DS18B20_Initial:
                     250             USING   0
                     251                             ; SOURCE LINE # 8
                     252     ; {
                     253                             ; SOURCE LINE # 9
                     254     ;       UINT    i;
                     255     ; 
                     256     ;       DS18B20_DQ=0;
A51 MACRO ASSEMBLER  DS18B20                                                              08/04/2006 20:17:08 PAGE     5

                     257                             ; SOURCE LINE # 12
0000 C293            258             CLR     DS18B20_DQ
                     259     ;       i=400;
                     260                             ; SOURCE LINE # 13
                     261     ;---- Variable 'i?040' assigned to Register 'R6/R7' ----
0002 7F90            262             MOV     R7,#090H
0004 7E01            263             MOV     R6,#01H
0006                 264     ?C0001:
                     265     ;       while(i--);                             //delay minimum= 480us
                     266                             ; SOURCE LINE # 14
0006 EF              267             MOV     A,R7
0007 1F              268             DEC     R7
0008 AC06            269             MOV     R4,AR6
000A 7001            270             JNZ     ?C0059
000C 1E              271             DEC     R6
000D                 272     ?C0059:
000D 4C              273             ORL     A,R4
000E 70F6            274             JNZ     ?C0001
0010                 275     ?C0002:
                     276     ;       DS18B20_DQ=1;
                     277                             ; SOURCE LINE # 15
0010 D293            278             SETB    DS18B20_DQ
                     279     ;       i=15;
                     280                             ; SOURCE LINE # 16
0012 7E00            281             MOV     R6,#00H
0014 7F0F            282             MOV     R7,#0FH
0016                 283     ?C0003:
                     284     ;       while(i--);                             //delay 15~60us
                     285                             ; SOURCE LINE # 17
0016 EF              286             MOV     A,R7
0017 1F              287             DEC     R7
0018 AC06            288             MOV     R4,AR6
001A 7001            289             JNZ     ?C0060
001C 1E              290             DEC     R6
001D                 291     ?C0060:
001D 4C              292             ORL     A,R4
001E 70F6            293             JNZ     ?C0003
0020                 294     ?C0004:
                     295     ;       i=100;
                     296                             ; SOURCE LINE # 18
0020 7E00            297             MOV     R6,#00H
0022 7F64            298             MOV     R7,#064H
0024                 299     ?C0005:
                     300     ;       while(i--)                              //delay 60~240us
                     301                             ; SOURCE LINE # 19
0024 EF              302             MOV     A,R7
0025 1F              303             DEC     R7
0026 AC06            304             MOV     R4,AR6
0028 7001            305             JNZ     ?C0061
002A 1E              306             DEC     R6
002B                 307     ?C0061:
002B 4C              308             ORL     A,R4
002C 6003            309             JZ      ?C0006
                     310     ;               if(!DS18B20_DQ)
                     311                             ; SOURCE LINE # 20
002E 2093F3          312             JB      DS18B20_DQ,?C0005
                     313     ;                       break;
                     314                             ; SOURCE LINE # 21
0031                 315     ?C0006:
                     316     ;       
                     317     ;       if(i==0xFFFF)
                     318                             ; SOURCE LINE # 23
0031 BEFF05          319             CJNE    R6,#0FFH,?C0008
0034 BFFF02          320             CJNE    R7,#0FFH,?C0008
                     321     ;               return  0;
                     322                             ; SOURCE LINE # 24
A51 MACRO ASSEMBLER  DS18B20                                                              08/04/2006 20:17:08 PAGE     6

0037 C3              323             CLR     C
0038 22              324             RET     
0039                 325     ?C0008:
                     326     ;       i=200;                                  //delay 240us
                     327                             ; SOURCE LINE # 25
0039 7E00            328             MOV     R6,#00H
003B 7FC8            329             MOV     R7,#0C8H
003D                 330     ?C0010:
                     331     ;       while(i--);
                     332                             ; SOURCE LINE # 26
003D EF              333             MOV     A,R7
003E 1F              334             DEC     R7
003F AC06            335             MOV     R4,AR6
0041 7001            336             JNZ     ?C0062
0043 1E              337             DEC     R6
0044                 338     ?C0062:
0044 4C              339             ORL     A,R4
0045 70F6            340             JNZ     ?C0010
0047                 341     ?C0011:
                     342     ;       return  1;
                     343                             ; SOURCE LINE # 27
0047 D3              344             SETB    C
                     345     ; }
                     346                             ; SOURCE LINE # 28
0048                 347     ?C0009:
0048 22              348             RET     
                     349     ; END OF DS18B20_Initial
                     350     
                     351     ; 
                     352     ; void DS18B20_Write(UCHAR Dat)
                     353     
----                 354             RSEG  ?PR?_DS18B20_Write?DS18B20
0000                 355     _DS18B20_Write:
                     356             USING   0
                     357                             ; SOURCE LINE # 30
                     358     ;---- Variable 'Dat?141' assigned to Register 'R7' ----
                     359     ; {
                     360                             ; SOURCE LINE # 31
                     361     ;       UCHAR   i=0;
                     362                             ; SOURCE LINE # 32
                     363     ;---- Variable 'i?142' assigned to Register 'R6' ----
                     364     ;     UCHAR     j;
                     365     ; 
                     366     ;       for(j=1;j<=8;j++)
                     367                             ; SOURCE LINE # 35
                     368     ;---- Variable 'j?143' assigned to Register 'R5' ----
0000 7D01            369             MOV     R5,#01H
0002                 370     ?C0012:
                     371     ;               {
                     372                             ; SOURCE LINE # 36
                     373     ;               if((Dat&0x01)==0x01)
                     374                             ; SOURCE LINE # 37
0002 EF              375             MOV     A,R7
0003 30E014          376             JNB     ACC.0,?C0015
                     377     ;                       {
                     378                             ; SOURCE LINE # 38
                     379     ;                       DS18B20_DQ=0;
                     380                             ; SOURCE LINE # 39
0006 C293            381             CLR     DS18B20_DQ
                     382     ;                       for(i=0;i<5;i++);                       //delay min=1us
                     383                             ; SOURCE LINE # 40
0008 E4              384             CLR     A
0009 FE              385             MOV     R6,A
000A                 386     ?C0016:
000A 0E              387             INC     R6
000B BE05FC          388             CJNE    R6,#05H,?C0016
A51 MACRO ASSEMBLER  DS18B20                                                              08/04/2006 20:17:08 PAGE     7

000E                 389     ?C0017:
                     390     ;                       DS18B20_DQ=1;
                     391                             ; SOURCE LINE # 41
000E D293            392             SETB    DS18B20_DQ
                     393     ;                       i=15;
                     394                             ; SOURCE LINE # 42
0010 7E0F            395             MOV     R6,#0FH
0012                 396     ?C0019:
                     397     ;                       while(i--);                                     //delay max=60us
                     398                             ; SOURCE LINE # 43
0012 AC06            399             MOV     R4,AR6
0014 1E              400             DEC     R6
0015 EC              401             MOV     A,R4
0016 6014            402             JZ      ?C0021
0018 80F8            403             SJMP    ?C0019
                     404     ;                       }
                     405                             ; SOURCE LINE # 44
001A                 406     ?C0015:
                     407     ;               else
                     408     ;                       {
                     409                             ; SOURCE LINE # 46
                     410     ;                       DS18B20_DQ=0;
                     411                             ; SOURCE LINE # 47
001A C293            412             CLR     DS18B20_DQ
                     413     ;                       i=100;                                          //delay min=60us ma
                             x=120us
                     414                             ; SOURCE LINE # 48
001C 7E64            415             MOV     R6,#064H
001E                 416     ?C0022:
                     417     ;                       while(i--);
                     418                             ; SOURCE LINE # 49
001E AC06            419             MOV     R4,AR6
0020 1E              420             DEC     R6
0021 EC              421             MOV     A,R4
0022 70FA            422             JNZ     ?C0022

⌨️ 快捷键说明

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