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

📄 int0_server.asm

📁 ATMEGA16芯片+HS0038B红外接收头组成的遥控器测试程序
💻 ASM
字号:
;---------------------------------------------------------------------
;功能:外部中断0服务程序
;入口:无
;出口:无
;---------------------------------------------------------------------
Int_External_INT0:
		IN	int_SREG,SREG			;1
		PUSh	XL				;2
		PUSh	XH				;2
		PUSh	YL				;2
		PUSh	YH				;2

Ir_PulseTest:
		LDS	XL,R_IrDataL
		LDS	XH,R_IrDataH

		SBRC	R_Flag,B_IrEnd			;Bit0=1 two data received
		JMP	Ir_PulseTest_ex

		SBRC	R_Flag,B_IrStartBit		;If received start bit?
		JMP	IR_DataBit

		CPI	R_PulseWidth,65			;Test Start bit
			BRSH	IR_ClrPulseWith
		CPI	R_PulseWidth,55
			BRSH	IR_StartBit
		JMP	IR_ClrPulseWith

IR_DataBit:
		CPI	R_PulseWidth,35			;Test Logic "1" bit
			BRSH	IR_WrongBit
		CPI	R_PulseWidth,25
			BRSH	IR_LogicBit1

		CPI	R_PulseWidth,25			;Test Logic "0" bit
			BRSH	IR_WrongBit
		CPI	R_PulseWidth,15
			BRLO	IR_WrongBit
IR_LogicBit0:
		CLC
		JMP	IR_LogicBit_Com
IR_LogicBit1:
		SEC
IR_LogicBit_Com:
		ROL	XH
		ROL	XL
IR_NextBit:
		INC	R_PulseBit
		CPI	R_PulseBit,16
		BRLO	IR_ClrPulseWith
		SBR	R_Flag,(1<<B_IrEnd)		;end flag
		JMP	Ir_PulseTest_ex

IR_StartBit:
		SBR	R_Flag,(1<<B_IrStartBit)
		CLR	R_PulseBit

		STS	R_IrDataL,R_Value0
		STS	R_IrDataH,R_Value0
		JMP	IR_ClrPulseWith

IR_WrongBit:
		SBR	R_Flag,(1<<B_IrWrongBit)
		JMP	Ir_PulseTest_ex

IR_ClrPulseWith:
		CLR	R_PulseWidth
Ir_PulseTest_ex:
		STS	R_IrDataL,XL
		STS	R_IrDataH,XH


;Int_External_INT0_ex:
		POP	YH			;2
		POP	YL			;2
		POP	XH			;2
		POP	XL			;2
		OUT	SREG,int_SREG		;1
		RETI










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -