📄 8733_tp.lst
字号:
58 002B C TP5_NPsd_VAH == 0x2B
59 C ;
60 002C C TP6_NPsd_VAL == 0x2C
61 002D C TP6_NPsd_VAH == 0x2D
62 C ;
63 002E C TP7_NPsd_VAL == 0x2E
64 002F C TP7_NPsd_VAH == 0x2F
65 C ;}
66 C ;{bank 2, timely key value(当前值)
67 0020 C TP0_RlTm_VAL == 0x20
68 0021 C TP0_RlTm_VAH == 0x21
69 C ;
70 0022 C TP1_RlTm_VAL == 0x22
71 0023 C TP1_RlTm_VAH == 0x23
72 C ;
73 0024 C TP2_RlTm_VAL == 0x24
74 0025 C TP2_RlTm_VAH == 0x25
75 C ;
76 0026 C TP3_RlTm_VAL == 0x26
77 0027 C TP3_RlTm_VAH == 0x27
78 C ;
79 0028 C TP4_RlTm_VAL == 0x28
80 0029 C TP4_RlTm_VAH == 0x29
81 C ;
82 002A C TP5_RlTm_VAL == 0x2A
83 002B C TP5_RlTm_VAH == 0x2B
84 C ;
85 002C C TP6_RlTm_VAL == 0x2C
86 002D C TP6_RlTm_VAH == 0x2D
87 C ;
88 002E C TP7_RlTm_VAL == 0x2E
89 002F C TP7_RlTm_VAH == 0x2F
90 C ;}
91 C ;{bank3, Key Value study store value
92 0020 C Key1VACHGSTOL == 0x20
93 0021 C Key1VACHGSTOH == 0x21
94 C ;
95 0022 C Key2VACHGSTOL == 0x22
96 0023 C Key2VACHGSTOH == 0x23
97 C ;
98 0024 C Key3VACHGSTOL == 0x24
99 0025 C Key3VACHGSTOH == 0x25
100 C ;
101 0026 C Key4VACHGSTOL == 0x26
102 0027 C Key4VACHGSTOH == 0x27
103 C ;
104 0028 C Key5VACHGSTOL == 0x28
105 0029 C Key5VACHGSTOH == 0x29
106 C ;
107 002A C Key6VACHGSTOL == 0x2A
108 002B C Key6VACHGSTOH == 0x2B
109 C ;
110 002C C Key7VACHGSTOL == 0x2C
111 002D C Key7VACHGSTOH == 0x2D
112 C ;
113 002E C Key8VACHGSTOL == 0x2E
114 002F C Key8VACHGSTOH == 0x2F
115 C ;}
116 C ;{bank4, 和保存区清零(bank 4的0x20~0x2F)
117 C
118 C ;}
119 0004 C times == 4 ; 检测4次
120 0012 C Key_Psd_Va == 0x12
121 0006 C DitheringTM == 6;10
122 0005 C LOOSDitheringTM == 5;10
123 C ;-----------------------------------------------------------------
124 C
125 C
14 ;-----------------------------------------------------------------
15 ORG 0x00
16 00000 0000 NOP
17 00001 145B JMP Main
18 ORG 0x0F
19 0000F 1EB0 LJMP TCC_INT
19 00010 0050 LJMP TCC_INT
20 ORG 0x3F
21 0003F 1EB0 LJMP TPCV_INT
21 00040 0055 LJMP TPCV_INT
22 ORG 0x42
23 00042 1EB0 LJMP TPOVF_INT
23 00043 0058 LJMP TPOVF_INT
24 ORG 0x50
25 ;-----------------------------------------------------------------
26 ; TCC interrupt: 4.096ms
27 00050 TCC_INT:
28 00050 1E90 BANK 0
29 00051 04C6 com 0x06
30 00052 0555 INC NOKeyPCNT
31 00053 090E BC ISR1, TCIF
32 00054 0013 RETI
33 ;-----------------------------------------------------------------
34 ; Touch pad convert interrupt
35 00055 TPCV_INT:
36 ; User code
37 ; ...
38 00055 1E94 BANK 4
39 00056 0987 BC TPCR3, TPIF
40 00057 0013 RETI
41 ;-------------------------------------------------------------------
42 ; Touch pad counter overflow interrupt
43 00058 TPOVF_INT:
44 ; User code
45 ; ...
46 00058 1E94 BANK 4
47 00059 09C7 BC TPCR3, TPOIF
48 0005A 0013 RETI
49 ;===================================================================
50 0005B Main:
51 0005B 0011 DISI
52 0005C 1281 CALL CLEAR_SRAM
53 0005D 1064 CALL INIT_DEVICE
54
55 0005E main_loop:
56 0005E 0000 NOP
57 0005F 0010 ENI
58 00060 0000 NOP
59 00061 1091 CALL MainReadTPVa
60 ;CALL MainStudyTP
61 00062 110E CALL MainScanKey
62 00063 145E JMP main_loop
63 ;===================================================================
64 00064 INIT_DEVICE:
65 00064 0000 NOP
66 00065 1E90 BANK 0
67 00066 1800 MOV A, @0x00
68 00067 0045 MOV PORT5, A
69 00068 0046 MOV PORT6, A
70 00069 0047 MOV PORT7, A
71 0006A 0048 MOV PORT8, A
72 0006B 1E91 BANK 1
73 0006C 1800 MOV A, @0x00
74 0006D 0045 MOV IOC5, A
75 0006E 0046 MOV IOC6, A
76 0006F 0047 MOV IOC7, A
77 00070 0048 MOV IOC8, A
78 00071 1810 MOV A, @0x10
79 00072 004E MOV IMR1, A ; Enable TCC interrupt
80 00073 1E92 BANK 2
81 00074 180D MOV A, @0x0D ; TCC P --> 64
82 00075 0045 MOV TCCCR, A
83 00076 1E93 BANK 3
84 00077 00C5 CLR TCC
85 00078 181F MOV A, @0x1F ; Select ekt8733, irc: 1*F
86 00079 0046 MOV COBS1, A
87 0007A 1830 MOV A, @0x30 ; Select IRC 4MHz
88 0007B 0047 MOV COBS2, A
89 ;-------------------------------------------
90 ; TP set
91 0007C 1E94 BANK 4
92 0007D 1820 MOV A, @0X20 ; Enable TP function, TP0 on
93 0007E 0045 MOV TPCR1, A
94 0007F 1821 MOV A, @0x21 ; TP detect frequency select F/8, PLL output Fr: 48MHz
95 00080 0046 MOV TPCR2, A ; System frequency(Fm) is IRC 4MHz, PLL clock source select Fm/2
96 00081 1808 MOV A, @0x08 ; Disable TPIF/TPOIF interrupt, Touch pad read time: 4
97 00082 0047 MOV TPCR3, A
98 00083 180F MOV A, @0x0F ; Touch pad current: 10uA
99 00084 004A MOV TPCC, A
100 00085 1801 MOV A, @0X01 ; Select TPEP0, other pin as IO pin
101 00086 004C MOV TPEPCR0, A
102 00087 1800 MOV A, @0X00 ; Other pin as IO pin
103 00088 004D MOV TPEPCR1, A
104 00089 004E MOV TPEPCR2, A
105 0008A 004F MOV TPEPCR3, A
106 ;-------------------------------------------
107 0008B 1E90 BANK 0
108 0008C 0BD3 BS Key_Tone, PWON_AD
109 0008D 1812 MOV A, @Key_Psd_Va
110 0008E 0062 MOV KeyPsdValue, A
111 0008F 1292 CALL DelaySomeT
112 00090 0012 RET
113 ;-----------------------------------------------------------------
114 00091 MainReadTPVa:
115 00091 0000 NOP
116 00092 1E90 BANK 0
117 00093 0420 MOV A, DitheringR
118 00094 0E83 JBS status, z
119 00095 01E0 DEC DitheringR
120 00096 0421 MOV A, LOOSDitheringR
121 00097 0E83 JBS status, z
122 00098 01E1 DEC LOOSDitheringR
123 00099 00D2 CLR TP_Psd_Flag
124 ;---------------------------------------
125 ; Check TP0
126 0009A Main_Chk_TP0:
127 0009A 1E94 BANK 4
128 0009B 1820 MOV A, @0X20 ; TP0 switch on
129 0009C 0045 MOV TPCR1, A
130 0009D 1801 MOV A, @0X01 ; Select TP0, other pin as IO pin
131 0009E 004C MOV TPEPCR0, A
132 0009F 1297 CALL TPVaRoutine ; 320us * 2
133 000A0 1820 MOV A, @TP0_NPsd_VAL
134 000A1 1254 CALL ReleaseOldKeyVa
135 000A2 1820 MOV A, @TP0_RlTm_VAL
136 000A3 125F CALL StoreRLKeyVa ; Store the tp value currently.
137 000A4 11EA CALL CMP_TWO_Value
138 ;
139 000A5 0C03 JBC status, c
140 000A6 0A12 BS TP_Psd_Flag, TP0
141 ;---------------------------------------
142 ; Check TP1
143 000A7 Main_Chk_TP1:
144 000A7 1E94 BANK 4
145 000A8 1821 MOV A, @0X21 ; TP1 switch on
146 000A9 0045 MOV TPCR1, A
147 000AA 1802 MOV A, @0X02 ; Select TP1, Other pin as IO pin
148 000AB 004C MOV TPEPCR0, A
149 000AC 1297 CALL TPVaRoutine
150 000AD 1822 MOV A, @TP1_NPsd_VAL
151 000AE 1254 CALL ReleaseOldKeyVa
152 000AF 1822 MOV A, @TP1_RlTm_VAL
153 000B0 125F CALL StoreRLKeyVa
154 000B1 11EA CALL CMP_TWO_Value
155 000B2 0C03 JBC status, c
156 000B3 0A52 BS TP_Psd_Flag, TP1
157 ;---------------------------------------
158 ; Check TP2
159 000B4 Main_Chk_TP2:
160 000B4 1E94 BANK 4
161 000B5 1822 MOV A, @0X22 ; TP2 switch on
162 000B6 0045 MOV TPCR1, A
163 000B7 1804 MOV A, @0X04 ; Select TP2, Other pin as IO pin
164 000B8 004C MOV TPEPCR0, A
165 000B9 1297 CALL TPVaRoutine
166 000BA 1824 MOV A, @TP2_NPsd_VAL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -