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

📄 18b20.lst

📁 不错的程序
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V9.60PL1
                                                      Mon Jun 02 12:02:07 2008


     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	text0,local,class=CODE,delta=2
     4                           	psect	config,global,class=CONFIG,delta=2
     5                           	psect	rdata_0,global,class=BANK0,space=1,delta
      +                          =1
     6                           	psect	idata_0,global,class=CODE,delta=2
     7                           	psect	text1,local,class=CODE,delta=2
     8                           	psect	text2,local,class=CODE,delta=2
     9                           	psect	text3,local,class=CODE,delta=2
    10                           	psect	text4,local,class=CODE,delta=2
    11                           	psect	text5,local,class=CODE,delta=2
    12                           	psect	text6,local,class=CODE,delta=2
    13                           	psect	text7,local,class=CODE,delta=2
    14                           	psect	rbit_0,global,bit,class=BANK0,space=1,de
      +                          lta=1
    15                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    16                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26  0000                     	;#
    27                           
    28                           	psect	text0
    29  0637                     _delay
    30                           ;	_x assigned to ?a_delay+0
    31  0000                     _delay$x	set	?a_delay
    32                           ;	_z assigned to ?a_delay+1
    33  0000                     _delay$z	set	?a_delay+1
    34                           ;_x stored from w
    35  0637  0183               	clrf	3	;select bank 0
    36  0638  00B4               	movwf	?a_delay
    37  0639                     l4
    38                           ;18B20.c: 38: void delay(char x,char y)
    39                           ;18B20.c: 42: z=y;
    40  0639  0833               	movf	?_delay,w
    41  063A  00B5               	movwf	?a_delay+1
    42  063B                     l7
    43                           ;18B20.c: 43: do{;}while(--z);
    44  063B  0BB5               	decfsz	?a_delay+1
    45  063C  2E3B               	goto	l7
    46                           ;18B20.c: 44: }while(--x);
    47  063D  0BB4               	decfsz	?a_delay
    48  063E  2E39               	goto	l4
    49  063F  0008               	return
    50                           
    51                           	psect	config
    52  2007  1832               	dw	6194	;#
    53                           
    54                           	psect	rdata_0
    55  0036                     _table
                     _table
    56  0036                     	ds	1
                     	ds	1
    57  0037                     	ds	1
                     	ds	1
    58  0038                     	ds	1
                     	ds	1
    59  0039                     	ds	1
                     	ds	1
    60  003A                     	ds	1
                     	ds	1
    61  003B                     	ds	1
                     	ds	1
    62  003C                     	ds	1
                     	ds	1
    63  003D                     	ds	1
                     	ds	1
    64  003E                     	ds	1
                     	ds	1
    65  003F                     	ds	1
    66  0000                     _delay$y	set	?_delay
    67                           
    68                           	psect	idata_0
    69  07F6  34C0               	retlw	-64
    70  07F7  34F9               	retlw	-7
    71  07F8  34A4               	retlw	-92
    72  07F9  34B0               	retlw	-80
    73  07FA  3499               	retlw	-103
    74  07FB  3492               	retlw	-110
    75  07FC  3482               	retlw	-126
    76  07FD  34F8               	retlw	-8
    77  07FE  3480               	retlw	-128
    78  07FF  3490               	retlw	-112
    79                           
    80                           	psect	text1
    81  06A5                     _display
    82                           ;18B20.c: 51: void display()
    83  06A5  1683               	bsf	3,5
    84  06A6  1303               	bcf	3,6	;carry unused
    85  06A7  0185               	clrf	5	;volatile
    86                           ;18B20.c: 54: PORTD=table[shi];
    87  06A8  1283               	bcf	3,5
    88  06A9  0828               	movf	_shi,w
    89  06AA  3E36               	addlw	_table
    90  06AB  0084               	movwf	4
    91  06AC  1383               	bcf	3,7
    92  06AD  0800               	movf	0,w
    93  06AE  0088               	movwf	8	;volatile
    94                           ;18B20.c: 55: PORTA=0x1f;
    95  06AF  301F               	movlw	31
    96  06B0  0085               	movwf	5	;volatile
    97                           ;18B20.c: 56: delay(10,70);
    98  06B1  3046               	movlw	70
    99  06B2  00B3               	movwf	?_delay
   100  06B3  300A               	movlw	10
   101  06B4  2637               	call	_delay
   102                           ;18B20.c: 57: PORTD=table[ge]&0X7F;
   103  06B5  0826               	movf	_ge,w
   104  06B6  3E36               	addlw	_table
   105  06B7  0084               	movwf	4
   106  06B8  1383               	bcf	3,7
   107  06B9  0800               	movf	0,w
   108  06BA  397F               	andlw	127
   109  06BB  0088               	movwf	8	;volatile
   110                           ;18B20.c: 58: PORTA=0x2f;
   111  06BC  302F               	movlw	47
   112  06BD  0085               	movwf	5	;volatile
   113                           ;18B20.c: 59: delay(10,70);
   114  06BE  3046               	movlw	70
   115  06BF  00B3               	movwf	?_delay
   116  06C0  300A               	movlw	10
   117  06C1  2637               	call	_delay
   118                           ;18B20.c: 60: PORTD=table[shifen];
   119  06C2  0829               	movf	_shifen,w
   120  06C3  3E36               	addlw	_table
   121  06C4  0084               	movwf	4
   122  06C5  1383               	bcf	3,7
   123  06C6  0800               	movf	0,w
   124  06C7  0088               	movwf	8	;volatile
   125                           ;18B20.c: 61: PORTA=0x37;
   126  06C8  3037               	movlw	55
   127  06C9  0085               	movwf	5	;volatile
   128                           ;18B20.c: 62: delay(10,70);
   129  06CA  3046               	movlw	70
   130  06CB  00B3               	movwf	?_delay
   131  06CC  300A               	movlw	10
   132  06CD  2637               	call	_delay
   133                           ;18B20.c: 63: PORTD=table[baifen];
   134  06CE  0825               	movf	_baifen,w
   135  06CF  3E36               	addlw	_table
   136  06D0  0084               	movwf	4
   137  06D1  1383               	bcf	3,7
   138  06D2  0800               	movf	0,w
   139  06D3  0088               	movwf	8	;volatile
   140                           ;18B20.c: 64: PORTA=0x3b;
   141  06D4  303B               	movlw	59
   142  06D5  0085               	movwf	5	;volatile
   143                           ;18B20.c: 65: delay(10,70);
   144  06D6  3046               	movlw	70
   145  06D7  00B3               	movwf	?_delay
   146  06D8  300A               	movlw	10
   147  06D9  2637               	call	_delay
   148                           ;18B20.c: 66: PORTD=table[qianfen];
   149  06DA  0827               	movf	_qianfen,w
   150  06DB  3E36               	addlw	_table
   151  06DC  0084               	movwf	4
   152  06DD  1383               	bcf	3,7
   153  06DE  0800               	movf	0,w
   154  06DF  0088               	movwf	8	;volatile
   155                           ;18B20.c: 67: PORTA=0x3d;
   156  06E0  303D               	movlw	61
   157  06E1  0085               	movwf	5	;volatile
   158                           ;18B20.c: 68: delay(10,70);
   159  06E2  3046               	movlw	70
   160  06E3  00B3               	movwf	?_delay
   161  06E4  300A               	movlw	10
   162  06E5  2637               	call	_delay
   163                           ;18B20.c: 69: PORTD=table[wanfen];
   164  06E6  082A               	movf	_wanfen,w
   165  06E7  3E36               	addlw	_table
   166  06E8  0084               	movwf	4
   167  06E9  1383               	bcf	3,7
   168  06EA  0800               	movf	0,w
   169  06EB  0088               	movwf	8	;volatile
   170                           ;18B20.c: 70: PORTA=0x3e;
   171  06EC  303E               	movlw	62
   172  06ED  0085               	movwf	5	;volatile
   173                           ;18B20.c: 71: delay(10,70);
   174  06EE  3046               	movlw	70
   175  06EF  00B3               	movwf	?_delay
   176  06F0  300A               	movlw	10
   177  06F1  2E37               	goto	_delay
   178                           
   179                           	psect	text2
   180  062F                     _init
   181                           ;18B20.c: 76: void init()
   182  062F  3007               	movlw	7
   183  0630  1683               	bsf	3,5
   184  0631  1303               	bcf	3,6	;carry unused
   185  0632  009F               	movwf	31	;volatile
   186                           ;18B20.c: 79: TRISA=0X00;
   187  0633  0185               	clrf	5	;volatile
   188                           ;18B20.c: 80: TRISD=0X00;
   189  0634  0188               	clrf	8	;volatile
   190                           ;18B20.c: 81: }
   191  0635  1283               	bcf	3,5
   192  0636  0008               	return	;W free
   193                           
   194                           	psect	text3
   195  0640                     _reset
   196                           ;	_presence assigned to ?a_reset+0
   197  0000                     _reset$presence	set	?a_reset
   198                           ;18B20.c: 85: reset(void)
   199  0640  0183               	clrf	3	;select bank 0
   200  0641  01B0               	clrf	?a_reset
   201  0642  0AB0               	incf	?a_reset
   202                           ;18B20.c: 88: while(presence)
   203  0643  2E5A               	goto	l11
   204  0644                     l12
   205                           ;18B20.c: 89: {
   206  0644  1105               	bcf	5,2
   207  0645  1683               	bsf	3,5
   208  0646  1105               	bcf	5,2
   209                           ;18B20.c: 91: delay(2,70);
   210  0647  3046               	movlw	70
   211  0648  1283               	bcf	3,5
   212  0649  00B3               	movwf	?_delay
   213  064A  3002               	movlw	2
   214  064B  2637               	call	_delay
   215                           ;18B20.c: 92: TRISA2 =1;
   216  064C  1683               	bsf	3,5
   217  064D  1505               	bsf	5,2
   218                           ;18B20.c: 93: delay(2,8);
   219  064E  3008               	movlw	8
   220  064F  1283               	bcf	3,5
   221  0650  00B3               	movwf	?_delay
   222  0651  3002               	movlw	2
   223  0652  2637               	call	_delay
   224  0653  01B0               	clrf	?a_reset
   225                           ;18B20.c: 94: if(RA2==1) presence=1;
   226  0654  1905               	btfsc	5,2
   227  0655  0AB0               	incf	?a_reset
   228                           ;18B20.c: 95: else presence=0;
   229                           ;18B20.c: 96: delay(2,60);
   230  0656  303C               	movlw	60
   231  0657  00B3               	movwf	?_delay
   232  0658  3002               	movlw	2
   233  0659  2637               	call	_delay
   234  065A                     l11
   235  065A  08B0               	movf	?a_reset
   236  065B  1903               	btfsc	3,2
   237  065C  0008               	return
   238  065D  2E44               	goto	l12
   239                           
   240                           	psect	text4
   241  065E                     _write_byte
   242                           ;	_temp assigned to ?a_write_byte+0
   243  0000                     _write_byte$temp	set	?a_write_byte
   244                           ;	_val assigned to ?a_write_byte+1
   245  0000                     _write_byte$val	set	?a_write_byte+1
   246                           ;	_i assigned to ?a_write_byte+2
   247  0000                     _write_byte$i	set	?a_write_byte+2
   248                           ;_val stored from w
   249  065E  0183               	clrf	3	;select bank 0
   250  065F  00B1               	movwf	?a_write_byte+1
   251                           ;18B20.c: 102: void write_byte(unsigned char va
      +                          l)
   252  0660  3008               	movlw	8
   253  0661  00B2               	movwf	?a_write_byte+2
   254  0662                     l17
   255                           ;18B20.c: 107: {
   256  0662  0831               	movf	?a_write_byte+1,w
   257  0663  3901               	andlw	1
   258  0664  00B0               	movwf	?a_write_byte
   259                           ;18B20.c: 109: RA2 = 0; TRISA2 = 0;
   260  0665  1105               	bcf	5,2
   261  0666  1683               	bsf	3,5
   262  0667  1105               	bcf	5,2
   263                           ;18B20.c: 110: asm("nop");
   264  0668  0000               	nop	;#
   265                           ;18B20.c: 111: asm("nop");
   266  0669  0000               	nop	;#
   267                           ;18B20.c: 112: asm("nop");
   268  066A  0000               	nop	;#
   269                           ;18B20.c: 113: asm("nop");
   270  066B  0000               	nop	;#
   271                           ;18B20.c: 114: asm("nop");
   272  066C  0000               	nop	;#
   273                           ;18B20.c: 115: if(temp==1) TRISA2 =1;
   274  066D  1283               	bcf	3,5
   275  066E  0B30               	decfsz	?a_write_byte,w
   276  066F  2E72               	goto	l20
   277  0670  1683               	bsf	3,5
   278  0671  1505               	bsf	5,2
   279  0672                     l20
   280                           ;18B20.c: 116: delay(2,7);
   281  0672  3007               	movlw	7
   282  0673  1283               	bcf	3,5
   283  0674  00B3               	movwf	?_delay
   284  0675  3002               	movlw	2
   285  0676  2637               	call	_delay
   286                           ;18B20.c: 117: TRISA2 =1;
   287  0677  1683               	bsf	3,5
   288  0678  1505               	bsf	5,2
   289                           ;18B20.c: 118: asm("nop");
   290  0679  0000               	nop	;#

⌨️ 快捷键说明

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