📄 li_charge_main.lst
字号:
1 000000 include define.asm
2 000000 ;********************************************************
3 000000 ; COMPANY : CHOMP *
4 000000 ; PROJECT NAME : li_chargeq *
5 000000 ; Author : wwf *
6 000000 ; Original : *
7 000000 ; VERSION : V1.0 *
8 000000 ; START DATE : 2005.7.5 *
9 000000 ; COMPLISH DATE: 2005.7.17 *
10 000000 ; Modify : *
11 000000 ; BODY : SN8P2711 *
12 000000 ; COMPILER : *
13 000000 ; CRYSTAL : rc *
14 000000 ; Modify function: *
15 000000 ; *******************************************************
16 000000
17 000000 ;ICE_MODE EQU 1
18 000000
19 E 00000000 ICE_MODE EQU 0
20 000000
21 000000 chip sn8p2711
22 000000 //{{SONIX_CODE_OPTION
23 000000 .Code_Option LVD LVD_L ; 2.0V Reset
24 000000 .Code_Option Low_Power Enabel
25 000000 .Code_Option Reset_Pin Reset
26 000000 .Code_Option Watch_Dog Always_On
27 000000 .Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator
28 000000 .Code_Option Fcpu Fosc/1
29 000000 .Code_Option Security Enable
30 000000 .Code_Option Noise_Filter Enable
31 000000 //}}SONIX_CODE_OPTION
32 000000
33 000008 ;*************Port define*******************
34 E 000300D0 com_p equ p0.3
35 E 000200D0 plu_p equ p0.2
36 E 000300D5 mob_p equ p5.3
37 E 000400D5 s1_p equ p5.4
38 E 000100D0 s2_p equ p0.1
39 E 000000D0 s3_p equ p0.0
40 000008
41 E 000000D4 s4_p equ p4.0
42 E 000100D4 s5_p equ p4.1
43 E 000200D4 s6_p equ p4.2
44 E 000300D4 ad1_p equ p4.3
45 E 000400D4 ad2_p equ p4.4
46 000008
47 000008 ;------------------ Define flag ------------
48 000008
49 000008
50 000008 ;----------------------------------
51 000008
52 000008 ;enddefine
53 000008 ;-----------------------------------------------
54 000008 ;******************Program code segment**********
55 000008 ;-----------------------------------------------
56 000000 .code
57 000000 org 0
58 000000 8010 jmp start
59 000008 org 8
60 000008 8000 jmp isr
61 000010 org 010h
62 000010
63 000010 start:
64 000010 2D00 mov a,#0h
65 000011 2FC8 b0mov intrq,a
66 000012 67DF b0bclr FGIE ;//disable Interrupt gain
67 000013 2B86 clr PFLAG ;pflag = x,x,x,x,x,c,dc,z
68 000014 2D00 mov A,#0h ;Clear watchdog timer and initial system mode
69 000015 2FCA b0mov OSCM,A
70 000016 4ACA bset Fclkmd ;切换到低速时钟
71 000017 49CA bset Fstphx ;停止高速时钟
72 000018 2D5A mov a,#5ah
73 000019 2FCC b0mov wdtr,a ;clr wdt
74 00001A ; call delay_10ms
75 00001A
76 00001A C000 call PortInitial
77 00001B C000 call delay_10ms
78 00001C C000 call PortInitial
79 00001D C000 call SysInitial
80 00001E C000 call RAMInitial
81 00001F C000 call VariableInitial
82 000020
83 000020 6FDF b0bset fgie ;开中断
84 000021 main:
85 000021 2D5A mov a,#5ah
86 000022 2FCC b0mov wdtr,a ;clr wdt
87 000023
88 000023 C029 call voltage_adc
89 000024 C000 call state_judge
90 000025 C000 call voltage_judge
91 000026 C000 call disp_data_prepare
92 000027 C000 call display
93 000028 8021 jmp main
94 000029
95 000029 ;-------------------------------------------------
96 000029 voltage_adc:
97 000029 ; b0bts1 f_adt
98 000029 ; jmp ad_end
99 000029 setb Fgchs
100 000029 setb Fadenb
101 000029 mov a,#93h
102 000029 b0mov adm,a
103 000029 call delay100us
104 000029 b0bset Fads
105 000029 b0bts1 Feoc
106 000029 jmp $-1
107 000029 xch a,vc
108 000029 b0bts0 fz
109 000029 jmp $+4
110 000029 add vc,a
111 000029 rrcm vc
112 000029
113 000029 mov a,#94h
114 000029 b0mov adm,a
115 000029 call delay100us
116 000029 b0bset ads
117 000029 b0bts1 eoc
118 000029 jmp $-1
119 000029 xch a,vb
120 000029 b0bts0 fz
121 000029 jmp $+4
122 000029 add vb,a
123 000029 rrcm vb
124 000029 clr adm ;disable ad
125 000029 voltage_adc_end:
126 000029 ret
127 000029 ;-----------------------------------------------------------
128 000029 state_judge:
129 000029 b0mov a,vb
130 000029 sub a,vc
131 000029 b0bts1 fc
132 000029 jmp state_judge_next
133 000029 sub a,#ad_rel
134 000029 b0bts0 fc
135 000029 jmp $+5
136 000029 b0bset f_empty
137 000029 bclr f_charge
138 000029 bclr f_discharge
139 000029 jmp state_judge_end
140 000029 b0bset f_discharge
141 000029 bclr f_charge
142 000029 bclr f_empty
143 000029 jmp state_judge_end
144 000029 state_judge_next:
145 000029 b0mov a,vc
146 000029 sub a,vb
147 000029 sub a,#ad_rel
148 000029 b0bts0 fc
149 000029 jmp $+5
150 000029 b0bset f_empty
151 000029 bclr f_chagre
152 000029 bclr f_discharge
153 000029 jmp state_judge_end
154 000029 b0bset f_charge
155 000029 bclr f_discharge
156 000029 bclr f_empty
157 000029 state_judge_end:
158 000029 ret
159 000029 ;------------------------------------------------
160 000029 voltage_judge:
161 000029 mov a,#6
162 000029 b0mov voltage,a
163 000029 b0mov a,vb
164 000029 sub a,#ad85
165 000029 b0bts0 fc
166 000029 jmp voltage_end
167 000029 decms voltage ;5
168 000029 b0mov a,vb
169 000029 sub a,#ad80
170 000029 b0bts0 fc
171 000029 jmp voltage_judeg_end
172 000029 decms voltage ;4
173 000029 b0mov a,vb
174 000029 sub a,#ad77
175 000029 b0bts0 fc
176 000029 jmp voltage_judge_end
177 000029 decms voltage ;3
178 000029 b0mov a,vb
179 000029 sub a,#ad76
180 000029 b0bts0 fc
181 000029 jmp voltage_judge_end
182 000029 decms voltage ;2
183 000029 b0mov a,vb
184 000029 sub a,#ad75
185 000029 b0bts0 fc
186 000029 jmp voltage_judge_end
187 000029 decms voltage ;1
188 000029 b0mov a,vb
189 000029 sub a,#ad74
190 000029 b0bts0 fc
191 000029 jmp voltage_judge_end
192 000029 decms voltage ;0
193 000029 nop
194 000029 voltage_judge_end:
195 000029 ret
196 000029 ;-------------------------------------------------------------------
197 000029 display_prepare:
198 000029 b0mov a,voltage
199 000029 add a,pcl
200 000029 jmp display0
201 000029 jmp display1
202 000029 jmp display2
203 000029 jmp display3
204 000029 jmp display4
205 000029 jmp diaplay5
206 000029 jmp display6
207 000029 display0:
208 000029 ; b0bts0 f_display
209 000029 ; jmp display0_1 ;fanxiang
210 000029 bset com_p
211 000029 bset s2_p
212 000029 bset s3_p
213 000029 bset s4_p
214 000029 bset s5_p
215 000029 bset s6_p
216 000029 b0bts1 f_charge
217 000029 jmp display0_next
218 000029 bset mob_p
219 000029 b0bts1 f_500ms
220 000029 jmp display_prepare_end
221 000029 bclr f_500ms
222 000029 b0bts0 f_lcd
223 000029 jmp $+5
224 000029 bset f_lcd
225 000029 bset s1_p
226 000029 bset plu_p
227 000029 jmp display_prepare_end
228 000029 bclr f_lcd
229 000029 bclr s1_p
230 000029 bclr plu_p
231 000029 jmp display
232 000029 display0_next:
233 000029 bclr s1_p
234 000029 b0bts1 f_discharge
235 000029 jmp display0_next1
236 000029 bset plu_p
237 000029 b0bts0 f_500ms
238 000029 jmp display_prepare_end
239 000029 bclr f_500ms
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -