//=====================================================================
// 端口地址常量
#define Port_IOA_Data (volatile unsigned int *)0x7000 //读/写写入数据到数据寄存器里,读出IOA管脚上的电平状态
#define Port_IOA_Buffer (volatile unsigned int *)0x7001 //读/写写入数据到数据寄存器里,读出数据寄存器里的数据
#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 //读 进入睡眠前锁存I/O A口的数据,为睡眠后触键引起唤醒准备
#define Port_IOB_Data (volatile unsigned int *)0x7005 //读/写写入数据到数据寄存器里,读出I/O B口管脚上的电平状态
#define Port_IOB_Buffer (volatile unsigned int *)0x7006 //读/写写入数据到数据寄存器里,读出数据寄存器里的数据
#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 //写 通过反馈电路将外部RC振荡源引入
#define Port_TimerA_Data (volatile unsigned int *)0x700A //读/写 I/O A口的数据口
#define Port_TimerA_Ctrl (volatile unsigned int *)0x700B //写 I/O A口的控制单元
#define Port_TimerB_Data (volatile unsigned int *)0x700C //读/写 I/O B口的数据口
#define Port_TimerB_Ctrl (volatile unsigned int *)0x700D //写 I/O B口的控制单元
#define Port_Timebase_Setup (volatile unsigned int *)0x700E //写 时基发生器的选频设置单元
#define Port_Timebase_Clear (volatile unsigned int *)0x700F //写 时基计数器复位单元
#define Port_INT_Ctrl (volatile unsigned int *)0x7010 //读/写 中断源的控制单元
#define Port_INT_Clear (volatile unsigned int *)0x7011 //写 中断源中断请求清除单元
#define Port_Watchdog_Clear (volatile unsigned int *)0x7012 //写 清除看门狗
#define Port_SystemClock (volatile unsigned int *)0x7013 //写 系统时钟选频单元(包括系统进入睡眠状态的时钟频率选择)
#define Port_ADC (volatile unsigned int *)0x7014 //读/写 ADC的数据口
#define Port_ADC_Ctrl (volatile unsigned int *)0x7015 //读/写 ADC的控制单元
#define Port_DAC2 (volatile unsigned int *)0x7016 //读/写 DAC2 的数据口
#define Port_DAC1 (volatile unsigned int *)0x7017 //读/写 DAC1 的数据口
#define Port_IR_Ctrl (volatile unsigned int *)0x7018 //读/写 红外通讯的控制单元
#define Port_LVD_Ctrl (volatile unsigned int *)0x7019 //读/写 低电压监测的控制单元
#define Port_SIO_Data (volatile unsigned int *)0x701A //读/写 串行设备接口SIO的数据口
#define Port_SIO_Addr_Low (volatile unsigned int *)0x701B //读/写 SIO的低字节地址单元
#define Port_SIO_Addr_Mid (volatile unsigned int *)0x701C //读/写 SIO的中字节地址单元
#define Port_SIO_Addr_Hig (volatile unsigned int *)0x701D //读/写 SIO的高字节地址单元
#define Port_SIO_Ctrl (volatile unsigned int *)0x701E //读/写 SIO的控制单元
#define Port_SIO_Start (volatile unsigned int *)0x701F //读/写 SIO数据传输的启动单元
#define Port_SIO_Stop (volatile unsigned int *)0x7020 //写 SIO数据传输的结束单元
#define Port_UART_Command1 (volatile unsigned int *)0x7021 //写 通用异步串行I/O口UART的控制单元
#define Port_UART_Command2 (volatile unsigned int *)0x7022 //读/写 UART接收/发送功能的开通/关断控制单元
#define Port_UART_Data (volatile unsigned int *)0x7023 //读/写 UART的数据口
#define Port_UART_BaudScalarLow (volatile unsigned int *)0x7024 //读/写 UART 波特率设定控制字的低字节
#define Port_UART_BaudScalarHig (volatile unsigned int *)0x7025 //读/写 UART 波特率设定控制字的高字节
#define Port_DAC_Ctrl (volatile unsigned int *)0x702A //读/写 音频输出方式及双DAC通道和PWM驱动通道的控制单元
#define Port_ADC_MUX_Ctrl (volatile unsigned int *)0x702B //读/写 ADC多通道控制
#define Port_ADC_MUX_Data (volatile unsigned int *)0x702C //读 读出多通道10 位ADC转换的数字数据
#define Port_INT_Ctrl_New (volatile unsigned int *)0x702D //读/写 激活和屏蔽中断
//=====================================================================
//系统时间P_SystemClock(写)($7013H)单元设置
//锁相环频率(fosc)设置,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时钟选择,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速(默认)
#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 //睡眠停止
//晶振状态,p3-p4口
#define XO_Full_Speed 0x0008 //p3口=1 晶振全速
#define Bed_XO_Slow_Speed 0x0000 //p3口=0 晶振自动转弱振(默认)
#define Bed_XO_Always 0x0010 //p4口=1 睡眠时晶振一直全速(默认)
#define Bed_XO_Close 0x0000 //p4口=0 睡眠时晶振关闭
//=====================================================================
//时基信号发生器P_Timebase_Setup(写)($700EH)单元设置
//选频逻辑TMB1设置,p0-p1口
#define Timebase_TMB1_8Hz 0x0000 //(默认)
#define Timebase_TMB1_16Hz 0x0001;
#define Timebase_TMB1_32Hz 0x0002;
#define Timebase_TMB1_64Hz 0x0003;
//选频逻辑TMB2设置,p2-p3口
#define Timebase_TMB2_128Hz 0x0000 //(默认)
#define Timebase_TMB2_256Hz 0x0004;
#define Timebase_TMB2_512Hz 0x0008;
#define Timebase_TMB2_1024Hz 0x000c;
//=====================================================================
//定时器TimerA、B P_Timer*_Ctrl(写) TimerA($700BH)、TimerA($700DH)单元设置
//定时器A使用时钟源A、B,
//默认未使用定时器A,需使用时钟源B时,时钟源A须设置为TimeAB_SourceAC_1
//定时器B使用时钟源C
//定时器A、B使用时钟源A、C设置,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 //使用时钟源B时,必选
#define TimeAB_SourceAC_0 0x0006 //(默认)未开
#define TimeAB_SourceAC_EXT1 0x0007 //
//定时器A使用时钟源B设置,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 //(默认)
#define TimeA_SourceB_EXT2 0x0038;
//定时器脉冲占空比设置,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的溢出信号控制,占空比为50%
//=====================================================================
//中断控制单元P_INT_Ctrl(读/写)(7010H)
//下列排序从到下排列,对应中断等级按从高到低排列
//IRQ0-6只有查询先后区别,不能嵌套
#define FIQ_F_1024 0x8000 //中断源 音频输出, 快速中断
#define IRQ0_F_1024 0x4000 //中断源 音频输出, 中断0
#define FIQ_TMA 0x2000 //中断源 定时器A, 快速中断
#define IRQ1_TMA 0x1000 //中断源 定时器A, 中断1
#define FIQ_TMB 0x0800 //中断源 定时器B, 快速中断
#define IRQ2_TMB 0x0400 //中断源 定时器B, 中断2
#define IRQ3_EXT2 0x0200 //中断源 外部时钟2, 中断3
#define IRQ3_EXT1 0x0100 //中断源 外部时钟1, 中断3
#define IRQ3_KEY 0x0080 //中断源 触键唤醒, 中断3
#define IRQ4_4KHz 0x0040 //中断源 4096Hz时基, 中断4
#define IRQ4_2KHz 0x0020 //中断源 2048Hz时基, 中断4
#define IRQ4_1KHz 0x0010 //中断源 1024Hz时基, 中断4
#define IRQ5_4Hz 0x0008 //中断源 4Hz时基, 中断5
#define IRQ5_2Hz 0x0004 //中断源 2Hz时基, 中断5
#define IRQ6_TMB1 0x0002 //中断源 选频逻辑TMB1, 中断6
#define IRQ6_TMB2 0x0001 //中断源 选频逻辑TMB1, 中断6
|