www.pudn.com > Midimidim.rar > SPT6605.inc


//============================================================================*/ 
//                         Register address definitions                       */ 
//============================================================================*/ 
//-------------------------------*/ 
//         Port A, B, C, D       */ 
//-------------------------------*/ 
.const  P_IOA_Data      = 0x7000;        //R/W, portA data 
.const  P_IOA_Buf       = 0x7001;        //R, port A output latch 
.const  P_IOA_Dir       = 0x7002;        //R/W, portA direction, 0/1 = I/O 
.const  P_IOA_PullR     = 0x7003;        //R/W, portA pull-highs & pull-lows 
.const  P_IOA_Latch     = 0x7004;        //R, latch IO for wakeup 
//--------------------------------- 
.const  P_IOB_Data      = 0x7005;        //R/W, portB data 
.const  P_IOB_Buf       = 0x7006;        //R, portB output latch 
.const  P_IOB_Dir       = 0x7007;        //R/W, portB direction, 0/1 = I/O 
//--------------------------------- 
.const  P_IOC_Data      = 0x7008;        //R/W, portC data 
.const  P_IOC_Buf       = 0x7009;        //R, portC output latch 
.const  P_IOC_Dir       = 0x700A;        //R/W, portC direction 
//--------------------------------- 
.const  P_IOD_Data      = 0x700B;        //R/W, portD data 
.const  P_IOD_Buf       = 0x700C;        //R, portD output latch 
.const  P_IOD_Dir       = 0x700D;        //R/W, portD direction, 0/1 = I/O 
//--------------------------------- 
.const  P_IOCD_Ctrl     = 0x700E; 
 
//-------------------------------*/ 
//      Interrupt & Wake-Up      */ 
//-------------------------------*/ 
.const  P_Int           = 0x7010; // write 0/1 - disable/enable interrupt 
                                  // read  0/1 - interrupt is disabled/enabled 
.const  P_IntClr        = 0x7011; // write 1 - clear happened interrupt flag 
                                  // read  1 - interrupt is happened 
.const  P_WakeUp        = 0x7012; // write 0/1 - disable/enable wake-up 
                                  // read  0/1 - wake-up is disabled/enabled 
.const  P_WakeUpClr     = 0x7013; // write 1 - clear happened wake-up flag 
                                  // read  1 - wake-up is happened 
.const  B_Irq0          = 0x0001;        // vector = FFF8 
.const  B_RiInt         = 0x0001; 
.const  B_Irq1          = 0x0002;        // vector = FFF9 
.const  B_IoaInt        = 0x0002; 
.const  B_Irq2          = 0x0004;        // vector = FFFA 
.const  B_TmrAInt       = 0x0004; 
.const  B_Irq3          = 0x0008;        // vector = FFFB 
.const  B_TmrBInt       = 0x0008; 
.const  B_Irq4          = 0x0010;        // vector = FFFC 
.const  B_T32KHzInt     = 0x0010; 
.const  B_8KHzInt       = 0x0010; 
.const  B_Irq5          = 0x0020;        // vector = FFFD 
.const  B_T2KHzInt      = 0x0020; 
.const  B_1KHzInt       = 0x0020; 
.const  B_512HzInt      = 0x0020; 
.const  B_Irq6          = 0x0040;        // vector = FFFE 
.const  B_T128HzInt     = 0x0040; 
.const  B_T8HzInt       = 0x0080; 
.const  B_2HzInt        = 0x0080; 
.const  B_Ioc0Int       = 0x0100; 
.const  B_Ioc1Int       = 0x0200; 
.const  B_LineInt       = 0x0400; 
 
//-------------------------------*/ 
.const  P_IoaWakeUp     =0x7014; // R/W, b7~b0=1 to enable IOA7~0 wake-up 
 
//-------------------------------*/ 
//        System Clock           */ 
//-------------------------------*/ 
.const  P_SystemClock      = 0x7015; 
.const   B_FoscDivBy1      = 0x0000; 
.const   B_FoscDivBy2      = 0x0001; 
.const   B_FoscDivBy4      = 0x0002; 
.const   B_FoscDivBy8      = 0x0003; 
.const   B_Sleep           = 0x0007; 
.const   B_NormalCpuClock  = B_FoscDivBy4; 
.const   B_10M             = 0x0080; 
 
.const  P_Watchdog_Clr  =0x7016; // period = 2sec 
                                 // write 16-bit value to reset watch dog 
 
//-------------------------------*/ 
//          Time Base            */ 
//-------------------------------*/ 
.const  P_TimeBaseSet   = 0x7018; 
// Time Base, generated by 32768Hz, is a combination of frequency selection 
// for timers and interrupt. 
.const  B_Enable32768   = 0x8000; 
.const  B_Strong32768   = 0x4000; // After powering on, set 32768 at strong mode 
.const  B_1Hz           = 0x0000; 
.const  B_2Hz           = 0x0001; 
.const  B_4Hz           = 0x0002; 
.const  B_8Hz           = 0x0003; 
.const  B_16Hz          = 0x0000; 
.const  B_32Hz          = 0x0004; 
.const  B_64Hz          = 0x0008; 
.const  B_128Hz         = 0x000C; 
.const  B_256Hz         = 0x0000; 
.const  B_512Hz         = 0x0010; 
.const  B_1KHz          = 0x0020; 
.const  B_2KHz          = 0x0030; 
.const  B_4KHz          = 0x0000; 
.const  B_8KHz          = 0x0040; 
.const  B_16KHz         = 0x0080; 
.const  B_32KHz         = 0x00C0; 
 
//-------------------------------*/ 
//          Timer A & B          */ 
//-------------------------------*/ 
// Writing a value of N to P_TimerA_Data or P_TimerB_Data and selecting an 
// appropriate clock sources, the timer will count up from N, N+1, N+2, .... 
// ,FFFE, FFFF. After the timer reaches 'FFFF', and INT signal is generated 
// and is sent to INT controller for processing. At the same time, N will be 
// reloaded into timer and count up again. 
 
.const  P_Tmr_Ctrl      = 0x701A; 
.const  P_TmrA_Data     = 0x701B; // R/W, up-counter 
.const  P_TmrA_Load     = 0x701C; // W, write any value to load data to timer A 
.const  P_TmrB_Data     = 0x701E; // R/W, up-counter 
.const  P_TmrB_Load     = 0x701F; // W, write any value to load data to timer B 
 
 
//-----------------------------------------------------------------------------// 
//			Analog Part 
//-----------------------------------------------------------------------------// 
 
//-------------------------------*/ 
//      Low Voltage Detect       */ 
//-------------------------------*/ 
.const   P_BatDet          =0x7021; 
 
//-------------------------------*/ 
//      DTMF & Tone Generator    */ 
//-------------------------------*/ 
.const  P_DtmfTone      = 0x7022; 
.const  B_DtmfRowEn     = 0x0008; 
.const  B_Tone0En       = 0x0004; 
.const  B_DacEn         = 0x0100; 
.const  B_Dac2Sel       = 0x0200; 
.const	B_ZeroBias	= 0x0400; 
 
.const  P_Ch0Envelope   = 0x7023; 
 
 
//-------------------------------*/ 
//          A/D & AGC            */ 
//-------------------------------*/ 
.const  P_AgcCtrl       = 0x7025; 
.const  B_AdcQuickCharge = 0x0080; 
 
.const  P_AdcCtrl       = 0x7026; 
.const  B_ADCEn		= 0x0080; 
.const  B_ADIN4En	= 0x0008; 
.const  B_ADIN3En	= 0x0004; 
 
.const  P_Adc           = 0x7027; // (R) 10-bit ADC (b15~b6) 
 
.const  P_PgaInSelect   = 0x702C; 
.const	B_DualIn	= 0x0080; 
.const	B_SelPGAIN2	= 0x0002; 
.const	B_SelPGAIN	= 0x0001; 
 
.const  P_PgaSource	= 0x702D; 
 
 
//-------------------------------*/ 
//          Ring Detect          */ 
//-------------------------------*/ 
.const  P_RiDet         = 0x7028; // (R/W) 
.const  B_RiDet         = 0x0040; 
.const  B_EnRiDet       = 0x0080; 
 
//-----------------------------------------*/ 
//Line Control  		           */ 
//Procedure : 1. Enable Line det.	   */ 
//            2. Latch line status	   */	 
//            3. Enable wakeup/int	   */ 
//            4. Set wakeup/int sources	   */ 
//            5. Sleep....		   */	 
//-----------------------------------------*/ 
.const  P_LineDetCtrl   = 0x702E; //(R/W) 
 
.const  B_CMPOut        = 0x0001; // 
.const  B_En_WPINT      = 0x0040; // 
.const  B_En_Det        = 0x0080; // 
 
.const  P_LatchLine     = 0x702F; // 
 
//-----------------------------------------------------------------------------// 
//			Auto - Key Scan 
//-----------------------------------------------------------------------------// 
.const	P_KeyScanCtrl	= 0x703B; 
.const	B_ASKEn		= 0x0080; 
.const  B_SEGHiz1	= 0x0002; 
.const	B_SEGHiz0	= 0x0001; 
 
.const 	P_KeyScanMode	= 0x703A; 
.const	P_KeyScanPort	= 0x703C; 
 
 
//-----------------------------------------------------------------------------// 
//			LCD Interface		  
//-----------------------------------------------------------------------------// 
.const  P_LcdCtrl       = 0x7020; 
.const  B_LcdDuty       = 0x8000; // Select 1/8 or 1/16 duty 
.const  B_LcdEn         = 0x0080; // Enable LCD 
.const  B_LcdAllOn      = 0x0020; 
.const  B_LcdAllOff     = 0x0010; 
 
//-------------------------------*/ 
.const  B_Com0          = 0x0001; 
.const  B_Com1          = 0x0002; 
.const  B_Com2          = 0x0004; 
.const  B_Com3          = 0x0008; 
.const  B_Com4          = 0x0010; 
.const  B_Com5          = 0x0020; 
.const  B_Com6          = 0x0040; 
.const  B_Com7          = 0x0080; 
.const  B_Com8          = 0x0100; 
.const  B_Com9 		= 0x0200	 
.const  B_Com10		= 0x0400 
.const  B_Com11		= 0x0800 
.const 	B_Com12		= 0x1000 
.const  B_Com13		= 0x2000 
.const  B_Com14		= 0x4000	 
.const  B_Com15		= 0x8000; 
 
.const  P_Seg0          = 0x7100; 
.const  P_Seg1          = 0x7101; 
.const  P_Seg2          = 0x7102; 
.const  P_Seg3          = 0x7103; 
.const  P_Seg4          = 0x7104; 
.const  P_Seg5          = 0x7105; 
.const  P_Seg6          = 0x7106; 
.const  P_Seg7          = 0x7107; 
.const  P_Seg8          = 0x7108; 
.const  P_Seg9          = 0x7109; 
.const  P_Seg10         = 0x710A; 
.const  P_Seg11         = 0x710B; 
.const  P_Seg12         = 0x710C; 
.const  P_Seg13         = 0x710D; 
.const  P_Seg14         = 0x710E; 
.const  P_Seg15         = 0x710F; 
.const  P_Seg16         = 0x7110; 
.const  P_Seg17         = 0x7111; 
.const  P_Seg18         = 0x7112; 
.const  P_Seg19         = 0x7113; 
.const  P_Seg20         = 0x7114; 
.const  P_Seg21         = 0x7115; 
.const  P_Seg22         = 0x7116; 
.const  P_Seg23         = 0x7117; 
.const  P_Seg24         = 0x7118; 
.const  P_Seg25         = 0x7119; 
.const  P_Seg26         = 0x711A; 
.const  P_Seg27         = 0x711B; 
.const  P_Seg28         = 0x711C; 
.const  P_Seg29         = 0x711D; 
.const  P_Seg30         = 0x711E; 
.const  P_Seg31         = 0x711F; 
.const  P_Seg32         = 0x7120; 
.const  P_Seg33         = 0x7121; 
.const  P_Seg34         = 0x7122; 
.const  P_Seg35         = 0x7123; 
.const  P_Seg36         = 0x7124; 
.const  P_Seg37         = 0x7125; 
.const  P_Seg38         = 0x7126; 
.const  P_Seg39         = 0x7127; 
 
 
//-----------------------------------------------------------------------------// 
//			UART/IrDA Interface		  
//-----------------------------------------------------------------------------// 
.const	P_IrDACmd1	= 0x7046; 
.const	B_RLAT1		= 0x0010; 
.const	B_RLAT0		= 0x0008; 
.const	B_POLT		= 0x0004; 
.const	B_POLR		= 0x0002; 
.const	B_IrDAEn	= 0x0001; 
	 
.const	P_IrDACmd2	= 0x7047; 
.const  P_UARTCmd1	= 0x7049; 
.const	B_RxIntEn	= 0x0080; 
.const	B_TxIntEn	= 0x0040; 
.const	B_I_Reset	= 0x0020; 
.const	B_Parity	= 0x0008; 
.const	B_P_Check	= 0x0004; 
.const	B_SCLK1		= 0x0002; 
.const	B_SCLK0		= 0x0001; 
 
.const	P_UARTCmd2	= 0x704A; 
//read mode 
.const	B_RxRdy		= 0x0080; 
.const	B_TxRdy		= 0x0040; 
.const	B_FE		= 0x0020; 
.const	B_OE		= 0x0010; 
.const	B_PE		= 0x0008; 
.const	B_AcRdy		= 0x0001; 
 
//write mode 
.const	B_RxPinEn	= 0x0080; 
.const	B_TxPinEn	= 0x0040; 
	 
.const	P_UARTData	= 0x704B; 
.const	P_UARTBR_Low	= 0x704C; 
.const	P_UARTBR_High	= 0x704D; 
.const	P_UARTABR_Low	= 0x704E; 
.const	P_UARTABR_High	= 0x704F; 
 
 
.const	P_SEL_IR_UART_CLK  = 0x7057; 
.const	B_SEL_IR_UART_CLK  = 0x0080;