📄 x36vznys.lst
字号:
0042 0185 00193 CLRF PORTA
0043 300F 00194 movlw B'00001111' ;RA
0044 1683 00195 BSF _BANK
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0045 0085 00196 movwf TRISA
0046 1283 00197 BCF _BANK
0047 00198 RESET
0047 1586 00199 BSF PORTB,3
0048 0064 00200 CLRWDT ;清看门狗
0049 2206 00201 CALL MST_REG
004A 222E 00202 CALL MST_AD
004B 2237 00203 CALL MST_TIMER1
004C 2243 00204 CALL MST_PWM
004D 21FF 00205 CALL DEC10MS ;上电延时10M
004E 00206 DCJC
004E 0064 00207 CLRWDT ;清看门狗
MPASM 4.00 Released X36VZNYS.ASM 2-7-2007 13:57:55 PAGE 5
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
004F 01A9 00208 CLRF DC_H ;电池电压开启检测
0050 01A8 00209 CLRF DC_L
0051 3010 00210 MOVLW 0X10
0052 00AA 00211 MOVWF DC_CONT
0053 00212 DCJC_0
0053 3099 00213 MOVLW B'10011001'
0054 009F 00214 MOVWF ADCON0 ;写入电压转换通道
0055 21FA 00215 CALL DEC10US ;延时10US
0056 151F 00216 BSF ADCON0,GO ;开AD转换
0057 00217 DCJC_1
0057 191F 00218 BTFSC ADCON0,GO
0058 2857 00219 GOTO DCJC_1 ;等待转换完成
0059 081E 00220 MOVF ADRES,W
005A 07A8 00221 ADDWF DC_L,F
005B 1803 00222 BTFSC STATUS,C
005C 0AA9 00223 INCF DC_H,F
005D 0BAA 00224 DECFSZ DC_CONT,F
005E 2853 00225 GOTO DCJC_0
005F 3004 00226 MOVLW 0X04
0060 00AA 00227 MOVWF DC_CONT
0061 00228 DCJC_2
0061 1003 00229 BCF STATUS,C
0062 0CA9 00230 RRF DC_H,F
0063 0CA8 00231 RRF DC_L,F
0064 0BAA 00232 DECFSZ DC_CONT,F
0065 2861 00233 GOTO DCJC_2
0066 30A5 00234 MOVLW QYUP ;电池开启电压
0067 0228 00235 SUBWF DC_L,W
0068 1C03 00236 BTFSS STATUS,C
0069 284E 00237 GOTO DCJC
006A 224D 00238 CALL MST_INT ;中断配置
006B 21FF 00239 CALL DEC10MS ;延时20MS
006C 21FF 00240 CALL DEC10MS
006D 21FF 00241 CALL DEC10MS
006E 123D 00242 BCF DS_ON
006F 123C 00243 BCF DC_OK
0070 11BC 00244 BCF TS_OK
0071 12BC 00245 BCF DL_OK
0072 133C 00246 BCF TS_YX
0073 10BD 00247 BCF PWM_OUT
0074 0064 00248 CLRWDT ;清看门狗
00249 ;--------------------------------------------------------------------------------
00250 ;模式转换与控制
00251 ;助力模式: 助力有效ZL_ON置1(ZL_ON=1),此时转把无效
00252 ; ZL_OK位1.6S置1一次,主程序循环运行,在助力没有输出为0,PWM输出调整到0.
00253 ;电动模式: 在转把达到开启电压TSON,转把有效为TS_ON置1(TS_ON=1),转把采样完成,TS_OK=1.
00254 ; 在TS_ON=1,主程序进入电动模式运行.
00255 ;定速模式: 在电动模式下(TS_ON=1),定速键有效DS_ON=1,进入定速模式.在有刹车\欠压
00256 ; 或再次按下定速键退出定速模式.
00257 ;----------------------------------------------------------------------------------
00258 ;助力模式
0075 00259 ZLMOD
0075 1B3D 00260 BTFSC ZL_ON ;助力开启?
MPASM 4.00 Released X36VZNYS.ASM 2-7-2007 13:57:55 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0076 2879 00261 GOTO ZLMOD0 ;是
0077 1B3C 00262 BTFSC TS_YX ;转把是否有效?
0078 288A 00263 GOTO DDMOD ;是,跳到电动模式
0079 00264 ZLMOD0
0079 18BD 00265 BTFSC PWM_OUT
007A 2115 00266 CALL PWMOUT ;PWM输出
00267
007B 1BBC 00268 BTFSC ZL_OK
007C 2180 00269 CALL CLZL ;助力信号处理
00270
007D 1ABC 00271 BTFSC DL_OK
007E 20FD 00272 CALL CLIN_PWM ;PWM加减调整(限流)
00273
007F 1A3C 00274 BTFSC DC_OK
0080 213A 00275 CALL CLDC ;欠压检测
0081 183D 00276 BTFSC OFF ;判断是否有复位标志位
0082 2847 00277 GOTO RESET ;复位
00278
0083 1D06 00279 BTFSS PSC ;刹车
0084 2170 00280 CALL CLSC ;刹车处理程序
0085 183D 00281 BTFSC OFF ;判断是否有复位标志位
0086 2847 00282 GOTO RESET ;复位
0087 0064 00283 CLRWDT ;清看门狗
0088 103E 00284 BCF DS_OK ;关定速检测
0089 2875 00285 GOTO ZLMOD ;继续循环
00286 ;电动模式
008A 00287 DDMOD
008A 1F3C 00288 BTFSS TS_YX ;转把开启?
008B 2875 00289 GOTO ZLMOD ;转把没有开启,跳到助力模式
008C 1E3D 00290 BTFSS DS_ON
008D 2890 00291 GOTO DDMOD0
008E 123D 00292 BCF DS_ON
008F 28A1 00293 GOTO DSMOD
0090 00294 DDMOD0
0090 19BC 00295 BTFSC TS_OK
0091 20E4 00296 CALL CLZB
00297
0092 1ABC 00298 BTFSC DL_OK
0093 20FD 00299 CALL CLIN_PWM ;PWM加减处理
00300
0094 18BD 00301 BTFSC PWM_OUT
0095 2115 00302 CALL PWMOUT
00303
0096 1A3C 00304 BTFSC DC_OK
0097 213A 00305 CALL CLDC ;欠压检测
0098 183D 00306 BTFSC OFF ;判断是否有复位标志位
0099 2847 00307 GOTO RESET ;复位
00308
009A 1D06 00309 BTFSS PSC ;刹车
009B 2170 00310 CALL CLSC
009C 183D 00311 BTFSC OFF ;判断是否有复位标志位
009D 2847 00312 GOTO RESET ;复位
009E 0064 00313 CLRWDT ;清看门狗
MPASM 4.00 Released X36VZNYS.ASM 2-7-2007 13:57:55 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
009F 143E 00314 BSF DS_OK ;开启定速度检测
00A0 288A 00315 GOTO DDMOD ;继续循环
00316 ;定速模式
00A1 00317 DSMOD
00A1 1E3D 00318 BTFSS DS_ON
00A2 28A5 00319 GOTO DSMOD0
00A3 123D 00320 BCF DS_ON
00A4 288A 00321 GOTO DDMOD
00A5 00322 DSMOD0
00A5 1ABC 00323 BTFSC DL_OK
00A6 20FD 00324 CALL CLIN_PWM ;PWM加减处理
00325
00A7 18BD 00326 BTFSC PWM_OUT
00A8 2115 00327 CALL PWMOUT
00328
00A9 1A3C 00329 BTFSC DC_OK
00AA 213A 00330 CALL CLDC
00AB 183D 00331 BTFSC OFF ;判断是否有复位标志位
00AC 2847 00332 GOTO RESET ;复位
00333
00AD 1D06 00334 BTFSS PSC ;刹车
00AE 2170 00335 CALL CLSC
00AF 183D 00336 BTFSC OFF ;判断是否有复位标志位
00B0 2847 00337 GOTO RESET ;复位
00B1 0064 00338 CLRWDT ;清看门狗
00B2 28A1 00339 GOTO DSMOD ;继续循环
00340 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00341 ;============================================================================
00342 ;----------------------------------------------------------------------------
00343 ;AD中断
00344 ;AD转换中断,由TIMER1中断启动(定时512US)
00345 ;AD转换对电流\转把\电池电压循环采样.
00346 ;电流采样8次转把采样一次,转把采样64次电池电压采样一次.
00347 ;----------------------------------------------------------------------------
00B3 00348 INT_AD
00B3 130C 00349 BCF PIR1,ADIF ;清中断标志位
00B4 081E 00350 MOVF ADRES,W ;读出转换结果
00B5 193C 00351 BTFSC DL_AD
00B6 28BE 00352 GOTO DL_ST
00B7 183C 00353 BTFSC TS_AD
00B8 28C1 00354 GOTO TS_ST
00B9 1CBC 00355 BTFSS DC_AD
00BA 28CF 00356 GOTO INT_AD0
00BB 00357 DC_ST
00BB 00A7 00358 MOVWF DC_V ;存入电压值
00BC 163C 00359 BSF DC_OK ;置转换完毕标志位
00BD 28CF 00360 GOTO INT_AD0
00BE 00361 DL_ST
00BE 00AB 00362 MOVWF DL_V
00BF 16BC 00363 BSF DL_OK ;置转换完毕标志位
00C0 28CF 00364 GOTO INT_AD0
00C1 00365 TS_ST
00C1 00A5 00366 MOVWF TS_V
MPASM 4.00 Released X36VZNYS.ASM 2-7-2007 13:57:55 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00C2 15BC 00367 BSF TS_OK
00C3 3052 00368 MOVLW TSON ;转把启动电压
00C4 0225 00369 SUBWF TS_V,W
00C5 1803 00370 BTFSC STATUS,C ;C=1,TS_V>TSON,达到开启电压
00C6 28CC 00371 GOTO TS_ST0
00C7 133C 00372 BCF TS_YX ;没有达到开启电压,清转把有效标志位
00C8 11BC 00373 BCF TS_OK
00C9 300C 00374 MOVLW YSTS
00CA 00A4 00375 MOVWF TSS
00CB 28CF 00376 GOTO INT_AD0
00CC 00377 TS_ST0
00CC 0BA4 00378 DECFSZ TSS,F ;延时TSS,确定转把准确的开启
00CD 28CF 00379 GOTO INT_AD0
00CE 173C 00380 BSF TS_YX ;置转换开启标志位
00CF 00381 INT_AD0
00CF 103C 00382 BCF TS_AD ;清转换标志位
00D0 113C 00383 BCF DL_AD
00D1 10BC 00384 BCF DC_AD
00D2 0BB6 00385 DECFSZ ADTP0,F
00D3 28E0 00386 GOTO DL_ZH
00D4 3008 00387 MOVLW 0X08 ;电流采样8次,转把采样一次
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -