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

📄 main.lst

📁 基于PIC16F877 温湿度控制器原代码及原理图PCB图
💻 LST
📖 第 1 页 / 共 5 页
字号:
   496  0114  0D70               	rlf	btemp,w
   497  0115  3E19               	addlw	25
   498  0116  3EA9               	addlw	_Capture_Byte
   499  0117  0084               	movwf	4
   500  0118  1383               	bcf	3,7
   501  0119  0180               	clrf	0
   502  011A  0A84               	incf	4
   503  011B  0180               	clrf	0
   504  011C  0A84               	incf	4
   505  011D  0180               	clrf	0
   506  011E  0A84               	incf	4
   507  011F  0180               	clrf	0
   508                           ;main.c: 136: Capture_Byte.Cap_chNum++;
   509  0120  0AA9               	incf	_Capture_Byte^(0+128)
   510                           ;main.c: 137: if(Capture_Byte.Cap_chNum<2)
   511  0121  3002               	movlw	2
   512  0122  0229               	subwf	_Capture_Byte^(0+128),w
   513  0123  1803               	btfsc	3,0
   514  0124  292A               	goto	l26
   515                           ;main.c: 138: {
   516  0125  01AA               	clrf	(_Capture_Byte+1)^(0+128)
   517                           ;main.c: 141: Capture_Byte.Dely = 1;
   518  0126  01AB               	clrf	(_Capture_Byte+2)^(0+128)
   519  0127  0AAB               	incf	(_Capture_Byte+2)^(0+128)
   520                           ;main.c: 142: CCP2IE = 1;
   521  0128  140D               	bsf	13,0
   522                           ;main.c: 143: }
   523  0129  292D               	goto	l24
   524  012A                     l26
   525                           ;main.c: 145: {
   526  012A  01AB               	clrf	(_Capture_Byte+2)^(0+128)
   527                           ;main.c: 147: CCP1IE = 0;
   528  012B  110C               	bcf	12,2
   529                           ;main.c: 148: CCP2IE = 0;
   530  012C  100D               	bcf	13,0
   531                           ;main.c: 149: }
   532                           ;main.c: 150: }
   533  012D                     l24
   534  012D  1283               	bcf	3,5
   535  012E  0008               	return
   536                           
   537                           	psect	text6
   538  0234                     _Analog_Digital
   539                           ;	_ch_num assigned to ?a_Analog_Digital+0
   540  0000                     _Analog_Digital$ch_num	set	?a_Analog_Digital
   541                           ;	_i assigned to ?a_Analog_Digital+1
   542  0000                     _Analog_Digital$i	set	?a_Analog_Digital+1
   543                           ;	_j assigned to ?a_Analog_Digital+2
   544  0000                     _Analog_Digital$j	set	?a_Analog_Digital+2
   545                           ;_ch_num stored from w
   546  0234  0183               	clrf	3	;select bank 0
   547  0235  00D4               	movwf	?a_Analog_Digital
   548                           ;main.c: 263: unsigned char i,j;
   549  0236  1683               	bsf	3,5
   550  0237  1485               	bsf	5,1
   551                           ;main.c: 265: TRISA0 =1;
   552  0238  1405               	bsf	5,0
   553                           ;main.c: 266: if(ch_num) {ADCON0=0x4d;}
   554  0239  1283               	bcf	3,5
   555  023A  08D4               	movf	?a_Analog_Digital
   556  023B  1903               	btfsc	3,2
   557  023C  2A3F               	goto	l34
   558  023D  304D               	movlw	77
   559  023E  2A40               	goto	L2
   560                           ;main.c: 267: else {ADCON0=0x45;}
   561  023F                     l34
   562  023F  3045               	movlw	69
   563  0240                     L2
   564  0240  009F               	movwf	31	;volatile
   565                           ;main.c: 268: ADCON1 = 0x84;
   566  0241  3084               	movlw	-124
   567  0242  1683               	bsf	3,5
   568  0243  009F               	movwf	31	;volatile
   569                           ;main.c: 269: j = 0;
   570  0244  1283               	bcf	3,5
   571  0245  01D6               	clrf	?a_Analog_Digital+2
   572  0246                     l36
   573                           ;main.c: 270: for(;;)
   574                           ;main.c: 272: if(ADIF == 1) break;
   575  0246  1B0C               	btfsc	12,6
   576  0247  2A4E               	goto	l37
   577                           ;main.c: 273: j++;
   578  0248  0AD6               	incf	?a_Analog_Digital+2
   579                           ;main.c: 274: if(j>230)
   580  0249  30E7               	movlw	-25
   581  024A  0256               	subwf	?a_Analog_Digital+2,w
   582  024B  1803               	btfsc	3,0
   583                           ;main.c: 275: return 0;
   584  024C  3400               	retlw	0
   585  024D  2A46               	goto	l36
   586                           ;main.c: 276: }
   587  024E                     l37
   588                           ;main.c: 277: i = ADRESL;
   589  024E  1683               	bsf	3,5
   590  024F  081E               	movf	30,w	;volatile
   591  0250  1283               	bcf	3,5
   592  0251  00D5               	movwf	?a_Analog_Digital+1
   593                           ;main.c: 278: j = ADRESH;
   594  0252  081E               	movf	30,w	;volatile
   595  0253  00D6               	movwf	?a_Analog_Digital+2
   596                           ;main.c: 279: ADIF=0;
   597  0254  130C               	bcf	12,6
   598                           ;main.c: 280: *AD_data=j*256+i;
   599  0255  00F3               	movwf	btemp+3
   600  0256  01F2               	clrf	btemp+2
   601  0257  0855               	movf	?a_Analog_Digital+1,w
   602  0258  00F0               	movwf	btemp
   603  0259  01F1               	clrf	btemp+1
   604  025A  0872               	movf	btemp+2,w
   605  025B  07F0               	addwf	btemp
   606  025C  1803               	btfsc	3,0
   607  025D  0AF1               	incf	btemp+1
   608  025E  0873               	movf	btemp+3,w
   609  025F  07F1               	addwf	btemp+1
   610  0260  0853               	movf	?_Analog_Digital,w
   611  0261  0084               	movwf	4
   612  0262  1383               	bcf	3,7
   613  0263  0870               	movf	btemp,w
   614  0264  0080               	movwf	0
   615  0265  0A84               	incf	4
   616  0266  0871               	movf	btemp+1,w
   617  0267  0080               	movwf	0
   618                           ;main.c: 281: return 1;
   619  0268  3401               	retlw	1
   620                           ;main.c: 293: unsigned char AD_Change(unsigned 
      +                          char ch_num)
   621                           ;main.c: 294: {
   622  0269                     _AD_Change
   623                           ;	_ch_num assigned to ?a_AD_Change+0
   624  0000                     _AD_Change$ch_num	set	?a_AD_Change
   625                           ;	_i assigned to ?a_AD_Change+1
   626  0000                     _AD_Change$i	set	?a_AD_Change+1
   627                           ;	_j assigned to ?a_AD_Change+2
   628  0000                     _AD_Change$j	set	?a_AD_Change+2
   629                           ;	_k assigned to ?a_AD_Change+3
   630  0000                     _AD_Change$k	set	?a_AD_Change+3
   631                           ;	_AD_buff assigned to ?a_AD_Change+7
   632  0000                     _AD_Change$AD_buff	set	?a_AD_Change+7
   633                           ;_ch_num stored from w
   634  0269  0183               	clrf	3	;select bank 0
   635  026A  00A2               	movwf	?a_AD_Change
   636                           ;main.c: 295: unsigned char i,j;
   637  026B  01A5               	clrf	?a_AD_Change+3
   638  026C  01A6               	clrf	?a_AD_Change+4
   639  026D  01A7               	clrf	?a_AD_Change+5
   640  026E  01A8               	clrf	?a_AD_Change+6
   641                           ;main.c: 297: unsigned int AD_buff[21];
   642  026F  3002               	movlw	2
   643  0270  0222               	subwf	?a_AD_Change,w
   644  0271  1803               	btfsc	3,0
   645                           ;main.c: 299: return 0;
   646  0272  3400               	retlw	0
   647                           ;main.c: 301: for(i = 0; i < 21; i++)
   648  0273  01A3               	clrf	?a_AD_Change+1
   649  0274                     l43
   650                           ;main.c: 302: {
   651                           ;main.c: 303: if(Analog_Digital(ch_num,&AD_buff
      +                          [i])==0)
   652  0274  0823               	movf	?a_AD_Change+1,w
   653  0275  0723               	addwf	?a_AD_Change+1,w
   654  0276  3E29               	addlw	?a_AD_Change+7
   655  0277  00D3               	movwf	?_Analog_Digital
   656  0278  0822               	movf	?a_AD_Change,w
   657  0279  2234               	fcall	_Analog_Digital
   658  027A  00F0               	movwf	btemp
   659  027B  01F1               	clrf	btemp+1
   660  027C  0471               	iorwf	btemp+1,w
   661  027D  1903               	btfsc	3,2
   662                           ;main.c: 304: {
   663  027E  3400               	retlw	0
   664                           ;main.c: 306: }
   665  027F  0AA3               	incf	?a_AD_Change+1
   666  0280  3015               	movlw	21
   667  0281  0223               	subwf	?a_AD_Change+1,w
   668  0282  1C03               	btfss	3,0
   669  0283  2A74               	goto	l43
   670                           ;main.c: 308: for(i = 1;i < 21; i++)
   671  0284  01A3               	clrf	?a_AD_Change+1
   672  0285  0AA3               	incf	?a_AD_Change+1
   673  0286                     l47
   674                           ;main.c: 309: {
   675                           ;main.c: 310: for(j = 0;j < 20;j++)
   676  0286  01A4               	clrf	?a_AD_Change+2
   677  0287                     l50
   678                           ;main.c: 311: {
   679                           ;main.c: 312: if(AD_buff[j]>AD_buff[j+1])
   680  0287  0824               	movf	?a_AD_Change+2,w
   681  0288  0724               	addwf	?a_AD_Change+2,w
   682  0289  3E29               	addlw	?a_AD_Change+7
   683  028A  0084               	movwf	4
   684  028B  1383               	bcf	3,7
   685  028C  0800               	movf	0,w
   686  028D  00F0               	movwf	btemp
   687  028E  0A84               	incf	4
   688  028F  0800               	movf	0,w
   689  0290  00F1               	movwf	btemp+1
   690  0291  0824               	movf	?a_AD_Change+2,w
   691  0292  0724               	addwf	?a_AD_Change+2,w
   692  0293  3E02               	addlw	2
   693  0294  3E29               	addlw	?a_AD_Change+7
   694  0295  0084               	movwf	4
   695  0296  0800               	movf	0,w
   696  0297  00F2               	movwf	btemp+2
   697  0298  0A84               	incf	4
   698  0299  0800               	movf	0,w
   699  029A  00F3               	movwf	btemp+3
   700  029B  0871               	movf	btemp+1,w
   701  029C  0273               	subwf	btemp+3,w
   702  029D  1D03               	btfss	3,2
   703  029E  2AA1               	goto	u315
   704  029F  0870               	movf	btemp,w
   705  02A0  0272               	subwf	btemp+2,w
   706  02A1                     u315
   707  02A1  1803               	btfsc	3,0
   708  02A2  2AD0               	goto	l53
   709                           ;main.c: 313: {
   710  02A3  0824               	movf	?a_AD_Change+2,w
   711  02A4  0724               	addwf	?a_AD_Change+2,w
   712  02A5  3E29               	addlw	?a_AD_Change+7
   713  02A6  0084               	movwf	4
   714  02A7  1383               	bcf	3,7
   715  02A8  0800               	movf	0,w
   716  02A9  00F0               	movwf	btemp
   717  02AA  0A84               	incf	4
   718  02AB  0800               	movf	0,w
   719  02AC  00F1               	movwf	btemp+1
   720  02AD  0870               	movf	btemp,w
   721  02AE  00A5               	movwf	?a_AD_Change+3
   722  02AF  0871               	movf	btemp+1,w
   723  02B0  00A6               	movwf	?a_AD_Change+4
   724  02B1  01A7               	clrf	?a_AD_Change+5
   725  02B2  01A8               	clrf	?a_AD_Change+6
   726                           ;main.c: 315: AD_buff[j] = AD_buff[j+1];
   727  02B3  0824               	movf	?a_AD_Change+2,w
   728  02B4  0724               	addwf	?a_AD_Change+2,w
   729  02B5  3E02               	addlw	2
   730  02B6  3E29               	addlw	?a_AD_Change+7
   731  02B7  0084               	movwf	4
   732  02B8  0800               	movf	0,w
   733  02B9  00F0               	movwf	btemp
   734  02BA  0A84               	incf	4
   735  02BB  0800               	movf	0,w
   736  02BC  00F1               	movwf	btemp+1
   737  02BD  0824               	movf	?a_AD_Change+2,w
   738  02BE  0724               	addwf	?a_AD_Change+2,w
   739  02BF  3E29               	addlw	?a_AD_Change+7
   740  02C0  0084               	movwf	4
   741  02C1  0870               	movf	btemp,w
   742  02C2  0080               	movwf	0
   743  02C3  0A84               	incf	4
   744  02C4  0871               	movf	btemp+1,w
   745  02C5  0080               	movwf	0
   746                           ;main.c: 316: AD_buff[j+1] = k;
   747  02C6  0824               	movf	?a_AD_Change+2,w
   748  02C7  0724               	addwf	?a_AD_Change+2,w
   749  02C8  3E02               	addlw	2
   750  02C9  3E29               	addlw	?a_AD_Change+7
   751  02CA  0084               	movwf	4
   752  02CB  0825               	movf	?a_AD_Change+3,w

⌨️ 快捷键说明

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