|
//=====================================================================
// 端口地址常量
#define Port_IOA_Data (volatile unsigned int *)0x7000 //讀/寫寫入數(shù)據(jù)到數(shù)據(jù)寄存器里,讀出IOA管腳上的電平狀態(tài)
#define Port_IOA_Buffer (volatile unsigned int *)0x7001 //讀/寫寫入數(shù)據(jù)到數(shù)據(jù)寄存器里,讀出數(shù)據(jù)寄存器里的數(shù)據(jù)
#define Port_IOA_Dir (volatile unsigned int *)0x7002 //讀/寫 I/O A口的方向向量
#define Port_IOA_Attrib (volatile unsigned int *)0x7003 //讀/寫 I/O A口的屬性向量
#define Port_IOA_Latc (volatile unsigned int *)0x7004 //讀 進(jìn)入睡眠前鎖存I/O A口的數(shù)據(jù),為睡眠后觸鍵引起喚醒準(zhǔn)備
#define Port_IOB_Data (volatile unsigned int *)0x7005 //讀/寫寫入數(shù)據(jù)到數(shù)據(jù)寄存器里,讀出I/O B口管腳上的電平狀態(tài)
#define Port_IOB_Buffer (volatile unsigned int *)0x7006 //讀/寫寫入數(shù)據(jù)到數(shù)據(jù)寄存器里,讀出數(shù)據(jù)寄存器里的數(shù)據(jù)
#define Port_IOB_Dir (volatile unsigned int *)0x7007 //讀/寫 I/O B口的方向向量
#define Port_IOB_Attrib (volatile unsigned int *)0x7008 //讀/寫 I/O B口的屬性向量
#define Port_FeedBack (volatile unsigned int *)0x7009 //寫 通過(guò)反饋電路將外部RC振蕩源引入
#define Port_TimerA_Data (volatile unsigned int *)0x700A //讀/寫 I/O A口的數(shù)據(jù)口
#define Port_TimerA_Ctrl (volatile unsigned int *)0x700B //寫 I/O A口的控制單元
#define Port_TimerB_Data (volatile unsigned int *)0x700C //讀/寫 I/O B口的數(shù)據(jù)口
#define Port_TimerB_Ctrl (volatile unsigned int *)0x700D //寫 I/O B口的控制單元
#define Port_Timebase_Setup (volatile unsigned int *)0x700E //寫 時(shí)基發(fā)生器的選頻設(shè)置單元
#define Port_Timebase_Clear (volatile unsigned int *)0x700F //寫 時(shí)基計(jì)數(shù)器復(fù)位單元
#define Port_INT_Ctrl (volatile unsigned int *)0x7010 //讀/寫 中斷源的控制單元
#define Port_INT_Clear (volatile unsigned int *)0x7011 //寫 中斷源中斷請(qǐng)求清除單元
#define Port_Watchdog_Clear (volatile unsigned int *)0x7012 //寫 清除看門狗
#define Port_SystemClock (volatile unsigned int *)0x7013 //寫 系統(tǒng)時(shí)鐘選頻單元(包括系統(tǒng)進(jìn)入睡眠狀態(tài)的時(shí)鐘頻率選擇)
#define Port_ADC (volatile unsigned int *)0x7014 //讀/寫 ADC的數(shù)據(jù)口
#define Port_ADC_Ctrl (volatile unsigned int *)0x7015 //讀/寫 ADC的控制單元
#define Port_DAC2 (volatile unsigned int *)0x7016 //讀/寫 DAC2 的數(shù)據(jù)口
#define Port_DAC1 (volatile unsigned int *)0x7017 //讀/寫 DAC1 的數(shù)據(jù)口
#define Port_IR_Ctrl (volatile unsigned int *)0x7018 //讀/寫 紅外通訊的控制單元
#define Port_LVD_Ctrl (volatile unsigned int *)0x7019 //讀/寫 低電壓監(jiān)測(cè)的控制單元
#define Port_SIO_Data (volatile unsigned int *)0x701A //讀/寫 串行設(shè)備接口SIO的數(shù)據(jù)口
#define Port_SIO_Addr_Low (volatile unsigned int *)0x701B //讀/寫 SIO的低字節(jié)地址單元
#define Port_SIO_Addr_Mid (volatile unsigned int *)0x701C //讀/寫 SIO的中字節(jié)地址單元
#define Port_SIO_Addr_Hig (volatile unsigned int *)0x701D //讀/寫 SIO的高字節(jié)地址單元
#define Port_SIO_Ctrl (volatile unsigned int *)0x701E //讀/寫 SIO的控制單元
#define Port_SIO_Start (volatile unsigned int *)0x701F //讀/寫 SIO數(shù)據(jù)傳輸?shù)膯?dòng)單元
#define Port_SIO_Stop (volatile unsigned int *)0x7020 //寫 SIO數(shù)據(jù)傳輸?shù)慕Y(jié)束單元
#define Port_UART_Command1 (volatile unsigned int *)0x7021 //寫 通用異步串行I/O口UART的控制單元
#define Port_UART_Command2 (volatile unsigned int *)0x7022 //讀/寫 UART接收/發(fā)送功能的開(kāi)通/關(guān)斷控制單元
#define Port_UART_Data (volatile unsigned int *)0x7023 //讀/寫 UART的數(shù)據(jù)口
#define Port_UART_BaudScalarLow (volatile unsigned int *)0x7024 //讀/寫 UART 波特率設(shè)定控制字的低字節(jié)
#define Port_UART_BaudScalarHig (volatile unsigned int *)0x7025 //讀/寫 UART 波特率設(shè)定控制字的高字節(jié)
#define Port_DAC_Ctrl (volatile unsigned int *)0x702A //讀/寫 音頻輸出方式及雙DAC通道和PWM驅(qū)動(dòng)通道的控制單元
#define Port_ADC_MUX_Ctrl (volatile unsigned int *)0x702B //讀/寫 ADC多通道控制
#define Port_ADC_MUX_Data (volatile unsigned int *)0x702C //讀 讀出多通道10 位ADC轉(zhuǎn)換的數(shù)字?jǐn)?shù)據(jù)
#define Port_INT_Ctrl_New (volatile unsigned int *)0x702D //讀/寫 激活和屏蔽中斷
//=====================================================================
//系統(tǒng)時(shí)間P_SystemClock(寫)($7013H)單元設(shè)置
//鎖相環(huán)頻率(fosc)設(shè)置,p5-p7口
#define CPU_PLL_24m 0x0000 //24.576MHz
#define CPU_PLL_20m 0x0020 //20.48MHz
#define CPU_PLL_32m 0x0040 //32.768MHz
#define CPU_PLL_40m 0x0060 //40.96MHz
#define CPU_PLL_49m 0x0080 //49.152MHz
//CPU時(shí)鐘選擇,p0-p2口
#define CPU_CLK_all 0x0000 //(fosc)全速
#define CPU_CLK_2 0x0001 //(fosc)/2速
#define CPU_CLK_4 0x0002 //(fosc)/4速
#define CPU_CLK_8 0x0003 //(fosc)/8速(默認(rèn))
#define CPU_CLK_16 0x0004 //(fosc)/16速
#define CPU_CLK_32 0x0005 //(fosc)/32速
#define CPU_CLK_64 0x0006 //(fosc)/64速
#define CPU_CLK_stop 0x0007 //睡眠停止
//晶振狀態(tài),p3-p4口
#define XO_Full_Speed 0x0008 //p3口=1 晶振全速
#define Bed_XO_Slow_Speed 0x0000 //p3口=0 晶振自動(dòng)轉(zhuǎn)弱振(默認(rèn))
#define Bed_XO_Always 0x0010 //p4口=1 睡眠時(shí)晶振一直全速(默認(rèn))
#define Bed_XO_Close 0x0000 //p4口=0 睡眠時(shí)晶振關(guān)閉
//=====================================================================
//時(shí)基信號(hào)發(fā)生器P_Timebase_Setup(寫)($700EH)單元設(shè)置
//選頻邏輯TMB1設(shè)置,p0-p1口
#define Timebase_TMB1_8Hz 0x0000 //(默認(rèn))
#define Timebase_TMB1_16Hz 0x0001;
#define Timebase_TMB1_32Hz 0x0002;
#define Timebase_TMB1_64Hz 0x0003;
//選頻邏輯TMB2設(shè)置,p2-p3口
#define Timebase_TMB2_128Hz 0x0000 //(默認(rèn))
#define Timebase_TMB2_256Hz 0x0004;
#define Timebase_TMB2_512Hz 0x0008;
#define Timebase_TMB2_1024Hz 0x000c;
//=====================================================================
//定時(shí)器TimerA、B P_Timer*_Ctrl(寫) TimerA($700BH)、TimerA($700DH)單元設(shè)置
//定時(shí)器A使用時(shí)鐘源A、B,
//默認(rèn)未使用定時(shí)器A,需使用時(shí)鐘源B時(shí),時(shí)鐘源A須設(shè)置為TimeAB_SourceAC_1
//定時(shí)器B使用時(shí)鐘源C
//定時(shí)器A、B使用時(shí)鐘源A、C設(shè)置,p0-p2口
#define TimeAB_SourceAC_F2 0x0000 //Fosc/2
#define TimeAB_SourceAC_F256 0x0001 //Fosc/256
#define TimeAB_SourceAC_XO 0x0002 //32768Hz
#define TimeAB_SourceAC_8K 0x0003 //8192Hz
#define TimeAB_SourceAC_4K 0x0004 //4096Hz
#define TimeAB_SourceAC_1 0x0005 //使用時(shí)鐘源B時(shí),必選
#define TimeAB_SourceAC_0 0x0006 //(默認(rèn))未開(kāi)
#define TimeAB_SourceAC_EXT1 0x0007 //
//定時(shí)器A使用時(shí)鐘源B設(shè)置,p3-p5口
#define TimeA_SourceB_2048 0x0000;
#define TimeA_SourceB_1024 0x0008;
#define TimeA_SourceB_256 0x0010;
#define TimeA_SourceB_TMB1 0x0018;
#define TimeA_SourceB_4Hz 0x0020;
#define TimeA_SourceB_2Hz 0x0028;
#define TimeA_SourceB_1 0x0030 //(默認(rèn))
#define TimeA_SourceB_EXT2 0x0038;
//定時(shí)器脈沖占空比設(shè)置,p6-p9口
#define TimeAB_APWMO_Off 0x0000;
#define TimeAB_APWMO_1_16 0x0040;
#define TimeAB_APWMO_2_16 0x0080;
#define TimeAB_APWMO_3_16 0x00c0;
#define TimeAB_APWMO_4_16 0x0100;
#define TimeAB_APWMO_5_16 0x0140;
#define TimeAB_APWMO_6_16 0x0180;
#define TimeAB_APWMO_7_16 0x01c0;
#define TimeAB_APWMO_8_16 0x0200;
#define TimeAB_APWMO_9_16 0x0240;
#define TimeAB_APWMO_10_16 0x0280;
#define TimeAB_APWMO_11_16 0x02c0;
#define TimeAB_APWMO_12_16 0x0300;
#define TimeAB_APWMO_13_16 0x0340;
#define TimeAB_APWMO_14_16 0x0380;
#define TimeAB_APWMO_TAOut 0x03c0 //受TimerA、B的溢出信號(hào)控制,占空比為50%
//=====================================================================
//中斷控制單元P_INT_Ctrl(讀/寫)(7010H)
//下列排序從到下排列,對(duì)應(yīng)中斷等級(jí)按從高到低排列
//IRQ0-6只有查詢先后區(qū)別,不能嵌套
#define FIQ_F_1024 0x8000 //中斷源 音頻輸出, 快速中斷
#define IRQ0_F_1024 0x4000 //中斷源 音頻輸出, 中斷0
#define FIQ_TMA 0x2000 //中斷源 定時(shí)器A, 快速中斷
#define IRQ1_TMA 0x1000 //中斷源 定時(shí)器A, 中斷1
#define FIQ_TMB 0x0800 //中斷源 定時(shí)器B, 快速中斷
#define IRQ2_TMB 0x0400 //中斷源 定時(shí)器B, 中斷2
#define IRQ3_EXT2 0x0200 //中斷源 外部時(shí)鐘2, 中斷3
#define IRQ3_EXT1 0x0100 //中斷源 外部時(shí)鐘1, 中斷3
#define IRQ3_KEY 0x0080 //中斷源 觸鍵喚醒, 中斷3
#define IRQ4_4KHz 0x0040 //中斷源 4096Hz時(shí)基, 中斷4
#define IRQ4_2KHz 0x0020 //中斷源 2048Hz時(shí)基, 中斷4
#define IRQ4_1KHz 0x0010 //中斷源 1024Hz時(shí)基, 中斷4
#define IRQ5_4Hz 0x0008 //中斷源 4Hz時(shí)基, 中斷5
#define IRQ5_2Hz 0x0004 //中斷源 2Hz時(shí)基, 中斷5
#define IRQ6_TMB1 0x0002 //中斷源 選頻邏輯TMB1, 中斷6
#define IRQ6_TMB2 0x0001 //中斷源 選頻邏輯TMB1, 中斷6
|
|