📄 maincharger.lst
字号:
"File: MAINCHARGER.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 #INCLUDE NIMHCHARGER.INC
2 0032 ;;;;;;;;;;;;;;;;;;;;;MASK OPTION;;;;;;;;;;;;;;;;;;;;;;;;
3 0032 ;;BODY: HT46R53
4 0032 ;;PRODUCT: 28SKDIP
5 0032 ;;VDD 5V
6 0032 ;;WDT: ENABLE
7 0032 ;;CLR WDT ONE CLEAR INSTRUCTION
8 0032 ;;WDT CLOCK SOURCE T1
9 0032 ;;WDT TIME-OUT PERIOD 2^15/fs
10 0032 ;;WAKE-UP NONE WAKE-UP
11 0032 ;;PULL-HIGH PA.0,PA.1,PA.2,PA.3,PB AND PC PORT ALL PULL-HIGH
12 0032 ;;NONE PULL-HITH: PA.4,PA.5,PA.6,PA.7 AND PD.0 ALL NONE PULL-HIGH
13 0032 ;;LVR DISABLE
14 0032 ;;OSC RC MODEL(ROSC=75k)
15 0032 ;;PD0 ENABLE PWM
16 0032 ;;PWM MODEL 6+2 MODEL
17 0032 ;;PA3/PFD DISABLE PFD
18 0032 ;;ESTABLISHED DATE: 2005/05/26
19 0032 ;;;;;;;;;;;;;;;;;;;;;CODE SECTION;;;;;;;;;;;;;;;;;;;;;;;
20 0000 MAIN. SECTION AT 00H 'CODE'
21 0000 ORG 00H
22 0000 280D JMP MAIN
23 0001
24 0001 ORG 04H
25 0004 0004 RETI
26 0005
27 0005 ORG 08H
28 0008 291A JMP ISR_TIMER
29 0009
30 0009 ORG 0CH
31 000C 0004 RETI
32 000D
33 000D MAIN:
34 000D INI_REGISTER:
35 000D M_INITIATE
36 0011 24D1 CALL INI_IOPORTS
37 0012 M_CLRRAM
38 0021 24C7 CALL SBR_DELAY50MS
39 0022 MLP_MAIN:
40 0022 0001 CLR WDT
41 0023 0F28 MOV A,28H
42 0024 00A2 MOV ADCR,A ;;CHECK BATTERY 1 STATUS
43 0025 228C CALL SBR_CHECKBATSTATUS
44 0026
45 0026 0F29 MOV A,29H
46 0027 00A2 MOV ADCR,A ;;CHECK BATTERY 2 STATUS
47 0028 228C CALL SBR_CHECKBATSTATUS
48 0029
49 0029 0F2A MOV A,2AH
50 002A 00A2 MOV ADCR,A ;;CHECK BATTERY 3 STATUS
51 002B 228C CALL SBR_CHECKBATSTATUS
52 002C
53 002C 0F2B MOV A,2BH
54 002D 00A2 MOV ADCR,A ;;CHECK BATTERY 4 STATUS
55 002E 228C CALL SBR_CHECKBATSTATUS
56 002F
57 002F 2393 CALL SBR_SHOWBATSTATUS
"File: MAINCHARGER.ASM Holtek Cross-Assembler Version 2.86 Page 2
58 0030 0F0F MOV A,0FH
59 0031 0600 R AND A,R_FLAG
60 0032 3D0A SZ Z ;;JUDGE HAVE OR NOT BATTERIES IN THE PACK
61 0033 2822 JMP MLP_MAIN ;;NO BATTERIES IN THE PACK
62 0034 0080 R MOV R_TEMP3,A ;;THERE ARE BATTERIES IN THE PACK
63 0035 0F0F MOV A,0FH
64 0036 0600 R AND A,R_FLAG2
65 0037 0400 R XOR A,R_TEMP3
66 0038 3D0A SZ Z ;;JUDGE THE BATTERIES IN THE PACK IS OR NOT NEW
67 0039 2822 JMP MLP_MAIN ;;THE BATTERIES IN THE PACK IS NOT NEW
68 003A L_CHARGEMAIN:
69 003A 0714 MOV A,PB
70 003B 3A85 SNZ ACC.5
71 003C 28AD JMP MLP_DISCHARGING
72 003D 283E JMP L_CHARGING
73 003E ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74 003E ;$$$$$$$$$$$$$$$$$ CHARGING PART $$$$$$$$$$$$$$$$$$$$$$$
75 003E ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76 003E L_CHARGING:
77 003E 0001 CLR WDT
78 003F 0F9B MOV A,09BH ;;TIMER 0.8MS
79 0040 008D MOV TMR,A
80 0041 0FFB MOV A,0FBH
81 0042 0080 R MOV R_TMRH,A ;;TOTAL TIMER TIME IS 0.8MS*250=200MS
82 0043 320E SET TMRC.4
83 0044 ;;-----------------------------------------------------;;BATTERY 1 CHARGING
84 0044 MLP_CHARGE:
85 0044 0F0F MOV A,0FH
86 0045 0600 R AND A,R_FLAG
87 0046 3D0A SZ Z
88 0047 28AA JMP MLP_CHARGINGEXIT ;;THERE IS NO BATTERIES IN THE PACK
89 0048 0080 R MOV R_TEMP3,A
90 0049 0F0F MOV A,0FH
91 004A 0600 R AND A,R_FLAG1
92 004B 0400 R XOR A,R_TEMP3
93 004C 3D0A SZ Z ;;JUDGE BATTERIES IN THE PACK IS OR NOT CHARGING FINISHED
94 004D 28AA JMP MLP_CHARGINGEXIT ;;BATTERIES CHARGING FINISHED
95 004E L_BAT1CHARGE:
96 004E 0001 CLR WDT
97 004F 3800 R SNZ F_BAT1CHARGE
98 0050 285A JMP L_BAT2CHARGE
99 0051 3C00 R SZ F_QCBAT1
100 0052 2855 JMP L_BAT1QCHARGING
101 0053 3400 R CLR F_QUICKCHARGE
102 0054 2856 JMP L_BAT1CHARGING
103 0055 L_BAT1QCHARGING:
104 0055 3000 R SET F_QUICKCHARGE
105 0056 L_BAT1CHARGING:
106 0056 0FFE MOV A,0FEH
107 0057 0692 ANDM A,PA ;;SETTING PA.0 LOW LEVEL, BATTERY 1 CHARGING
108 0058 3018 SET PD.0
109 0059 287E JMP L_BATSCHARGING
110 005A ;;-----------------------------------------------------;;BATTERY 2 CHARGING
111 005A L_BAT2CHARGE:
112 005A 0001 CLR WDT
113 005B 3800 R SNZ F_BAT2CHARGE
114 005C 2866 JMP L_BAT3CHARGE
115 005D 3C00 R SZ F_QCBAT2
116 005E 2861 JMP L_BAT2QCHARGING
117 005F 3400 R CLR F_QUICKCHARGE
"File: MAINCHARGER.ASM Holtek Cross-Assembler Version 2.86 Page 3
118 0060 2862 JMP L_BAT2CHARGING
119 0061 L_BAT2QCHARGING:
120 0061 3000 R SET F_QUICKCHARGE
121 0062 L_BAT2CHARGING:
122 0062 0FFD MOV A,0FDH
123 0063 0692 ANDM A,PA ;;SETTING PA.1 LOW LEVEL, BATTERY 2 CHARGING
124 0064 3018 SET PD.0
125 0065 287E JMP L_BATSCHARGING
126 0066 ;;-----------------------------------------------------;;BATTERY 3 CHARGING
127 0066 L_BAT3CHARGE:
128 0066 0001 CLR WDT
129 0067 3800 R SNZ F_BAT3CHARGE
130 0068 2872 JMP L_BAT4CHARGE
131 0069 3C00 R SZ F_QCBAT3
132 006A 286D JMP L_BAT3QCHARGING
133 006B 3400 R CLR F_QUICKCHARGE
134 006C 286E JMP L_BAT3CHARGING
135 006D L_BAT3QCHARGING:
136 006D 3000 R SET F_QUICKCHARGE
137 006E L_BAT3CHARGING:
138 006E 0FFB MOV A,0FBH
139 006F 0692 ANDM A,PA ;;SETTING PA.2 LOW LEVEL, BATTERY 3 CHARGING
140 0070 3018 SET PD.0
141 0071 287E JMP L_BATSCHARGING
142 0072 ;;-----------------------------------------------------;;BATTERY 4 CHARGING
143 0072 L_BAT4CHARGE:
144 0072 0001 CLR WDT
145 0073 3800 R SNZ F_BAT4CHARGE
146 0074 2844 JMP MLP_CHARGE
147 0075 3C00 R SZ F_QCBAT4
148 0076 2879 JMP L_BAT4QCHARGING
149 0077 3400 R CLR F_QUICKCHARGE
150 0078 287A JMP L_BAT4CHARGING
151 0079 L_BAT4QCHARGING:
152 0079 3000 R SET F_QUICKCHARGE
153 007A L_BAT4CHARGING:
154 007A 0FF7 MOV A,0F7H
155 007B 0692 ANDM A,PA ;;SETTING PA.3 LOW LEVEL, BATTERY 4 CHARGING
156 007C 3018 SET PD.0
157 007D 287E JMP L_BATSCHARGING
158 007E ;;-----------------------------------------------------
159 007E L_BATSCHARGING:
160 007E 2411 CALL SBR_CHECKBATSDELTAV
161 007F 248A CALL SBR_CHECKTIMEOUT
162 0080 3800 R SNZ F_QUICKCHARGE
163 0081 2896 JMP L_SLOWCHARGING
164 0082 ;;-----------------------------------------------------
165 0082 L_QUICKCHARGING:
166 0082 0F2C MOV A,2CH
167 0083 00A2 MOV ADCR,A ;;SELECT AN4 CHANNEL
168 0084 2380 CALL SBR_ADCONVERT
169 0085 0720 MOV A,ADRL
170 0086 0080 R MOV R_ADRL_CBAK,A
171 0087 0721 MOV A,ADRH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -