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

📄 ds18b20.lst

📁 自己学习PIC单片机时改写的DS18b20程序
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234                            Thu Apr 16 11:21:36 2009

Licensed to: SHAN
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z01234RS_,global,delta=1
     4                           	psect	rdata_0,global,class=BANK0,space=1,delta
      +                          =1
     5                           	psect	idata_0,global,class=CODE,delta=2
     6                           	psect	strings,global,class=STRING,delta=2
     7                           	psect	const1,local,class=CONST,delta=2
     8                           	psect	text2,local,class=CODE,delta=2
     9                           	psect	text4,local,class=CODE,delta=2
    10                           	psect	text5,local,class=CODE,delta=2
    11                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    12                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23                           
    24                           	psect	__Z01234RS_
    25  0190                     
    26  0190                     
    27                           
    28                           	psect	rdata_0
    29  0031                     _temp_data
    30  0031                     	ds	1
    31  0032                     	ds	1
    32  0033                     _display
    33  0033                     	ds	1
    34  0034                     	ds	1
    35  0035                     	ds	1
    36  0036                     	ds	1
    37  0037                     	ds	1
    38                           
    39                           	psect	idata_0
    40  07F9  3400               	retlw	0
    41  07FA  3400               	retlw	0
    42  07FB  3400               	retlw	0
    43  07FC  3400               	retlw	0
    44  07FD  3400               	retlw	0
    45  07FE  3400               	retlw	0
    46  07FF  3400               	retlw	0
    47                           
    48                           	psect	const1
    49  0055  0782               	addwf	2
    50  0056                     _ditab
    51  0056  3400               	retlw	0
    52  0057  3406               	retlw	6
    53  0058  340D               	retlw	13
    54  0059  3412               	retlw	18
    55  005A  3419               	retlw	25
    56  005B  341F               	retlw	31
    57  005C  3426               	retlw	38
    58  005D  342C               	retlw	44
    59  005E  3432               	retlw	50
    60  005F  3438               	retlw	56
    61  0060  343F               	retlw	63
    62  0061  3445               	retlw	69
    63  0062  344B               	retlw	75
    64  0063  3451               	retlw	81
    65  0064  3458               	retlw	88
    66  0065  345E               	retlw	94
    67                           
    68                           	psect	text2
    69                           ;DS18B20.c: 52: unsigned char DS18B20_READ_BYTE
      +                          (void)
    70                           ;DS18B20.c: 53: {
    71  0695                     _DS18B20_READ_BYTE
    72                           ;	_i assigned to ?a_DS18B20_READ_BYTE+0
    73  0000                     _DS18B20_READ_BYTE$i	set	?a_DS18B20_READ_BYTE
    74                           ;	_value assigned to ?a_DS18B20_READ_BYTE+1
    75  0000                     _DS18B20_READ_BYTE$value	set	?a_DS18B20_READ_BY
      +                          TE+1
    76                           ;	__dcnt assigned to ?a_DS18B20_READ_BYTE+2
    77  0000                     _DS18B20_READ_BYTE$_dcnt	set	?a_DS18B20_READ_BY
      +                          TE+2
    78                           ;DS18B20.c: 54: unsigned char i;
    79  0695  0183               	clrf	3	;select bank 0
    80  0696  01A7               	clrf	?a_DS18B20_READ_BYTE+1
    81                           ;DS18B20.c: 56: for (i=8;i>0;i--)
    82  0697  3008               	movlw	8
    83  0698  00A6               	movwf	?a_DS18B20_READ_BYTE
    84  0699                     l30
    85                           ;DS18B20.c: 57: {
    86                           ;DS18B20.c: 58: TRISC1=1;asm("nop");asm("nop");
    87  0699  1683               	bsf	3,5
    88  069A  1487               	bsf	7,1
    89  069B  0000               	nop	;#
    90  069C  0000               	nop	;#
    91                           ;DS18B20.c: 59: value>>=1;
    92  069D  1003               	bcf	3,0
    93  069E  1283               	bcf	3,5
    94  069F  0CA7               	rrf	?a_DS18B20_READ_BYTE+1
    95                           ;DS18B20.c: 60: TRISC1=0;RC1=0;
    96  06A0  1683               	bsf	3,5
    97  06A1  1087               	bcf	7,1
    98  06A2  1283               	bcf	3,5
    99  06A3  1087               	bcf	7,1
   100                           ;DS18B20.c: 61: asm("nop");asm("nop");asm("nop"
      +                          );asm("nop");
   101  06A4  0000               	nop	;#
   102  06A5  0000               	nop	;#
   103  06A6  0000               	nop	;#
   104  06A7  0000               	nop	;#
   105                           ;DS18B20.c: 62: TRISC1=1;asm("nop");asm("nop");
      +                          asm("nop");asm("nop");
   106  06A8  1683               	bsf	3,5
   107  06A9  1487               	bsf	7,1
   108  06AA  0000               	nop	;#
   109  06AB  0000               	nop	;#
   110  06AC  0000               	nop	;#
   111  06AD  0000               	nop	;#
   112                           ;DS18B20.c: 63: if(RC1)value|=0x80;
   113  06AE  1283               	bcf	3,5
   114  06AF  1887               	btfsc	7,1
   115  06B0  17A7               	bsf	?a_DS18B20_READ_BYTE+1,7
   116                           ;DS18B20.c: 64: { unsigned char _dcnt; _dcnt = 
      +                          (65)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
      +                           0) continue; };
   117  06B1  3015               	movlw	21
   118  06B2  00A8               	movwf	?a_DS18B20_READ_BYTE+2
   119  06B3                     l35
   120  06B3  0BA8               	decfsz	?a_DS18B20_READ_BYTE+2
   121  06B4  2EB3               	goto	l35
   122                           ;DS18B20.c: 65: }
   123  06B5  0BA6               	decfsz	?a_DS18B20_READ_BYTE
   124  06B6  2E99               	goto	l30
   125                           ;DS18B20.c: 66: TRISC1=1;
   126  06B7  1683               	bsf	3,5
   127  06B8  1487               	bsf	7,1
   128                           ;DS18B20.c: 67: return(value);
   129  06B9  1283               	bcf	3,5
   130  06BA  0827               	movf	?a_DS18B20_READ_BYTE+1,w
   131                           ;DS18B20.c: 68: }
   132  06BB  0008               	return
   133                           ;DS18B20.c: 35: void DS18B20_WRITE_BYTE(unsigne
      +                          d char val)
   134                           ;DS18B20.c: 36: {
   135  06BC                     _DS18B20_WRITE_BYTE
   136                           ;	_val assigned to ?a_DS18B20_WRITE_BYTE+0
   137  0000                     _DS18B20_WRITE_BYTE$val	set	?a_DS18B20_WRITE_BY
      +                          TE
   138                           ;	_i assigned to ?a_DS18B20_WRITE_BYTE+1
   139  0000                     _DS18B20_WRITE_BYTE$i	set	?a_DS18B20_WRITE_BYTE
      +                          +1
   140                           ;	__dcnt assigned to ?a_DS18B20_WRITE_BYTE+2
   141  0000                     _DS18B20_WRITE_BYTE$_dcnt	set	?a_DS18B20_WRITE_
      +                          BYTE+2
   142                           ;	__dcnt assigned to ?a_DS18B20_WRITE_BYTE+2
   143  0000                     _DS18B20_WRITE_BYTE$_dcnt	set	?a_DS18B20_WRITE_
      +                          BYTE+2
   144                           ;_val stored from w
   145  06BC  0183               	clrf	3	;select bank 0
   146  06BD  00A6               	movwf	?a_DS18B20_WRITE_BYTE
   147                           ;DS18B20.c: 37: unsigned char i;
   148  06BE  3008               	movlw	8
   149  06BF  00A7               	movwf	?a_DS18B20_WRITE_BYTE+1
   150                           ;DS18B20.c: 39: {
   151                           ;DS18B20.c: 40: TRISC1=1;asm("nop");asm("nop");
   152  06C0  1683               	bsf	3,5
   153  06C1  1487               	bsf	7,1
   154  06C2                     L1
   155  06C2  0000               	nop	;#
   156  06C3  0000               	nop	;#
   157                           ;DS18B20.c: 41: TRISC1=0;RC1=0;asm("nop");asm("
      +                          nop");asm("nop");asm("nop");asm("nop");
   158  06C4  1087               	bcf	7,1
   159  06C5  1283               	bcf	3,5
   160  06C6  1087               	bcf	7,1
   161  06C7  0000               	nop	;#
   162  06C8  0000               	nop	;#
   163  06C9  0000               	nop	;#
   164  06CA  0000               	nop	;#
   165  06CB  0000               	nop	;#
   166                           ;DS18B20.c: 42: RC1 = val&0x01;
   167  06CC  0C26               	rrf	?a_DS18B20_WRITE_BYTE,w
   168  06CD  1C03               	btfss	3,0
   169  06CE  2ED1               	goto	u70
   170  06CF  1487               	bsf	7,1
   171  06D0  2ED2               	goto	u84
   172  06D1                     u70
   173  06D1  1087               	bcf	7,1
   174  06D2                     u84
   175                           ;DS18B20.c: 43: { unsigned char _dcnt; _dcnt = 
      +                          (65)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
      +                           0) continue; };
   176  06D2  3015               	movlw	21
   177  06D3  1283               	bcf	3,5
   178  06D4  1303               	bcf	3,6	;carry unused
   179  06D5  00A8               	movwf	?a_DS18B20_WRITE_BYTE+2
   180  06D6                     l24
   181  06D6  0BA8               	decfsz	?a_DS18B20_WRITE_BYTE+2
   182  06D7  2ED6               	goto	l24
   183                           ;DS18B20.c: 44: val=val/2;
   184  06D8  1003               	bcf	3,0
   185  06D9  0CA6               	rrf	?a_DS18B20_WRITE_BYTE
   186                           ;DS18B20.c: 45: }
   187  06DA  03A7               	decf	?a_DS18B20_WRITE_BYTE+1
   188                           ;DS18B20.c: 46: TRISC1=1;
   189  06DB  1683               	bsf	3,5
   190  06DC  1487               	bsf	7,1
   191  06DD  1D03               	btfss	3,2
   192  06DE  2EC2               	goto	L1
   193                           ;DS18B20.c: 47: { unsigned char _dcnt; _dcnt = 
      +                          (11)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
      +                           0) continue; };
   194  06DF  3003               	movlw	3
   195  06E0  1283               	bcf	3,5
   196  06E1  00A8               	movwf	?a_DS18B20_WRITE_BYTE+2
   197  06E2                     l27
   198  06E2  0BA8               	decfsz	?a_DS18B20_WRITE_BYTE+2
   199  06E3  2EE2               	goto	l27
   200  06E4  0008               	return
   201  06E5                     _DS18B20_RESET
   202                           ;	_presence assigned to ?a_DS18B20_RESET+0
   203  0000                     _DS18B20_RESET$presence	set	?a_DS18B20_RESET
   204                           ;	__dcnt assigned to ?a_DS18B20_RESET+1
   205  0000                     _DS18B20_RESET$_dcnt	set	?a_DS18B20_RESET+1
   206                           ;	__dcnt assigned to ?a_DS18B20_RESET+1
   207  0000                     _DS18B20_RESET$_dcnt	set	?a_DS18B20_RESET+1
   208                           ;	__dcnt assigned to ?a_DS18B20_RESET+1
   209  0000                     _DS18B20_RESET$_dcnt	set	?a_DS18B20_RESET+1
   210                           ;DS18B20.c: 12: char presence=1;
   211  06E5  0183               	clrf	3	;select bank 0
   212  06E6  01A6               	clrf	?a_DS18B20_RESET
   213  06E7  0AA6               	incf	?a_DS18B20_RESET
   214                           ;DS18B20.c: 13: while(presence)
   215  06E8  2F0C               	goto	l2
   216                           ;DS18B20.c: 14: {
   217  06E9                     l6
   218                           ;DS18B20.c: 16: {
   219  06E9  1683               	bsf	3,5
   220  06EA  1487               	bsf	7,1
   221  06EB  0000               	nop	;#
   222  06EC  0000               	nop	;#
   223                           ;DS18B20.c: 18: TRISC1=0;RC1=0;
   224  06ED  1087               	bcf	7,1
   225  06EE  1283               	bcf	3,5
   226  06EF  1087               	bcf	7,1
   227                           ;DS18B20.c: 19: { unsigned char _dcnt; _dcnt = 
      +                          (550)/((12*1000L)/(4*1000L))|1; while(--_dcnt !
      +                          = 0) continue; };
   228  06F0  30B7               	movlw	-73
   229  06F1  00A7               	movwf	?a_DS18B20_RESET+1
   230  06F2                     l9
   231  06F2  0BA7               	decfsz	?a_DS18B20_RESET+1
   232  06F3  2EF2               	goto	l9
   233                           ;DS18B20.c: 20: TRISC1=1;
   234  06F4  1683               	bsf	3,5
   235  06F5  1487               	bsf	7,1
   236                           ;DS18B20.c: 21: { unsigned char _dcnt; _dcnt = 
      +                          (65)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
      +                           0) continue; };
   237  06F6  3015               	movlw	21
   238  06F7  1283               	bcf	3,5
   239  06F8  00A7               	movwf	?a_DS18B20_RESET+1
   240  06F9                     l12
   241  06F9  0BA7               	decfsz	?a_DS18B20_RESET+1

⌨️ 快捷键说明

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