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

📄 mtouch4.p1

📁 用pic16f883做的4个键的触摸按键(MTOUCH)实现电容式触摸按键的代码。有mtouch4.h和mtouch4.c构成
💻 P1
📖 第 1 页 / 共 4 页
字号:
"63
[e ( _Abit_init ..  ]
[; ;mtouch4.c: 64: RC1=1;

"64
[e = _RC1 -> -> 1 `i `b ]
[; ;mtouch4.c: 65: RC2=1;

"65
[e = _RC2 -> -> 1 `i `b ]
[; ;mtouch4.c: 66: RB4=1;

"66
[e = _RB4 -> -> 1 `i `b ]
[; ;mtouch4.c: 67: RB5=1;

"67
[e = _RB5 -> -> 1 `i `b ]
[; ;mtouch4.c: 68: while(1)

"68
[e :U 4 ]
[; ;mtouch4.c: 69: {

[; ;mtouch4.c: 70: RC1=(Buttons.B11==1) ? 0 :1;

"70
[e = _RC1 -> ? == -> . _Buttons 0 `i -> 1 `i : -> 0 `i -> 1 `i `b ]
[; ;mtouch4.c: 71: RC2=(Buttons.B22==1) ? 0 :1;

"71
[e = _RC2 -> ? == -> . _Buttons 1 `i -> 1 `i : -> 0 `i -> 1 `i `b ]
[; ;mtouch4.c: 72: RB4=(Buttons.B33==1) ? 0 :1;

"72
[e = _RB4 -> ? == -> . _Buttons 2 `i -> 1 `i : -> 0 `i -> 1 `i `b ]
[; ;mtouch4.c: 73: RB5=(Buttons.B44==1) ? 0 :1;

"73
[e = _RB5 -> ? == -> . _Buttons 3 `i -> 1 `i : -> 0 `i -> 1 `i `b ]
"74
[e :U 3 ]
"68
[e $U 4  ]
[e :U 5 ]
"75
[; ;mtouch4.c: 74: }

[; ;mtouch4.c: 75: }

[e :UE 2 ]
}
"77
[v _Abit_init `(v 1 ef ]
{
[; ;mtouch4.c: 76: void Abit_init(void)

[; ;mtouch4.c: 77: {

[e :U _Abit_init ]
[f ]
[; ;mtouch4.c: 78: TRISA5=0;

"78
[e = _TRISA5 -> -> 0 `i `b ]
[; ;mtouch4.c: 79: TRISA0=1;

"79
[e = _TRISA0 -> -> 1 `i `b ]
[; ;mtouch4.c: 80: TRISA1=1;

"80
[e = _TRISA1 -> -> 1 `i `b ]
[; ;mtouch4.c: 81: TRISB3=1;

"81
[e = _TRISB3 -> -> 1 `i `b ]
[; ;mtouch4.c: 82: TRISB1=1;

"82
[e = _TRISB1 -> -> 1 `i `b ]
[; ;mtouch4.c: 83: TRISC1=0;

"83
[e = _TRISC1 -> -> 0 `i `b ]
[; ;mtouch4.c: 84: TRISC2=0;

"84
[e = _TRISC2 -> -> 0 `i `b ]
[; ;mtouch4.c: 85: TRISB4=0;

"85
[e = _TRISB4 -> -> 0 `i `b ]
[; ;mtouch4.c: 86: TRISB5=0;

"86
[e = _TRISB5 -> -> 0 `i `b ]
[; ;mtouch4.c: 87: Buttons.B11 = 0;

"87
[e = . _Buttons 0 -> -> 0 `i `uc ]
[; ;mtouch4.c: 88: Buttons.B22 = 0;

"88
[e = . _Buttons 1 -> -> 0 `i `uc ]
[; ;mtouch4.c: 89: Buttons.B33 = 0;

"89
[e = . _Buttons 2 -> -> 0 `i `uc ]
[; ;mtouch4.c: 90: Buttons.B44 = 0;

"90
[e = . _Buttons 3 -> -> 0 `i `uc ]
[; ;mtouch4.c: 91: Abit_capinit();

"54
[v _Abit_capinit `(v 0 ef ]
"91
[e ( _Abit_capinit ..  ]
[; ;mtouch4.c: 92: GIE=1;

"92
[e = _GIE -> -> 1 `i `b ]
"93
[; ;mtouch4.c: 93: }

[e :UE 6 ]
}
"95
[v _Abit_restart_timer `(v 1 ef ]
{
[; ;mtouch4.c: 94: void Abit_restart_timer(void)

[; ;mtouch4.c: 95: {

[e :U _Abit_restart_timer ]
[f ]
[; ;mtouch4.c: 97: TMR1L = 0;

"97
[e = _TMR1L -> -> 0 `i `uc ]
[; ;mtouch4.c: 98: TMR1H = 0;

"98
[e = _TMR1H -> -> 0 `i `uc ]
[; ;mtouch4.c: 99: TMR1ON = 1;

"99
[e = _TMR1ON -> -> 1 `i `b ]
[; ;mtouch4.c: 100: TMR0 = 0;

"100
[e = _TMR0 -> -> 0 `i `uc ]
[; ;mtouch4.c: 101: T0IF = 0;

"101
[e = _T0IF -> -> 0 `i `b ]
"102
[; ;mtouch4.c: 102: }

[e :UE 7 ]
}
"105
[v _Abit_next_channel `(v 1 ef ]
{
[; ;mtouch4.c: 104: void Abit_next_channel(void)

[; ;mtouch4.c: 105: {

[e :U _Abit_next_channel ]
[f ]
[; ;mtouch4.c: 108: INDEX = (++INDEX) & 0x03;

"108
[e = _INDEX -> & -> =+ _INDEX -> -> 1 `i `uc `i -> 3 `i `uc ]
[; ;mtouch4.c: 109: CM1CON0 = COMP1[INDEX];

"109
[e = _CM1CON0 *U + &U _COMP1 * -> _INDEX `ux -> -> # *U &U _COMP1 `ui `ux ]
[; ;mtouch4.c: 110: CM2CON0 = COMP2[INDEX];

"110
[e = _CM2CON0 *U + &U _COMP2 * -> _INDEX `ux -> -> # *U &U _COMP2 `ui `ux ]
"111
[; ;mtouch4.c: 111: }

[e :UE 8 ]
}
"114
[v _Abit_capinit `(v 1 ef ]
{
[; ;mtouch4.c: 113: void Abit_capinit(void)

[; ;mtouch4.c: 114: {

[e :U _Abit_capinit ]
[f ]
[; ;mtouch4.c: 115: for(INDEX=0;INDEX< 4;INDEX++)

"115
[e = _INDEX -> -> 0 `i `uc ]
[e $ < -> _INDEX `i -> 4 `i 10  ]
[e $U 11  ]
"116
[e :U 10 ]
[; ;mtouch4.c: 116: {

[; ;mtouch4.c: 117: RAW[INDEX]=0;

"117
[e = *U + &U _RAW * -> _INDEX `ux -> -> # *U &U _RAW `ui `ux -> -> 0 `i `ui ]
[; ;mtouch4.c: 118: AVERAGE[INDEX]=0;

"118
[e = *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux -> -> 0 `i `ui ]
"115
[e ++ _INDEX -> -> 1 `i `uc ]
[e $ < -> _INDEX `i -> 4 `i 10  ]
[e :U 11 ]
[; ;mtouch4.c: 119: }

[; ;mtouch4.c: 120: first=60;

"120
[e = _first -> -> 60 `i `uc ]
[; ;mtouch4.c: 121: OSCCON=0X7F;

"121
[e = _OSCCON -> -> 127 `i `uc ]
[; ;mtouch4.c: 122: INDEX=0;

"122
[e = _INDEX -> -> 0 `i `uc ]
[; ;mtouch4.c: 123: CM1CON0=COMP1[INDEX];

"123
[e = _CM1CON0 *U + &U _COMP1 * -> _INDEX `ux -> -> # *U &U _COMP1 `ui `ux ]
[; ;mtouch4.c: 124: CM2CON0=COMP2[INDEX];

"124
[e = _CM2CON0 *U + &U _COMP2 * -> _INDEX `ux -> -> # *U &U _COMP2 `ui `ux ]
[; ;mtouch4.c: 125: CM2CON1=0X32;

"125
[e = _CM2CON1 -> -> 50 `i `uc ]
[; ;mtouch4.c: 126: ANSEL=0X05;

"126
[e = _ANSEL -> -> 5 `i `uc ]
[; ;mtouch4.c: 127: ANSEL=0X00;

"127
[e = _ANSEL -> -> 0 `i `uc ]
[; ;mtouch4.c: 128: VRCON = 0x8d;

"128
[e = _VRCON -> -> 141 `i `uc ]
[; ;mtouch4.c: 129: SRCON = 0xF0;

"129
[e = _SRCON -> -> 240 `i `uc ]
[; ;mtouch4.c: 130: T1CON = 0x06;

"130
[e = _T1CON -> -> 6 `i `uc ]
[; ;mtouch4.c: 131: OPTION = 0x82;

"131
[e = _OPTION -> -> 130 `i `uc ]
[; ;mtouch4.c: 132: Abit_restart_timer();

"132
[e ( _Abit_restart_timer ..  ]
[; ;mtouch4.c: 133: INTCON = 0;

"133
[e = _INTCON -> -> 0 `i `uc ]
[; ;mtouch4.c: 134: T0IE = 1;

"134
[e = _T0IE -> -> 1 `i `b ]
"135
[; ;mtouch4.c: 135: }

[e :UE 9 ]
}
"137
[v _isr `IF745 1 e ]
{
[; ;mtouch4.c: 136: void interrupt isr(void)

[; ;mtouch4.c: 137: {

[e :U _isr ]
[f ]
[; ;mtouch4.c: 138: if (T0IF==1 && T0IE==1)

"138
[e $ ! && == -> _T0IF `i -> 1 `i == -> _T0IE `i -> 1 `i 14  ]
[; ;mtouch4.c: 139: {

[; ;mtouch4.c: 140: TMR1ON = 0;

"140
[e = _TMR1ON -> -> 0 `i `b ]
[; ;mtouch4.c: 141: value = TMR1L + (unsigned int)(TMR1H << 8);

"141
[e = _value + -> _TMR1L `ui -> << -> _TMR1H `i -> 8 `i `ui ]
[; ;mtouch4.c: 142: RAW[INDEX]=value;

"142
[e = *U + &U _RAW * -> _INDEX `ux -> -> # *U &U _RAW `ui `ux _value ]
[; ;mtouch4.c: 143: if (first > 0)

"143
[e $ ! > -> _first `i -> 0 `i 15  ]
[; ;mtouch4.c: 144: {

[; ;mtouch4.c: 145: first--;

"145
[e -- _first -> -> 1 `i `uc ]
[; ;mtouch4.c: 146: AVERAGE[INDEX] = value;

"146
[e = *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux _value ]
[; ;mtouch4.c: 147: Abit_next_channel();

"147
[e ( _Abit_next_channel ..  ]
[; ;mtouch4.c: 148: Abit_restart_timer();

"148
[e ( _Abit_restart_timer ..  ]
[; ;mtouch4.c: 149: return;

"149
[e $UE 13  ]
"150
[e :U 15 ]
[; ;mtouch4.c: 150: }

[; ;mtouch4.c: 151: percent=((long)AVERAGE[INDEX]-(long)value);

"151
[e = _percent - -> *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux `l -> _value `l ]
[; ;mtouch4.c: 152: if(percent<0)

"152
[e $ ! < _percent -> -> 0 `i `l 16  ]
[; ;mtouch4.c: 153: {

[; ;mtouch4.c: 154: percent=0;

"154
[e = _percent -> -> 0 `i `l ]
"155
[; ;mtouch4.c: 155: }

[e $U 17  ]
"156
[e :U 16 ]
[; ;mtouch4.c: 156: else

[; ;mtouch4.c: 157: {

[; ;mtouch4.c: 158: percent=percent*1000;

"158
[e = _percent * _percent -> -> 1000 `i `l ]
[; ;mtouch4.c: 159: percent=percent/AVERAGE[INDEX];

"159
[e = _percent / _percent -> *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux `l ]
"160
[e :U 17 ]
[; ;mtouch4.c: 160: }

[; ;mtouch4.c: 165: if (percent > 54)

"165
[e $ ! > _percent -> -> 54 `i `l 18  ]
[; ;mtouch4.c: 166: {

[; ;mtouch4.c: 167: switch (INDEX)

"167
[e $U 20  ]
[; ;mtouch4.c: 168: {

[; ;mtouch4.c: 169: case 0: Buttons.B11 = 1; break;

"169
[e :U 21 ]
[e = . _Buttons 0 -> -> 1 `i `uc ]
[e $U 19  ]
[; ;mtouch4.c: 170: case 1: Buttons.B22 = 1; break;

"170
[e :U 22 ]
[e = . _Buttons 1 -> -> 1 `i `uc ]
[e $U 19  ]
[; ;mtouch4.c: 171: case 2: Buttons.B33 = 1; break;

"171
[e :U 23 ]
[e = . _Buttons 2 -> -> 1 `i `uc ]
[e $U 19  ]
[; ;mtouch4.c: 172: case 3: Buttons.B44 = 1; break;

"172
[e :U 24 ]
[e = . _Buttons 3 -> -> 1 `i `uc ]
[e $U 19  ]
[; ;mtouch4.c: 173: default: break;

"173
[e :U 25 ]
[e $U 19  ]
"174
[; ;mtouch4.c: 174: }

[e $U 19  ]
"167
[e :U 20 ]
[e [\ _INDEX , $ -> -> 0 `i `uc 21
 , $ -> -> 1 `i `uc 22
 , $ -> -> 2 `i `uc 23
 , $ -> -> 3 `i `uc 24
 25 ]
"174
[e :U 19 ]
"176
[; ;mtouch4.c: 176: }

[e $U 26  ]
"177
[e :U 18 ]
[; ;mtouch4.c: 177: else if (percent < 49)

[e $ ! < _percent -> -> 49 `i `l 27  ]
[; ;mtouch4.c: 178: {

[; ;mtouch4.c: 179: switch (INDEX)

"179
[e $U 29  ]
[; ;mtouch4.c: 180: {

[; ;mtouch4.c: 181: case 0: Buttons.B11 = 0; break;

"181
[e :U 30 ]
[e = . _Buttons 0 -> -> 0 `i `uc ]
[e $U 28  ]
[; ;mtouch4.c: 182: case 1: Buttons.B22 = 0; break;

"182
[e :U 31 ]
[e = . _Buttons 1 -> -> 0 `i `uc ]
[e $U 28  ]
[; ;mtouch4.c: 183: case 2: Buttons.B33 = 0; break;

"183
[e :U 32 ]
[e = . _Buttons 2 -> -> 0 `i `uc ]
[e $U 28  ]
[; ;mtouch4.c: 184: case 3: Buttons.B44 = 0; break;

"184
[e :U 33 ]
[e = . _Buttons 3 -> -> 0 `i `uc ]
[e $U 28  ]
[; ;mtouch4.c: 185: default: break;

"185
[e :U 34 ]
[e $U 28  ]
"186
[; ;mtouch4.c: 186: }

[e $U 28  ]
"179
[e :U 29 ]
[e [\ _INDEX , $ -> -> 0 `i `uc 30
 , $ -> -> 1 `i `uc 31
 , $ -> -> 2 `i `uc 32
 , $ -> -> 3 `i `uc 33
 34 ]
"186
[e :U 28 ]
"188
[e :U 27 ]
"189
[e :U 26 ]
[; ;mtouch4.c: 188: }

[; ;mtouch4.c: 189: if (value > AVERAGE[INDEX])

[e $ ! > _value *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux 35  ]
[; ;mtouch4.c: 190: AVERAGE[INDEX] = value;

"190
[e = *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux _value ]
[e :U 35 ]
[; ;mtouch4.c: 191: if (percent < 18)

"191
[e $ ! < _percent -> -> 18 `i `l 36  ]
[; ;mtouch4.c: 192: {

[; ;mtouch4.c: 193: if (index< 16) index++;

"193
[e $ ! < -> _index `i -> 16 `i 37  ]
[e ++ _index -> -> 1 `i `uc ]
[e $U 38  ]
"194
[e :U 37 ]
[; ;mtouch4.c: 194: else index = 0;

[e = _index -> -> 0 `i `uc ]
[e :U 38 ]
[; ;mtouch4.c: 196: if (index == 16)

"196
[e $ ! == -> _index `i -> 16 `i 39  ]
[; ;mtouch4.c: 197: AVERAGE[INDEX] = AVERAGE[INDEX] + ((long)(value) - (long)(AVERAGE[INDEX]))/8;

"197
[e = *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux -> + -> *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux `l / - -> _value `l -> *U + &U _AVERAGE * -> _INDEX `ux -> -> # *U &U _AVERAGE `ui `ux `l -> -> 8 `i `l `ui ]
[e :U 39 ]
"199
[e :U 36 ]
[; ;mtouch4.c: 199: }

[; ;mtouch4.c: 200: Abit_next_channel();

"200
[e ( _Abit_next_channel ..  ]
[; ;mtouch4.c: 201: Abit_restart_timer();

"201
[e ( _Abit_restart_timer ..  ]
"203
[e :U 14 ]
"205
[; ;mtouch4.c: 203: }

[; ;mtouch4.c: 205: }

[e :UE 13 ]
}

⌨️ 快捷键说明

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