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

📄 ds18b20.ls1

📁 usblab usb程序开发实验 一个实例
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0024                 423     ?C0023:
                     424     ;                       DS18B20_DQ=1;
                     425                             ; SOURCE LINE # 50
0024 D293            426             SETB    DS18B20_DQ
                     427     ;                       for(i=0;i<5;i++);                       //delay min=1us
                     428                             ; SOURCE LINE # 51
0026 E4              429             CLR     A
0027 FE              430             MOV     R6,A
0028                 431     ?C0024:
0028 0E              432             INC     R6
0029 BE05FC          433             CJNE    R6,#05H,?C0024
                     434     ;                       }
                     435                             ; SOURCE LINE # 52
002C                 436     ?C0021:
                     437     ;               Dat>>=1;
                     438                             ; SOURCE LINE # 53
002C EF              439             MOV     A,R7
002D C3              440             CLR     C
002E 13              441             RRC     A
002F FF              442             MOV     R7,A
                     443     ;               }    
                     444                             ; SOURCE LINE # 54
0030 0D              445             INC     R5
0031 BD09CE          446             CJNE    R5,#09H,?C0012
                     447     ; }
                     448                             ; SOURCE LINE # 55
0034                 449     ?C0027:
0034 22              450             RET     
                     451     ; END OF _DS18B20_Write
                     452     
                     453     ; 
A51 MACRO ASSEMBLER  DS18B20                                                              08/04/2006 20:17:08 PAGE     8

                     454     ; UCHAR DS18B20_Read(void)
                     455     
----                 456             RSEG  ?PR?DS18B20_Read?DS18B20
0000                 457     DS18B20_Read:
                     458             USING   0
                     459                             ; SOURCE LINE # 57
                     460     ; {
                     461                             ; SOURCE LINE # 58
                     462     ;       UCHAR   i,j;
                     463     ;       UCHAR   Dat;
                     464     ; 
                     465     ;       Dat=0;
                     466                             ; SOURCE LINE # 62
                     467     ;---- Variable 'Dat?246' assigned to Register 'R7' ----
0000 E4              468             CLR     A
0001 FF              469             MOV     R7,A
                     470     ;       for(i=0;i<8;i++)
                     471                             ; SOURCE LINE # 63
                     472     ;---- Variable 'i?244' assigned to Register 'R6' ----
0002 FE              473             MOV     R6,A
0003                 474     ?C0028:
                     475     ;               {
                     476                             ; SOURCE LINE # 64
                     477     ;               DS18B20_DQ=0;
                     478                             ; SOURCE LINE # 65
0003 C293            479             CLR     DS18B20_DQ
                     480     ;               for(j=0;j<5;j++);                       //delay min=1us
                     481                             ; SOURCE LINE # 66
                     482     ;---- Variable 'j?245' assigned to Register 'R5' ----
0005 E4              483             CLR     A
0006 FD              484             MOV     R5,A
0007                 485     ?C0031:
0007 0D              486             INC     R5
0008 BD05FC          487             CJNE    R5,#05H,?C0031
000B                 488     ?C0032:
                     489     ;               DS18B20_DQ=1;
                     490                             ; SOURCE LINE # 67
000B D293            491             SETB    DS18B20_DQ
                     492     ;               for(j=0;j<5;j++);                       //delay 2us~10us
                     493                             ; SOURCE LINE # 68
000D E4              494             CLR     A
000E FD              495             MOV     R5,A
000F                 496     ?C0034:
000F 0D              497             INC     R5
0010 BD05FC          498             CJNE    R5,#05H,?C0034
0013                 499     ?C0035:
                     500     ;               if(DS18B20_DQ)
                     501                             ; SOURCE LINE # 69
0013 30930D          502             JNB     DS18B20_DQ,?C0037
                     503     ;                       Dat+=1<<i;
                     504                             ; SOURCE LINE # 70
0016 7401            505             MOV     A,#01H
0018 A806            506             MOV     R0,AR6
001A 08              507             INC     R0
001B 8002            508             SJMP    ?C0064
001D                 509     ?C0063:
001D C3              510             CLR     C
001E 33              511             RLC     A
001F                 512     ?C0064:
001F D8FC            513             DJNZ    R0,?C0063
0021 2F              514             ADD     A,R7
0022 FF              515             MOV     R7,A
0023                 516     ?C0037:
                     517     ;               j=90;
                     518                             ; SOURCE LINE # 71
0023 7D5A            519             MOV     R5,#05AH
A51 MACRO ASSEMBLER  DS18B20                                                              08/04/2006 20:17:08 PAGE     9

0025                 520     ?C0038:
                     521     ;               while(j--);                                     //delay min=45us
                     522                             ; SOURCE LINE # 72
0025 AC05            523             MOV     R4,AR5
0027 1D              524             DEC     R5
0028 EC              525             MOV     A,R4
0029 70FA            526             JNZ     ?C0038
                     527     ;               }
                     528                             ; SOURCE LINE # 73
002B                 529     ?C0030:
002B 0E              530             INC     R6
002C BE08D4          531             CJNE    R6,#08H,?C0028
002F                 532     ?C0029:
                     533     ;       return  Dat;
                     534                             ; SOURCE LINE # 74
                     535     ; }
                     536                             ; SOURCE LINE # 75
002F                 537     ?C0040:
002F 22              538             RET     
                     539     ; END OF DS18B20_Read
                     540     
                     541     ; 
                     542     ; UCHAR DS18B20_Start(void)
                     543     
----                 544             RSEG  ?PR?DS18B20_Start?DS18B20
0000                 545     DS18B20_Start:
                     546             USING   0
                     547                             ; SOURCE LINE # 77
                     548     ; {
                     549                             ; SOURCE LINE # 78
                     550     ;       UCHAR   i;
                     551     ; 
                     552     ;       if(!DS18B20_Initial())
                     553                             ; SOURCE LINE # 81
0000 120000   F      554             LCALL   DS18B20_Initial
0003 4003            555             JC      ?C0041
                     556     ;               return  0;
                     557                             ; SOURCE LINE # 82
0005 7F00            558             MOV     R7,#00H
0007 22              559             RET     
0008                 560     ?C0041:
                     561     ;       
                     562     ;       DS18B20_Write(0x33);    //read rom code 64bit
                     563                             ; SOURCE LINE # 84
0008 7F33            564             MOV     R7,#033H
000A 120000   F      565             LCALL   _DS18B20_Write
                     566     ; 
                     567     ;       for(i=0;i<8;i++)
                     568                             ; SOURCE LINE # 86
                     569     ;---- Variable 'i?347' assigned to Register 'R3' ----
000D E4              570             CLR     A
000E FB              571             MOV     R3,A
000F                 572     ?C0043:
                     573     ;               ROM64Bit[i]=DS18B20_Read();
                     574                             ; SOURCE LINE # 87
000F 120000   F      575             LCALL   DS18B20_Read
0012 7400     F      576             MOV     A,#LOW (ROM64Bit)
0014 2B              577             ADD     A,R3
0015 F8              578             MOV     R0,A
0016 A607            579             MOV     @R0,AR7
0018 0B              580             INC     R3
0019 BB08F3          581             CJNE    R3,#08H,?C0043
001C                 582     ?C0044:
                     583     ; 
                     584     ;       DS18B20_Write(0x44);    //start convert temprature
                     585                             ; SOURCE LINE # 89
A51 MACRO ASSEMBLER  DS18B20                                                              08/04/2006 20:17:08 PAGE    10

001C 7F44            586             MOV     R7,#044H
001E 120000   F      587             LCALL   _DS18B20_Write
                     588     ; 
                     589     ;       
                     590     ;       return  1;
                     591                             ; SOURCE LINE # 92
0021 7F01            592             MOV     R7,#01H
                     593     ; }
                     594                             ; SOURCE LINE # 93
0023                 595     ?C0042:
0023 22              596             RET     
                     597     ; END OF DS18B20_Start
                     598     
                     599     ; 
                     600     ; void  DS18B20_WaitDQ(void)
                     601     
----                 602             RSEG  ?PR?DS18B20_WaitDQ?DS18B20
0000                 603     DS18B20_WaitDQ:
                     604                             ; SOURCE LINE # 95
                     605     ; {
                     606                             ; SOURCE LINE # 96
0000                 607     ?C0046:
                     608     ;       while(!DS18B20_DQ);
                     609                             ; SOURCE LINE # 97
0000 3093FD          610             JNB     DS18B20_DQ,?C0046
                     611     ; }
                     612                             ; SOURCE LINE # 98
0003                 613     ?C0048:
0003 22              614             RET     
                     615     ; END OF DS18B20_WaitDQ
                     616     
                     617     ; 
                     618     ; void  DS18B20_ReadTM(void)
                     619     
----                 620             RSEG  ?PR?DS18B20_ReadTM?DS18B20
0000                 621     DS18B20_ReadTM:
                     622             USING   0
                     623                             ; SOURCE LINE # 100
                     624     ; {
                     625                             ; SOURCE LINE # 101
                     626     ;       UCHAR   i;
                     627     ;       UINT    j;
                     628     ; 
                     629     ;       DS18B20_Initial();
                     630                             ; SOURCE LINE # 105
0000 120000   F      631             LCALL   DS18B20_Initial
                     632     ;       
                     633     ;       DS18B20_Write(0x33);    //read rom code 64bit
                     634                             ; SOURCE LINE # 107
0003 7F33            635             MOV     R7,#033H
0005 120000   F      636             LCALL   _DS18B20_Write
                     637     ; 
                     638     ;       for(i=0;i<8;i++)

⌨️ 快捷键说明

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