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

📄 main.lst

📁 用PIC16F887做的4个触摸按键的例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
   752  01D3' 2800'              	goto	l164
   753  01D4'                    l166
   754  01D4' 0800'              	movf	_INDEX,w
   755  01D5' 0080'              	movwf	btemp
   756  01D6' 3EEF               	addlw	-17
   757  01D7' 1803               	btfsc	3,0
   758  01D8' 2800'              	goto	l164
   759  01D9' 3E11               	addlw	17
   760  01DA' 1C03               	btfss	3,0
   761  01DB' 2800'              	goto	l164
   762  01DC' 3000               	movlw	0
   763  01DD' 0280'              	subwf	btemp
   764  01DE' 3000'              	movlw	S30004 shr (0+8)
   765  01DF' 008A               	movwf	10
   766  01E0' 3000'              	movlw	S30004& (0+255)
   767  01E1' 0700'              	addwf	btemp,w
   768  01E2' 1803               	btfsc	3,0
   769  01E3' 0A8A               	incf	10
   770  01E4' 0082               	movwf	2
   771  01E5'                    S30004
   772  01E5' 2800'              	goto	l183
   773  01E6' 2800'              	goto	l167
   774  01E7' 2800'              	goto	l168
   775  01E8' 2800'              	goto	l169
   776  01E9' 2800'              	goto	l170
   777  01EA' 2800'              	goto	l171
   778  01EB' 2800'              	goto	l172
   779  01EC' 2800'              	goto	l173
   780  01ED' 2800'              	goto	l174
   781  01EE' 2800'              	goto	l175
   782  01EF' 2800'              	goto	l176
   783  01F0' 2800'              	goto	l177
   784  01F1' 2800'              	goto	l178
   785  01F2' 2800'              	goto	l179
   786  01F3' 2800'              	goto	l180
   787  01F4' 2800'              	goto	l181
   788  01F5' 2800'              	goto	l182
   789  01F6'                    l164
   790                           ;main.c: 676: }
   791  01F6' 0800'              	movf	_INDEX,w
   792  01F7' 0700'              	addwf	_INDEX,w
   793  01F8' 3E00'              	addlw	_AVERAGE^(0+256)
   794  01F9' 0084               	movwf	4
   795  01FA' 1783               	bsf	3,7
   796  01FB' 0800               	movf	0,w
   797  01FC' 0080'              	movwf	btemp
   798  01FD' 0A84               	incf	4
   799  01FE' 0800               	movf	0,w
   800  01FF' 0081'              	movwf	btemp+1
   801  0200' 0801'              	movf	_BIGVAL+1,w
   802  0201' 0201'              	subwf	btemp+1,w
   803  0202' 1D03               	btfss	3,2
   804  0203' 2800'              	goto	u1255
   805  0204' 0800'              	movf	_BIGVAL,w
   806  0205' 0200'              	subwf	btemp,w
   807  0206'                    u1255
   808  0206' 1803               	btfsc	3,0
   809  0207' 2800'              	goto	l185
   810                           ;main.c: 683: AVERAGE[INDEX] = BIGVAL;
   811  0208' 0800'              	movf	_INDEX,w
   812  0209' 0700'              	addwf	_INDEX,w
   813  020A' 3E00'              	addlw	_AVERAGE^(0+256)
   814  020B' 0084               	movwf	4
   815  020C' 1783               	bsf	3,7
   816  020D' 0800'              	movf	_BIGVAL,w
   817  020E' 0080               	movwf	0
   818  020F' 0A84               	incf	4
   819  0210' 0801'              	movf	_BIGVAL+1,w
   820  0211' 0080               	movwf	0
   821  0212'                    l185
   822                           ;main.c: 690: if (AvgIndex < 10) AvgIndex++;
   823  0212' 300A               	movlw	10
   824  0213' 0200'              	subwf	_AvgIndex,w
   825  0214' 1803               	btfsc	3,0
   826  0215' 2800'              	goto	l186
   827  0216' 0A80'              	incf	_AvgIndex
   828  0217' 2800'              	goto	l187
   829  0218'                    l186
   830                           ;main.c: 691: else AvgIndex = 0;
   831  0218' 0180'              	clrf	_AvgIndex
   832  0219'                    l187
   833                           ;main.c: 693: if (AvgIndex == 10) {
   834  0219' 0800'              	movf	_AvgIndex,w
   835  021A' 3A0A               	xorlw	10
   836  021B' 1D03               	btfss	3,2
   837  021C' 2800'              	goto	l188
   838                           ;main.c: 695: AVERAGE[INDEX] = AVERAGE[INDEX] +
      +                           (VALUE - SMALLAVG);
   839  021D' 0800'              	movf	_INDEX,w
   840  021E' 0700'              	addwf	_INDEX,w
   841  021F' 3E00'              	addlw	_AVERAGE^(0+256)
   842  0220' 0084               	movwf	4
   843  0221' 1783               	bsf	3,7
   844  0222' 0800               	movf	0,w
   845  0223' 0080'              	movwf	btemp
   846  0224' 0A84               	incf	4
   847  0225' 0800               	movf	0,w
   848  0226' 0081'              	movwf	btemp+1
   849  0227' 0800'              	movf	btemp,w
   850  0228' 0080'              	movwf	?a_CapISR
   851  0229' 0801'              	movf	btemp+1,w
   852  022A' 0081'              	movwf	?a_CapISR+1
   853  022B' 0801'              	movf	_VALUE+1,w
   854  022C' 0081'              	movwf	btemp+1
   855  022D' 0800'              	movf	_VALUE,w
   856  022E' 0080'              	movwf	btemp
   857  022F' 0800'              	movf	_SMALLAVG,w
   858  0230' 0280'              	subwf	btemp
   859  0231' 1C03               	btfss	3,0
   860  0232' 0381'              	decf	btemp+1
   861  0233' 0801'              	movf	_SMALLAVG+1,w
   862  0234' 0281'              	subwf	btemp+1
   863  0235' 0800'              	movf	?a_CapISR,w
   864  0236' 0780'              	addwf	btemp
   865  0237' 1803               	btfsc	3,0
   866  0238' 0A81'              	incf	btemp+1
   867  0239' 0801'              	movf	?a_CapISR+1,w
   868  023A' 0781'              	addwf	btemp+1
   869  023B' 0800'              	movf	_INDEX,w
   870  023C' 0700'              	addwf	_INDEX,w
   871  023D' 3E00'              	addlw	_AVERAGE^(0+256)
   872  023E' 0084               	movwf	4
   873  023F' 1783               	bsf	3,7
   874  0240' 0800'              	movf	btemp,w
   875  0241' 0080               	movwf	0
   876  0242' 0A84               	incf	4
   877  0243' 0801'              	movf	btemp+1,w
   878  0244' 0080               	movwf	0
   879  0245'                    l188
   880                           ;main.c: 696: }
   881  0245' 1880'              	btfsc	_Flags,1
   882  0246' 2800'              	goto	l189
   883                           ;main.c: 703: SetNextChannel();
   884  0247' 2000' 120A' 118A'  	fcall	_SetNextChannel
   885  024A'                    l189
   886                           ;main.c: 706: RestartTimers();
   887  024A' 120A' 118A' 2800'  	ljmp	_RestartTimers
   888                           
   889                           	psect	text7
   890  0000'                    _SetChannel
   891                           ;	_idx assigned to ?a_SetChannel+0
   892  0000                     _SetChannel$idx	set	?a_SetChannel
   893                           ;_idx stored from w
   894  0000' 0183               	clrf	3	;select bank 0
   895  0001' 0080'              	movwf	?a_SetChannel
   896                           ;main.c: 758: void SetChannel(char idx) {
   897  0002' 0080'              	movwf	_INDEX
   898                           ;main.c: 763: RB3 = (INDEX <= 8) ? 1 : 0;
   899  0003' 3009               	movlw	9
   900  0004' 0200'              	subwf	_INDEX,w
   901  0005' 1803               	btfsc	3,0
   902  0006' 2800'              	goto	u1330
   903  0007' 1586               	bsf	6,3
   904  0008' 2800'              	goto	u1344
   905  0009'                    u1330
   906  0009' 1186               	bcf	6,3
   907  000A'                    u1344
   908                           ;main.c: 764: PORTB &= 0xF8;
   909  000A' 30F8               	movlw	-8
   910  000B' 0586               	andwf	6	;volatile
   911                           ;main.c: 765: PORTB |= ( ( (INDEX-1) % 8) & 0x0
      +                          7 );
   912  000C' 0300'              	decf	_INDEX,w
   913  000D' 3907               	andlw	7
   914  000E' 0486               	iorwf	6	;volatile
   915                           ;main.c: 768: if (INDEX == 0) {
   916  000F' 0880'              	movf	_INDEX
   917  0010' 1D03               	btfss	3,2
   918  0011' 2800'              	goto	l196
   919                           ;main.c: 769: CM1CON0 = COMP1[0];
   920  0012' 120A' 118A' 2000'  	fcall	_COMP1
   921  0015' 1703               	bsf	3,6
   922  0016' 0087               	movwf	7	;volatile
   923                           ;main.c: 770: CM2CON0 = COMP2[0];
   924  0017' 120A' 118A' 2000'  	fcall	_COMP2
      +       120A' 118A'        
   925  001C' 2800'              	goto	L19
   926                           ;main.c: 771: } else {
   927  001D'                    l196
   928                           ;main.c: 772: CM1CON0 = COMP1[1];
   929  001D' 3000'              	movlw	_COMP1 shr (0+8)
   930  001E' 008A               	movwf	10
   931  001F' 3001               	movlw	1
   932  0020' 2000'              	call	((_COMP1+-1)& (0+2047))| (($)& (0+-2048))
   933  0021' 1703               	bsf	3,6
   934  0022' 0087               	movwf	7	;volatile
   935                           ;main.c: 773: CM2CON0 = COMP2[1];
   936  0023' 3000'              	movlw	_COMP2 shr (0+8)
   937  0024' 008A               	movwf	10
   938  0025' 3001               	movlw	1
   939  0026' 2000'              	call	((_COMP2+-1)& (0+2047))| (($)& (0+-2048))
   940  0027' 120A' 118A'        	pagesel	$
   941  0029'                    L19
   942  0029' 0088               	movwf	8	;volatile
   943                           ;main.c: 774: }
   944  002A' 1303               	bcf	3,6	;carry unused
   945  002B' 0008               	return	;W free
   946  002C'                    _RestartTimers
   947                           ;main.c: 411: void RestartTimers(void) {
   948  002C' 0183               	clrf	3	;select bank 0
   949  002D' 018E               	clrf	14	;volatile
   950                           ;main.c: 414: TMR1H = 0;
   951  002E' 018F               	clrf	15	;volatile
   952                           ;main.c: 415: TMR1ON = 1;
   953  002F' 1410               	bsf	16,0
   954                           ;main.c: 416: TMR0 = 0;
   955  0030' 0181               	clrf	1	;volatile
   956                           ;main.c: 417: T0IF = 0;
   957  0031' 110B               	bcf	11,2
   958                           ;main.c: 418: }
   959  0032' 0008               	return	;W free
   960  0033'                    _CapInit
   961                           ;main.c: 429: void CapInit(void) {
   962  0033' 0183               	clrf	3	;select bank 0
   963  0034' 0180'              	clrf	_INDEX
   964  0035' 2800'              	goto	l119
   965  0036'                    l116
   966                           ;main.c: 434: if (INDEX != 0 && INDEX < 11) {
   967  0036' 0880'              	movf	_INDEX
   968  0037' 1903               	btfsc	3,2
   969  0038' 2800'              	goto	l120
   970  0039' 300B               	movlw	11
   971  003A' 0200'              	subwf	_INDEX,w
   972  003B' 1803               	btfsc	3,0
   973  003C' 2800'              	goto	l120
   974                           ;main.c: 436: RAW[INDEX] = 0;
   975  003D' 0800'              	movf	_INDEX,w
   976  003E' 0700'              	addwf	_INDEX,w
   977  003F' 3E00'              	addlw	_RAW^(0+256)
   978  0040' 0084               	movwf	4
   979  0041' 1783               	bsf	3,7
   980  0042' 0180               	clrf	0
   981  0043' 0A84               	incf	4
   982  0044' 0180               	clrf	0
   983                           ;main.c: 437: AVERAGE[INDEX] = 0;
   984  0045' 0800'              	movf	_INDEX,w
   985  0046' 0700'              	addwf	_INDEX,w
   986  0047' 3E00'              	addlw	_AVERAGE^(0+256)
   987  0048' 0084               	movwf	4
   988  0049' 1783               	bsf	3,7
   989  004A' 0180               	clrf	0
   990  004B' 0A84               	incf	4
   991  004C' 0180               	clrf	0
   992                           ;main.c: 438: GUARD[INDEX] = 60;
   993  004D' 0800'              	movf	_INDEX,w
   994  004E' 0700'              	addwf	_INDEX,w
   995  004F' 3E00'              	addlw	_GUARD^(0+256)
   996  0050' 0084               	movwf	4
   997  0051' 1783               	bsf	3,7
   998  0052' 303C               	movlw	60
   999  0053' 0080               	movwf	0
  1000  0054' 0A84               	incf	4
  1001  0055' 0180               	clrf	0
  1002                           ;main.c: 439: TRIP[INDEX] = 145;
  1003  0056' 0800'              	movf	_INDEX,w
  1004  0057' 0700'              	addwf	_INDEX,w
  1005  0058' 3E00'              	addlw	_TRIP^(0+256)
  1006  0059' 0084               	movwf	4
  1007  005A' 1783               	bsf	3,7
  1008  005B' 3091               	movlw	145
  1009  005C' 0080               	movwf	0
  1010  005D' 0A84               	incf	4

⌨️ 快捷键说明

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