📄 black_plane-tx-v1.37.lst
字号:
1 000000 ;*******************************************************************************
2 000000 ; FILENAME : Black_plane-TX
3 000000 ; AUTHOR : Hu Zhiyan
4 000000 ; PURPOSE : Template Code for SN8P1602B
5 000000 ; REVISION : 10/05/2004 V1.0 First issue
6 000000 ;*******************************************************************************
7 000000 ;* (c) Copyright 2004, Kodec development CO., LTD.
8 000000 ;*******************************************************************************
9 000000 ;///////////////////////////////////////////////////////////////////////////////////////
10 000000 ; V
11 000000 ; V1.3
12 000000 ; V1.35 将测试模式的10秒进入睡眠改为5秒,充电指示灯
13 000000 ; V1.36 清除在睡眠模式时,按充电按钮,绿灯闪烁一下问题
14 000000 ; V1.37 将4分钟后进入睡眠改为15分钟
15 000000 ;
16 000000 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
17 000000
18 000000 CHIP SN8P1602B ; Select the CHIP
19 000000 //{{SONIX_CODE_OPTION
20 000000 .Code_Option OSG Enable
21 000000 .Code_Option High_Clk 4M_X'tal
22 000000 .Code_Option High_Clk/2 Disable
23 000000 .Code_Option Security Enable
24 000000 ; .Code_Option LVD Enable
25 000000 .Code_Option Watch_Dog Disable
26 000000 .Code_Option Low_Power Enable
27 000000 .Code_Option Noise_Filter Enable
28 000000 .Code_Option Int_16K_RC By_CPUM
29 000000 //}}SONIX_CODE_OPTION
30 000000
31 000000 ;-------------------------------------------------------------------------------
32 000000 ; Include Files
33 000000 ;-------------------------------------------------------------------------------
34 000000
35 000000 ;-------------------------------------------------------------------------------
36 000000 ; Constants Definition
37 000000 ;-------------------------------------------------------------------------------
38 000000 ; ONE EQU 1
39 000000
40 000000 ;-------------------------------------------------------------------------------
41 000000 ; Variables Definition
42 000000 ;-------------------------------------------------------------------------------
43 000000 .DATA
44 000000 org 0h ;Data section start from RAM address 0
45 0000 D Wk00 DS 1 ;Temporary buffer for main loop
46 0001 D Iwk00 DS 1 ;Temporary buffer for ISR
47 0002 D AccBuf DS 1 ;Accumulater buffer
48 0003 D PflagBuf DS 1 ;PFLAG buffer
49 000004
50 E 00000009 flag3 equ 09h
51 E 00000010 flag1 equ 10h
52 E 00000011 flag2 equ 11h
53 E 00000012 keyinbuf equ 12h
54 E 00000013 keychkbuf equ 13h
55 E 00000014 keycvtbuf equ 14h
56 E 00000015 key_value equ 15h
57 E 00000016 key_count equ 16h
58 E 00000017 LEDbuf equ 17h
59 E 00000018 txdata equ 18h
60 000004 ;
61 E 0000001A data_length equ 1ah
62 E 0000001B low_times equ 1bh
63 E 0000001C time50ms equ 1ch
64 E 0000001D time500ms equ 1dh
65 E 0000001E time4s equ 1eh
66 E 0000001F times4 equ 1fh
67 000004 ;
68 E 00000020 sleep_time equ 20h
69 E 00000021 charge_time equ 21h
70 000004
71 E 00000010 key_start equ flag1.0
72 E 00010010 nokeypress equ flag1.1
73 E 00020010 RED_flash_enable equ flag1.2
74 E 00030010 charge_start equ flag1.3 ;?????????????????????????????????????
75 E 00040010 LED_on equ flag1.4
76 E 00050010 time50ms_ok equ flag1.5
77 E 00060010 detect_led_on equ flag1.6
78 E 00070010 charge_ok equ flag1.7
79 000004 ;
80 E 00000011 bitok equ flag2.0
81 E 00010011 code_start equ flag2.1
82 E 00020011 code_head equ flag2.2
83 E 00030011 code_sycn equ flag2.3
84 E 00040011 code_data equ flag2.4
85 E 00050011 code_current_data_ok equ flag2.5
86 E 00060011 code_all_data_ok equ flag2.6
87 E 00070011 before equ flag2.7
88 000004 ;
89 E 00000009 TX_enable equ flag3.0
90 E 00010009 charge_continue equ flag3.1
91 E 00020009 wait_charge equ flag3.2
92 000004
93 000004 ;
94 E 000000D0 p0buf equ p0
95 E 000000D1 p1buf equ p1
96 E 000000C1 p1mbuf equ p1m
97 E 000000D2 p2buf equ p2
98 E 000000C2 p2mbuf equ p2m
99 000004
100 000004 ;-------------------------------------------------------------------------------
101 000004 ; Bit Variables Definition
102 000004 ;-------------------------------------------------------------------------------
103 000004
104 E 00000000 Wk00B0 EQU Wk00.0 ;Bit 0 of Wk00
105 E 00010001 Iwk00B1 EQU Iwk00.1 ;Bit 1 of Iwk00
106 000004
107 000004 ;-------------------------------------------------------------------------------
108 000004 ; Code section
109 000004 ;-------------------------------------------------------------------------------
110 000000 .CODE
111 000000
112 000000 ORG 0 ;Code section start
113 000000 8010 jmp Reset ;Reset vector
114 000001 ;Address 4 to 7 are reserved
115 000008 ORG 8
116 000008 8162 jmp Isr ;Interrupt vector
117 000009
118 000010 ORG 10h
119 000010 ;-------------------------------------------------------------------------------
120 000010 ; Program reset section
121 000010 ;-------------------------------------------------------------------------------
122 000010 Reset:
123 000010 2D7F mov A,#07Fh ;Initial stack pointer and
124 000011 2FDF b0mov STKP,A ;disable global interrupt
125 000012 3600 b0mov PFLAG,#00h ;pflag = x,x,x,x,x,c,dc,z
126 000013 2D40 mov A,#40h ;Clear watchdog timer and initial system mode
127 000014 2FCA b0mov OSCM,A
128 000015
129 000015 C1B1 call ClrRAM ;Clear RAM
130 000016 C197 call SysInit ;System initial
131 000017 6FDF b0bset FGIE ;Enable global interrupt
132 000018
133 000018 ;-------------------------------------------------------------------------------
134 000018 ; Main routine
135 000018 ;-------------------------------------------------------------------------------
136 000018 Main:
137 000018 6ECA b0bset FWDRST ;Clear watchdog timer
138 000019
139 000019 C07F call Mnscan_key ; scan key
140 00001A
141 00001A C0BF call MnRF_TX ; RF TX
142 00001B
143 00001B C01F call Application
144 00001C
145 00001C C101 call Mntime_count ; time count
146 00001D
147 00001D C14D call MnLED ; LED indicator
148 00001E
149 00001E 8018 jmp Main
150 00001F
151 00001F ;-------------------------------------------------------------------------------
152 00001F ; Main application
153 00001F ;-------------------------------------------------------------------------------
154 00001F Application:
155 00001F 7E15 b0bts1 key_value.6
156 000020 8022 jmp App_Normal ; to normal mode
157 000021 804F jmp App_Charge ; to charge mode
158 000022 app_Normal:
159 000022
160 000022
161 000022 6209 b0bclr wait_charge ; added on 2004/10/16
162 000023
163 000023 7909 b0bts1 charge_continue ; when mode the change,will stop the charge mode
164 000024 802C jmp nor1
165 000025 6109 b0bclr charge_continue
166 000026 6210 b0bclr RED_flash_enable
167 000027 6217 b0bclr LEDbuf.2
168 000028 6E17 b0bset LEDbuf.6
169 000029 6717 b0bclr LEDbuf.7
170 00002A 6310 b0bclr charge_start
171 00002B 6710 b0bclr charge_ok
172 00002C
173 00002C nor1:
174 00002C 6809 b0bset TX_enable ; enable tx
175 00002D 6E17 b0bset LEDbuf.6
176 00002E 2D0F mov a,#0fh
177 00002F 2815 and a,key_value
178 000030 7886 b0bts1 fz ; if z=1,the acc is zero
179 000031 8033 jmp app_normal10
180 000032 804D jmp app_normal20
181 000033 app_normal10:
182 000033 2B1E clr time4s ; if there's key pressed,will clear the 4s count
183 000034 2B20 clr sleep_time
184 000035
185 000035 7E11 b0bts1 code_all_data_ok ; if the data transmit ok,will get next data
186 000036 807E jmp app90
187 000037 6611 b0bclr code_all_data_ok
188 000038 7015 b0bts0 key_value.0 ; detect the landing key
189 000039 8041 jmp landing
190 00003A 7115 b0bts0 key_value.1 ; detect the turbo key
191 00003B 8044 jmp turbo
192 00003C 7215 b0bts0 key_value.2 ; detect the left key
193 00003D 8047 jmp left
194 00003E 7315 b0bts0 key_value.3 ; detect the right key
195 00003F 804A jmp right
196 000040 804D jmp app_normal20
197 000041
198 000041 landing:
199 000041 2D12 mov a,#12h
200 000042 1F18 mov txdata,a ; get the landing code
201 000043 807E jmp app90
202 000044 turbo:
203 000044 2D22 mov a,#22h
204 000045 1F18 mov txdata,a ; get the turbo code
205 000046 807E jmp app90
206 000047 left:
207 000047 2D42 mov a,#42h
208 000048 1F18 mov txdata,a ; get the left code
209 000049 807E jmp app90
210 00004A right:
211 00004A 2D82 mov a,#82h
212 00004B 1F18 mov txdata,a ; get the right code
213 00004C 807E jmp app90
214 00004D
215 00004D
216 00004D app_normal20:
217 00004D 2B18 clr txdata
218 00004E 807E jmp app90
219 00004F ;===================================================
220 00004F ;
221 00004F app_Charge:
222 00004F 6417 b0bclr LEDbuf.4 ; added on 2004/10/20
223 000050
224 000050 7415 b0bts0 key_value.4 ; added on 2004/10/16
225 000051 6A09 b0bset wait_charge ; added on 2004/10/16
226 000052 7209 b0bts0 wait_charge ; added on 2004/10/16
227 000053 8055 jmp n12 ; added on 2004/10/16
228 000054 813E jmp to_sleep ; added on 2004/10/16
229 000055 n12: ; added on 2004/10/16
230 000055
231 000055
232 000055
233 000055 6009 b0bclr TX_enable ; disable TX
234 000056 7D15 b0bts1 key_value.5 ; 1=if the low power p2.1is low
235 000057 8072 jmp charge10
236 000058
237 000058 ; b0bset LEDbuf.6 ;////////////////////////////////////
238 000058 ; b0bclr LEDbuf.6
239 000058 ;
240 000058 7109 b0bts0 charge_continue
241 000059 805C jmp ccharge
242 00005A
243 00005A ;
244 00005A 7C15 b0bts1 key_value.4 ; p2.3
245 00005B 8068 jmp app_stop_charge10
246 00005C ccharge:
247 00005C 7710 b0bts0 charge_ok
248 00005D 806A jmp app_stop_charge20
249 00005E
250 00005E 2B1E clr time4s ; if there's key pressed,will clear the 4s count
251 00005F 2B20 clr sleep_time
252 000060
253 000060 7B10 b0bts1 charge_start
254 000061
255 000061 2B1F clr times4
256 000062
257 000062 ; b0bts1 charge_start
258 000062 ; clr charge_time
259 000062
260 000062 6909 b0bset charge_continue
261 000063 6617 b0bclr LEDbuf.6
262 000064 6A17 b0bset LEDbuf.2
263 000065 6A10 b0bset RED_flash_enable
264 000066 6B10 b0bset charge_start
265 000067 807E jmp app90
266 000068 app_stop_charge10:
267 000068 6710 b0bclr charge_ok ; stop charge
268 000069 2B21 clr charge_time
269 00006A app_stop_charge20:
270 00006A 6109 b0bclr charge_continue
271 00006B 6210 b0bclr RED_flash_enable
272 00006C 6217 b0bclr LEDbuf.2
273 00006D 7710 b0bts0 charge_ok ;/////////////////////////////////
274 00006E 6E17 b0bset LEDbuf.6
275 00006F 6717 b0bclr LEDbuf.7
276 000070 6310 b0bclr charge_start
277 000071 807E jmp app90
278 000072
279 000072 charge10:
280 000072 6209 b0bclr wait_charge ; added on 2004/10/16
281 000073
282 000073 6109 b0bclr charge_continue
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -