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

📄 1.lst

📁 PIC16F877应用的AD转换主程序 并可以通过LCD显示
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888                            Wed May  7 11:05:07 2008

Licensed to: ONE TWO
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z88888RS_,global,delta=1
     4                           	psect	config,global,class=CONFIG,delta=2
     5                           	psect	strings,global,class=STRING,delta=2
     6                           	psect	const1,local,class=CONST,delta=2
     7                           	psect	text10,local,class=CODE,delta=2
     8                           	psect	text11,local,class=CODE,delta=2
     9                           	psect	intcode,global,class=CODE,delta=2
    10                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
    11                           	psect	intret,global,class=CODE,delta=2
    12                           	psect	intentry,global,class=CODE,delta=2
    13                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    14                           	psect	text13,local,class=CODE,delta=2
    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	__Z88888RS_
    29  0190                     
    30  0190                     	;#
    31                           
    32                           	psect	config
    33  2007  1832               	dw	6194	;#
    34                           
    35                           	psect	const1
    36  0027  0782               	addwf	2
    37  0028                     _web
    38  0028  3441               	retlw	65
    39  0029  3444               	retlw	68
    40  002A  3463               	retlw	99
    41  002B  346F               	retlw	111
    42  002C  346E               	retlw	110
    43  002D  3476               	retlw	118
    44  002E  3465               	retlw	101
    45  002F  3472               	retlw	114
    46  0030  3420               	retlw	32
    47  0031  3472               	retlw	114
    48  0032  3465               	retlw	101
    49  0033  3473               	retlw	115
    50  0034  3475               	retlw	117
    51  0035  346C               	retlw	108
    52  0036  3474               	retlw	116
    53  0037  343A               	retlw	58
    54  0038  3400               	retlw	0
    55                           
    56                           	psect	text10
    57                           ;1.C: 23: void deal_ad()
    58                           ;1.C: 24: {
    59  0690                     _deal_ad
    60                           ;	_temp assigned to ?a_deal_ad+0
    61  0000                     _deal_ad$temp	set	?a_deal_ad
    62                           ;1.C: 25: unsigned int temp;
    63  0690  0183               	clrf	3	;select bank 0
    64  0691  081E               	movf	30,w	;volatile
    65  0692  00A4               	movwf	_ad_sample_result+1
    66  0693  1683               	bsf	3,5
    67  0694  081E               	movf	30,w	;volatile
    68  0695  1283               	bcf	3,5
    69  0696  00A3               	movwf	_ad_sample_result
    70                           ;1.C: 27: ad_flag=0;
    71  0697  01A0               	clrf	_ad_flag
    72                           ;1.C: 28: adresult=(ad_sample_result*50)>>10;
    73  0698  3032               	movlw	50
    74  0699  00F2               	movwf	btemp+2
    75  069A  01F3               	clrf	btemp+3
    76  069B  0824               	movf	_ad_sample_result+1,w
    77  069C  00F1               	movwf	btemp+1
    78  069D  0823               	movf	_ad_sample_result,w
    79  069E  00F0               	movwf	btemp
    80  069F  120A  118A  267B   	fcall	lwmul
      +       120A  118A         
    81  06A4  300A               	movlw	10
    82  06A5  00F0               	movwf	btemp
    83  06A6                     u55
    84  06A6  1003               	bcf	3,0
    85  06A7  0CF5               	rrf	btemp+5
    86  06A8  0CF4               	rrf	btemp+4
    87  06A9  0BF0               	decfsz	btemp
    88  06AA  2EA6               	goto	u55
    89  06AB  0874               	movf	btemp+4,w
    90  06AC  00A5               	movwf	_adresult
    91  06AD  0875               	movf	btemp+5,w
    92  06AE  00A6               	movwf	_adresult+1
    93                           ;1.C: 29: temp=adresult;
    94  06AF  0825               	movf	_adresult,w
    95  06B0  00AB               	movwf	?a_deal_ad
    96  06B1  0826               	movf	_adresult+1,w
    97  06B2  00AC               	movwf	?a_deal_ad+1
    98                           ;1.C: 30: adresult=(((temp/10)<<4)&0xf0)+(adres
      +                          ult%10);
    99  06B3  300A               	movlw	10
   100  06B4  00F2               	movwf	btemp+2
   101  06B5  01F3               	clrf	btemp+3
   102  06B6  0826               	movf	_adresult+1,w
   103  06B7  00F1               	movwf	btemp+1
   104  06B8  0825               	movf	_adresult,w
   105  06B9  00F0               	movwf	btemp
   106  06BA  120A  118A  27C6   	fcall	lwmod
   107  06BD  0870               	movf	btemp,w
   108  06BE  00AD               	movwf	?a_deal_ad+2
   109  06BF  0871               	movf	btemp+1,w
   110  06C0  00AE               	movwf	?a_deal_ad+3
   111  06C1  300A               	movlw	10
   112  06C2  00F2               	movwf	btemp+2
   113  06C3  01F3               	clrf	btemp+3
   114  06C4  082C               	movf	?a_deal_ad+1,w
   115  06C5  00F1               	movwf	btemp+1
   116  06C6  082B               	movf	?a_deal_ad,w
   117  06C7  00F0               	movwf	btemp
   118  06C8  120A  118A  27C6   	fcall	lwdiv
      +       120A  118A         
   119  06CD  0EF4               	swapf	btemp+4
   120  06CE  0EF5               	swapf	btemp+5
   121  06CF  30F0               	movlw	240
   122  06D0  05F5               	andwf	btemp+5
   123  06D1  0874               	movf	btemp+4,w
   124  06D2  390F               	andlw	15
   125  06D3  04F5               	iorwf	btemp+5
   126  06D4  30F0               	movlw	240
   127  06D5  05F4               	andwf	btemp+4
   128  06D6  05F4               	andwf	btemp+4
   129  06D7  01F5               	clrf	btemp+5
   130  06D8  082D               	movf	?a_deal_ad+2,w
   131  06D9  07F4               	addwf	btemp+4
   132  06DA  1803               	btfsc	3,0
   133  06DB  0AF5               	incf	btemp+5
   134  06DC  082E               	movf	?a_deal_ad+3,w
   135  06DD  07F5               	addwf	btemp+5
   136  06DE  0874               	movf	btemp+4,w
   137  06DF  00A5               	movwf	_adresult
   138  06E0  0875               	movf	btemp+5,w
   139  06E1  00A6               	movwf	_adresult+1
   140                           ;1.C: 31: }
   141  06E2  0008               	return
   142                           ;lcd.h: 106: void delay()
   143                           ;lcd.h: 107: {
   144  06E3                     _delay
   145                           ;	_i assigned to ?a_delay+0
   146  0000                     _delay$i	set	?a_delay
   147                           ;lcd.h: 108: int i;
   148  06E3  0183               	clrf	3	;select bank 0
   149  06E4  01B0               	clrf	?a_delay
   150  06E5  01B1               	clrf	?a_delay+1
   151  06E6                     l14
   152  06E6  0AB0               	incf	?a_delay
   153  06E7  1903               	btfsc	3,2
   154  06E8  0AB1               	incf	?a_delay+1
   155  06E9  0831               	movf	?a_delay+1,w
   156  06EA  3A80               	xorlw	128
   157  06EB  00F0               	movwf	btemp
   158  06EC  3080               	movlw	128
   159  06ED  0270               	subwf	btemp,w
   160  06EE  3032               	movlw	50
   161                           ;set	bank bits for (((?a_delay+0)))
   162  06EF  1903               	btfsc	3,2
   163  06F0  0230               	subwf	?a_delay,w
   164  06F1  1803               	btfsc	3,0
   165  06F2  0008               	return
   166  06F3  2EE6               	goto	l14
   167                           ;lcd.h: 81: void write(char x)
   168                           ;lcd.h: 82: {
   169  06F4                     _write
   170                           ;	_x assigned to ?a_write+0
   171  0000                     _write$x	set	?a_write
   172                           ;_x stored from w
   173  06F4  0183               	clrf	3	;select bank 0
   174  06F5  00AF               	movwf	?a_write
   175                           ;lcd.h: 83: PORTD=x;
   176  06F6  0088               	movwf	8	;volatile
   177                           ;lcd.h: 84: RB1=1;
   178  06F7  1486               	bsf	6,1
   179                           ;lcd.h: 85: RB2=0;
   180  06F8  1106               	bcf	6,2
   181                           ;lcd.h: 86: RB3=0;
   182  06F9  1186               	bcf	6,3
   183                           ;lcd.h: 87: delay() ;
   184  06FA  26E3               	fcall	_delay
   185                           ;lcd.h: 88: RB3=1;
   186  06FB  1586               	bsf	6,3
   187                           ;lcd.h: 90: }
   188  06FC  0008               	return
   189  06FD                     _write_web
   190                           ;	_i assigned to ?a_write_web+0
   191  0000                     _write_web$i	set	?a_write_web
   192                           ;lcd.h: 53: int i;
   193  06FD  0183               	clrf	3	;select bank 0
   194  06FE  01AB               	clrf	?a_write_web
   195  06FF  01AC               	clrf	?a_write_web+1
   196  0700                     l4
   197                           ;lcd.h: 55: {
   198                           ;lcd.h: 56: write(web[i]);
   199  0700  3000               	movlw	_web shr (0+8)
   200  0701  008A               	movwf	10
   201  0702  082B               	movf	?a_write_web,w
   202  0703  2027               	call	((_web+-1)& (0+2047))| (($)& (0+-2048))
   203  0704  120A  118A  26F4   	fcall	_write
      +       120A  118A         
   204                           ;lcd.h: 57: }
   205  0709  0AAB               	incf	?a_write_web
   206  070A  1903               	btfsc	3,2
   207  070B  0AAC               	incf	?a_write_web+1
   208  070C  082C               	movf	?a_write_web+1,w
   209  070D  3A80               	xorlw	128
   210  070E  00F0               	movwf	btemp
   211  070F  3080               	movlw	128
   212  0710  0270               	subwf	btemp,w
   213  0711  3010               	movlw	16
   214                           ;set	bank bits for (((?a_write_web+0)))
   215  0712  1903               	btfsc	3,2
   216  0713  022B               	subwf	?a_write_web,w
   217  0714  1803               	btfsc	3,0
   218  0715  0008               	return
   219  0716  2F00               	goto	l4
   220                           ;lcd.h: 62: void write_tel(char adresult)
   221                           ;lcd.h: 63: { char a,b;
   222  0717                     _write_tel
   223                           ;	_adresult assigned to ?a_write_tel+0
   224  0000                     _write_tel$adresult	set	?a_write_tel
   225                           ;	_a assigned to ?a_write_tel+1
   226  0000                     _write_tel$a	set	?a_write_tel+1
   227                           ;	_i assigned to ?a_write_tel+2
   228  0000                     _write_tel$i	set	?a_write_tel+2
   229                           ;_adresult stored from w
   230  0717  0183               	clrf	3	;select bank 0
   231  0718  00AB               	movwf	?a_write_tel
   232                           ;lcd.h: 64: int i;
   233  0719  39F0               	andlw	-16
   234  071A  00F0               	movwf	btemp
   235  071B  0EF0               	swapf	btemp
   236  071C  300F               	movlw	15
   237  071D  05F0               	andwf	btemp
   238  071E  0870               	movf	btemp,w
   239  071F  00AC               	movwf	?a_write_tel+1
   240                           ;lcd.h: 67: tel[0]=a+48;
   241  0720  3E30               	addlw	48
   242  0721  00A7               	movwf	_tel
   243                           ;lcd.h: 68: tel[1]='.';
   244  0722  302E               	movlw	46
   245  0723  00A8               	movwf	_tel+1
   246                           ;lcd.h: 69: a=adresult&0x0f;
   247  0724  082B               	movf	?a_write_tel,w
   248  0725  390F               	andlw	15
   249  0726  00AC               	movwf	?a_write_tel+1
   250                           ;lcd.h: 71: tel[2]=a+48;
   251  0727  3E30               	addlw	48
   252  0728  00A9               	movwf	_tel+2
   253                           ;lcd.h: 72: tel[3]='v';
   254  0729  3076               	movlw	118
   255  072A  00AA               	movwf	_tel+3
   256                           ;lcd.h: 73: for(i=0;i<4;i++)
   257  072B  01AD               	clrf	?a_write_tel+2
   258  072C  01AE               	clrf	?a_write_tel+3
   259  072D                     l8
   260                           ;lcd.h: 74: {
   261                           ;lcd.h: 75: write(tel[i]);
   262  072D  082D               	movf	?a_write_tel+2,w
   263  072E  3E27               	addlw	_tel
   264  072F  0084               	movwf	4
   265  0730  1383               	bcf	3,7
   266  0731  0800               	movf	0,w
   267  0732  26F4  120A  118A   	fcall	_write
   268                           ;lcd.h: 76: }
   269  0735  0AAD               	incf	?a_write_tel+2
   270  0736  1903               	btfsc	3,2
   271  0737  0AAE               	incf	?a_write_tel+3
   272  0738  082E               	movf	?a_write_tel+3,w

⌨️ 快捷键说明

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