MSP430寄存器中文注释---P1/2口(带中断功能)
/************************************************************
* DIGITAL I/O Port1/2 寄存器定义 有中断功能
************************************************************/
#defineP1IN_ 0x0020 /* P1 输入寄存器 */
const sfrb P1IN =P1IN_;
#defineP1OUT_ 0x0021 /* P1 输出寄存器 */
sfrb P1OUT =P1OUT_;
#defineP1DIR_ 0x0022 /* P1 方向选择寄存器 */
sfrb P1DIR =P1DIR_;
#defineP1IFG_ 0x0023 /* P1 中断标志寄存器*/
sfrb P1IFG = P1IFG_;
#defineP1IES_ 0x0024 /* P1 中断边沿选择寄存器*/
sfrb P1IES =P1IES_;
#defineP1IE_ 0x0025 /* P1 中断使能寄存器 */
sfrb P1IE = P1IE_;
#defineP1SEL_ 0x0026 /* P1 功能选择寄存器*/
sfrb P1SEL =P1SEL_;
#defineP2IN_ 0x0028 /* P2 输入寄存器 */
const sfrb P2IN =P2IN_;
#defineP2OUT_ 0x0029 /* P2 输出寄存器 */
sfrb P2OUT =P2OUT_;
#defineP2DIR_ 0x002A /* P2 方向选择寄存器 */
sfrb P2DIR =P2DIR_;
#defineP2IFG_ 0x002B /* P2 中断标志寄存器 */
sfrb P2IFG =P2IFG_;
#defineP2IES_ 0x002C /* P2 中断边沿选择寄存器 */
sfrb P2IES =P2IES_;
#defineP2IE_ 0x002D /* P2 中断使能寄存器 */
sfrb P2IE = P2IE_;
#defineP2SEL_ 0x002E /* P2 功能选择寄存器 */
sfrb P2SEL =P2SEL_;
/************************************************************
可以发现上面都是废话 o(*≧▽≦)ツ
#define PxIN_ 0x00xx //输入寄存器 P1--xx--20,P2--xx--28 (MATLAB的 % 和 // 傻傻分不清才怪Σ(  ̄д ̄;) !
const sfrb PxIN=PxIN_; //sfrb:字节类型的特殊功能寄存器或外围模块; sfrw:字类型的特殊功能寄存器或外围模块
#define PxOUT_ 0x00x(x+1) //输出寄存器
sfrb PxOUT=PxOUT_;
一次往下加 输入寄存器-输出寄存器-方向选择-中断标志-中断边沿选择-中断使能-功能选择 七个 以此类推 十六进制
果然还是好麻烦啊啊啊啊o(≧口≦)o
************************************************************/
MSP430寄存器中文注释---P3/4口 (无中断功能)
/************************************************************
* DIGITAL I/O Port3/4寄存器定义 无中断功能
************************************************************/
#defineP3IN_ 0x0018 /* P3 输入寄存器 */
const sfrb P3IN =P3IN_;
#defineP3OUT_ 0x0019 /* P3 输出寄存器 */
sfrb P3OUT =P3OUT_;
#define P3DIR_ 0x001A /* P3 方向选择寄存器 */
sfrb P3DIR =P3DIR_;
#defineP3SEL_ 0x001B /* P3 功能选择寄存器*/
sfrb P3SEL =P3SEL_;
#defineP4IN_ 0x001C /* P4 输入寄存器 */
const sfrb P4IN =P4IN_;
#defineP4OUT_ 0x001D /* P4 输出寄存器 */
sfrb P4OUT =P4OUT_;
#defineP4DIR_ 0x001E /* P4 方向选择寄存器 */
sfrb P4DIR =P4DIR_;
#defineP4SEL_ 0x001F /* P4 功能选择寄存器 */
sfrb P4SEL =P4SEL_;
/************************************************************
* DIGITAL I/O Port5/6 I/O口寄存器定义PORT5和6 无中断功能
************************************************************/
#defineP5IN_ 0x0030 /* P5 输入寄存器 */
const sfrb P5IN =P5IN_;
#defineP5OUT_ 0x0031 /* P5 输出寄存器*/
sfrb P5OUT =P5OUT_;
#defineP5DIR_ 0x0032 /* P5 方向选择寄存器*/
sfrb P5DIR =P5DIR_;
#defineP5SEL_ 0x0033 /* P5 功能选择寄存器*/
sfrb P5SEL = P5SEL_;
#defineP6IN_ 0x0034 /* P6 输入寄存器 */
const sfrb P6IN =P6IN_;
#defineP6OUT_ 0x0035 /* P6 输出寄存器*/
sfrb P6OUT =P6OUT_;
#defineP6DIR_ 0x0036 /* P6 方向选择寄存器*/
sfrb P6DIR = P6DIR_;
#defineP6SEL_ 0x0037 /* P6 功能选择寄存器*/
sfrb P6SEL =P6SEL_;
MSP430寄存器中文注释--- 硬件乘法器
/************************************************************
硬件乘法器的寄存器定义
************************************************************/
#defineMPY_ 0x0130 /* 无符号乘法 */------>Multiply
sfrw MPY = MPY_;
#defineMPYS_ 0x0132 /* 有符号乘法*/-------> Unsigned Multiply
sfrw MPYS = MPYS_;
#defineMAC_ 0x0134 /* 无符号乘加 */-------> Unsigned Multiply Accumlate
sfrw MAC = MAC_;
#defineMACS_ 0x0136 /* 有符号乘加 */------->Signed Multiply Accumlate
sfrw MACS = MACS_;
#defineOP2_ 0x0138 /* 第二乘数 */
sfrw OP2 = OP2_;
#defineRESLO_ 0x013A /* 低6位结果寄存器 */
sfrw RESLO =RESLO_;
#defineRESHI_ 0x013C /* 高6位结果寄存器 */
sfrw RESHI =RESHI_;
#defineSUMEXT_ 0x013E /*结果扩展寄存器 */
const sfrw SUMEXT = SUMEXT_;
MSP430寄存器中文注释---看门狗和定时器
/************************************************************
* 看门狗定时器的寄存器定义
************************************************************/
#defineWDTCTL_ 0x0120
sfrw WDTCTL =WDTCTL_;
#defineWDTIS0 0x0001 /*选择WDTCNT的四个输出端之一*/
#define WDTIS1 0x0002 /*选择WDTCNT的四个输出端之一*/
#defineWDTSSEL 0x0004 /*选择WDTCNT的时钟源*/
#defineWDTCNTCL 0x0008 /*清除WDTCNT端: 为1时 从0开始计数*/
#defineWDTTMSEL 0x0010 /*选择模式 0: 看门狗模式; 1: 定时器模式*/
#defineWDTNMI 0x0020 /*选择NMI/RST 引脚功能 0:为RST; 1:为NMI*/
#defineWDTNMIES 0x0040 /*WDTNMI=1时.选择触发延 0:为上升延 1:为下降延*/
#defineWDTHOLD 0x0080 /*停止看门狗定时器工作 0:启动;1:停止*/
#defineWDTPW 0x5A00 /* 写密码:高八位*/
/* SMCLK= 1MHz定时器模式 */
#define WDT_MDLY_32 WDTPW+WDTTMSEL+WDTCNTCL /* TSMCLK*2POWER15=32ms 复位状态 */
#define WDT_MDLY_8 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0 /* TSMCLK*2POWER13=8.192ms " */
#define WDT_MDLY_0_5 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */
#define WDT_MDLY_0_064 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0 /* TSMCLK*2POWER6=0.512ms " */
/* ACLK=32.768KHz 定时器模式*/
#define WDT_ADLY_1000 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */
#define WDT_ADLY_250 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0 /* TACLK*2POWER13=250ms " */
#define WDT_ADLY_16 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1 /* TACLK*2POWER9=16ms " */
#define WDT_ADLY_1_9 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0 /*TACLK*2POWER6=1.9ms " */
/* SMCLK=1MHz看门狗模式 */
#define WDT_MRST_32 WDTPW+WDTCNTCL /* TSMCLK*2POWER15=32ms 复位状态 */
#define WDT_MRST_8 WDTPW+WDTCNTCL+WDTIS0 /* TSMCLK*2POWER13=8.192ms " */
#define WDT_MRST_0_5 WDTPW+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */
#define WDT_MRST_0_064 WDTPW+WDTCNTCL+WDTIS1+WDTIS0 /* TSMCLK*2POWER6=0.512ms " */
/* ACLK=32KHz看门狗模式 */
#define WDT_ARST_1000 WDTPW+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */
#define WDT_ARST_250 WDTPW+WDTCNTCL+WDTSSEL+WDTIS0 /* TACLK*2POWER13=250ms " */
#define WDT_ARST_16 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1 /* TACLK*2POWER9=16ms " */
#define WDT_ARST_1_9 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0 /* TACLK*2POWER6=1.9ms " */
MSP430寄存器中文注释---A/D采样寄存器定义
/************************************************************
* ADC12 A/D采样寄存器定义
************************************************************/
/*ADC12转换控制类寄存器*/
#define ADC12CTL0_ 0x0;'/* ADC12 Control 0 */
sfrw ADC12CTL0 = ADC12CTL0_;
#define ADC12CTL1_ 0x01A2 /* ADC12 Control 1 */
sfrw ADC12CTL1 = ADC12CTL1_;
/*ADC12中断控制类寄存器*/
#define ADC12IFG_ 0x01A4 /* ADC12 Interrupt Flag */
sfrw ADC12IFG = ADC12IFG_;
#define ADC12IE_ 0x01A6 /* ADC12 Interrupt Enable */
sfrw ADC12IE = ADC12IE_;
#defineADC12IV_ 0x01A8 /* ADC12 Interrupt Vector Word */
sfrw ADC12IV = ADC12IV_;
/*ADC12存贮器类寄存器*/
#define ADC12MEM_ 0x0140 /* ADC12 Conversion Memory */
#ifndef __IAR_SYSTEMS_ICC
#defineADC12MEM ADC12MEM_ /* ADC12 Conversion Memory (for assembler) */
#else
#defineADC12MEM ((int*) ADC12MEM_) /* ADC12 Conversion Memory (for C) */
#endif
#define ADC12MEM0_ ADC12MEM_ /* ADC12 Conversion Memory 0 */
sfrw ADC12MEM0 = ADC12MEM0_;
#define ADC12MEM1_ 0x0142 /* ADC12 Conversion Memory 1 */
sfrw ADC12MEM1 = ADC12MEM1_;
#define ADC12MEM2_ 0x0144 /* ADC12 Conversion Memory 2 */
sfrw ADC12MEM2 = ADC12MEM2_;
#define ADC12MEM3_ 0x0146 /* ADC12 Conversion Memory 3 */
sfrw ADC12MEM3 = ADC12MEM3_;
#define ADC12MEM4_ 0x0148 /* ADC12 Conversion Memory 4 */
sfrw ADC12MEM4 = ADC12MEM4_;
#define ADC12MEM5_ 0x014A /* ADC12 Conversion Memory 5 */
sfrw ADC12MEM5 = ADC12MEM5_;
#define ADC12MEM6_ 0x014C /* ADC12 Conversion Memory 6 */
sfrw ADC12MEM6 = ADC12MEM6_;
#define ADC12MEM7_ 0x014E /* ADC12 Conversion Memory 7 */
sfrw ADC12MEM7 = ADC12MEM7_;
#define ADC12MEM8_ 0x0150 /* ADC12 Conversion Memory 8 */
sfrw ADC12MEM8 = ADC12MEM8_;
#define ADC12MEM9_ 0x0152 /* ADC12 Conversion Memory 9 */
sfrw ADC12MEM9 = ADC12MEM9_;
#define ADC12MEM10_ 0x0154 /* ADC12 Conversion Memory 10 */
sfrw ADC12MEM10 =ADC12MEM10_;
#define ADC12MEM11_ 0x0156 /* ADC12 Conversion Memory 11 */
sfrw ADC12MEM11 =ADC12MEM11_;
#define ADC12MEM12_ 0x0158 /* ADC12 Conversion Memory 12 */
sfrw ADC12MEM12 =ADC12MEM12_;
#define ADC12MEM13_ 0x015A /* ADC12 Conversion Memory 13 */
sfrw ADC12MEM13 =ADC12MEM13_;
#define ADC12MEM14_ 0x015C /* ADC12 Conversion Memory 14 */
sfrw ADC12MEM14 =ADC12MEM14_;
#define ADC12MEM15_ 0x015E /* ADC12 Conversion Memory 15 */
sfrw ADC12MEM15 =ADC12MEM15_;
/*ADC12存贮控制类寄存器*/
#define ADC12MCTL_ 0x0080 /* ADC12 Memory Control */
#ifndef __IAR_SYSTEMS_ICC
#define ADC12MCTL ADC12MCTL_ /* ADC12 Memory Control (for assembler) */
#else
#define ADC12MCTL ((char*) ADC12MCTL_) /* ADC12 Memory Control (for C) */
#endif
#define ADC12MCTL0_ ADC12MCTL_/* ADC12 Memory Control 0 */
sfrb ADC12MCTL0 =ADC12MCTL0_;
#define ADC12MCTL1_ 0x0081 /* ADC12 Memory Control 1 */
sfrb ADC12MCTL1 =ADC12MCTL1_;
#define ADC12MCTL2_ 0x0082 /* ADC12 Memory Control 2 */
sfrb ADC12MCTL2 =ADC12MCTL2_;
#define ADC12MCTL3_ 0x0083 /* ADC12 Memory Control 3 */
sfrb ADC12MCTL3 =ADC12MCTL3_;
#define ADC12MCTL4_ 0x0084 /* ADC12 Memory Control 4 */
sfrb ADC12MCTL4 =ADC12MCTL4_;
#define ADC12MCTL5_ 0x0085 /* ADC12 Memory Control 5 */
sfrb ADC12MCTL5 =ADC12MCTL5_;
#define ADC12MCTL6_ 0x0086 /* ADC12 Memory Control 6 */
sfrb ADC12MCTL6 =ADC12MCTL6_;
#define ADC12MCTL7_ 0x0087 /* ADC12 Memory Control 7 */
sfrb ADC12MCTL7 =ADC12MCTL7_;
#define ADC12MCTL8_ 0x0088 /* ADC12 Memory Control 8 */
sfrb ADC12MCTL8 =ADC12MCTL8_;
#define ADC12MCTL9_ 0x0089 /* ADC12 Memory Control 9 */
sfrb ADC12MCTL9 =ADC12MCTL9_;
#define ADC12MCTL10_ 0x008A /*ADC12 Memory Control 10 */
sfrb ADC12MCTL10 =ADC12MCTL10_;
#define ADC12MCTL11_ 0x008B /*ADC12 Memory Control 11 */
sfrb ADC12MCTL11 =ADC12MCTL11_;
#define ADC12MCTL12_ 0x008C /*ADC12 Memory Control 12 */
sfrb ADC12MCTL12 =ADC12MCTL12_;
#define ADC12MCTL13_ 0x008D /*ADC12 Memory Control 13 */
sfrb ADC12MCTL13 =ADC12MCTL13_;
#define ADC12MCTL14_ 0x008E /*ADC12 Memory Control 14 */
sfrb ADC12MCTL14 =ADC12MCTL14_;
#define ADC12MCTL15_ 0x008F /*ADC12 Memory Control 15 */
sfrb ADC12MCTL15 =ADC12MCTL15_;
/* ADC12CTL0 内8位控制寄存器位*/
#defineADC12SC 0x001 /*采样/转换控制位*/
#defineENC 0x002 /* 转换允许位*/
#define ADC12TOVIE 0x004 /*转换时间溢出中断允许位*/
#define ADC12OVIE 0x008 /*溢出中断允许位*/
#defineADC12ON 0x010 /*ADC12内核控制位*/
#define REFON 0x020 /*参考电压控制位*/
#defineREF2_5V 0x040 /*内部参考电压的电压值选择位 '0'为1.5V; '1'为2.5V*/
#defineMSH 0x080 /*多次采样/转换位*/
#defineMSC 0x080 /*多次采样/转换位*/
/*SHT0 采样保持定时器0 控制ADC12的结果存贮器MEM0~MEM7的采样周期*/
#defineSHT0_0 0*0x100 /*采样周期=TADC12CLK*4*/
#defineSHT0_1 1*0x100 /*采样周期=TADC12CLK*8*/
#defineSHT0_2 2*0x100 /*采样周期=TADC12CLK*16*/
#defineSHT0_3 3*0x100 /*采样周期=TADC12CLK*32*/
#defineSHT0_4 4*0x100 /*采样周期=TADC12CLK*64*/
#defineSHT0_5 5*0x100 /*采样周期=TADC12CLK*96*/
#defineSHT0_6 6*0x100 /*采样周期=TADC12CLK*128*/
#defineSHT0_7 7*0x100 /*采样周期=TADC12CLK*192*/
#defineSHT0_8 8*0x100 /*采样周期=TADC12CLK*256*/
#defineSHT0_9 9*0x100 /*采样周期=TADC12CLK*384*/
#defineSHT0_10 10*0x100 /*采样周期=TADC12CLK*512*/
#define SHT0_11 11*0x100 /*采样周期=TADC12CLK*768*/
#defineSHT0_12 12*0x100 /*采样周期=TADC12CLK*1024*/
#defineSHT0_13 13*0x100 /*采样周期=TADC12CLK*1024*/
#defineSHT0_14 14*0x100 /*采样周期=TADC12CLK*1024*/
#defineSHT0_15 15*0x100 /*采样周期=TADC12CLK*1024*/
/*SHT1 采样保持定时器1 控制ADC12的结果存贮器MEM8~MEM15的采样周期*/
#defineSHT1_0 0*0x100 /*采样周期=TADC12CLK*4*/
#defineSHT1_1 1*0x100 /*采样周期=TADC12CLK*8*/
#defineSHT1_2 2*0x100 /*采样周期=TADC12CLK*16*/
#defineSHT1_3 3*0x100 /*采样周期=TADC12CLK*32*/
#defineSHT1_4 4*0x100 /*采样周期=TADC12CLK*64*/
#defineSHT1_5 5*0x100 /*采样周期=TADC12CLK*96*/
#defineSHT1_6 6*0x100 /*采样周期=TADC12CLK*128*/
#defineSHT1_7 7*0x100 /*采样周期=TADC12CLK*192*/
#defineSHT1_8 8*0x100 /*采样周期=TADC12CLK*256*/
#defineSHT1_9 9*0x100 /*采样周期=TADC12CLK*384*/
#defineSHT1_10 10*0x100 /*采样周期=TADC12CLK*512*/
#defineSHT1_11 11*0x100 /*采样周期=TADC12CLK*768*/
#defineSHT1_12 12*0x100 /*采样周期=TADC12CLK*1024*/
#defineSHT1_13 13*0x100 /*采样周期=TADC12CLK*1024*/
#defineSHT1_14 14*0x100 /*采样周期=TADC12CLK*1024*/
#defineSHT1_15 15*0x100 /*采样周期=TADC12CLK*1024*/
/* ADC12CTL1 内8位控制寄存器位*/
#define ADC12BUSY 0x0001 /*ADC12忙标志位*/
#defineCONSEQ_0 0*2 /*单通道单次转换*/
#defineCONSEQ_1 1*2 /*序列通道单次转换*/
#defineCONSEQ_2 2*2 /*单通道多次转换*/
#defineCONSEQ_3 3*2 /*序列通道多次转换*/
#define ADC12SSEL_0 0*8 /*ADC12内部时钟源*/
#define ADC12SSEL_1 1*8 /*ACLK*/
#define ADC12SSEL_2 2*8 /*MCLK*/
#define ADC12SSEL_3 3*8 /*SCLK*/
#define ADC12DIV_0 0*0x20 /*1分频*/
#define ADC12DIV_1 1*0x20 /*2分频*/
#define ADC12DIV_2 2*0x20 /*3分频*/
#define ADC12DIV_3 3*0x20 /*4分频*/
#define ADC12DIV_4 4*0x20 /*5分频*/
#define ADC12DIV_5 5*0x20 /*6分频*/
#define ADC12DIV_6 6*0x20 /*7分频*/
#define ADC12DIV_7 7*0x20 /*8分频*/
#defineISSH 0x0100 /*采样输入信号反向与否控制位*/
#defineSHP 0x0200 /*采样信号(SAMPCON)选择控制位*/
#defineSHS_0 0*0x400 /*采样信号输入源选择控制位 ADC12SC*/
#defineSHS_1 1*0x400 /*采样信号输入源选择控制位 TIMER_A.OUT1*/
#defineSHS_2 2*0x400 /*采样信号输入源选择控制位 TIMER_B.OUT0*/
#defineSHS_3 3*0x400 /*采样信号输入源选择控制位 TIMER_B.OUT1*/
/*转换存贮器地址定义位*/
#define CSTARTADD_0 0*0x1000 /*选择MEM0首地址*/
#define CSTARTADD_1 1*0x1000 /*选择MEM1首地址*/
#define CSTARTADD_2 2*0x1000 /*选择MEM2首地址*/
#define CSTARTADD_3 3*0x1000 /*选择MEM3首地址*/
#define CSTARTADD_4 4*0x1000 /*选择MEM4首地址*/
#define CSTARTADD_5 5*0x1000 /*选择MEM5首地址*/
#define CSTARTADD_6 6*0x1000 /*选择MEM6首地址*/
#define CSTARTADD_7 7*0x1000 /*选择MEM7首地址*/
#define CSTARTADD_8 8*0x1000 /*选择MEM8首地址*/
#define CSTARTADD_9 9*0x1000 /*选择MEM9首地址*/
#define CSTARTADD_10 10*0x1000 /*选择MEM10首地址*/
#define CSTARTADD_11 11*0x1000 /*选择MEM11首地址*/
#define CSTARTADD_12 12*0x1000 /*选择MEM12首地址*/
#define CSTARTADD_13 13*0x1000 /*选择MEM13首地址*/
#define CSTARTADD_14 14*0x1000 /*选择MEM14首地址*/
#define CSTARTADD_15 15*0x1000 /*选择MEM15首地址*/
/* ADC12MCTLx */
#defineINCH_0 0 /*选择模拟量通道0 A0 */
#define INCH_1 1 /*选择模拟量通道0 A1*/
#defineINCH_2 2 /*选择模拟量通道0 A2*/
#defineINCH_3 3 /*选择模拟量通道0 A3*/
#defineINCH_4 4 /*选择模拟量通道0 A4*/
#define INCH_5 5 /*选择模拟量通道0 A5*/
#defineINCH_6 6 /*选择模拟量通道0 A6*/
#defineINCH_7 7 /*选择模拟量通道0 A7*/
#defineINCH_8 8 /*VEREF+*/
#defineINCH_9 9 /*VEREF-*/
#defineINCH_10 10 /*片内温度传感器的输出*/
#defineINCH_11 11 /*(AVCC-AVSS)/2*/
#defineINCH_12 12 /*(AVCC-AVSS)/2*/
#defineINCH_13 13 /*(AVCC-AVSS)/2*/
#defineINCH_14 14 /*(AVCC-AVSS)/2*/
#defineINCH_15 15 /*(AVCC-AVSS)/2*/
/*参考电压源选择位*/
#defineSREF_0 0*0x10 /*VR+= AVCC; VR- = AVSS*/
#define SREF_1 1*0x10 /*VR+= VREF+; VR- = AVSS*/
#defineSREF_2 2*0x10 /*VR+= VEREF+; VR- = AVSS*/
#defineSREF_3 3*0x10 /*VR+= VEREF+; VR- = AVSS*/
#defineSREF_4 4*0x10 /*VR+= AVCC; VR- = VREF-*/
#defineSREF_5 5*0x10 /*VR+= VREF+; VR- = VREF-*/
#defineSREF_6 6*0x10 /*VR+= VEREF+; VR- = VREF-*/
#defineSREF_7 7*0x10 /*VR+= VEREF+; VR- = VREF-*/
#defineEOS 0x80 /*序列结束选择位*/
MSP430寄存器中文注释----串口寄存器
/************************************************************
* USART 串口寄存器"UCTL","UTCTL","URCTL"定义的各个位可串口1 串口2公用
************************************************************/
/* UCTL 串口控制寄存器*/
#definePENA 0x80 /*校验允许位*/
#definePEV 0x40 /*偶校验 为0时为奇校验*/
#defineSPB 0x20 /*停止位为2 为0时停止位为1*/
#defineCHAR 0x10 /*数据位为8位为0时数据位为7位*/
#defineLISTEN 0x08 /*自环模式(发数据同时在把发的数据接收回来)*/
#defineSYNC 0x04 /*同步模式 为0异步模式*/
#defineMM 0x02 /*为1时地址位多机协议(异步) 主机模式(同步);为0时线路空闲多机协议(异步) 从机模式(同步)*/
#defineSWRST 0x01 /*控制位*/
/* UTCTL 串口发送控制寄存器*/
#defineCKPH 0x80 /*时钟相位控制位(只同步方式用)为1时时钟UCLK延时半个周期*/
#defineCKPL 0x40 /*时钟极性控制位 为1时异步与UCLK相反;同步下降延有效*/
#defineSSEL1 0x20 /*时钟源选择位:与SSEL0组合为0,1,2,3四种方式*/
#defineSSEL0 0x10 /*"0"选择外部时钟,"1"选择辅助时钟,"2","3"选择系统子时钟 */
#defineURXSE 0x08 /*接收触发延控制位(只在异步方式下用)*/
#defineTXWAKE 0x04 /*多处理器通信传送控制位(只在异步方式下用)*/
#defineSTC 0x02 /*外部引脚STE选择位为0时为4线模式 为1时为3线模式*/
#defineTXEPT 0x01 /*发送器空标志*/
/* URCTL 串口接收控制寄存器 同步模式下只用两位:FE和OE*/
#defineFE 0x80 /*帧错标志*/
#definePE 0x40 /*校验错标志位*/
#define OE 0x20 /*溢出标志位*/
#defineBRK 0x10 /*打断检测位*/
#defineURXEIE 0x08 /*接收出错中断允许位*/
#defineURXWIE 0x04 /*接收唤醒中断允许位*/
#defineRXWAKE 0x02 /*接收唤醒检测位*/
#defineRXERR 0x01 /*接收错误标志位*/
/************************************************************
* USART 0 串口0寄存器定义
************************************************************/
#defineU0CTL_ 0x0070 /* UART 0 Control */
sfrb U0CTL =U0CTL_;
#defineU0TCTL_ 0x0071 /* UART 0 Transmit Control */
sfrb U0TCTL =U0TCTL_;
#defineU0RCTL_ 0x0072 /* UART 0 Receive Control */
sfrb U0RCTL =U0RCTL_;
#define U0MCTL_ 0x0073 /* UART 0 Modulation Control */
sfrb U0MCTL =U0MCTL_;
#defineU0BR0_ 0x0074 /* UART 0 Baud Rate 0 */
sfrb U0BR0 =U0BR0_;
#defineU0BR1_ 0x0075 /* UART 0 Baud Rate 1 */
sfrb U0BR1 =U0BR1_;
#defineU0RXBUF_ 0x0076 /* UART 0 Receive Buffer */
const sfrb U0RXBUF = U0RXBUF_;
#defineU0TXBUF_ 0x0077 /* UART 0 Transmit Buffer */
sfrb U0TXBUF = U0TXBUF_;
/* Alternate register names */
#defineUCTL0_ 0x0070 /* UART 0 Control */
sfrb UCTL0 =UCTL0_;
#defineUTCTL0_ 0x0071 /* UART 0 Transmit Control */
sfrb UTCTL0 =UTCTL0_;
#defineURCTL0_ 0x0072 /* UART 0 Receive Control */
sfrb URCTL0 =URCTL0_;
#defineUMCTL0_ 0x0073 /* UART 0 Modulation Control */
sfrb UMCTL0 =UMCTL0_;
#defineUBR00_ 0x0074 /* UART 0 Baud Rate 0 */
sfrb UBR00 =UBR00_;
#defineUBR10_ 0x0075 /* UART 0 Baud Rate 1 */
sfrb UBR10 =UBR10_;
#defineRXBUF0_ 0x0076 /* UART 0 Receive Buffer */
const sfrb RXBUF0 = RXBUF0_;
#defineTXBUF0_ 0x0077 /* UART 0 Transmit Buffer */
sfrb TXBUF0 =TXBUF0_;
#defineUCTL_0_ 0x0070 /* UART 0 Control */
sfrb UCTL_0 =UCTL_0_;
#defineUTCTL_0_ 0x0071 /* UART 0 Transmit Control */
sfrb UTCTL_0 = UTCTL_0_;
#define URCTL_0_ 0x0072 /* UART 0 Receive Control */
sfrb URCTL_0 = URCTL_0_;
#defineUMCTL_0_ 0x0073 /* UART 0 Modulation Control */
sfrb UMCTL_0 = UMCTL_0_;
#defineUBR0_0_ 0x0074 /* UART 0 Baud Rate 0 */
sfrb UBR0_0 =UBR0_0_;
#defineUBR1_0_ 0x0075 /* UART 0 Baud Rate 1 */
sfrb UBR1_0 =UBR1_0_;
#defineRXBUF_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寄存器定义
************************************************************/
#defineU1CTL_ 0x0078 /* UART 1 Control */
sfrb U1CTL =U1CTL_;
#defineU1TCTL_ 0x0079 /* UART 1 Transmit Control */
sfrb U1TCTL =U1TCTL_;
#defineU1RCTL_ 0x007A /* UART 1 Receive Control */
sfrb U1RCTL = U1RCTL_;
#defineU1MCTL_ 0x007B /* UART 1 Modulation Control */
sfrb U1MCTL =U1MCTL_;
#defineU1BR0_ 0x007C /* UART 1 Baud Rate 0 */
sfrb U1BR0 =U1BR0_;
#defineU1BR1_ 0x007D /* UART 1 Baud Rate 1 */
sfrb U1BR1 =U1BR1_;
#defineU1RXBUF_ 0x007E /* UART 1 Receive Buffer */
const sfrb U1RXBUF = U1RXBUF_;
#defineU1TXBUF_ 0x007F /* UART 1 Transmit Buffer */
sfrb U1TXBUF = U1TXBUF_;
#defineUCTL1_ 0x0078 /* UART 1 Control */
sfrb UCTL1 =UCTL1_;
#defineUTCTL1_ 0x0079 /* UART 1 Transmit Control */
sfrb UTCTL1 =UTCTL1_;
#defineURCTL1_ 0x007A /* UART 1 Receive Control */
sfrb URCTL1 =URCTL1_;
#defineUMCTL1_ 0x007B /* UART 1 Modulation Control */
sfrb UMCTL1 =UMCTL1_;
#defineUBR01_ 0x007C /* UART 1 Baud Rate 0 */
sfrb UBR01 =UBR01_;
#defineUBR11_ 0x007D /* UART 1 Baud Rate 1 */
sfrb UBR11 =UBR11_;
#defineRXBUF1_ 0x007E /* UART 1 Receive Buffer */
const sfrb RXBUF1 = RXBUF1_;
#defineTXBUF1_ 0x007F /* UART 1 Transmit Buffer */
sfrb TXBUF1 =TXBUF1_;
#defineUCTL_1_ 0x0078 /* UART 1 Control */
sfrb UCTL_1 =UCTL_1_;
#defineUTCTL_1_ 0x0079 /* UART 1 Transmit Control */
sfrb UTCTL_1 = UTCTL_1_;
#define URCTL_1_ 0x007A /* UART 1 Receive Control */
sfrb URCTL_1 = URCTL_1_;
#defineUMCTL_1_ 0x007B /* UART 1 Modulation Control */
sfrb UMCTL_1 = UMCTL_1_;
#defineUBR0_1_ 0x007C /* UART 1 Baud Rate 0 */
sfrb UBR0_1 =UBR0_1_;
#defineUBR1_1_ 0x007D /* UART 1 Baud Rate 1 */
sfrb UBR1_1 =UBR1_1_;
#defineRXBUF_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_;