📄 rtc.asm
字号:
chip sn8p26l38
//{{SONIX_CODE_OPTION
.Code_Option LVD LVD_L ; 1.8V Reset
.Code_Option Reset_Pin P02
.Code_Option Watch_Dog Disable
.Code_Option High_Clk 4M_X'tal ; Crystal/Resonator: 2Mhz~8Mhz
.Code_Option Fcpu Fosc/4
.Code_Option Security Disable
//}}SONIX_CODE_OPTION
.data
acc_buf ds 1
pflag_buf ds 1
RTC_buf ds 1
.code
org 00h
jmp main
org 08h
jmp isr
org 10h
//============================================================================
// timer T0 --> RTC
//============================================================================
main:
mov a,#00h
b0mov RTC_buf,a
b0bclr ft0enb
b0bset ft0tb
//T0RATE is not available in RTC mode.
//The T0 interval time is fixed at 0.5 sec
//T0C is 256 counts and generatesT0 0.5 sec interval time.
//Donˇt change T0C value inRTC mode
b0bset ft0enb
b0bset ft0ien // Enable T0 interrupt
b0bclr ft0irq // Clean T0 interrupt request flag
b0bset fgie // all interrupt operation
main10:
//==================================================================
//
// User code
//
//==================================================================
jmp main10
isr:
mov acc_buf,a // Push ACC to buffer
mov a,pflag
b0mov pflag_buf,a // Push PFLAG to buffer
isr_adc:
b0bts1 ft0ien // Check t0ien
jmp isr90
b0bts1 ft0irq // Check t0irp
jmp isr90
b0bclr ft0irq
mov a,RTC_buf
add a,#01h // 0.5sec add one time
b0mov RTC_buf,a
isr90:
mov a,pflag_buf
b0mov pflag,a // Pop pflag_buf to pflag
mov a,acc_buf // Pop acc_buf to acc
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -