⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 externalinterrupt0.asm

📁 The circuit is drawn for measurement of acceleration from –1000 mg until + 1000 mg. It can be place
💻 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 + -