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

📄 main887.lst

📁 用PIC16F887做的4个触摸按键的例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
      +                          break;
   738  060C  13B6               	bcf	_Buttons+1,7
   739  060D  2E32               	goto	l173
   740  060E                     l192
   741                           ;main887.c: 693: case 0: Buttons.PWR = 0; break
      +                          ;
   742  060E  1037               	bcf	_Buttons+2,0
   743                           ;main887.c: 694: default: break;
   744  060F  2E32               	goto	l173
   745  0610                     l175
   746  0610  0824               	movf	_INDEX,w
   747  0611  00FA               	movwf	btemp
   748  0612  3EEF               	addlw	-17
   749  0613  1803               	btfsc	3,0
   750  0614  2E32               	goto	l173
   751  0615  3E11               	addlw	17
   752  0616  1C03               	btfss	3,0
   753  0617  2E32               	goto	l173
   754  0618  3000               	movlw	0
   755  0619  02FA               	subwf	btemp
   756  061A  3006               	movlw	S30004 shr (0+8)
   757  061B  008A               	movwf	10
   758  061C  3021               	movlw	S30004& (0+255)
   759  061D  077A               	addwf	btemp,w
   760  061E  1803               	btfsc	3,0
   761  061F  0A8A               	incf	10
   762  0620  0082               	movwf	2
   763  0621                     S30004
   764  0621  2E0E               	goto	l192
   765  0622  2DEE               	goto	l176
   766  0623  2DF0               	goto	l177
   767  0624  2DF2               	goto	l178
   768  0625  2DF4               	goto	l179
   769  0626  2DF6               	goto	l180
   770  0627  2DF8               	goto	l181
   771  0628  2DFA               	goto	l182
   772  0629  2DFC               	goto	l183
   773  062A  2DFE               	goto	l184
   774  062B  2E00               	goto	l185
   775  062C  2E02               	goto	l186
   776  062D  2E04               	goto	l187
   777  062E  2E06               	goto	l188
   778  062F  2E08               	goto	l189
   779  0630  2E0A               	goto	l190
   780  0631  2E0C               	goto	l191
   781  0632                     l173
   782                           ;main887.c: 696: }
   783  0632  0824               	movf	_INDEX,w
   784  0633  0724               	addwf	_INDEX,w
   785  0634  3E10               	addlw	_AVERAGE^(0+256)
   786  0635  0084               	movwf	4
   787  0636  1783               	bsf	3,7
   788  0637  0800               	movf	0,w
   789  0638  00FA               	movwf	btemp
   790  0639  0A84               	incf	4
   791  063A  0800               	movf	0,w
   792  063B  00FB               	movwf	btemp+1
   793  063C  082C               	movf	_BIGVAL+1,w
   794  063D  027B               	subwf	btemp+1,w
   795  063E  1D03               	btfss	3,2
   796  063F  2E42               	goto	u1365
   797  0640  082B               	movf	_BIGVAL,w
   798  0641  027A               	subwf	btemp,w
   799  0642                     u1365
   800  0642  1803               	btfsc	3,0
   801  0643  2E6C               	goto	l194
   802                           ;main887.c: 703: AVERAGE[INDEX] = AVERAGE[INDEX
      +                          ] + (VALUE - SMALLAVG);
   803  0644  0824               	movf	_INDEX,w
   804  0645  0724               	addwf	_INDEX,w
   805  0646  3E10               	addlw	_AVERAGE^(0+256)
   806  0647  0084               	movwf	4
   807  0648  1783               	bsf	3,7
   808  0649  0800               	movf	0,w
   809  064A  00FA               	movwf	btemp
   810  064B  0A84               	incf	4
   811  064C  0800               	movf	0,w
   812  064D  00FB               	movwf	btemp+1
   813  064E  087A               	movf	btemp,w
   814  064F  00BE               	movwf	?a_CapISR
   815  0650  087B               	movf	btemp+1,w
   816  0651  00BF               	movwf	?a_CapISR+1
   817  0652  0832               	movf	_VALUE+1,w
   818  0653  00FB               	movwf	btemp+1
   819  0654  0831               	movf	_VALUE,w
   820  0655  00FA               	movwf	btemp
   821  0656  082D               	movf	_SMALLAVG,w
   822  0657  02FA               	subwf	btemp
   823  0658  1C03               	btfss	3,0
   824  0659  03FB               	decf	btemp+1
   825  065A  082E               	movf	_SMALLAVG+1,w
   826  065B  02FB               	subwf	btemp+1
   827  065C  083E               	movf	?a_CapISR,w
   828  065D  07FA               	addwf	btemp
   829  065E  1803               	btfsc	3,0
   830  065F  0AFB               	incf	btemp+1
   831  0660  083F               	movf	?a_CapISR+1,w
   832  0661  07FB               	addwf	btemp+1
   833  0662  0824               	movf	_INDEX,w
   834  0663  0724               	addwf	_INDEX,w
   835  0664  3E10               	addlw	_AVERAGE^(0+256)
   836  0665  0084               	movwf	4
   837  0666  1783               	bsf	3,7
   838  0667  087A               	movf	btemp,w
   839  0668  0080               	movwf	0
   840  0669  0A84               	incf	4
   841  066A  087B               	movf	btemp+1,w
   842  066B  0080               	movwf	0
   843  066C                     l194
   844                           ;main887.c: 704: }
   845  066C  3004               	movlw	4
   846  066D  0220               	subwf	_AvgIndex,w
   847  066E  1803               	btfsc	3,0
   848  066F  2E72               	goto	l195
   849  0670  0AA0               	incf	_AvgIndex
   850  0671  2E73               	goto	l196
   851  0672                     l195
   852                           ;main887.c: 712: else AvgIndex = 0;
   853  0672  01A0               	clrf	_AvgIndex
   854  0673                     l196
   855                           ;main887.c: 714: if (AvgIndex == 4) {
   856  0673  0820               	movf	_AvgIndex,w
   857  0674  3A04               	xorlw	4
   858  0675  1D03               	btfss	3,2
   859  0676  2E9F               	goto	l197
   860                           ;main887.c: 716: AVERAGE[INDEX] = AVERAGE[INDEX
      +                          ] + (VALUE - SMALLAVG);
   861  0677  0824               	movf	_INDEX,w
   862  0678  0724               	addwf	_INDEX,w
   863  0679  3E10               	addlw	_AVERAGE^(0+256)
   864  067A  0084               	movwf	4
   865  067B  1783               	bsf	3,7
   866  067C  0800               	movf	0,w
   867  067D  00FA               	movwf	btemp
   868  067E  0A84               	incf	4
   869  067F  0800               	movf	0,w
   870  0680  00FB               	movwf	btemp+1
   871  0681  087A               	movf	btemp,w
   872  0682  00BE               	movwf	?a_CapISR
   873  0683  087B               	movf	btemp+1,w
   874  0684  00BF               	movwf	?a_CapISR+1
   875  0685  0832               	movf	_VALUE+1,w
   876  0686  00FB               	movwf	btemp+1
   877  0687  0831               	movf	_VALUE,w
   878  0688  00FA               	movwf	btemp
   879  0689  082D               	movf	_SMALLAVG,w
   880  068A  02FA               	subwf	btemp
   881  068B  1C03               	btfss	3,0
   882  068C  03FB               	decf	btemp+1
   883  068D  082E               	movf	_SMALLAVG+1,w
   884  068E  02FB               	subwf	btemp+1
   885  068F  083E               	movf	?a_CapISR,w
   886  0690  07FA               	addwf	btemp
   887  0691  1803               	btfsc	3,0
   888  0692  0AFB               	incf	btemp+1
   889  0693  083F               	movf	?a_CapISR+1,w
   890  0694  07FB               	addwf	btemp+1
   891  0695  0824               	movf	_INDEX,w
   892  0696  0724               	addwf	_INDEX,w
   893  0697  3E10               	addlw	_AVERAGE^(0+256)
   894  0698  0084               	movwf	4
   895  0699  1783               	bsf	3,7
   896  069A  087A               	movf	btemp,w
   897  069B  0080               	movwf	0
   898  069C  0A84               	incf	4
   899  069D  087B               	movf	btemp+1,w
   900  069E  0080               	movwf	0
   901  069F                     l197
   902                           ;main887.c: 717: }
   903  069F  18A3               	btfsc	_Flags,1
   904  06A0  2EA4               	goto	l198
   905                           ;main887.c: 722: SetNextChannel();
   906  06A1  2446  120A  118A   	fcall	_SetNextChannel
   907  06A4                     l198
   908                           ;main887.c: 725: RestartTimers();
   909  06A4  120A  118A  28E2   	ljmp	_RestartTimers
   910                           
   911                           	psect	text9
   912  0072                     _WakeupWheel
   913                           ;main887.c: 836: void WakeupWheel(void) {
   914  0072  1683               	bsf	3,5
   915  0073  1303               	bcf	3,6	;carry unused
   916  0074  118C               	bcf	12,3
   917                           ;main887.c: 842: SEN = 1;
   918  0075  1411               	bsf	17,0
   919                           ;main887.c: 843: while (SEN);
   920  0076                     l227
   921  0076  1811               	btfsc	17,0
   922  0077  2876               	goto	l227
   923                           ;main887.c: 844: SSPBUF = 0x72;
   924  0078  3072               	movlw	114
   925  0079  1283               	bcf	3,5
   926  007A  0093               	movwf	19	;volatile
   927                           ;main887.c: 845: while (RW);
   928  007B                     l230
   929  007B  1683               	bsf	3,5
   930  007C  1914               	btfsc	20,2
   931  007D  287B               	goto	l230
   932                           ;main887.c: 846: SSPBUF = 0x50;
   933  007E  3050               	movlw	80
   934  007F  1283               	bcf	3,5
   935  0080  0093               	movwf	19	;volatile
   936                           ;main887.c: 847: while (RW);
   937  0081                     l233
   938  0081  1683               	bsf	3,5
   939  0082  1914               	btfsc	20,2
   940  0083  2881               	goto	l233
   941                           ;main887.c: 848: SSPBUF = 0x00;
   942  0084  1283               	bcf	3,5
   943  0085  0193               	clrf	19	;volatile
   944                           ;main887.c: 849: while (RW);
   945  0086                     l236
   946  0086  1683               	bsf	3,5
   947  0087  1914               	btfsc	20,2
   948  0088  2886               	goto	l236
   949                           ;main887.c: 850: SSPBUF = 0x00;
   950  0089  1283               	bcf	3,5
   951  008A  0193               	clrf	19	;volatile
   952                           ;main887.c: 851: while (RW);
   953  008B                     l239
   954  008B  1683               	bsf	3,5
   955  008C  1914               	btfsc	20,2
   956  008D  288B               	goto	l239
   957                           ;main887.c: 852: PEN = 1;
   958  008E  1511               	bsf	17,2
   959                           ;main887.c: 853: while (PEN);
   960  008F                     l242
   961  008F  1911               	btfsc	17,2
   962  0090  288F               	goto	l242
   963                           ;main887.c: 854: SSPIE = 1;
   964  0091  158C               	bsf	12,3
   965                           ;main887.c: 856: }
   966  0092  1283               	bcf	3,5
   967  0093  0008               	return	;W free
   968  0094                     _SetChannel
   969                           ;	_idx assigned to ?a_SetChannel+0
   970  0000                     _SetChannel$idx	set	?a_SetChannel
   971                           ;_idx stored from w
   972  0094  0183               	clrf	3	;select bank 0
   973  0095  00BC               	movwf	?a_SetChannel
   974                           ;main887.c: 777: void SetChannel(char idx) {
   975  0096  00A4               	movwf	_INDEX
   976                           ;main887.c: 782: RB3 = (INDEX <= 8) ? 1 : 0;
   977  0097  3009               	movlw	9
   978  0098  0224               	subwf	_INDEX,w
   979  0099  1803               	btfsc	3,0
   980  009A  289D               	goto	u1440
   981  009B  1586               	bsf	6,3
   982  009C  289E               	goto	u1454
   983  009D                     u1440
   984  009D  1186               	bcf	6,3
   985  009E                     u1454
   986                           ;main887.c: 783: PORTB &= 0xF8;
   987  009E  30F8               	movlw	-8
   988  009F  0586               	andwf	6	;volatile
   989                           ;main887.c: 784: PORTB |= ( ( (INDEX-1) % 8) & 
      +                          0x07 );
   990  00A0  0324               	decf	_INDEX,w
   991  00A1  3907               	andlw	7
   992  00A2  0486               	iorwf	6	;volatile
   993                           ;main887.c: 787: if (INDEX == 0) {
   994  00A3  08A4               	movf	_INDEX

⌨️ 快捷键说明

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