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

📄 pic_adc.lst

📁 基于温度传感器LM35与PIC16F877A的应用程序
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
                                                      Wed Feb 25 11:10:10 2009


     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z49231UD_,global,delta=1
     4                           	psect	text3,local,class=CODE,delta=2
     5                           	psect	text8,local,class=CODE,delta=2
     6                           	psect	intcode,global,class=CODE,delta=2
     7                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
     8                           	psect	intret,global,class=CODE,delta=2
     9                           	psect	intentry,global,class=CODE,delta=2
    10                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    11                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    12                           	psect	rbss_2,global,class=BANK2,space=1,delta=
      +                          1
    13                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24                           
    25                           	psect	__Z49231UD_
    26  0000                     _delay$delay_time	set	?_delay
    27                           
    28                           	psect	text3
    29  04B0                     _lcd_disp
    30                           ;	_adr assigned to ?a_lcd_disp+0
    31  0000                     _lcd_disp$adr	set	?a_lcd_disp
    32                           ;_adr stored from w
    33  04B0  0183               	clrf	3	;select bank 0
    34  04B1  00B1               	movwf	?a_lcd_disp
    35                           ;pic_adc.c: 63: lcd_command_writedata(0x00,adr)
      +                          ;
    36  04B2  00B2               	movwf	?_lcd_command_writedata
    37  04B3  3000               	movlw	0
    38  04B4  24D9               	fcall	_lcd_command_writedata
    39                           ;pic_adc.c: 64: lcd_command_writedata(0xff,disp
      +                          _data);
    40  04B5  0830               	movf	?_lcd_disp,w
    41  04B6  00B2               	movwf	?_lcd_command_writedata
    42  04B7  30FF               	movlw	-1
    43  04B8  2CD9               	ljmp	_lcd_command_writedata
    44                           ;pic_adc.c: 84: void adc_init(void)
    45                           ;pic_adc.c: 85: {
    46  04B9                     _adc_init
    47                           ;pic_adc.c: 86: ADCON1 = 0x8e;
    48  04B9  308E               	movlw	-114
    49  04BA  1683               	bsf	3,5
    50  04BB  1303               	bcf	3,6	;carry unused
    51  04BC  009F               	movwf	31	;volatile
    52                           ;pic_adc.c: 87: ADCON0 = 0x81;
    53  04BD  3081               	movlw	-127
    54  04BE  1283               	bcf	3,5
    55  04BF  009F               	movwf	31	;volatile
    56                           ;pic_adc.c: 88: ADIF = 0;
    57  04C0  130C               	bcf	12,6
    58                           ;pic_adc.c: 89: PEIE = 1;
    59  04C1  170B               	bsf	11,6
    60                           ;pic_adc.c: 90: ADIE = 1;
    61  04C2  1683               	bsf	3,5
    62  04C3  170C               	bsf	12,6
    63                           ;pic_adc.c: 91: TRISA0 = 1;
    64  04C4  1405               	bsf	5,0
    65                           ;pic_adc.c: 92: count = 0;
    66  04C5  1283               	bcf	3,5
    67  04C6  01A0               	clrf	_count	;volatile
    68                           ;pic_adc.c: 93: }
    69  04C7  0008               	return
    70                           ;pic_adc.c: 29: unsigned char lcd_busy(void)
    71                           ;pic_adc.c: 30: {
    72  04C8                     _lcd_busy
    73                           ;	_temp assigned to ?a_lcd_busy+0
    74  0000                     _lcd_busy$temp	set	?a_lcd_busy
    75                           ;pic_adc.c: 31: unsigned char temp;
    76  04C8  30FF               	movlw	-1
    77  04C9  0183               	clrf	3	;select bank 0
    78  04CA  0086               	movwf	6	;volatile
    79                           ;pic_adc.c: 34: RS = 0;
    80  04CB  1288               	bcf	8,5
    81                           ;pic_adc.c: 35: RW = 1;
    82  04CC  1708               	bsf	8,6
    83                           ;pic_adc.c: 36: E = 1;
    84  04CD  1788               	bsf	8,7
    85                           ;pic_adc.c: 37: TRISB = 0xff;
    86  04CE  1683               	bsf	3,5
    87  04CF  0086               	movwf	6	;volatile
    88                           ;pic_adc.c: 38: temp = PORTB;
    89  04D0  1283               	bcf	3,5
    90  04D1  0806               	movf	6,w	;volatile
    91  04D2  00B4               	movwf	?a_lcd_busy
    92                           ;pic_adc.c: 39: TRISB = 0x00;
    93  04D3  1683               	bsf	3,5
    94  04D4  0186               	clrf	6	;volatile
    95                           ;pic_adc.c: 40: E = 0;
    96  04D5  1283               	bcf	3,5
    97  04D6  1388               	bcf	8,7
    98                           ;pic_adc.c: 41: return (temp);
    99  04D7  0834               	movf	?a_lcd_busy,w
   100                           ;pic_adc.c: 42: }
   101  04D8  0008               	return
   102                           ;pic_adc.c: 44: void lcd_command_writedata(unsi
      +                          gned char check,unsigned char data)
   103                           ;pic_adc.c: 45: {
   104                           ;       param _data assigned to ?_lcd_command_w
      +                          ritedata+0
   105  0000                     _lcd_command_writedata$data	set	?_lcd_command_w
      +                          ritedata
   106  04D9                     _lcd_command_writedata
   107                           ;	_check assigned to ?a_lcd_command_writedata+0
   108  0000                     _lcd_command_writedata$check	set	?a_lcd_command
      +                          _writedata
   109                           ;_check stored from w
   110  04D9  0183               	clrf	3	;select bank 0
   111  04DA  00B3               	movwf	?a_lcd_command_writedata
   112                           ;pic_adc.c: 46: if (check == 0x00)
   113  04DB  08B3               	movf	?a_lcd_command_writedata
   114  04DC  1D03               	btfss	3,2
   115  04DD  2CE0               	goto	l10
   116                           ;pic_adc.c: 47: {
   117  04DE  1288               	bcf	8,5
   118                           ;pic_adc.c: 49: }
   119  04DF  2CE1               	goto	l11
   120  04E0                     l10
   121                           ;pic_adc.c: 51: {
   122  04E0  1688               	bsf	8,5
   123  04E1                     l11
   124                           ;pic_adc.c: 53: }
   125                           ;pic_adc.c: 54: RW = 0;
   126  04E1  1308               	bcf	8,6
   127                           ;pic_adc.c: 55: PORTB = data;
   128  04E2  0832               	movf	?_lcd_command_writedata,w
   129  04E3  0086               	movwf	6	;volatile
   130                           ;pic_adc.c: 56: E = 1;
   131  04E4  1788               	bsf	8,7
   132                           ;pic_adc.c: 57: E = 0;
   133  04E5  1388               	bcf	8,7
   134                           ;pic_adc.c: 58: while (lcd_busy() & 0x80);
   135  04E6                     l12
   136  04E6  24C8               	fcall	_lcd_busy
   137  04E7  00F0               	movwf	btemp
   138  04E8  1FF0               	btfss	btemp,7
   139  04E9  0008               	return
   140  04EA  2CE6               	goto	l12
   141                           ;pic_adc.c: 67: void lcd_init(void)
   142                           ;pic_adc.c: 68: {
   143  04EB                     _lcd_init
   144                           ;pic_adc.c: 69: lcd_command_writedata(0x00,0x01
      +                          );
   145  04EB  0183               	clrf	3	;select bank 0
   146  04EC  01B2               	clrf	?_lcd_command_writedata
   147  04ED  0AB2               	incf	?_lcd_command_writedata
   148  04EE  3000               	movlw	0
   149  04EF  24D9               	fcall	_lcd_command_writedata
   150                           ;pic_adc.c: 70: lcd_command_writedata(0x00,0x38
      +                          );
   151  04F0  3038               	movlw	56
   152  04F1  00B2               	movwf	?_lcd_command_writedata
   153  04F2  3000               	movlw	0
   154  04F3  24D9               	fcall	_lcd_command_writedata
   155                           ;pic_adc.c: 71: lcd_command_writedata(0x00,0x0e
      +                          );
   156  04F4  300E               	movlw	14
   157  04F5  00B2               	movwf	?_lcd_command_writedata
   158  04F6  3000               	movlw	0
   159  04F7  24D9               	fcall	_lcd_command_writedata
   160                           ;pic_adc.c: 72: lcd_command_writedata(0x00,0x06
      +                          );
   161  04F8  3006               	movlw	6
   162  04F9  00B2               	movwf	?_lcd_command_writedata
   163  04FA  3000               	movlw	0
   164  04FB  2CD9               	ljmp	_lcd_command_writedata
   165  04FC                     _delay
   166                           ;	_i assigned to ?a_delay+0
   167  0000                     _delay$i	set	?a_delay
   168                           ;pic_adc.c: 20: unsigned char i;
   169  04FC  2D01               	goto	l2
   170  04FD                     l3
   171                           ;pic_adc.c: 22: {
   172  04FD  01B2               	clrf	?a_delay
   173  04FE                     l5
   174                           ;pic_adc.c: 24: {
   175                           ;pic_adc.c: 25: }
   176  04FE  0AB2               	incf	?a_delay
   177  04FF  0F32               	incfsz	?a_delay,w
   178  0500  2CFE               	goto	l5
   179  0501                     l2
   180                           ;pic_adc.c: 26: }
   181  0501  1283               	bcf	3,5
   182  0502  1303               	bcf	3,6	;carry unused
   183  0503  0830               	movf	?_delay,w
   184  0504  1903               	btfsc	3,2
   185  0505  03B1               	decf	?_delay+1
   186  0506  03B0               	decf	?_delay
   187  0507  0A30               	incf	?_delay,w
   188  0508  1903               	btfsc	3,2
   189  0509  0A31               	incf	?_delay+1,w
   190  050A  1903               	btfsc	3,2
   191  050B  0008               	return
   192  050C  2CFD               	goto	l3
   193                           ;pic_adc.c: 75: void system_init(void)
   194                           ;pic_adc.c: 76: {
   195  050D                     _system_init
   196                           ;pic_adc.c: 77: delay(10);
   197  050D  300A               	movlw	10
   198  050E  0183               	clrf	3	;select bank 0
   199  050F  00B0               	movwf	?_delay
   200  0510  01B1               	clrf	?_delay+1
   201  0511  24FC               	fcall	_delay
   202                           ;pic_adc.c: 78: INTCON = 0x00;
   203  0512  018B               	clrf	11	;volatile
   204                           ;pic_adc.c: 79: OPTION = 0xff;
   205  0513  30FF               	movlw	-1
   206  0514  1683               	bsf	3,5
   207  0515  0081               	movwf	1
   208                           ;pic_adc.c: 80: TRISB = 0x00;
   209  0516  0186               	clrf	6	;volatile
   210                           ;pic_adc.c: 81: TRISD = 0x00;
   211  0517  0188               	clrf	8	;volatile
   212                           ;pic_adc.c: 82: }
   213  0518  1283               	bcf	3,5
   214  0519  0008               	return
   215                           ;pic_adc.c: 95: void main(void)
   216                           ;pic_adc.c: 96: {
   217  051A                     _main
   218                           ;	_c assigned to ?a_main+0
   219  0000                     _main$c	set	?a_main
   220                           ;	_d assigned to ?a_main+1
   221  0000                     _main$d	set	?a_main+1
   222                           ;	_a assigned to ?a_main+2
   223  0000                     _main$a	set	?a_main+2
   224                           ;	_b assigned to ?a_main+3
   225  0000                     _main$b	set	?a_main+3
   226                           ;	_i assigned to ?a_main+4
   227  0000                     _main$i	set	?a_main+4
   228                           ;	_temperature_temp assigned to ?a_main+5
   229  0000                     _main$temperature_temp	set	?a_main+5
   230                           ;pic_adc.c: 97: unsigned char i;
   231  051A  30FF               	movlw	255
   232  051B  1283               	bcf	3,5
   233  051C  1303               	bcf	3,6	;carry unused
   234  051D  00B0               	movwf	?_delay
   235  051E  01B1               	clrf	?_delay+1
   236  051F  24FC               	fcall	_delay
   237                           ;pic_adc.c: 102: system_init();
   238  0520  250D  120A  118A   	fcall	_system_init
   239                           ;pic_adc.c: 103: lcd_init();
   240  0523  24EB  120A  118A   	fcall	_lcd_init
   241                           ;pic_adc.c: 104: adc_init();
   242  0526  24B9               	fcall	_adc_init
   243                           ;pic_adc.c: 105: ADCON0 |= 0x04;
   244  0527  151F               	bsf	31,2	;volatile
   245  0528                     L1
   246                           ;pic_adc.c: 106: (GIE = 1);
   247  0528  178B               	bsf	11,7
   248                           ;pic_adc.c: 107: while (1)
   249  0529                     l24
   250                           ;pic_adc.c: 108: {
   251                           ;pic_adc.c: 110: {
   252  0529  0820               	movf	_count,w	;volatile
   253  052A  3A28               	xorlw	40
   254  052B  1D03               	btfss	3,2
   255  052C  2D29               	goto	l24
   256                           ;pic_adc.c: 112: {
   257                           ;pic_adc.c: 116: (GIE = 0);
   258  052D  138B               	bcf	11,7
   259                           ;pic_adc.c: 117: for (i = 0; i < 40; i ++)
   260  052E  01AB               	clrf	?a_main+4
   261  052F                     l27
   262                           ;pic_adc.c: 118: {
   263                           ;pic_adc.c: 119: checksum = checksum + temperat
      +                          ure[i];
   264  052F  082B               	movf	?a_main+4,w
   265  0530  072B               	addwf	?a_main+4,w
   266  0531  3E10               	addlw	_temperature^(0+256)
   267  0532  0084               	movwf	4
   268  0533  1783               	bsf	3,7
   269  0534  0800               	movf	0,w
   270  0535  00F0               	movwf	btemp
   271  0536  0A84               	incf	4
   272  0537  0800               	movf	0,w
   273  0538  00F1               	movwf	btemp+1
   274  0539  0870               	movf	btemp,w
   275  053A  07A1               	addwf	_checksum	;volatile
   276  053B  1803               	btfsc	3,0
   277  053C  0AA2               	incf	_checksum+1	;volatile

⌨️ 快捷键说明

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