📄 charging current.lst
字号:
"File: CHARGING CURRENT.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 ;;; (C_time+1) * 2 min
2 0000
3 0000 c_time equ 180
4 0000 fast_current equ 12
5 0000
6 0000 include ht46r47.inc
7 0000
8 0000 a0 equ 00h
9 0000 a1 equ 01h
10 0000 a2 equ 02h
11 0000 ch3 equ 00011000b
12 0000 t1_8 equ 0101b
13 0000
14 0000
15 0000 mmov macro a1,b1
16 0000 mov a,b1
17 0000 mov a1,a
18 0000 endm
19 0000
20 0000 push macro
21 0000 mov acc_stack,a
22 0000 mov a,status
23 0000 mov status_stack,a
24 0000 endm
25 0000
26 0000
27 0000 pop macro
28 0000 mov a,status_stack
29 0000 mov status,a
30 0000 mov a,acc_stack
31 0000 reti
32 0000 endm
33 0000
34 0000 ;;; if b1<>c1 then d1
35 0000 mjneq macro b1,c1,d1
36 0000 mov a,b1
37 0000 xor a,c1
38 0000 snz z
39 0000 jmp d1
40 0000 endm
41 0000
42 0000 ;;; if b1==c1 then d1
43 0000 mjeq macro b1,c1,d1
44 0000 mov a,b1
45 0000 xor a,c1
46 0000 sz z
47 0000 jmp d1
48 0000 endm
49 0000
50 0000 ;;; if b1<c1 then d1
51 0000 mjles macro b1,c1,d1
52 0000 mov a,b1
53 0000 sub a,c1
54 0000 snz c
55 0000 jmp d1
56 0000 endm
57 0000
"File: CHARGING CURRENT.ASM Holtek Cross-Assembler Version 2.86 Page 2
58 0000
59 0000 mclear_ram macro
60 0000 LOCAL temp
61 0000
62 0000 mmov mp0,040h+80h
63 0000
64 0000 temp:
65 0000
66 0000 clr r0
67 0000 inc mp0
68 0000 mov a,mp0
69 0000 xor a,080h
70 0000 snz z
71 0000 jmp temp
72 0000
73 0000 endm
74 0000
75 0000
76 0000 ;;; macro for comple bit
77 0000
78 0000 mcplb macro temp
79 0000 local lab1,lab2
80 0000
81 0000 snz temp
82 0000 jmp lab1
83 0000 clr temp
84 0000 jmp lab2
85 0000 lab1:
86 0000 set temp
87 0000 lab2:
88 0000
89 0000 endm
90 0000
91 0000
92 0000
93 0000 mpolling_eoc macro
94 0000
95 0000 local bat0_300ma_polling_eoc
96 0000
97 0000 clr emi
98 0000 clr start
99 0000 set start
100 0000 clr start
101 0000
102 0000 bat0_300ma_polling_eoc:
103 0000 sz eoc
104 0000 jmp bat0_300ma_polling_eoc
105 0000
106 0000 set emi
107 0000 clr wdt2
108 0000
109 0000 endm
110 0000
111 0000 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
112 0000
113 0000 data_sec .section at 040h 'data'
114 0000
115 0000
116 0000 00 acc_stack db ?
117 0001 00 status_stack db ?
"File: CHARGING CURRENT.ASM Holtek Cross-Assembler Version 2.86 Page 3
118 0002 00 buf0 db ?
119 0003 00 buf1 db ?
120 0004 00 buf2 db ?
121 0005
122 0005 00 time_4ms db ?
123 0006 00 time_1s db ?
124 0007 00 time_1min db ?
125 0008 00 charging_cx db ?
126 0009
127 0009 00 charging_time_min db ?
128 000A 00 zx db ?
129 000B 00 led_cx db ?
130 000C
131 000C 00 one_min_flag dbit
132 000D 00 led_1s db ?
133 000E
134 000E 00 ram_last db ?
135 000F
136 000F ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
137 000F
138 000F mrled_on macro
139 000F set pa.3
140 000F endm
141 000F
142 000F
143 000F mrled_off macro
144 000F clr pa.3
145 000F endm
146 000F
147 000F mgled_on macro
148 000F set pa.2
149 000F endm
150 000F
151 000F mgled_off macro
152 000F clr pa.2
153 000F endm
154 000F
155 000F
156 000F mther macro
157 000F local abc
158 000F call ad_ch2
159 000F mov a,adrh
160 000F and a,0fch
161 000F xor a,0fch
162 000F sz z
163 000F jmp abc
164 000F mjles 207,adrh, ther_fail
165 000F mjles adrh, 77, ther_fail
166 000F abc:
167 000F endm
168 000F
169 000F
170 000F .listinclude
171 000F
172 0000 int_code .SECTION at 00h 'CODE'
173 0000
174 0000 org 000h
175 0000
176 0000 0000 nop
177 0001 280D jmp ap
"File: CHARGING CURRENT.ASM Holtek Cross-Assembler Version 2.86 Page 4
178 0002
179 0002 ORG 004h
180 0004 0000 nop
181 0005 0004 reti
182 0006
183 0006 ORG 008h
184 0008 0000 nop
185 0009 2867 jmp timer_isr
186 000A
187 000A ORG 00ch
188 000C 0004 reti
189 000D
190 000D
191 000D ap:
192 000D 2043 call cinitial
193 000E
194 000E mther
195 001C
196 001C 28F0 jmp li_battery_main
197 001D
198 001D
199 001D ther_fail:
200 001D
201 001D mrled_off
202 001E mgled_off
203 001F 1F1A clr pwm
204 0020 3418 clr pd.0
205 0021
206 0021 ther_fail_lp:
207 0021
208 0021 mcplb pa.2
209 0026 0005 clr wdt2
210 0027 20DC call delay05s
211 0028
212 0028 203C call ad_ch2
213 0029 mjles 207-1,adrh, ther_fail_lp
214 002D mjles adrh, 77+1, ther_fail_lp
215 0031
216 0031 3512 clr pa.2
217 0032 0002 halt
218 0033 2832 jmp $-1
219 0034
220 0034 ad_ch0:
221 0034 mmov adcr,ch3+a0
222 0036 20BE call madcon_macro_sub
223 0037 0003 ret
224 0038
225 0038 ad_ch1:
226 0038 mmov adcr,ch3+a1
227 003A 20BE call madcon_macro_sub
228 003B 0003 ret
229 003C
230 003C ad_ch2:
231 003C mmov adcr,ch3+a2
232 003E 20BE call madcon_macro_sub
233 003F 0003 ret
234 0040
235 0040 stop_charging:
236 0040 1F1A clr pwm
237 0041 1F18 clr pd
"File: CHARGING CURRENT.ASM Holtek Cross-Assembler Version 2.86 Page 5
238 0042 0003 ret
239 0043
240 0043
241 0043 include sub.asm
1 0043 C
2 0043 C cinitial:
3 0043 C
4 0043 C mmov pa,0ffh
5 0045 C mmov pac,03h
6 0047 1F95 C set pbc
7 0048 1F14 C clr pb
8 0049 1F1A C clr pwm
9 004A 1F19 C clr pdc
10 004B 1F18 C clr pd
11 004C C
12 004C C mmov acsr,01h
13 004E C mmov adcr,ch3+a0
14 0050 C
15 0050 C mclear_ram
16 0058 2040 C call stop_charging
17 0059 C
18 0059 C mmov intc,00000101b
19 005B C mmov tmr,(256-250)
20 005D C mmov tmrc, 95h
21 005F C
22 005F C mrled_on
23 0060 C mgled_on
24 0061 C
25 0061 20DC C call delay05s
26 0062 20DC C call delay05s
27 0063 20DC C call delay05s
28 0064 C mrled_off
29 0065 C mgled_off
30 0066 C
31 0066 0003 C ret
32 0067 C
33 0067 C ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34 0067 C
35 0067 C timer_isr:
36 0067 C push
37 006A C
38 006A C timer_isr_ap:
39 006A C
40 006A 14C5 C inc time_4ms
41 006B 14C8 C inc charging_cx
42 006C C
43 006C C mjneq time_4ms,250,timer_isr_exit
44 0070 0001 C clr wdt1
45 0071 1F45 C clr time_4ms
46 0072 14C6 C inc time_1s
47 0073 14CD C inc led_1s
48 0074 C
49 0074 C
50 0074 C timer_isr_t_2:
51 0074 C
52 0074 074B C mov a,led_cx
53 0075 0E07 C and a,07h
54 0076 0386 C addm a,pcl
55 0077 28B9 C jmp led_cx_a_isr
"File: sub.asm Holtek Cross-Assembler Version 2.86 Page 6
56 0078 2890 C jmp led_cx_0_isr
57 0079 2899 C jmp led_cx_1_isr
58 007A 28A2 C jmp led_cx_2_isr
59 007B 28AB C jmp led_cx_3_isr
60 007C 28B4 C jmp led_cx_4_isr
61 007D 28B4 C jmp led_cx_4_isr
62 007E 28B4 C jmp led_cx_4_isr
63 007F C
64 007F C timer_isr_exit_1:
65 007F C
66 007F C mjneq led_1s,5,timer_isr_exit_3
67 0083 C
68 0083 C ;set one_min_flag
69 0083 1F4D C clr led_1s
70 0084 C
71 0084 C timer_isr_exit_3:
72 0084 C
73 0084 C
74 0084 C mjneq time_1s,240,timer_isr_exit
75 0088 1F46 C clr time_1s
76 0089 14C7 C inc time_1min
77 008A 14C9 C inc charging_time_min
78 008B 304C C set one_min_flag
79 008C C
80 008C C timer_isr_exit:
81 008C C pop
82 0090 C
83 0090 C
84 0090 C led_cx_0_isr:
85 0090 C
86 0090 3392 C set pa.7
87 0091 3312 C set pa.6
88 0092 3292 C set pa.5
89 0093 C
90 0093 C mcplb pa.4
91 0098 C
92 0098 287F C jmp timer_isr_exit_1
93 0099 C
94 0099 C
95 0099 C led_cx_1_isr:
96 0099 C
97 0099 3392 C set pa.7
98 009A 3312 C set pa.6
99 009B 3612 C clr pa.4
100 009C C
101 009C C mcplb pa.5
102 00A1 C
103 00A1 287F C jmp timer_isr_exit_1
104 00A2 C
105 00A2 C led_cx_2_isr:
106 00A2 C
107 00A2 3392 C set pa.7
108 00A3 3692 C clr pa.5
109 00A4 3612 C clr pa.4
110 00A5 C
111 00A5 C mcplb pa.6
112 00AA C
113 00AA 287F C jmp timer_isr_exit_1
114 00AB C
115 00AB C led_cx_3_isr:
"File: sub.asm Holtek Cross-Assembler Version 2.86 Page 7
116 00AB C
117 00AB 3712 C clr pa.6
118 00AC 3692 C clr pa.5
119 00AD 3612 C clr pa.4
120 00AE C
121 00AE C mcplb pa.7
122 00B3 C
123 00B3 287F C jmp timer_isr_exit_1
124 00B4 C
125 00B4 C
126 00B4 C led_cx_4_isr:
127 00B4 C
128 00B4 3792 C clr pa.7
129 00B5 3712 C clr pa.6
130 00B6 3692 C clr pa.5
131 00B7 3612 C clr pa.4
132 00B8 C
133 00B8 287F C jmp timer_isr_exit_1
134 00B9 C
135 00B9 C
136 00B9 C led_cx_a_isr:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -