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

📄 mtouch16pic16f883.lst

📁 用pic16f883做的16个键的触摸按键(MTOUCH)实现电容式触摸按键的代码。有mtouch16.c构成
💻 LST
📖 第 1 页 / 共 5 页
字号:
   994                           	global	_isr
   995                           	global	??_isr
   996                           	global	?_isr
   997                           
   998                           ; *************** function _isr ***************
                                 **
   999                           ; Defined at:
  1000                           ;		line 176 in file "F:\pro\mtouch16\mtouch16.c
                                 "
  1001                           ; Parameters:
  1002                           ;		None
  1003                           ; Auto variables:
  1004                           ;		None
  1005                           ; Return value:
  1006                           ;		type: void 
  1007                           ;		size: 0
  1008                           ; Registers used:
  1009                           ;		wreg, fsr, status,2, status,0, pclath, cstac
                                 k
  1010                           ; Tracked objects:
  1011                           ;		On entry : 300/0
  1012                           ;		On exit  : 0/0
  1013                           ;		Unchanged: 0/0
  1014                           ; Data sizes:
  1015                           ;		Autos:    0
  1016                           ;		Params:   0
  1017                           ;		Temp:    14
  1018                           ;		Total:   14
  1019                           ; This function calls:
  1020                           ;		i1_Abit_restart_timer
  1021                           ;		_Abit_next_channel
  1022                           ; This function is called by:
  1023                           ;		Interrupt level 1
  1024                           ; This function uses a non-reentrant model
  1025                           ; 
  1026                           	psect	intrtext,class=CODE,delta=2
  1027                           	file	"F:\pro\mtouch16\mtouch16.c"
  1028                           	line	176
  1029                           ;mtouch16.c: 175: void interrupt isr(void)
  1030                           ;mtouch16.c: 176: {
  1031                           	
  1032  0113                     _isr:	
  1033                           ; Regs used in _isr: [wreg+fsr+status,2+status,
                                 0+pclath+cstack]
  1034                           	psect	intentry,class=CODE,delta=2
  1035                           global interrupt_function
  1036  0004                     interrupt_function:
  1037                           	global saved_w
  1038  0000                     	saved_w	set	btemp+1
  1039  0004  00FF               	movwf	saved_w
  1040  0005  0803               	movf	status,w
  1041  0006  1283               	bcf	status, 5	;RP0=0, select bank0
  1042  0007  1303               	bcf	status, 6	;RP2=0, select bank0
  1043  0008  00EA               	movwf	(??_isr+10)
  1044  0009  0804               	movf	fsr,w
  1045  000A  00EB               	movwf	(??_isr+11)
  1046  000B  080A               	movf	pclath,w
  1047  000C  00EC               	movwf	(??_isr+12)
  1048  000D  087E               	movf	btemp,w
  1049  000E  00ED               	movwf	(??_isr+13)
  1050  000F  118A  2913         	ljmp	_isr
  1051                           	psect	intrtext
  1052                           	line	177
  1053                           ;mtouch16.c: 177: if (T0IF==1 && T0IE==1)
  1054                           	
  1055  0113  1D0B               	btfss	(90/8),(90)&7
  1056  0114  2916               	goto	i1u2411
  1057  0115  2917               	goto	i1u2410
  1058  0116                     i1u2411:
  1059  0116  2C47               	goto	i1l18
  1060  0117                     i1u2410:
  1061  0117  1283               	bcf	status, 5	;RP0=0, select bank0
  1062  0118  1303               	bcf	status, 6	;RP2=0, select bank0
  1063                           	
  1064  0119  1E8B               	btfss	(93/8),(93)&7
  1065  011A  291C               	goto	i1u2421
  1066  011B  291D               	goto	i1u2420
  1067  011C                     i1u2421:
  1068  011C  2C47               	goto	i1l18
  1069  011D                     i1u2420:
  1070                           	line	179
  1071                           ;mtouch16.c: 178: {
  1072                           ;mtouch16.c: 179: TMR1ON=0;
  1073  011D  1003               	clrc
  1074  011E  1283               	bcf	status, 5	;RP0=0, select bank0
  1075  011F  1303               	bcf	status, 6	;RP2=0, select bank0
  1076                           	
  1077  0120  1010               	bcf	(128/8),(128)&7
  1078  0121  1C03               	btfss	status,0
  1079  0122  2924               	goto	i1u2435
  1080  0123  1410               	bsf	(128/8),(128)&7
  1081  0124                     i1u2435:
  1082                           
  1083                           	line	180
  1084                           ;mtouch16.c: 180: VALUE = TMR1L + (unsigned int
                                 )(TMR1H << 8);
  1085  0124  1283               	bcf	status, 5	;RP0=0, select bank0
  1086  0125  1303               	bcf	status, 6	;RP2=0, select bank0
  1087                           	
  1088  0126  080F               	movf	(15),w	;volatile
  1089                           	
  1090  0127  00E0               	movwf	(??_isr+0+0)
  1091  0128  01E1               	clrf	(??_isr+0+0+1)
  1092  0129  3008               	movlw	08h
  1093  012A  0084               	movwf	fsr
  1094  012B                     i1u2445:
  1095  012B  1003               	clrc
  1096  012C  0DE0               	rlf	(??_isr+0+0),f
  1097  012D  0DE1               	rlf	(??_isr+0+1),f
  1098  012E  0B84               	decfsz	fsr,f
  1099  012F  292B               	goto	i1u2445
  1100                           	
  1101  0130  080E               	movf	(14),w	;volatile
  1102                           	
  1103  0131  0760               	addwf	0+(??_isr+0+0),w
  1104                           	
  1105  0132  00FC               	movwf	(124)
  1106  0133  0861               	movf	1+(??_isr+0+0),w
  1107  0134  1803               	skipnc
  1108  0135  0A61               	incf	1+(??_isr+0+0),w
  1109  0136  00FD               	movwf	((124))+1
  1110                           	line	181
  1111                           ;mtouch16.c: 181: RAW[INDEX]=VALUE;
  1112                           	
  1113                           	
  1114  0137  0878               	movf	(120),w
  1115                           	
  1116  0138  00E0               	movwf	(??_isr+0+0)
  1117  0139  0760               	addwf	(??_isr+0+0),w
  1118  013A  3EB0               	addlw	(176)
  1119  013B  0084               	movwf	fsr
  1120  013C  087C               	movf	(124),w
  1121  013D  1383               	bcf	status, 7	;select IRP bank0
  1122  013E  0080               	movwf	indf
  1123  013F  0A84               	incf	fsr,f
  1124  0140  087D               	movf	(124+1),w
  1125  0141  0080               	movwf	indf
  1126                           	line	182
  1127                           ;mtouch16.c: 182: BIGVAL=VALUE*16;
  1128  0142  1283               	bcf	status, 5	;RP0=0, select bank0
  1129  0143  1303               	bcf	status, 6	;RP2=0, select bank0
  1130                           	
  1131  0144  087D               	movf	(124+1),w
  1132  0145  00E1               	movwf	(??_isr+0+0+1)
  1133  0146  087C               	movf	(124),w
  1134  0147  00E0               	movwf	(??_isr+0+0)
  1135  0148  3004               	movlw	04h
  1136  0149  0084               	movwf	fsr
  1137  014A                     i1u2455:
  1138  014A  1003               	clrc
  1139  014B  0DE0               	rlf	(??_isr+0+0),f
  1140  014C  0DE1               	rlf	(??_isr+0+1),f
  1141  014D  0B84               	decfsz	fsr,f
  1142  014E  294A               	goto	i1u2455
  1143                           	
  1144  014F  0860               	movf	0+(??_isr+0+0),w
  1145  0150  00F3               	movwf	(115)
  1146  0151  0861               	movf	1+(??_isr+0+0),w
  1147  0152  00F4               	movwf	(115+1)
  1148                           	line	183
  1149                           ;mtouch16.c: 183: SMALLVAL=AVERAGE[INDEX]/16;
  1150  0153  1283               	bcf	status, 5	;RP0=0, select bank0
  1151  0154  1303               	bcf	status, 6	;RP2=0, select bank0
  1152                           	
  1153  0155  0878               	movf	(120),w
  1154                           	
  1155  0156  00E0               	movwf	(??_isr+0+0)
  1156  0157  0760               	addwf	(??_isr+0+0),w
  1157  0158  3ED0               	addlw	(208)
  1158  0159  0084               	movwf	fsr
  1159  015A  1383               	bcf	status, 7	;select IRP bank0
  1160  015B  0800               	movf	indf,w
  1161  015C  00E1               	movwf	(??_isr+1+0)
  1162  015D  3001               	movlw	1
  1163  015E  0784               	addwf	fsr,f
  1164  015F  0800               	movf	indf,w
  1165  0160  00E2               	movwf	(??_isr+1+0+1)
  1166  0161  3004               	movlw	04h
  1167  0162                     i1u2465:
  1168  0162  1003               	clrc
  1169  0163  0CE2               	rrf	(??_isr+1+1),f
  1170  0164  0CE1               	rrf	(??_isr+1+0),f
  1171  0165  3EFF               	addlw	-1
  1172  0166  1D03               	skipz
  1173  0167  2962               	goto	i1u2465
  1174                           	
  1175  0168  0861               	movf	0+(??_isr+1+0),w
  1176  0169  00FA               	movwf	(122)
  1177  016A  0862               	movf	1+(??_isr+1+0),w
  1178  016B  00FB               	movwf	(122+1)
  1179                           	line	184
  1180                           ;mtouch16.c: 184: RAW[INDEX]=BIGVAL;
  1181  016C  1283               	bcf	status, 5	;RP0=0, select bank0
  1182  016D  1303               	bcf	status, 6	;RP2=0, select bank0
  1183                           	
  1184                           	
  1185  016E  0878               	movf	(120),w
  1186                           	
  1187  016F  00E0               	movwf	(??_isr+0+0)
  1188  0170  0760               	addwf	(??_isr+0+0),w
  1189  0171  3EB0               	addlw	(176)
  1190  0172  0084               	movwf	fsr
  1191  0173  0873               	movf	(115),w
  1192  0174  1383               	bcf	status, 7	;select IRP bank0
  1193  0175  0080               	movwf	indf
  1194  0176  0A84               	incf	fsr,f
  1195  0177  0874               	movf	(115+1),w
  1196  0178  0080               	movwf	indf
  1197                           	line	186
  1198                           ;mtouch16.c: 186: if(FIRST>0)
  1199  0179  1283               	bcf	status, 5	;RP0=0, select bank0
  1200  017A  1303               	bcf	status, 6	;RP2=0, select bank0
  1201                           	
  1202  017B  08F7               	movf	(119),f
  1203  017C  1D03               	skipz
  1204  017D  297F               	goto	i1u2470
  1205  017E  2994               	goto	i1l19
  1206  017F                     i1u2470:
  1207                           	line	188
  1208                           ;mtouch16.c: 187: {
  1209                           ;mtouch16.c: 188: FIRST--;
  1210                           	
  1211  017F  1283               	bcf	status, 5	;RP0=0, select bank0
  1212  0180  1303               	bcf	status, 6	;RP2=0, select bank0
  1213                           	
  1214  0181  3001               	movlw	low(01h)
  1215  0182  02F7               	subwf	(119),f
  1216                           	line	189
  1217                           ;mtouch16.c: 189: AVERAGE[INDEX] = BIGVAL;
  1218  0183  1283               	bcf	status, 5	;RP0=0, select bank0
  1219  0184  1303               	bcf	status, 6	;RP2=0, select bank0
  1220                           	
  1221                           	
  1222  0185  0878               	movf	(120),w
  1223                           	
  1224  0186  00E0               	movwf	(??_isr+0+0)
  1225  0187  0760               	addwf	(??_isr+0+0),w
  1226  0188  3ED0               	addlw	(208)
  1227  0189  0084               	movwf	fsr
  1228  018A  0873               	movf	(115),w
  1229  018B  1383               	bcf	status, 7	;select IRP bank0
  1230  018C  0080               	movwf	indf
  1231  018D  0A84               	incf	fsr,f
  1232  018E  0874               	movf	(115+1),w
  1233  018F  0080               	movwf	indf
  1234                           	line	191
  1235                           ;mtouch16.c: 191: Abit_restart_timer();
  1236  0190  118A  2628  118A   	fcall	i1_Abit_restart_timer
  1237                           	line	193
  1238                           ;mtouch16.c: 193: return;
  1239  0193  2C47               	goto	i1l17
  1240                           	line	195
  1241                           	
  1242  0194                     i1l19:	
  1243                           	line	198
  1

⌨️ 快捷键说明

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