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

📄 18bb20.ls1

📁 刚通过的1820温度显示程序
💻 LS1
字号:
A51 MACRO ASSEMBLER  18BB20                                                               04/19/2008 15:24:00 PAGE     1


MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN 18bb20.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 18bb20.src PR(.\18bb20.ls1) EP DEBUG

LOC  OBJ            LINE     SOURCE

                       1     ; .\18bb20.SRC generated from: .\18bb20.c
                       2     
                       3     $nomod51 
                       4     
                       5     NAME    _18BB20
                       6     
  0080                 7     P0      DATA    080H
  0090                 8     P1      DATA    090H
  00A0                 9     P2      DATA    0A0H
  00B0                10     P3      DATA    0B0H
  00B4                11     T0      BIT     0B0H.4
  00D6                12     AC      BIT     0D0H.6
  00B5                13     T1      BIT     0B0H.5
  0090                14     T2      BIT     090H.0
  00AF                15     EA      BIT     0A8H.7
  00A8                16     IE      DATA    0A8H
  0083                17     DQ      BIT     080H.3
  00CE                18     EXF2    BIT     0C8H.6
  00B7                19     RD      BIT     0B0H.7
  00AC                20     ES      BIT     0A8H.4
  00B8                21     IP      DATA    0B8H
  0098                22     RI      BIT     098H.0
  00B2                23     INT0    BIT     0B0H.2
  00D7                24     CY      BIT     0D0H.7
  0099                25     TI      BIT     098H.1
  00B3                26     INT1    BIT     0B0H.3
  00CB                27     RCAP2H  DATA    0CBH
  00BC                28     PS      BIT     0B8H.4
  0081                29     SP      DATA    081H
  0091                30     T2EX    BIT     090H.1
  00D2                31     OV      BIT     0D0H.2
  00CA                32     RCAP2L  DATA    0CAH
  00C9                33     C_T2    BIT     0C8H.1
  00B6                34     WR      BIT     0B0H.6
  00CD                35     RCLK    BIT     0C8H.5
  00CC                36     TCLK    BIT     0C8H.4
  0099                37     SBUF    DATA    099H
  0087                38     PCON    DATA    087H
  0098                39     SCON    DATA    098H
  0089                40     TMOD    DATA    089H
  0088                41     TCON    DATA    088H
  0089                42     IE0     BIT     088H.1
  008B                43     IE1     BIT     088H.3
  00F0                44     B       DATA    0F0H
  00C8                45     CP_RL2  BIT     0C8H.0
  00E0                46     ACC     DATA    0E0H
  00A9                47     ET0     BIT     0A8H.1
  00AB                48     ET1     BIT     0A8H.3
  008D                49     TF0     BIT     088H.5
  00AD                50     ET2     BIT     0A8H.5
  008F                51     TF1     BIT     088H.7
  00CF                52     TF2     BIT     0C8H.7
  009A                53     RB8     BIT     098H.2
  008C                54     TH0     DATA    08CH
  00A8                55     EX0     BIT     0A8H.0
  0088                56     IT0     BIT     088H.0
  008D                57     TH1     DATA    08DH
  009B                58     TB8     BIT     098H.3
A51 MACRO ASSEMBLER  18BB20                                                               04/19/2008 15:24:00 PAGE     2

  00AA                59     EX1     BIT     0A8H.2
  008A                60     IT1     BIT     088H.2
  00CD                61     TH2     DATA    0CDH
  00D0                62     P       BIT     0D0H.0
  009F                63     SM0     BIT     098H.7
  008A                64     TL0     DATA    08AH
  009E                65     SM1     BIT     098H.6
  008B                66     TL1     DATA    08BH
  009D                67     SM2     BIT     098H.5
  00CC                68     TL2     DATA    0CCH
  00B9                69     PT0     BIT     0B8H.1
  00BB                70     PT1     BIT     0B8H.3
  00D3                71     RS0     BIT     0D0H.3
  00BD                72     PT2     BIT     0B8H.5
  008C                73     TR0     BIT     088H.4
  00D4                74     RS1     BIT     0D0H.4
  008E                75     TR1     BIT     088H.6
  00CA                76     TR2     BIT     0C8H.2
  00B8                77     PX0     BIT     0B8H.0
  00BA                78     PX1     BIT     0B8H.2
  0083                79     DPH     DATA    083H
  0082                80     DPL     DATA    082H
  00CB                81     EXEN2   BIT     0C8H.3
  009C                82     REN     BIT     098H.4
  00C8                83     T2CON   DATA    0C8H
  00B0                84     RXD     BIT     0B0H.0
  00B1                85     TXD     BIT     0B0H.1
  00D5                86     F0      BIT     0D0H.5
  00D0                87     PSW     DATA    0D0H
                      88     ?PR?_delay?18BB20    SEGMENT CODE 
                      89     ?PR?reset?18BB20     SEGMENT CODE 
                      90     ?BI?reset?18BB20     SEGMENT BIT OVERLAYABLE 
                      91     ?PR?read_byte?18BB20 SEGMENT CODE 
                      92     ?PR?_write_byte?18BB20                   SEGMENT CODE 
                      93     ?PR?get_temperature?18BB20               SEGMENT CODE 
                      94     ?PR?main?18BB20      SEGMENT CODE 
                      95     ?BI?18BB20           SEGMENT BIT 
                      96             EXTRN   DATA (table)
                      97             EXTRN   CODE (?C_STARTUP)
                      98             PUBLIC  flag
                      99             PUBLIC  main
                     100             PUBLIC  get_temperature
                     101             PUBLIC  _write_byte
                     102             PUBLIC  read_byte
                     103             PUBLIC  reset
                     104             PUBLIC  _delay
                     105     
----                 106             RSEG  ?BI?18BB20
0000                 107     ?_write_byte?BYTE:
0000                 108                flag:   DBIT   1
                     109     ; 
                     110     ; 
                     111     ; #include "intrins.h"
                     112     ; #include "reg52.h"
                     113     ; //#include "stdio.h"
                     114     ; sbit DQ = P0^3;
                     115     ; #define uchar unsigned char
                     116     ; #define uint  unsigned int
                     117     ; 
                     118     ; bit flag;
                     119     ; 
                     120     ; 
                     121     ; 
                     122     ; 
                     123     ; 
                     124     ; uchar table[];
A51 MACRO ASSEMBLER  18BB20                                                               04/19/2008 15:24:00 PAGE     3

                     125     ; void delay(uint x);
                     126     ; bit reset(void);
                     127     ; uchar read_byte(void);
                     128     ; void write_byte(uchar val);
                     129     ; 
                     130     ; 
                     131     ; 
                     132     ; 
                     133     ; 
                     134     ; void delay(uint x)   ////when crystal is 12M ,a*2+5 us  ,子程序调用要5us,while 就等于DJNZ
                             指令
                     135     
----                 136             RSEG  ?PR?_delay?18BB20
0000                 137     _delay:
                     138             USING   0
                     139     ;---- Variable 'x?040' assigned to Register 'R6/R7' ----
                     140                             ; SOURCE LINE # 26
                     141     ; { 
                     142                             ; SOURCE LINE # 27
0000                 143     ?C0001:
                     144     ; while (x--);
                     145                             ; SOURCE LINE # 28
0000 EF              146             MOV     A,R7
0001 1F              147             DEC     R7
0002 AC06            148             MOV     R4,AR6
0004 7001            149             JNZ     ?C0022
0006 1E              150             DEC     R6
0007                 151     ?C0022:
0007 4C              152             ORL     A,R4
0008 70F6            153             JNZ     ?C0001
                     154     ; }
                     155                             ; SOURCE LINE # 29
000A                 156     ?C0003:
000A 22              157             RET     
                     158     ; END OF _delay
                     159     
                     160     ; 
                     161     ; 
                     162     ; bit reset(void)                //初始化18B20 
                     163     
----                 164             RSEG  ?PR?reset?18BB20
0000                 165     reset:
                     166             USING   0
                     167                             ; SOURCE LINE # 32
                     168     ; { 
                     169                             ; SOURCE LINE # 33
                     170     ;     bit presence=0;      //定义一个应答信号     
                     171                             ; SOURCE LINE # 34
0000                 172             CLR     presence?141
*** _________________________________________^
*** ERROR #A45 IN 172 (18bb20.src, LINE 172): UNDEFINED SYMBOL (PASS-2)
                     173     ;     DQ=1; 
                     174                             ; SOURCE LINE # 35
0002 D283            175             SETB    DQ
                     176     ;        DQ=0;
                     177                             ; SOURCE LINE # 36
0004 C283            178             CLR     DQ
                     179     ;      delay(80);                 //置总线为低电平并保持至少480us       
                     180                             ; SOURCE LINE # 37
0006 7F50            181             MOV     R7,#050H
0008 7E00            182             MOV     R6,#00H
000A 120000   F      183             LCALL   _delay
                     184     ;     DQ=1;                //等电阻拉高总线并保持15-60us 
                     185                             ; SOURCE LINE # 38
000D D283            186             SETB    DQ
                     187     ;    delay(5);     
A51 MACRO ASSEMBLER  18BB20                                                               04/19/2008 15:24:00 PAGE     4

                     188                             ; SOURCE LINE # 39
000F 7F05            189             MOV     R7,#05H
0011 7E00            190             MOV     R6,#00H
0013 120000   F      191             LCALL   _delay
                     192     ;     presence=DQ;              //接受应答信号 
                     193                             ; SOURCE LINE # 40
0016 A283            194             MOV     C,DQ
0018                 195             MOV     presence?141,C
*** _________________________________________^
*** ERROR #A45 IN 195 (18bb20.src, LINE 195): UNDEFINED SYMBOL (PASS-2)
                     196     ;    delay(13);                           //延时60-240us  
                     197                             ; SOURCE LINE # 41
001A 7F0D            198             MOV     R7,#0DH
001C 7E00            199             MOV     R6,#00H
001E 120000   F      200             LCALL   _delay
                     201     ;     return(presence);         //返回应答信号 
                     202                             ; SOURCE LINE # 42
0021                 203             MOV     C,presence?141
*** ___________________________________________^
*** ERROR #A45 IN 203 (18bb20.src, LINE 203): UNDEFINED SYMBOL (PASS-2)
                     204     ; } 
                     205                             ; SOURCE LINE # 43
0023                 206     ?C0004:
0023 22              207             RET     
                     208     ; END OF reset
                     209     
                     210     ; 
                     211     ; /* 从DS18B20读出1个字节 */
                     212     ; uchar read_byte(void)        //从18b20读一个字节.返回读到的内容
                     213     
----                 214             RSEG  ?PR?read_byte?18BB20
0000                 215     read_byte:
                     216             USING   0
                     217                             ; SOURCE LINE # 46
                     218     ; {
                     219                             ; SOURCE LINE # 47
                     220     ;     uchar i,j;
                     221     ;     j=0;                              
                     222                             ; SOURCE LINE # 49
                     223     ;---- Variable 'j?243' assigned to Register 'R5' ----
0000 E4              224             CLR     A
0001 FD              225             MOV     R5,A
                     226     ;     for(i=0;i<8;i++)
                     227                             ; SOURCE LINE # 50
                     228     ;---- Variable 'i?242' assigned to Register 'R3' ----
0002 FB              229             MOV     R3,A
0003                 230     ?C0005:
                     231     ;      {
                     232                             ; SOURCE LINE # 51
                     233     ;         j=j>>1;
                     234                             ; SOURCE LINE # 52
0003 ED              235             MOV     A,R5
0004 C3              236             CLR     C
0005 13              237             RRC     A
0006 FD              238             MOV     R5,A
                     239     ;         DQ=0;
                     240                             ; SOURCE LINE # 53
0007 C283            241             CLR     DQ
                     242     ;         _nop_();                      //要求>1us,但又不能超

⌨️ 快捷键说明

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