📄 int.asm
字号:
;******************************************************************
TIME_UNIT equ 0 ;(256-0)*1 = 256us
;******************************************************************
int_init:
mov a, TIME_UNIT ;set time unit
mov tmr , a ;
;setting timer retated register
;
mov a, 10000011b ;Fsys/8-->Fsys=8M---> t= 1uS
mov tmrc, a ;
; setting A/D relatated register.
;
mov a, 00111000b ;pb3,2,1,0-->all AN use.
mov adcr, a ;
mov a, 00h ;adc clock if fsys/2
mov acsr, a ;
set ton ;start counting.
set eei ;enable external interrupt.
set eti ;enable timer interrupt.
clr eadi ;disable A/D interrupt.
set emi ;
ret ;
;******************************************************************
; TIMER INTERRUPT SUBROUTINE
;******************************************************************
timer_int:
siz timer_ms ;
reti ;
set ms_f ;
reti ;
;******************************************************************
; EXTERNAL INTERRUPT SUBROUTINE
;******************************************************************
ext_int:
clr _SWITCH ;IGBT over voltage protection.
clr _PWM ;
set IGBT_volt_f ;
clr timer_IGBT_volt ;
reti ;
;************************************
IGBT_volt_check:
snz ms100_f ;
ret ;
snz IGBT_volt_f ;
ret ;
inc timer_IGBT_volt ;
mov a, timer_IGBT_volt ;
add a, 256-TIME_IGBT_VOLT ;
snz c ;
ret ;
clr timer_IGBT_volt ;
snz _IGBT_volt ;
ret ;
clr IGBT_volt_f ;
snz power_f ;
ret ;
snz pot_f ;
ret ;
set _pwm ;
set _switch ;
ret ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -