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

📄 mtouch_416f883.lst

📁 用pic16f883做的4个键的触摸按键(MTOUCH)实现电容式触摸按键的代码。有mtouch4.h和mtouch4.c构成
💻 LST
📖 第 1 页 / 共 5 页
字号:
   990  0007  1303               	bcf	status, 6	;RP2=0, select bank0
   991  0008  00DC               	movwf	(??_isr+9)
   992  0009  0804               	movf	fsr,w
   993  000A  00DD               	movwf	(??_isr+10)
   994  000B  080A               	movf	pclath,w
   995  000C  00DE               	movwf	(??_isr+11)
   996  000D  087E               	movf	btemp,w
   997  000E  00DF               	movwf	(??_isr+12)
   998  000F  118A  2917         	ljmp	_isr
   999                           	psect	intrtext
  1000                           	line	138
  1001                           ;mtouch4.c: 138: if (T0IF==1 && T0IE==1)
  1002                           	
  1003  0117  1D0B               	btfss	(90/8),(90)&7
  1004  0118  291A               	goto	i1u2201
  1005  0119  291B               	goto	i1u2200
  1006  011A                     i1u2201:
  1007  011A  2B2D               	goto	i1l14
  1008  011B                     i1u2200:
  1009  011B  1283               	bcf	status, 5	;RP0=0, select bank0
  1010  011C  1303               	bcf	status, 6	;RP2=0, select bank0
  1011                           	
  1012  011D  1E8B               	btfss	(93/8),(93)&7
  1013  011E  2920               	goto	i1u2211
  1014  011F  2921               	goto	i1u2210
  1015  0120                     i1u2211:
  1016  0120  2B2D               	goto	i1l14
  1017  0121                     i1u2210:
  1018                           	line	140
  1019                           ;mtouch4.c: 139: {
  1020                           ;mtouch4.c: 140: TMR1ON = 0;
  1021  0121  1003               	clrc
  1022  0122  1283               	bcf	status, 5	;RP0=0, select bank0
  1023  0123  1303               	bcf	status, 6	;RP2=0, select bank0
  1024                           	
  1025  0124  1010               	bcf	(128/8),(128)&7
  1026  0125  1C03               	btfss	status,0
  1027  0126  2928               	goto	i1u2225
  1028  0127  1410               	bsf	(128/8),(128)&7
  1029  0128                     i1u2225:
  1030                           
  1031                           	line	141
  1032                           ;mtouch4.c: 141: value = TMR1L + (unsigned int)
                                 (TMR1H << 8);
  1033  0128  1283               	bcf	status, 5	;RP0=0, select bank0
  1034  0129  1303               	bcf	status, 6	;RP2=0, select bank0
  1035                           	
  1036  012A  080F               	movf	(15),w	;volatile
  1037                           	
  1038  012B  00D3               	movwf	(??_isr+0+0)
  1039  012C  01D4               	clrf	(??_isr+0+0+1)
  1040  012D  3008               	movlw	08h
  1041  012E  0084               	movwf	fsr
  1042  012F                     i1u2235:
  1043  012F  1003               	clrc
  1044  0130  0DD3               	rlf	(??_isr+0+0),f
  1045  0131  0DD4               	rlf	(??_isr+0+1),f
  1046  0132  0B84               	decfsz	fsr,f
  1047  0133  292F               	goto	i1u2235
  1048                           	
  1049  0134  080E               	movf	(14),w	;volatile
  1050                           	
  1051  0135  0753               	addwf	0+(??_isr+0+0),w
  1052                           	
  1053  0136  00F0               	movwf	(112)
  1054  0137  0854               	movf	1+(??_isr+0+0),w
  1055  0138  1803               	skipnc
  1056  0139  0A54               	incf	1+(??_isr+0+0),w
  1057  013A  00F1               	movwf	((112))+1
  1058                           	line	142
  1059                           ;mtouch4.c: 142: RAW[INDEX]=value;
  1060                           	
  1061                           	
  1062  013B  087D               	movf	(125),w
  1063                           	
  1064  013C  00D3               	movwf	(??_isr+0+0)
  1065  013D  0753               	addwf	(??_isr+0+0),w
  1066  013E  3E72               	addlw	(114)
  1067  013F  0084               	movwf	fsr
  1068  0140  0870               	movf	(112),w
  1069  0141  0080               	movwf	indf
  1070  0142  0A84               	incf	fsr,f
  1071  0143  0871               	movf	(112+1),w
  1072  0144  0080               	movwf	indf
  1073                           	line	143
  1074                           ;mtouch4.c: 143: if (first > 0)
  1075  0145  1283               	bcf	status, 5	;RP0=0, select bank0
  1076  0146  1303               	bcf	status, 6	;RP2=0, select bank0
  1077                           	
  1078  0147  08FA               	movf	(122),f
  1079  0148  1D03               	skipz
  1080  0149  294B               	goto	i1u2240
  1081  014A  2963               	goto	i1l15
  1082  014B                     i1u2240:
  1083                           	line	145
  1084                           ;mtouch4.c: 144: {
  1085                           ;mtouch4.c: 145: first--;
  1086                           	
  1087  014B  1283               	bcf	status, 5	;RP0=0, select bank0
  1088  014C  1303               	bcf	status, 6	;RP2=0, select bank0
  1089                           	
  1090  014D  3001               	movlw	low(01h)
  1091  014E  02FA               	subwf	(122),f
  1092                           	line	146
  1093                           ;mtouch4.c: 146: AVERAGE[INDEX] = value;
  1094  014F  1283               	bcf	status, 5	;RP0=0, select bank0
  1095  0150  1303               	bcf	status, 6	;RP2=0, select bank0
  1096                           	
  1097                           	
  1098  0151  087D               	movf	(125),w
  1099                           	
  1100  0152  00D3               	movwf	(??_isr+0+0)
  1101  0153  0753               	addwf	(??_isr+0+0),w
  1102  0154  3E4A               	addlw	(74)
  1103  0155  0084               	movwf	fsr
  1104  0156  0870               	movf	(112),w
  1105  0157  1383               	bcf	status, 7	;select IRP bank0
  1106  0158  0080               	movwf	indf
  1107  0159  0A84               	incf	fsr,f
  1108  015A  0871               	movf	(112+1),w
  1109  015B  0080               	movwf	indf
  1110                           	line	147
  1111                           ;mtouch4.c: 147: Abit_next_channel();
  1112  015C  118A  257B  118A   	fcall	_Abit_next_channel
  1113                           	line	148
  1114                           ;mtouch4.c: 148: Abit_restart_timer();
  1115  015F  118A  25AC  118A   	fcall	i1_Abit_restart_timer
  1116                           	line	149
  1117                           ;mtouch4.c: 149: return;
  1118  0162  2B2D               	goto	i1l13
  1119                           	line	150
  1120                           	
  1121  0163                     i1l15:	
  1122                           	line	151
  1123                           ;mtouch4.c: 150: }
  1124                           ;mtouch4.c: 151: percent=((long)AVERAGE[INDEX]-
                                 (long)value);
  1125  0163  1283               	bcf	status, 5	;RP0=0, select bank0
  1126  0164  1303               	bcf	status, 6	;RP2=0, select bank0
  1127                           	
  1128                           	
  1129  0165  087D               	movf	(125),w
  1130                           	
  1131  0166  00D3               	movwf	(??_isr+0+0)
  1132  0167  0753               	addwf	(??_isr+0+0),w
  1133  0168  3E4A               	addlw	(74)
  1134  0169  0084               	movwf	fsr
  1135  016A  1383               	bcf	status, 7	;select IRP bank0
  1136  016B  0800               	movf	indf,w
  1137  016C  00D4               	movwf	(??_isr+1+0)
  1138  016D  3001               	movlw	1
  1139  016E  0784               	addwf	fsr,f
  1140  016F  0800               	movf	indf,w
  1141  0170  00D5               	movwf	(??_isr+1+0+1)
  1142  0171  0870               	movf	(112),w
  1143  0172  0254               	subwf	0+(??_isr+1+0),w
  1144                           	
  1145  0173  00C6               	movwf	(70)
  1146  0174  0871               	movf	(112+1),w
  1147  0175  1C03               	skipc
  1148  0176  0F71               	incfsz	(112+1),w
  1149  0177  0255               	subwf	1+(??_isr+1+0),w
  1150  0178  00C7               	movwf	(70)+1
  1151                           	
  1152  0179  01C8               	clrf	2+(70)
  1153  017A  1C03               	skipc
  1154  017B  03C8               	decf	(70)+2
  1155                           	
  1156  017C  0848               	movf	(70)+2,w
  1157  017D  00C9               	movwf	3+(70)
  1158                           	line	152
  1159                           ;mtouch4.c: 152: if(percent<0)
  1160  017E  1283               	bcf	status, 5	;RP0=0, select bank0
  1161  017F  1303               	bcf	status, 6	;RP2=0, select bank0
  1162                           	
  1163  0180  1FC9               	btfss	(70+3),7
  1164  0181  2983               	goto	i1u2251
  1165  0182  2984               	goto	i1u2250
  1166  0183                     i1u2251:
  1167  0183  298F               	goto	i1l16
  1168  0184                     i1u2250:
  1169                           	line	154
  1170                           ;mtouch4.c: 153: {
  1171                           ;mtouch4.c: 154: percent=0;
  1172  0184  1283               	bcf	status, 5	;RP0=0, select bank0
  1173  0185  1303               	bcf	status, 6	;RP2=0, select bank0
  1174                           	
  1175  0186  3000               	movlw	0
  1176  0187  00C6               	movwf	(70)
  1177  0188  3000               	movlw	0
  1178  0189  00C7               	movwf	(70+1)
  1179  018A  3000               	movlw	0
  1180  018B  00C8               	movwf	(70+2)
  1181  018C  3000               	movlw	0
  1182  018D  00C9               	movwf	(70+3)
  1183                           
  1184                           	line	155
  1185                           ;mtouch4.c: 155: }
  1186  018E  29D7               	goto	i1l17
  1187                           	line	156
  1188                           	
  1189  018F                     i1l16:	
  1190                           	line	158
  1191                           ;mtouch4.c: 156: else
  1192                           ;mtouch4.c: 157: {
  1193                           ;mtouch4.c: 158: percent=percent*1000;
  1194  018F  1283               	bcf	status, 5	;RP0=0, select bank0
  1195  0190  1303               	bcf	status, 6	;RP2=0, select bank0
  1196                           	
  1197  0191  30E8               	movlw	0E8h
  1198  0192  00E4               	movwf	(0+(?___lmul)+04h)&07fh
  1199  0193  3003               	movlw	03h
  1200  0194  00E5               	movwf	(1+(?___lmul)+04h)&07fh
  1201  0195  3000               	movlw	0
  1202  0196  00E6               	movwf	(2+(?___lmul)+04h)&07fh
  1203  0197  3000               	movlw	0
  1204  0198  00E7               	movwf	(3+(?___lmul)+04h)&07fh
  1205                           
  1206                           	
  1207                           	
  1208  0199  0846               	movf	(70),w
  1209  019A  00E0               	movwf	(?___lmul)
  1210  019B  0847               	movf	(70+1),w
  1211  019C  00E1               	movwf	(?___lmul+1)
  1212  019D  0848               	movf	(70+2),w
  1213  019E  00E2               	movwf	(?___lmul+2)
  1214  019F  0849               	movf	(70+3),w
  1215  01A0  00E3               	movwf	(?___lmul+3)
  1216                           
  1217  01A1  118A  252D  118A   	fcall	___lmul
  1218  01A4  1283               	bcf	status, 5	;RP0=0, select bank0
  1219  01A5  1303               	bcf	status, 6	;RP2=0, select bank0
  1220                           	
  1221  01A6  0860               	movf	(0+?___lmul),w
  1222  01A7  00C6               	movwf	(70)
  1223  01A8  0861               	movf	(1+?___lmul),w
  1224  01A9  00C7               	movwf	(70+1)
  1225  01AA  0862               	movf	(2+?___lmul),w
  1226  01AB  00C8               	movwf	(70+2)
  1227  01AC  0863               	movf	(3+?___lmul),w
  1228  01AD  00C9               	movwf	(70+3)
  1229                           
  1230                           	line	159
  1231                           ;mtouch4.c: 159: percent=percent/AVERAGE[INDEX]
                                 ;
  1232  01AE  1283               	bcf	status, 5	;RP0=0, select bank0
  1233  01AF  1303               	bcf	status, 6	;RP2=0, select bank0
  1234                           	
  1235  01B0  087D               	movf	(125),w
  1236                           	
  1237  01B1  00D3               	movwf	(??_isr+0+0)
  1238  01B2  0753               	addwf	(??_isr+0+0),w
  1239  01B3  3E4A               	addlw	(74)
  1240  01B4  0084               	movwf	fsr
  1241  01B5  

⌨️ 快捷键说明

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