/************************************************************
* USART 串口寄存器"UCTL","UTCTL","URCTL"定义的各个位 可串口1 串口2公用
************************************************************/
/* UCTL 串口控制寄存器*/
#define PENA 0x80 /*校验允许位*/
#define PEV 0x40 /*偶校验 为0时为奇校验*/
#define SPB 0x20 /*停止位为2 为0时停止位为1*/
#define CHAR 0x10 /*数据位为8位 为0时数据位为7位*/
#define LISTEN 0x08 /*自环模式(发数据同时在把发的数据接收回来)*/
#define SYNC 0x04 /*同步模式 为0异步模式*/
#define MM 0x02 /*为1时地址位多机协议(异步) 主机模式(同步);为0时线路空闲多机协议(异步) 从机模式(同步)*/
#define SWRST 0x01 /*控制位*/
/* UTCTL 串口发送控制寄存器*/
#define CKPH 0x80 /*时钟相位控制位(只同步方式用)为1时时钟UCLK延时半个周期*/
#define CKPL 0x40 /*时钟极性控制位 为1时异步与UCLK相反;同步下降延有效*/
#define SSEL1 0x20 /*时钟源选择位:与SSEL0组合为0,1,2,3四种方式*/
#define SSEL0 0x10 /*"0"选择外部时钟,"1"选择辅助时钟,"2","3"选择系统子时钟 */
#define URXSE 0x08 /*接收触发延控制位(只在异步方式下用)*/
#define TXWAKE 0x04 /*多处理器通信传送控制位(只在异步方式下用)*/
#define STC 0x02 /*外部引脚STE选择位 为0时为4线模式 为1时为3线模式*/
#define TXEPT 0x01 /*发送器空标志*/
/* URCTL 串口接收控制寄存器 同步模式下只用两位:FE和OE*/
#define FE 0x80 /*帧错标志*/
#define PE 0x40 /*校验错标志位*/
#define OE 0x20 /*溢出标志位*/
#define BRK 0x10 /*打断检测位*/
#define URXEIE 0x08 /*接收出错中断允许位*/
#define URXWIE 0x04 /*接收唤醒中断允许位*/
#define RXWAKE 0x02 /*接收唤醒检测位*/
#define RXERR 0x01 /*接收错误标志位*/
/************************************************************
* USART 0 串口0寄存器定义
************************************************************/
#define U0CTL_ 0x0070 /* 串口0基本控制寄存器 */
sfrb U0CTL = U0CTL_;
#define U0TCTL_ 0x0071 /* 串口0发送控制寄存器 */
sfrb U0TCTL = U0TCTL_;
#define U0RCTL_ 0x0072 /* 串口0接收控制寄存器 */
sfrb U0RCTL = U0RCTL_;
#define U0MCTL_ 0x0073 /* 波特率调整寄存器 */
sfrb U0MCTL = U0MCTL_;
#define U0BR0_ 0x0074 /* 波特率选择寄存器0 */
sfrb U0BR0 = U0BR0_;
#define U0BR1_ 0x0075 /* 波特率选择寄存器1 */
sfrb U0BR1 = U0BR1_;
#define U0RXBUF_ 0x0076 /* 接收缓存寄存器 */
const sfrb U0RXBUF = U0RXBUF_;
#define U0TXBUF_ 0x0077 /* 发送缓存寄存器 */
sfrb U0TXBUF = U0TXBUF_;
/* 改变的寄存器名定义 */
#define UCTL0_ 0x0070 /* UART 0 Control */
sfrb UCTL0 = UCTL0_;
#define UTCTL0_ 0x0071 /* UART 0 Transmit Control */
sfrb UTCTL0 = UTCTL0_;
#define URCTL0_ 0x0072 /* UART 0 Receive Control */
sfrb URCTL0 = URCTL0_;
#define UMCTL0_ 0x0073 /* UART 0 Modulation Control */
sfrb UMCTL0 = UMCTL0_;
#define UBR00_ 0x0074 /* UART 0 Baud Rate 0 */
sfrb UBR00 = UBR00_;
#define UBR10_ 0x0075 /* UART 0 Baud Rate 1 */
sfrb UBR10 = UBR10_;
#define RXBUF0_ 0x0076 /* UART 0 Receive Buffer */
const sfrb RXBUF0 = RXBUF0_;
#define TXBUF0_ 0x0077 /* UART 0 Transmit Buffer */
sfrb TXBUF0 = TXBUF0_;
#define UCTL_0_ 0x0070 /* UART 0 Control */
sfrb UCTL_0 = UCTL_0_;
#define UTCTL_0_ 0x0071 /* UART 0 Transmit Control */
sfrb UTCTL_0 = UTCTL_0_;
#define URCTL_0_ 0x0072 /* UART 0 Receive Control */
sfrb URCTL_0 = URCTL_0_;
#define UMCTL_0_ 0x0073 /* UART 0 Modulation Control */
sfrb UMCTL_0 = UMCTL_0_;
#define UBR0_0_ 0x0074 /* UART 0 Baud Rate 0 */
sfrb UBR0_0 = UBR0_0_;
#define UBR1_0_ 0x0075 /* UART 0 Baud Rate 1 */
sfrb UBR1_0 = UBR1_0_;
#define RXBUF_0_ 0x0076 /* UART 0 Receive Buffer */
const sfrb RXBUF_0 = RXBUF_0_;
#define TXBUF_0_ 0x0077 /* UART 0 Transmit Buffer */
sfrb TXBUF_0 = TXBUF_0_;
/************************************************************
* USART 1 串口1寄存器定义
************************************************************/
#define U1CTL_ 0x0078 /* 串口1基本控制寄存器 */
sfrb U1CTL = U1CTL_;
#define U1TCTL_ 0x0079 /* 串口1发送控制寄存器 */
sfrb U1TCTL = U1TCTL_;
#define U1RCTL_ 0x007A /* 串口1接收控制寄存器 */
sfrb U1RCTL = U1RCTL_;
#define U1MCTL_ 0x007B /* 波特率调整控制寄存器 */
sfrb U1MCTL = U1MCTL_;
#define U1BR0_ 0x007C /* 波特率选择寄存器0 */
sfrb U1BR0 = U1BR0_;
#define U1BR1_ 0x007D /* 波特率选择寄存器1 */
sfrb U1BR1 = U1BR1_;
#define U1RXBUF_ 0x007E /* 接收缓存 */
const sfrb U1RXBUF = U1RXBUF_;
#define U1TXBUF_ 0x007F /* 发送缓存 */
sfrb U1TXBUF = U1TXBUF_;
/* 改变的寄存器名定义 */
#define UCTL1_ 0x0078 /* UART 1 Control */
sfrb UCTL1 = UCTL1_;
#define UTCTL1_ 0x0079 /* UART 1 Transmit Control */
sfrb UTCTL1 = UTCTL1_;
#define URCTL1_ 0x007A /* UART 1 Receive Control */
sfrb URCTL1 = URCTL1_;
#define UMCTL1_ 0x007B /* UART 1 Modulation Control */
sfrb UMCTL1 = UMCTL1_;
#define UBR01_ 0x007C /* UART 1 Baud Rate 0 */
sfrb UBR01 = UBR01_;
#define UBR11_ 0x007D /* UART 1 Baud Rate 1 */
sfrb UBR11 = UBR11_;
#define RXBUF1_ 0x007E /* UART 1 Receive Buffer */
const sfrb RXBUF1 = RXBUF1_;
#define TXBUF1_ 0x007F /* UART 1 Transmit Buffer */
sfrb TXBUF1 = TXBUF1_;
#define UCTL_1_ 0x0078 /* UART 1 Control */
sfrb UCTL_1 = UCTL_1_;
#define UTCTL_1_ 0x0079 /* UART 1 Transmit Control */
sfrb UTCTL_1 = UTCTL_1_;
#define URCTL_1_ 0x007A /* UART 1 Receive Control */
sfrb URCTL_1 = URCTL_1_;
#define UMCTL_1_ 0x007B /* UART 1 Modulation Control */
sfrb UMCTL_1 = UMCTL_1_;
#define UBR0_1_ 0x007C /* UART 1 Baud Rate 0 */
sfrb UBR0_1 = UBR0_1_;
#define UBR1_1_ 0x007D /* UART 1 Baud Rate 1 */
sfrb UBR1_1 = UBR1_1_;
#define RXBUF_1_ 0x007E /* UART 1 Receive Buffer */
const sfrb RXBUF_1 = RXBUF_1_;
#define TXBUF_1_ 0x007F /* UART 1 Transmit Buffer */
sfrb TXBUF_1 = TXBUF_1_;
/************************************************************
* Timer A 定时器A寄存器定义
************************************************************/
#define TAIV_ 0x012E /* Timer A 中断向量寄存器 */
sfrw TAIV = TAIV_;
#define TACTL_ 0x0160 /* Timer A 控制寄存器 */
sfrw TACTL = TACTL_;
#define TACCTL0_ 0x0162 /* Timer A 捕获/比较控制寄存器0 */
sfrw TACCTL0 = TACCTL0_;
#define TACCTL1_ 0x0164 /* Timer A 捕获/比较控制寄存器1 */
sfrw TACCTL1 = TACCTL1_;
#define TACCTL2_ 0x0166 /* Timer A 捕获/比较控制寄存器2 */
sfrw TACCTL2 = TACCTL2_;
#define TAR_ 0x0170 /* Timer A 16位计数器内容*/
sfrw TAR = TAR_;
#define TACCR0_ 0x0172 /* Timer A 捕获/比较寄存器0 */
sfrw TACCR0 = TACCR0_;
#define TACCR1_ 0x0174 /* Timer A 捕获/比较寄存器1 */
sfrw TACCR1 = TACCR1_;
#define TACCR2_ 0x0176 /* Timer A 捕获/比较寄存器2 */
sfrw TACCR2 = TACCR2_;
/* 改变的寄存器名定义 */
#define CCTL0_ 0x0162 /* Timer A Capture/Compare Control 0 */
sfrw CCTL0 = CCTL0_;
#define CCTL1_ 0x0164 /* Timer A Capture/Compare Control 1 */
sfrw CCTL1 = CCTL1_;
#define CCTL2_ 0x0166 /* Timer A Capture/Compare Control 2 */
sfrw CCTL2 = CCTL2_;
#define CCR0_ 0x0172 /* Timer A Capture/Compare 0 */
sfrw CCR0 = CCR0_;
#define CCR1_ 0x0174 /* Timer A Capture/Compare 1 */
sfrw CCR1 = CCR1_;
#define CCR2_ 0x0176 /* Timer A Capture/Compare 2 */
sfrw CCR2 = CCR2_;
/*TACTL 控制寄存器 16个位寄存器定义*/
#define TASSEL2 0x0400 /* 未用 */
#define TASSEL1 0x0200 /* 时钟输入源控制位1 */
#define TASSEL0 0x0100 /* 时钟输入源控制位0 */
#define ID1 0x0080 /* 分频系数选择位1 */
#define ID0 0x0040 /* 分频系数选择位0 */
#define MC1 0x0020 /* 计数模式控制位1 */
#define MC0 0x0010 /* 计数模式控制位0 */
#define TACLR 0x0004 /* 置1位清除定时器 */
#define TAIE 0x0002 /* 定时器中断允许 */
#define TAIFG 0x0001 /* 定时器中断标志 */
#define MC_0 00*0x10 /* 停止模式 */
#define MC_1 01*0x10 /* 增计数模式 */
#define MC_2 02*0x10 /* 连续计数模式 */
#define MC_3 03*0x10 /* 增/减计数模式 */
#define ID_0 00*0x40 /* 直通 */
#define ID_1 01*0x40 /* 2分频 */
#define ID_2 02*0x40 /* 4分频 */
#define ID_3 03*0x40 /* 8分频 */
#define TASSEL_0 00*0x100 /* 时钟源为 TACLK */
#define TASSEL_1 01*0x100 /* 时钟源为ACLK */
#define TASSEL_2 02*0x100 /* 时钟源为SMCLK */
#define TASSEL_3 03*0x100 /* 时钟源为INCLK */