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

📄 adc.lst

📁 熟悉pic单片机的 AD转换 软件思路:选择RAO做为模拟输入通道; 连续转换4次再求平均值做为转换结果 最后结构只取低8位 结果送数码管的低3位显示
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-04158                            Mon Mar 12 10:00:49 2007

Licensed to: ONE
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z04158RS_,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	text3,local,class=CODE,delta=2
     8                           	psect	text4,local,class=CODE,delta=2
     9                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20                           
    21                           	psect	__Z04158RS_
    22  0190                     
    23  0190                     	;#
    24                           
    25                           	psect	config
    26  2007  1832               	dw	6194	;#
    27                           
    28                           	psect	const1
    29  0008  0782               	addwf	2
    30  0009                     _TABLE
    31  0009  34C0               	retlw	-64
    32  000A  34F9               	retlw	-7
    33  000B  34A4               	retlw	-92
    34  000C  34B0               	retlw	-80
    35  000D  3499               	retlw	-103
    36  000E  3492               	retlw	-110
    37  000F  3482               	retlw	-126
    38  0010  34F8               	retlw	-8
    39  0011  3480               	retlw	-128
    40  0012  3490               	retlw	-112
    41                           
    42                           	psect	text3
    43                           ;adc.c: 71: void DELAY()
    44                           ;adc.c: 72: {
    45  06FF                     _DELAY
    46                           ;	_i assigned to ?a_DELAY+0
    47  0000                     _DELAY$i	set	?a_DELAY
    48                           ;adc.c: 73: int i;
    49  06FF  0183               	clrf	3	;select bank 0
    50  0700  01AE               	clrf	?a_DELAY
    51  0701  3001               	movlw	1
    52  0702  00AF               	movwf	?a_DELAY+1
    53  0703                     l17
    54  0703  082E               	movf	?a_DELAY,w
    55  0704  1903               	btfsc	3,2
    56  0705  03AF               	decf	?a_DELAY+1
    57  0706  03AE               	decf	?a_DELAY
    58  0707  0A2E               	incf	?a_DELAY,w
    59  0708  1903               	btfsc	3,2
    60  0709  0A2F               	incf	?a_DELAY+1,w
    61  070A  1903               	btfsc	3,2
    62  070B  0008               	return
    63  070C  2F03               	goto	l17
    64                           ;adc.c: 39: void init()
    65                           ;adc.c: 40: {
    66  070D                     _init
    67                           ;adc.c: 41: PORTA=0XFF;
    68  070D  30FF               	movlw	-1
    69  070E  0183               	clrf	3	;select bank 0
    70  070F  0085               	movwf	5	;volatile
    71                           ;adc.c: 42: PORTD=0XFF;
    72  0710  0088               	movwf	8	;volatile
    73                           ;adc.c: 43: TRISA=0X1;
    74  0711  3001               	movlw	1
    75  0712  1683               	bsf	3,5
    76  0713  0085               	movwf	5	;volatile
    77                           ;adc.c: 44: TRISD=0X00;
    78  0714  0188               	clrf	8	;volatile
    79                           ;adc.c: 45: ADCON1=0X8E;
    80  0715  308E               	movlw	-114
    81  0716  009F               	movwf	31	;volatile
    82                           ;adc.c: 46: ADCON0=0X41;
    83  0717  3041               	movlw	65
    84  0718  1283               	bcf	3,5
    85  0719  009F               	movwf	31	;volatile
    86                           ;adc.c: 47: DELAY();
    87  071A  2EFF               	ljmp	_DELAY
    88  071B                     _main
    89                           ;	_result assigned to ?a_main+0
    90  0000                     _main$result	set	?a_main
    91                           ;	_i assigned to ?a_main+2
    92  0000                     _main$i	set	?a_main+2
    93                           ;adc.c: 21: int result=0x00;
    94  071B  1283               	bcf	3,5
    95  071C  1303               	bcf	3,6	;carry unused
    96  071D  01A0               	clrf	?a_main
    97  071E  01A1               	clrf	?a_main+1
    98  071F                     l3
    99                           ;adc.c: 22: while(1)
   100                           ;adc.c: 23: {
   101  071F  01A0               	clrf	?a_main
   102  0720  01A1               	clrf	?a_main+1
   103                           ;adc.c: 26: for(i=5;i>0;i--)
   104  0721  3005               	movlw	5
   105  0722  00A2               	movwf	?a_main+2
   106  0723  01A3               	clrf	?a_main+3
   107  0724                     l5
   108                           ;adc.c: 27: {
   109                           ;adc.c: 28: init();
   110  0724  270D  120A  118A   	fcall	_init
   111                           ;adc.c: 29: ADGO=0X1;
   112  0727  151F               	bsf	31,2
   113                           ;adc.c: 30: while(ADGO);
   114  0728                     l8
   115  0728  191F               	btfsc	31,2
   116  0729  2F28               	goto	l8
   117                           ;adc.c: 31: result=result+ADRESL;
   118  072A  1683               	bsf	3,5
   119  072B  081E               	movf	30,w	;volatile
   120  072C  1283               	bcf	3,5
   121  072D  07A0               	addwf	?a_main
   122  072E  1803               	btfsc	3,0
   123  072F  0AA1               	incf	?a_main+1
   124                           ;adc.c: 32: }
   125  0730  08A2               	movf	?a_main+2
   126  0731  1903               	btfsc	3,2
   127  0732  03A3               	decf	?a_main+3
   128  0733  03A2               	decf	?a_main+2
   129  0734  0823               	movf	?a_main+3,w
   130  0735  3A80               	xorlw	128
   131  0736  00F0               	movwf	btemp
   132  0737  3080               	movlw	128
   133  0738  0270               	subwf	btemp,w
   134  0739  3001               	movlw	1
   135                           ;set	bank bits (((?a_main+2)))
   136  073A  1903               	btfsc	3,2
   137  073B  0222               	subwf	?a_main+2,w
   138  073C  1803               	btfsc	3,0
   139  073D  2F24               	goto	l5
   140                           ;adc.c: 33: result=result/5;
   141  073E  3005               	movlw	5
   142  073F  00F2               	movwf	btemp+2
   143  0740  01F3               	clrf	btemp+3
   144  0741  0820               	movf	?a_main,w
   145  0742  00F0               	movwf	btemp
   146  0743  0821               	movf	?a_main+1,w
   147  0744  00F1               	movwf	btemp+1
   148  0745  120A  118A  27B1   	fcall	awdiv
      +       120A  118A         
   149  074A  0874               	movf	btemp+4,w
   150  074B  00A0               	movwf	?a_main
   151  074C  0875               	movf	btemp+5,w
   152  074D  00A1               	movwf	?a_main+1
   153                           ;adc.c: 34: display(result);
   154  074E  0820               	movf	?a_main,w
   155  074F  00A4               	movwf	?_display
   156  0750  0821               	movf	?a_main+1,w
   157  0751  00A5               	movwf	?_display+1
   158  0752  2756  120A  118A   	fcall	_display
   159                           ;adc.c: 35: }
   160  0755  2F1F               	goto	l3
   161  0756                     _display
   162                           ;	_bai assigned to ?a_display+0
   163  0000                     _display$bai	set	?a_display
   164                           ;	_ge assigned to ?a_display+2
   165  0000                     _display$ge	set	?a_display+2
   166                           ;	_shi assigned to ?a_display+4
   167  0000                     _display$shi	set	?a_display+4
   168                           ;	_temp assigned to ?a_display+6
   169  0000                     _display$temp	set	?a_display+6
   170                           ;adc.c: 53: int bai,shi,ge,temp;
   171  0756  0183               	clrf	3	;select bank 0
   172  0757  0824               	movf	?_display,w
   173  0758  00AC               	movwf	?a_display+6
   174  0759  0825               	movf	?_display+1,w
   175  075A  00AD               	movwf	?a_display+7
   176                           ;adc.c: 55: bai=temp/0x64;
   177  075B  3064               	movlw	100
   178  075C  00F2               	movwf	btemp+2
   179  075D  01F3               	clrf	btemp+3
   180  075E  082D               	movf	?a_display+7,w
   181  075F  00F1               	movwf	btemp+1
   182  0760  082C               	movf	?a_display+6,w
   183  0761  00F0               	movwf	btemp
   184  0762  120A  118A  27B1   	fcall	awdiv
   185  0765  0874               	movf	btemp+4,w
   186  0766  00A6               	movwf	?a_display
   187  0767  0875               	movf	btemp+5,w
   188  0768  00A7               	movwf	?a_display+1
   189                           ;adc.c: 56: shi=(temp%0x64)/0xa;
   190  0769  3064               	movlw	100
   191  076A  00F2               	movwf	btemp+2
   192  076B  01F3               	clrf	btemp+3
   193  076C  082D               	movf	?a_display+7,w
   194  076D  00F1               	movwf	btemp+1
   195  076E  082C               	movf	?a_display+6,w
   196  076F  00F0               	movwf	btemp
   197  0770  120A  118A  27B1   	fcall	awmod
   198  0773  300A               	movlw	10
   199  0774  00F2               	movwf	btemp+2
   200  0775  3000               	movlw	0
   201  0776  01F3               	clrf	btemp+3
   202  0777  120A  118A  27B1   	fcall	awdiv
   203  077A  0874               	movf	btemp+4,w
   204  077B  00AA               	movwf	?a_display+4
   205  077C  0875               	movf	btemp+5,w
   206  077D  00AB               	movwf	?a_display+5
   207                           ;adc.c: 57: ge=(temp%0x64)%0xa;
   208  077E  3064               	movlw	100
   209  077F  00F2               	movwf	btemp+2
   210  0780  01F3               	clrf	btemp+3
   211  0781  082D               	movf	?a_display+7,w
   212  0782  00F1               	movwf	btemp+1
   213  0783  082C               	movf	?a_display+6,w
   214  0784  00F0               	movwf	btemp
   215  0785  120A  118A  27B1   	fcall	awmod
   216  0788  300A               	movlw	10
   217  0789  00F2               	movwf	btemp+2
   218  078A  3000               	movlw	0
   219  078B  01F3               	clrf	btemp+3
   220  078C  120A  118A  27B1   	fcall	awmod
   221  078F  0870               	movf	btemp,w
   222  0790  00A8               	movwf	?a_display+2
   223  0791  0871               	movf	btemp+1,w
   224  0792  00A9               	movwf	?a_display+3
   225                           ;adc.c: 58: PORTD=TABLE[bai];
   226  0793  3000               	movlw	_TABLE shr (0+8)
   227  0794  008A               	movwf	10
   228  0795  0826               	movf	?a_display,w
   229  0796  2008               	call	((_TABLE+-1)& (0+2047))| (($)& (0+-2048))
   230  0797  0088               	movwf	8	;volatile
   231                           ;adc.c: 59: PORTA=0x37;
   232  0798  3037               	movlw	55
   233  0799  0085               	movwf	5	;volatile
   234                           ;adc.c: 60: DELAY();
   235  079A  120A  118A  26FF   	fcall	_DELAY
   236                           ;adc.c: 61: PORTD=TABLE[shi];
   237  079D  3000               	movlw	_TABLE shr (0+8)
   238  079E  008A               	movwf	10
   239  079F  082A               	movf	?a_display+4,w
   240  07A0  2008               	call	((_TABLE+-1)& (0+2047))| (($)& (0+-2048))
   241  07A1  0088               	movwf	8	;volatile
   242                           ;adc.c: 62: PORTA=0x2F;
   243  07A2  302F               	movlw	47
   244  07A3  0085               	movwf	5	;volatile
   245                           ;adc.c: 63: DELAY();
   246  07A4  120A  118A  26FF   	fcall	_DELAY
   247                           ;adc.c: 64: PORTD=TABLE[ge];
   248  07A7  3000               	movlw	_TABLE shr (0+8)
   249  07A8  008A               	movwf	10
   250  07A9  0828               	movf	?a_display+2,w
   251  07AA  2008               	call	((_TABLE+-1)& (0+2047))| (($)& (0+-2048))
   252  07AB  0088               	movwf	8	;volatile
   253                           ;adc.c: 65: PORTA=0x1F;
   254  07AC  301F               	movlw	31
   255  07AD  0085               	movwf	5	;volatile
   256                           ;adc.c: 66: DELAY();
   257  07AE  120A  118A  2EFF   	ljmp	_DELAY
   258                           
   259                           	psect	text4
   260  0000                     
   261  0000                     
   262  0000                     
   263  0000                     
   264  0000                     
   265  0000                     
   266  0000                     
   267  0000                     
   268  0000                     
   269  0000                     
   270  0000                     
   271  0000                     
   272  0000                     
   273  0000                     

⌨️ 快捷键说明

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