📄 externalinterrupt0.asm
字号:
;------------------------------------------------------------------------------------------------------
;Name :ExternalInterrupt0
;------------------------------------------------------------------------------------------------------
.cseg
.org SegmentExternalInterrupt0
;------------------------------------------------------------------------------------------------------
ExternalInterrupt0:
ldi TempRegister,0b01000000
out GIMSK,TempRegister
rcall ClearAllTimeRegisters ;Clear All Time Registers
ldi TempRegister,0b00000011
out MCUCR,TempRegister
ret
;------------------------------------------------------------------------------------------------------
ClearAllTimeRegisters: ;Clear All Time Registers
clr TimeFlagRegister
clr SecondRegister
clr MinuteRegister
clr HourRegister
ret
;------------------------------------------------------------------------------------------------------
SecPassed: ;Do when 1 second passed
ori TimeFlagRegister,SetSecondFlag ;SecFlag = 1
inc SecondRegister ;increase SecRegister by 1
cpi SecondRegister,_SEC_IN_1MIN ;If SecRegister = 60
breq MinPassed ;then 1 minute passed
reti
;------------------------------------------------------------------------------------------------------
MinPassed: ;Do when 1 minute passed
ori TimeFlagRegister,SetMinuteFlag ;MinFlag = 1
clr SecondRegister ;SecRegister = 0x00
inc MinuteRegister ;increase MinRegister by 1
cpi MinuteRegister,_MIN_IN_1HOUR ;If MinRegister = 60
breq HourPassed ;then 1 hour passed
reti
;------------------------------------------------------------------------------------------------------
HourPassed: ;Do when 1 hour passed
ori TimeFlagRegister,SetHourFlag ;HourFlag = 1
clr MinuteRegister ;MinRegister = 0x00
inc HourRegister ;increase HourRegister by 1
cpi HourRegister,_HOURS_IN_1DAY ;If HourRegister = 24
breq DayPassed ;then 1 day passed
reti
;------------------------------------------------------------------------------------------------------
DayPassed: ;Do when 1 day passed
ori TimeFlagRegister,SetDayFlag
clr HourRegister
reti
;------------------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -