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

📄 spmc65.inc

📁 实现红外接收功能。将红外遥控器发送过来的编码解析,并显示出来。
💻 INC
📖 第 1 页 / 共 5 页
字号:
	C_T2EXT_EN:			EQU		%00000111	; External Event.
	C_T2FCS_Div_512:	EQU		%00000110	; Timer2 Clock= FCS/512.
	C_T2FCS_Div_128:	EQU		%00000101	; Timer2 Clock= FCS/128.       
	C_T2FCS_Div_32:		EQU		%00000100	; Timer2 Clock= FCS/32.
	C_T2FCS_Div_8:		EQU		%00000011	; Timer2 Clock= FCS/8.	
	C_T2FCS_Div_4:		EQU		%00000010	; Timer2 Clock= FCS/4.
	C_T2FCS_Div_2:		EQU		%00000001	; Timer2 Clock= FCS/2. 	
	C_T2FCS_Div_1:		EQU		%00000000	; Timer2 Clock= FCS/1.	
;
P_TMR2_Data0:			EQU     $1A			; Timer2 8-bit counter register.(R)
P_TMR2_PreloadLo:		EQU     $1A			; Timer2 8-bit preload register.(W)
P_TMR2_CompLo:			EQU		$1A			; Timer2 compare low byte value.
P_TMR2_CapLo:			EQU     $1A			; Timer2 capture low byte width value.
P_TMR2_PWM0:			EQU		$1A			; Timer2 PWM period value.
;
P_TMR2_Data1:			EQU     $1B			; Timer2 16-bit counter register.(R)
P_TMR2_PreloadHi:		EQU     $1B			; Timer2 16-bit preload register.(W)
P_TMR2_CompHi:			EQU		$1B			; Timer2 compare high byte value.
P_TMR2_CapHi:			EQU     $1B			; Timer2 capture high byte width value.
P_TMR2_CapCycle8:		EQU     $1B			; Timer2 8-bit capture cycle value.(R)
P_TMR2_PWM1:			EQU		$1B			; Timer2 PWM duty value.
;
P_TMR3_Data0:			EQU     $1C			; Timer3 8-bit Counter register.(R)
P_TMR3_PreloadLo:		EQU     $1C			; Timer3 8-bit preload register.(W)
P_TMR3_CompLo:			EQU		$1C			; Timer3 compare low byte value.
P_TMR3_CapLo:			EQU     $1C			; Timer3 capture low byte width value.
P_TMR3_PWM0:			EQU     $1C			; Timer3 PWM peroid low byte register.
;
P_TMR3_Data1:			EQU     $1D			; Timer3 16-bit Counter register.(R)
P_TMR3_PreloadHi:		EQU     $1D			; Timer3 16-bit preload register.(W)
P_TMR3_CompHi:			EQU		$1D			; Timer3 compare high byte value.
P_TMR3_CapHi:			EQU     $1D			; Timer3 capture high byte width value.
P_TMR3_CapCycle8:		EQU     $1D			; Timer3 8-bit capture cycle value.(R)
P_TMR3_PWM1:			EQU     $1D			; Timer3 PWM high byte register.
	C_TMR3_PWMDuty:		EQU		%11110000	; Timer3 PWM duty high byte value.
	C_TMR3_PWMPeriod:	EQU		%00001111	; Timer3 PWM peroid high byte value.	
;
P_TMR3_PWM2:			EQU     $1E			; Timer3 PWM duty low byte register.
;
P_TMR4_5_Ctrl0:			EQU     $1F			; Timer4/5 control 0.
	C_T516B_PWM:		EQU		%01110000	; Timer5 Function as 16 Bit PWM.
	C_T516B_CAP:		EQU		%01100000	; Timer5 Function as 16 Bit Capture(Width,Cycle).
	C_T516B_COMP:		EQU		%01010000	; Timer5 Function as 16 Bit Compare.
	C_T516B_Timer: 		EQU		%01000000	; Timer5 Function as 16 Bit Timer.
	C_T58B_CAP:			EQU		%00110000	; Timer5 Function as  8	Bit Capture(Width,Cycle).
	C_T58B_COMP:		EQU		%00100000	; Timer5 Function as  8	Bit Compare.
	C_T58B_Timer:	  	EQU		%00010000	; Timer5 Function as  8 Bit Timer.
	C_T48B_PWM:			EQU		%00000111	; Timer4 Function as  8 Bit PWM.
	C_T416B_CAP:		EQU		%00000110	; Timer4 Function as 16 Bit Capture(Width).
	C_T416B_COMP:		EQU		%00000101	; Timer4 Function as 16 Bit Compare.
	C_T416B_Timer:		EQU		%00000100	; Timer4 Function as 16 Bit Timer.
	C_T48B_CAP:			EQU		%00000011	; Timer4 Function as  8 Bit Capture(Width,Cycle).
	C_T48B_COMP:		EQU		%00000010	; Timer4 Function as  8	Bit Compare.
	C_T48B_Timer:  		EQU		%00000001	; Timer4 Function as  8 Bit Timer.
;		
P_TMR4_5_Ctrl1:			EQU     $20			; Timer4/5 control 1.
	C_T5EXT_EN:			EQU		%01110000	; External Event.
	C_T5FCS_Div_512:	EQU		%01100000	; Timer5 Clock= FCS/512.
	C_T5FCS_Div_128:	EQU		%01010000	; Timer5 Clock= FCS/128.      
	C_T5FCS_Div_32:		EQU		%01000000	; Timer5 Clock= FCS/32.
	C_T5FCS_Div_8:		EQU		%00110000	; Timer5 Clock= FCS/8.	
	C_T5FCS_Div_4:		EQU		%00100000	; Timer5 Clock= FCS/4.
	C_T5FCS_Div_2:		EQU		%00010000	; Timer5 Clock= FCS/2. 	
	C_T5FCS_Div_1:		EQU		%00000000	; Timer5 Clock= FCS/1.	
	C_T4EXT_EN:			EQU		%00000111	; External Event.
	C_T4FCS_Div_512:	EQU		%00000110	; Timer4 Clock= FCS/512.
	C_T4FCS_Div_128:	EQU		%00000101	; Timer4 Clock= FCS/128.       
	C_T4FCS_Div_32:		EQU		%00000100	; Timer4 Clock= FCS/32.
	C_T4FCS_Div_8:		EQU		%00000011	; Timer4 Clock= FCS/8.	
	C_T4FCS_Div_4:		EQU		%00000010	; Timer4 Clock= FCS/4.
	C_T4FCS_Div_2:		EQU		%00000001	; Timer4 Clock= FCS/2. 	
	C_T4FCS_Div_1:		EQU		%00000000	; Timer4 Clock= FCS/1.	
;
P_TMR4_Data0:			EQU     $21			; Timer4 8-bit counter register.(R)
P_TMR4_PreloadLo:		EQU     $21			; Timer4 8-bit preload register.(W)
P_TMR4_CompLo:			EQU		$21			; Timer4 compare low byte value.
P_TMR4_CapLo:			EQU     $21			; Timer4 capture low byte width value.
P_TMR4_PWM0:			EQU		$21			; Timer4 PWM period value.
;
P_TMR4_Data1:			EQU     $22			; Timer4 16-bit counter register.(R)
P_TMR4_PreloadHi:		EQU     $22			; Timer4 16-bit preload register.(W)
P_TMR4_CompHi:			EQU		$22			; Timer4 compare high byte value.
P_TMR4_CapHi:			EQU     $22			; Timer4 capture high byte width value.
P_TMR4_CapCycle8:		EQU     $22			; Timer4 8-bit capture cycle value.(R)
P_TMR4_PWM1:			EQU		$22			; Timer4 PWM duty value.
;
P_TMR5_Data0:			EQU     $23			; Timer5 8-bit Counter register.(R)
P_TMR5_PreloadLo:		EQU     $23			; Timer5 8-bit preload register.(W)
P_TMR5_CompLo:			EQU		$23			; Timer5 compare low byte value.
P_TMR5_CapWidthLo:		EQU     $23			; Timer5 capture low byte width value.
P_TMR5_PWMPeriodLo:		EQU     $23			; Timer5 PWM peroid low byte register.
;
P_TMR5_Data1:			EQU     $24			; Timer5 16-bit Counter register.(R)
P_TMR5_PreloadHi:		EQU     $24			; Timer5 16-bit preload register.(W)
P_TMR5_CompHi:			EQU		$24			; Timer5 compare high byte value.
P_TMR5_CapWidthHi:		EQU     $24			; Timer5 capture high byte width value.
P_TMR5_CapCycle8:		EQU     $24			; Timer5 8-bit capture cycle value.(R)
P_TMR5_PWMPeriodHi:		EQU     $24			; Timer5 PWM period high byte register.	
;
P_TMR5_CapCycleLo:		EQU		$25			; Timer5 capture cycle high byte value.(R)
P_TMR5_PWMDutyLo:		EQU     $25			; Timer5 PWM duty low byte register.
;
P_TMR5_CapCycleHi:		EQU		$5F			; Timer5 capture cycle high byte value.(R)
P_TMR5_PWMDutyHi:		EQU     $5F			; Timer5 PWM duty high byte register.
;
;-----------------------------------------------------------------------------------------------------	
P_AD_Ctrl0:				EQU     $28			; A/D converter control 0.
	C_AD_EN:			EQU		%10000000	; ADC enable control.(A)
	C_AD_VRT:			EQU		%01000000	; ADC bottom voltage source select bit.(A)									
	C_AD_CS_2:			EQU		%00000000	; 000=Fcpu/2.
	C_AD_CS_4:			EQU		%00000010   ; 001=Fcpu/4.
	C_AD_CS_8:			EQU		%00000100	; 010=Fcpu/8.
	C_AD_CS_16:			EQU		%00000110	; 011=Fcpu/16.
	C_AD_CS_32:			EQU		%00001000	; 100=Fcpu/32.
	C_AD_CS_64:			EQU		%00001010	; 101=Fcpu/64.
	C_AD_CS_128:		EQU		%00001100	; 110=Fcpu/128.
	C_AD_CS_256:		EQU		%00001110	; 111=Fcpu/256.	
	C_AD_RDY:			EQU		%00000001	; ADC status bit.(R)
	C_AD_Start:			EQU		%00000000	; ADC conversion start bit.(W)
;		
P_AD_Ctrl1:				EQU     $29			; A/D converter control 1.
	C_AD_Pin0:			EQU		%00000001	; Analog input : channel 0.
	C_AD_Pin1:			EQU		%00000010	; Analog input : channel 1.
	C_AD_Pin2:			EQU		%00000100	; Analog input : channel 2.
	C_AD_Pin3:			EQU		%00001000	; Analog input : channel 3.
	C_AD_Pin4:			EQU		%00010000	; Analog input : channel 4.
	C_AD_Pin5:			EQU		%00100000	; Analog input : channel 5.
	C_AD_Pin6:			EQU		%01000000	; Analog input : channel 6.
	C_AD_Pin7:			EQU		%10000000	; Analog input : channel 7.
;	                                          
P_AD_Ctrl2:				EQU     $2A			; A/D converter control 2.
	C_AD_CE:			EQU		%10000000	; ADC power control bit.(A)
	C_AD_Ch0:			EQU		%00000000	; 0000:channel 0.
	C_AD_Ch1:			EQU		%00001000	; 0001:channel 1.
	C_AD_Ch2:			EQU		%00010000	; 0010:channel 2.
	C_AD_Ch3:			EQU		%00011000	; 0011:channel 3.
	C_AD_Ch4:			EQU		%00100000	; 0100:channel 4.
	C_AD_Ch5:			EQU		%00101000	; 0101:channel 5.
	C_AD_Ch6:			EQU		%00110000	; 0110:channel 6.
	C_AD_Ch7:			EQU		%00111000	; 0111:channel 7.
	C_AD_Ch8:			EQU		%01000000	; 1000:channel 8.
	C_AD_Pin8:			EQU		%00000001	; Analog input : channel 8.
;		
P_AD_DataLo:			EQU     $2B			; Converted A/D data[1:0] low.(R)
P_AD_DataHi:			EQU     $2C			; Converted A/D data[9:2] hi.(R)
;
;-----------------------------------------------------------------------------------------------------
P_BUZ_Ctrl:				EQU     $2D			; Buzzer & Timer base Control.
											; Interval Timer Period selecttion bits.
	C_TBASE_Dis:     	EQU     %00000000	; Time Base disable
	C_TBASE_Div_128:	EQU    	%00010000	; Time Base Clk: Fto/2^7. 
	C_TBASE_Div_256: 	EQU		%00100000	; Time Base Clk: Fto/2^8. 
	C_TBASE_Div_512:  	EQU		%00110000	; Time Base Clk: Fto/2^9. 
	C_TBASE_Div_1k: 	EQU		%01000000	; Time Base Clk: Fto/2^10. 
	C_TBASE_Div_2k: 	EQU		%01010000	; Time Base Clk: Fto/2^11. 
	C_TBASE_Div_4k: 	EQU		%01100000	; Time Base Clk: Fto/2^12. 
	C_TBASE_Div_8k: 	EQU		%01110000	; Time Base Clk: Fto/2^13. 	
	C_TBASE_Div_16k: 	EQU		%10000000	; Time Base Clk: Fto/2^14.
	C_TBASE_Div_32k: 	EQU		%10010000	; Time Base Clk: Fto/2^15.
	C_TBASE_Div_64k: 	EQU		%10100000	; Time Base Clk: Fto/2^16.
	C_TBASE_Div_128k: 	EQU		%10110000	; Time Base Clk: Fto/2^17.
	C_TBASE_Div_256k: 	EQU		%11000000	; Time Base Clk: Fto/2^18.
	C_TBASE_Div_512k: 	EQU		%11010000	; Time Base Clk: Fto/2^19.
	C_TBASE_Div_2M: 	EQU		%11100000	; Time Base Clk: Fto/2^21.
	C_TBASE_Div_8M: 	EQU		%11110000	; Time Base Clk: Fto/2^23.
											; Buzzer frequency selecttion bits.
	C_BUZ_Dis:     		EQU     %00000000	; Buzzer disable
	C_BUZ_Div_64:		EQU		%00000001	; Buzzer:Fto/2^6.
	C_BUZ_Div_128:		EQU		%00000010	; Buzzer:Fto/2^7.
	C_BUZ_Div_256:		EQU		%00000011	; Buzzer:Fto/2^8.	
	C_BUZ_Div_512:		EQU		%00000100	; Buzzer:Fto/2^9.	
	C_BUZ_Div_1k:		EQU		%00000101	; Buzzer:Fto/2^10.	
	C_BUZ_Div_2k:		EQU		%00000110	; Buzzer:Fto/2^11.
	C_BUZ_Div_4k:		EQU		%00000111	; Buzzer:Fto/2^12.
	C_BUZ_Div_8k:		EQU		%00001000	; Buzzer:Fto/2^13.
	C_BUZ_Div_4:		EQU		%00001001	; Buzzer:Fto/2^2.
	C_BUZ_Div_8:		EQU		%00001010	; Buzzer:Fto/2^3.
	C_BUZ_Div_16:		EQU		%00001011	; Buzzer:Fto/2^4.
	C_BUZ_Div_32:		EQU		%00001100	; Buzzer:Fto/2^5.	
;
;-----------------------------------------------------------------------------------------------------
P_CMP_Ctrl:				EQU		$2E			; Comparator control register.
	C_CMP1_EN:			EQU		%10000000	; comparator1 function enable.
	C_CMP1_RS:			EQU		%01000000	; comparator1 reference source selection.
	C_CMP1_LOG:			EQU		%00100000	; comparator1 logic event direction selection.
	C_CMP1_OUT:			EQU		%00010000	; comparator1 result bit.
	C_CMP0_EN:			EQU		%00001000	; comparator0 function enable.
	C_CMP0_RS:			EQU		%00000100	; comparator0 reference source selection.
	C_CMP0_LOG:			EQU		%00000010	; comparator0 logic event direction selection.
	C_CMP0_OUT:			EQU		%00000001	; comparator0 result bit.
;
;-----------------------------------------------------------------------------------------------------
; Index Access Register
P_SYS_Ctrl:				EQU     $30			; System control.
	C_SCR_POR:			EQU		%10000000	; Power On Reset Flag.(A)
	C_SCR_ERST:			EQU		%01000000	; External Reset Flag.(A)
	C_SCR_LVR1:			EQU		%00100000	; Low Voltage Reset Flag1.(A)
	C_SCR_LVR0:			EQU		%00010000	; Low Voltage Reset Flag0.(A)
	C_SCR_WDTR:			EQU		%00001000	; WDT Reset Flag.(A)
	C_SCR_IAR:			EQU		%00000100	; Illegal Address Reset Flag.(A)
	C_SCR_IIR:			EQU		%00000001	; Illegal instruction reset(A)
;
P_MODE_Ctrl:			EQU     $31			; Operation mode control register.(W)
	C_MODE_STOP:		EQU	    $5A			; Enter STOP mode.(W)
	C_MODE_HALT:		EQU		$A5			; Enter HALT mode.(W)
	C_MODE_Reset:		EQU	    $66			; Reset all of internal modules except CPU.(W)
;
P_WDT_Ctrl:				EQU     $32			; Watchdog control register.
	C_WDT_EN:			EQU		%10000000	; Watchdog enable bit in stop mode.(A)
											; Selection bits of watchdog interrupt rate.(A)
	C_WDT_RTO:			EQU		%00000000	; RTO from Timer0 is selected.
	C_WDT_Div_256:		EQU		%00010000	; WDI clock = /256.
	C_WDT_Div_512:		EQU		%00100000	; WDI clock = /512.
	C_WDT_Div_1024:		EQU		%00110000	; WDI clock = /1024.
	C_WDT_Div_2048:		EQU		%01000000	; WDI clock = /2048.
	C_WDT_Div_4096:		EQU		%01010000	; WDI clock = /4096.
	C_WDT_Div_8192:		EQU		%01100000	; WDI clock = /8192.
	C_WDT_Div_16384:	EQU		%01110000	; WDI clock = /16384.
;
P_IRQ_Opt0:				EQU		$33			; IRQ Option 0 register.
	C_IRQOpt0_IRQ5ES:	EQU		%00001000	; Polarity control of INT5.(A)
	C_IRQOpt0_IRQM5:	EQU		%00000100	; INT5 trigger mode selection.(A)
	C_IRQOpt0_IRQ4ES:	EQU		%00000010	; Polarity control of INT4.(A)
	C_IRQOpt0_IRQM4:	EQU		%00000001	; INT4 trigger mode selection.(A)
	C_IRQOpt0_CAP5ES:	EQU		%00001000	; Polarity control of CAP5.(A)
	C_IRQOpt0_CAP4ES:	EQU		%00000010	; Polarity control of CAP4.(A)
;
P_IRQ_Opt1:				EQU     $34			; IRQ Option 1 register.
	C_IRQOpt1_IRQ3ES:	EQU		%10000000	; Alternative Input on PC for IRQ2.(A)
	C_IRQOpt1_IRQM3:	EQU		%01000000	; Alternative Input on PB1 for IRQ1.(A)
	C_IRQOpt1_IRQ2ES:	EQU		%00100000	; Alternative Input on PB0 for IRQ0.(A)
	C_IRQOpt1_IRQM2:	EQU		%00010000	; Alternative Input on PA[5:0] for IRQ0.(A)
	C_IRQOpt1_IRQ1ES:	EQU		%00001000	; polarity Control of Interrupt Input on PC.(A)
	C_IRQOpt1_IRQM1:	EQU		%00000100	; polarity Control of Interrupt Input on PB1.(A)
	C_IRQOpt1_IRQ0ES:	EQU		%00000010	; polarity Control of Interrupt Input on PB0&PA[5:0].(A)
	C_IRQOpt1_IRQM0:	EQU		%00000001	; IRQ Trig Mode on IRQ0.(A)
	C_IRQOpt1_CAP3ES:	EQU		%00001000	; Polarity control of CAP3.(A)
	C_IRQOpt1_CAP2ES:	EQU		%00000010	; Polarity control of CAP2.(A)
;

⌨️ 快捷键说明

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