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

📄 spmc65p2404a.inc

📁 SUNPLUS的8BIT的MCU SPMC65X基本功能函数库及使用说明
💻 INC
📖 第 1 页 / 共 2 页
字号:
;; ********************************************************************************
;; ***	Copyright 2000-2008 Sunplus Technology Co., Ltd. All right reserved.	*** 
;; ***  Header Name		: SPMC65P2102A.inc 							 			***
;; ***  Programmer		: Darrell Yang 		   					  	 			***
;; ***  Data			: 2005/04/22 											***
;; ***  Revision		: V1.7.0                           						***
;; ********************************************************************************

;=======================================================================
;SPMC65P2404A Input/Output Ports and Data Direction Registers
;=======================================================================  
P_IOA_Data:				EQU		$00			; Port A data b0~b7(A)
P_IOB_Data:				EQU		$01			; Port B data b0~b5(A)
P_IOC_Data:				EQU		$02			; Port C data b0~b3(A)
P_IOD_Data:				EQU		$03			; Port D data b0~b2(A)
P_IOA_Dir:				EQU		$04     	; Port A direction control  b0~b7(W), 0=In, 1=Out
P_IOB_Dir:				EQU		$05    	 	; Port B direction control  b0~b7(W)
P_IOC_Dir:				EQU		$06   	 	; Port C direction control  b0~b7(W)
P_IOD_Dir:				EQU		$07     	; Port D direction control  b0~b7(W)
P_IOA_Attrib:			EQU		$08			; Port A attribute register b0~b7(W)
P_IOB_Attrib:			EQU		$09			; Port B attribute register b0~b7(W)
P_IOC_Attrib:			EQU     $0A			; Port C attribute register b0~b7(W)
P_IOD_Attrib:			EQU     $0B			; Port D attribute register b0~b7(W)
;
;-----------------------------------------------------------------------------------------------------
P_INT_Flag0:			EQU     $0C			; Interrupt Flag 0.(A)
	C_INT_ADIF: 		EQU     %10000000	; A/D INT flag bit.(A)
	C_INT_WDIF:			EQU     %01000000	; WDT INT flag bit.(A)
	C_INT_IRQ3IF:		EQU     %00001000	; IRQ3 INT flag bit.(A)
	C_INT_IRQ2IF:		EQU     %00000100	; IRQ2 INT flag bit.(A)
	C_INT_IRQ1IF:		EQU     %00000010	; IRQ1 INT flag bit.(A)
	C_INT_IRQ0IF:		EQU     %00000001	; IRQ0 INT flag bit.(A)
	C_INT_CAP3IF:		EQU		%00000010	; CAP3 INT flag bit.(A)
	C_INT_CAP2IF:		EQU		%00000001	; CAP2 INT flag bit.(A)

	CB_INT_ADIF: 		EQU     7			; A/D INT flag bit for bit mode.(A)
	CB_INT_WDIF:		EQU     6			; WDT INT flag bit for bit mode.(A)
	CB_INT_IRQ3IF:		EQU     3			; IRQ3 INT flag bit for bit mode.(A)
	CB_INT_IRQ2IF:		EQU     2			; IRQ2 INT flag bit for bit mode.(A)
	CB_INT_IRQ1IF:		EQU     1			; IRQ1 INT flag bit for bit mode.(A)
	CB_INT_IRQ0IF:		EQU     0			; IRQ0 INT flag bit for bit mode.(A)
	CB_INT_CAP3IF:		EQU		1			; CAP3 INT flag bit for bit mode.(A)
	CB_INT_CAP2IF:		EQU		0			; CAP2 INT flag bit for bit mode.(A)
;
P_INT_Ctrl0:			EQU     $0D			; Interrupt control 0.(A)
	C_INT_ADIE:			EQU     %10000000	; A/D INT enable bit.(A)
	C_INT_WDIE:			EQU     %01000000	; WDT INT enable bit.(A)
	C_INT_IRQ3IE:		EQU     %00001000	; IRQ3 INT enable bit.(A)
	C_INT_IRQ2IE:		EQU     %00000100	; IRQ2 INT enable bit.(A)
	C_INT_IRQ1IE:		EQU     %00000010	; IRQ1 INT enable bit.(A)
	C_INT_IRQ0IE:		EQU     %00000001	; IRQ0 INT enable bit.(A)
	C_INT_CAP3IE:		EQU     %00000010	; CAP3 INT enable bit.(A)
	C_INT_CAP2IE:		EQU     %00000001	; CAP2 INT enable bit.(A)

	CB_INT_ADIE:		EQU     7			; A/D INT enable bit for bit mode.(A)
	CB_INT_WDIE:		EQU     6			; WDT INT enable bit for bit mode.(A)
	CB_INT_IRQ3IE:		EQU     3			; IRQ3 INT enable bit for bit mode.(A)
	CB_INT_IRQ2IE:		EQU     2			; IRQ2 INT enable bit for bit mode.(A)
	CB_INT_IRQ1IE:		EQU     1			; IRQ1 INT enable bit for bit mode.(A)
	CB_INT_IRQ0IE:		EQU     0			; IRQ0 INT enable bit for bit mode.(A)
	CB_INT_CAP3IE:		EQU     1			; CAP3 INT enable bit for bit mode.(A)
	CB_INT_CAP2IE:		EQU     0			; CAP2 INT enable bit for bit mode.(A)
;	
P_INT_Flag1:			EQU     $0E			; Interrupt flag 1.
	C_INT_CAP1IF:		EQU     %10000000	; CAP1 INT flag bit.(A)
	C_INT_CAP0IF:		EQU     %01000000	; CAP0 INT flag bit.(A)
	C_INT_T3OIF:		EQU     %00001000	; Timer3 overflow INT flag bit.(A)
	C_INT_T2OIF:		EQU     %00000100	; Timer2 overflow INT flag bit.(A)
	C_INT_T1OIF:		EQU     %00000010	; Timer1 overflow INT flag bit.(A)
	C_INT_T0OIF:		EQU     %00000001	; Timer0 overflow INT flag bit.(A)	

	CB_INT_CAP1IF:		EQU     7			; CAP1 INT flag bit for bit mode.(A)
	CB_INT_CAP0IF:		EQU     6			; CAP0 INT flag bit for bit mode.(A)
	CB_INT_T3OIF:		EQU     3			; Timer3 overflow INT flag bit for bit mode.(A)
	CB_INT_T2OIF:		EQU     2			; Timer2 overflow INT flag bit for bit mode.(A)
	CB_INT_T1OIF:		EQU     1			; Timer1 overflow INT flag bit for bit mode.(A)
	CB_INT_T0OIF:		EQU     0			; Timer0 overflow INT flag bit for bit mode.(A)	
;	
P_INT_Ctrl1:			EQU     $0F			; Interrupt control 1.
	C_INT_CAP1IE:		EQU     %10000000	; CAP1 INT enable bit.(A)
	C_INT_CAP0IE:		EQU     %01000000	; CAP0 INT enable bit.(A)
	C_INT_T3OIE:		EQU     %00001000	; Timer3 overflow INT enable bit.(A)
	C_INT_T2OIE:		EQU     %00000100	; Timer2 overflow INT enable bit.(A)
	C_INT_T1OIE:		EQU     %00000010	; Timer1 overflow INT enable bit.(A)
	C_INT_T0OIE:		EQU     %00000001	; Timer0 overflow INT enable bit.(A)	

	CB_INT_CAP1IE:		EQU     7			; CAP1 INT enable bit for bit mode.(A)
	CB_INT_CAP0IE:		EQU     6			; CAP0 INT enable bit for bit mode.(A)
	CB_INT_T3OIE:		EQU     3			; Timer3 overflow INT enable bit for bit mode.(A)
	CB_INT_T2OIE:		EQU     2			; Timer2 overflow INT enable bit for bit mode.(A)
	CB_INT_T1OIE:		EQU     1			; Timer1 overflow INT enable bit for bit mode.(A)
	CB_INT_T0OIE:		EQU     0			; Timer0 overflow INT enable bit for bit mode.(A)	
;
P_INT_Flag2:			EQU     $26			; Interrupt flag 2.	
	C_INT_ITVALIF:		EQU     %00100000	; Timer Base interrupt flag.		 
	C_INT_SPIIF:		EQU		%00000100	; SPI interrupt flag.	

	CB_INT_ITVALIF:		EQU     5			; Timer Base interrupt flag for bit mode.		 
	CB_INT_SPIIF:		EQU		2			; SPI interrupt flag for bit mode.	
;	
P_INT_Ctrl2:			EQU     $27			; Interrupt control 2.	
	C_INT_ITVALIE:		EQU     %00100000 	; Timer Base interrupt enable bit.	 

	CB_INT_ITVALIE:		EQU     5 			; Timer Base interrupt enable bit for bit mode.	 
;
P_WDT_Clr:				EQU     $10			; Watchdog clear register.(W), $55= clear
	C_WDT_Clr:			EQU		$55			; Write '55' to clear this register.
;
;-----------------------------------------------------------------------------------------------------
P_TMR0_1_Ctrl0:			EQU     $11			; Timer0/1 control 0.
	C_T112B_PWM:		EQU		%01110000	; Timer1 Function as 12 Bit PWM.
	C_T116B_CAP:		EQU		%01100000	; Timer1 Function as 16 Bit Capture(Width).
	C_T116B_COMP:		EQU		%01010000	; Timer1 Function as 16 Bit Compare.
	C_T116B_Timer: 		EQU		%01000000	; Timer1 Function as 16 Bit Timer.
	C_T18B_CAP:			EQU		%00110000	; Timer1 Function as  8	Bit Capture(Width,Cycle).
	C_T18B_COMP:		EQU		%00100000	; Timer1 Function as  8	Bit Compare.
	C_T18B_Timer:	  	EQU		%00010000	; Timer1 Function as  8 Bit Timer.
	C_T08B_CAP:			EQU		%00000011	; Timer0 Function as  8 Bit Capture(Width).
	C_T08B_COMP:		EQU		%00000010	; Timer0 Function as  8	Bit Compare.
	C_T08B_Timer:  		EQU		%00000001	; Timer0 Function as  8 Bit Timer.
;
P_TMR0_1_Ctrl1:			EQU     $12			; Timer0/1 control 1.
	C_T1EXT_EN:			EQU		%01110000	; External Event
	C_T1FCS_Div_512:	EQU		%01100000	; Timer1 Clock= FCS/512.
	C_T1FCS_Div_128:	EQU		%01010000	; Timer1 Clock= FCS/128.       
	C_T1FCS_Div_32:		EQU		%01000000	; Timer1 Clock= FCS/32.
	C_T1FCS_Div_8:		EQU		%00110000	; Timer1 Clock= FCS/8.	
	C_T1FCS_Div_4:		EQU		%00100000	; Timer1 Clock= FCS/4.
	C_T1FCS_Div_2:		EQU		%00010000	; Timer1 Clock= FCS/2. 	
	C_T1FCS_Div_1:		EQU		%00000000	; Timer1 Clock= FCS/1.	
	C_T0EXT_EN:			EQU		%00000111	; External Event
	C_T0FCS_Div_512:	EQU		%00000110	; Timer0 Clock= FCS/512.
	C_T0FCS_Div_128:	EQU		%00000101	; Timer0 Clock= FCS/128.       
	C_T0FCS_Div_32:		EQU		%00000100	; Timer0 Clock= FCS/32.
	C_T0FCS_Div_8:		EQU		%00000011	; Timer0 Clock= FCS/8.	
	C_T0FCS_Div_4:		EQU		%00000010	; Timer0 Clock= FCS/4.
	C_T0FCS_Div_2:		EQU		%00000001	; Timer0 Clock= FCS/2. 	
	C_T0FCS_Div_1:		EQU		%00000000	; Timer0 Clock= FCS/1.	
;
P_TMR0_Count:			EQU     $13			; Timer0 8-bit counter register.(R)	 
P_TMR0_Preload:			EQU     $13			; Timer0 8-bit preload register.(W)
P_TMR0_Comp:			EQU		$13			; Timer0 8-bit compare low byte value.
P_TMR0_Cap:				EQU     $13			; Timer0 8-bit capture low byte width value.
;
P_TMR1_Count:			EQU     $15			; Timer1 8/16-bit Counter register.(R)	 
P_TMR1_Preload:			EQU     $15			; Timer1 8/16-bit preload register.(W)
P_TMR1_Comp:			EQU		$15			; Timer1 8/16-bit compare low byte value.
P_TMR1_Cap:				EQU     $15			; Timer1 8/16-bit capture low byte width value.
P_TMR1_PWMPeriod:		EQU     $15			; Timer1 12-bit PWM peroid low byte register. 
;
P_TMR1_CountHi:			EQU     $16			; Timer1 16-bit Counter register.(R) 
P_TMR1_PreloadHi:		EQU     $16			; Timer1 16-bit preload register.(W)
P_TMR1_CompHi:			EQU		$16			; Timer1 16-bit compare high byte value.
P_TMR1_CapHi:			EQU     $16			; Timer1 16-bit capture high byte width value.
P_TMR1_CapCycle8:		EQU     $16			; Timer1 8-bit capture cycle value.(R)
P_TMR1_DutyPeriod:		EQU     $16			; Timer1 12-bit PWM high byte register.	 
;
P_TMR1_PWMDuty:			EQU     $17			; Timer1 12-bit PWM duty low byte register. 
;
P_TMR2_3_Ctrl0:			EQU     $18			; Timer2/3 control 0.
	C_T312B_PWM:		EQU		%01110000	; Timer3 Function as 12 Bit PWM.
	C_T316B_CAP:		EQU		%01100000	; Timer3 Function as 16 Bit Capture(Width).
	C_T316B_COMP:		EQU		%01010000	; Timer3 Function as 16 Bit Compare.
	C_T316B_Timer: 		EQU		%01000000	; Timer3 Function as 16 Bit Timer.
	C_T38B_CAP:			EQU		%00110000	; Timer3 Function as  8	Bit Capture(Width,Cycle).
	C_T38B_COMP:		EQU		%00100000	; Timer3 Function as  8	Bit Compare.
	C_T38B_Timer:	  	EQU		%00010000	; Timer3 Function as  8 Bit Timer.
	C_T28B_CAP:			EQU		%00000011	; Timer2 Function as  8 Bit Capture(Width).
	C_T28B_COMP:		EQU		%00000010	; Timer2 Function as  8	Bit Compare.
	C_T28B_Timer:  		EQU		%00000001	; Timer2 Function as  8 Bit Timer.
;		
P_TMR2_3_Ctrl1:			EQU     $19			; Timer3/2 control 1.
	C_T3EXT_EN:			EQU		%01110000	; External Event
	C_T3FCS_Div_512:	EQU		%01100000	; Timer3 Clock= FCS/512.
	C_T3FCS_Div_128:	EQU		%01010000	; Timer3 Clock= FCS/128.      
	C_T3FCS_Div_32:		EQU		%01000000	; Timer3 Clock= FCS/32.
	C_T3FCS_Div_8:		EQU		%00110000	; Timer3 Clock= FCS/8.
	C_T3FCS_Div_4:		EQU		%00100000	; Timer3 Clock= FCS/4.
	C_T3FCS_Div_2:		EQU		%00010000	; Timer3 Clock= FCS/2. 	
	C_T3FCS_Div_1:		EQU		%00000000	; Timer3 Clock= FCS/1.	
	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_Count:			EQU     $1A			; Timer2 8-bit counter register.(R)	 
P_TMR2_Preload:			EQU     $1A			; Timer2 8-bit preload register.(W)	 
P_TMR2_Cap:				EQU     $1A			; Timer2 8-bit capture low byte width value. 
;
P_TMR3_Count:			EQU     $1C			; Timer3 8/16-bit Counter register.(R)		 
P_TMR3_Preload:			EQU     $1C			; Timer3 8/16-bit preload register.(W)
P_TMR3_Comp:			EQU		$1C			; Timer3 8/16-bit compare low byte value.
P_TMR3_Cap:				EQU     $1C			; Timer3 8-bit capture low byte width value.
P_TMR3_PWMPeriod:		EQU     $1C			; Timer3 12-bit PWM peroid low byte register. 
;
P_TMR3_CountHi:			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 16-bit compare high byte value.
P_TMR3_CapHi:			EQU     $1D			; Timer3 16-bit capture high byte width value.
P_TMR3_CapCycle8:		EQU     $1D			; Timer3 8-bit capture cycle value.(R)
P_TMR3_DutyPeriod:		EQU     $1D			; Timer3 12-bit PWM high byte register.	 
;
P_TMR3_PWMDuty:			EQU     $1E			; Timer3 12-bit PWM duty low 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)

	CB_AD_EN:			EQU		7			; ADC enable control for bit mode.(A)
	CB_AD_VRT:			EQU		6			; ADC bottom voltage source select bit for bit mode.(A)									
	CB_AD_RDY:			EQU		0			; ADC status bit for bit mode.(R)
	CB_AD_Start:		EQU		0			; ADC conversion start bit for bit mode.(W)
;		
P_AD_Ctrl1:				EQU     $29			; A/D converter control 1.
	C_AD_Pin0:			EQU		%00000001	; Analog input Port Configuration: channel 0.
	C_AD_Pin1:			EQU		%00000010	; Analog input Port Configuration: channel 1.

⌨️ 快捷键说明

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