#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 */
//3
/* Timer A ,Timer B 可公用 捕获/比较控制寄存器X */
#define CM1 0x8000 /* 捕获模式选择位1 */
#define CM0 0x4000 /* 捕获模式选择位0 */
#define CCIS1 0x2000 /* 捕获输入信号源选择位1 */
#define CCIS0 0x1000 /* 捕获输入信号源选择位0 */
#define SCS 0x0800 /* 信号同步位 0:异步捕获;1:同步捕获 */
#define SCCI 0x0400 /* 锁存输入信号 */
#define CAP 0x0100 /* 模式选择: 0:比较模式;1:捕获模式 */
#define OUTMOD2 0x0080 /* 输出模式选择位2 */
#define OUTMOD1 0x0040 /* 输出模式选择位1 */
#define OUTMOD0 0x0020 /* 输出模式选择位0 */
#define CCIE 0x0010 /* 中断允许位 */
#define CCI 0x0008 /* 读出输入信号源位ccis0\1 */
#define OUT 0x0004 /* 输出信号(选择输出模式0) */
#define COV 0x0002 /* 捕获溢出标志 */
#define CCIFG 0x0001 /* 中断标志 */
#define OUTMOD_0 0*0x20 /* 输出模式 */
#define OUTMOD_1 1*0x20 /* 置位模式 */
#define OUTMOD_2 2*0x20 /* 翻转/复位模式 */
#define OUTMOD_3 3*0x20 /* 置位/复位模式 */
#define OUTMOD_4 4*0x20 /* 翻转模式 */
#define OUTMOD_5 5*0x20 /* 复位模式 */
#define OUTMOD_6 6*0x20 /* 翻转/置位模式 */
#define OUTMOD_7 7*0x20 /* 复位/置位模式*/
#define CCIS_0 0*0x1000 /* 选择CCIXA为捕获事件的输入信号源 */
#define CCIS_1 1*0x1000 /* 选择CCIXB为捕获事件的输入信号源 */
#define CCIS_2 2*0x1000 /* 选择GND为捕获事件的输入信号源 */
#define CCIS_3 3*0x1000 /* 选择VCC为捕获事件的输入信号源 */
#define CM_0 0*0x4000 /* 禁止捕获模式 */
#define CM_1 1*0x4000 /* 上升延捕获模式 */
#define CM_2 2*0x4000 /* 下降沿捕获模式 */
#define CM_3 3*0x4000 /* 上升沿和下降沿都捕获模式 */
/************************************************************
* Timer B 定时器B寄存器定义
************************************************************/
#define TBIV_ 0x011E /* 中断向量寄存器:BIT1-BIT3有效 */
sfrw TBIV = TBIV_;
#define TBCTL_ 0x0180 /* 定时器B控制寄存器:全部控制都集中在这 */
sfrw TBCTL = TBCTL_;
#define TBCCTL0_ 0x0182 /* 定时器B捕获/比较控制寄存器0*/
sfrw TBCCTL0 = TBCCTL0_;
#define TBCCTL1_ 0x0184 /* 定时器B捕获/比较控制寄存器1 */
sfrw TBCCTL1 = TBCCTL1_;
#define TBCCTL2_ 0x0186 /* 定时器B捕获/比较控制寄存器2 */
sfrw TBCCTL2 = TBCCTL2_;
#define TBCCTL3_ 0x0188 /* 定时器B捕获/比较控制寄存器3 */
sfrw TBCCTL3 = TBCCTL3_;
#define TBCCTL4_ 0x018A /* 定时器B捕获/比较控制寄存器4 */
sfrw TBCCTL4 = TBCCTL4_;
#define TBCCTL5_ 0x018C /* 定时器B捕获/比较控制寄存器5 */
sfrw TBCCTL5 = TBCCTL5_;
#define TBCCTL6_ 0x018E /* 定时器B捕获/比较控制寄存器6 */
sfrw TBCCTL6 = TBCCTL6_;
#define TBR_ 0x0190 /* 计数器 */
sfrw TBR = TBR_;
#define TBCCR0_ 0x0192 /* 定时器B捕获/比较寄存器0 */
sfrw TBCCR0 = TBCCR0_;
#define TBCCR1_ 0x0194 /* 定时器B捕获/比较寄存器1 */
sfrw TBCCR1 = TBCCR1_;
#define TBCCR2_ 0x0196 /* 定时器B捕获/比较寄存器2 */
sfrw TBCCR2 = TBCCR2_;
#define TBCCR3_ 0x0198 /* 定时器B捕获/比较寄存器3 */
sfrw TBCCR3 = TBCCR3_;
#define TBCCR4_ 0x019A /* 定时器B捕获/比较寄存器4 */
sfrw TBCCR4 = TBCCR4_;
#define TBCCR5_ 0x019C /* 定时器B捕获/比较寄存器5 */
sfrw TBCCR5 = TBCCR5_;
#define TBCCR6_ 0x019E /* 定时器B捕获/比较寄存器6 */
sfrw TBCCR6 = TBCCR6_;
/* 定时器B控制寄存器:全部控制都集中在这 */
#define SHR1 0x4000 /* 装载比较锁存器控制位1 :受TBCCTLx中的CCLDx位控制 */
#define SHR0 0x2000 /* 装载比较锁存器控制位0 :受TBCCTLx中的CCLDx位控制*/
#define TBCLGRP1 0x4000 /* 装载比较锁存器控制位1 :受TBCCTLx中的CCLDx位控制*/
#define TBCLGRP0 0x2000 /* 装载比较锁存器控制位0 :受TBCCTLx中的CCLDx位控制*/
#define CNTL1 0x1000 /* 定时器位数长度控制位1 */
#define CNTL0 0x0800 /* 定时器位数长度控制位0 */
#define TBSSEL2 0x0400 /* 未用 */
#define TBSSEL1 0x0200 /* 时钟输入源控制位1 */
#define TBSSEL0 0x0100 /* 时钟输入源控制位0 */
#define TBCLR 0x0004 /* 置1清除定时器 */
#define TBIE 0x0002 /* 中断允许 */
#define TBIFG 0x0001 /* 中断标志 */
#define TBSSEL_0 0*0x0100 /* 时钟源为:TBCLK */
#define TBSSEL_1 1*0x0100 /* 时钟源为: ACLK */
#define TBSSEL_2 2*0x0100 /* 时钟源为:SMCLK */
#define TBSSEL_3 3*0x0100 /* 时钟源为:INCLK */
#define CNTL_0 0*0x0800 /* 16 位计数模式*/
#define CNTL_1 1*0x0800 /* 12 位计数模式*/
#define CNTL_2 2*0x0800 /* 10 位计数模式 */
#define CNTL_3 3*0x0800 /* 8 位计数模式 */
#define SHR_0 0*0x2000 /* 单独装载(初始值) */
#define SHR_1 1*0x2000 /* 分三组装载: 1 - 3 groups (1-2, 3-4, 5-6) */
#define SHR_2 2*0x2000 /* 分二组装载: 2 - 2 groups (1-3, 4-6)*/
#define SHR_3 3*0x2000 /* 不分组装载: 3 - 1 group (all) */
#define TBCLGRP_0 0*0x2000 /* 单独装载(初始值) */
#define TBCLGRP_1 1*0x2000 /* 分三组装载: 1 - 3 groups (1-2, 3-4, 5-6) */
#define TBCLGRP_2 2*0x2000 /* 分二组装载: 2 - 2 groups (1-3, 4-6)*/
#define TBCLGRP_3 3*0x2000 /* 不分组装载: 3 - 1 group (all) */
/* Additional Timer B Control Register bits are defined in Timer A */
#define SLSHR1 0x0400 /* Compare latch load source 1 */
#define SLSHR0 0x0200 /* Compare latch load source 0 */
#define CLLD1 0x0400 /* 定义比较锁存器TBCLx的装载方式控制位1 */
#define CLLD0 0x0200 /* 定义比较锁存器TBCLx的装载方式控制位0 */
#define SLSHR_0 0*0x0200 /* 立即装载 */
#define SLSHR_1 1*0x0200 /* TBR 计数到0时装载 */
#define SLSHR_2 2*0x0200 /* 在增减模式下,计数到TBCLx或0时装载; 在连续计数模式下,计数到0时装载 */
#define SLSHR_3 3*0x0200 /* 当计数到TBCL0时装载*/
#define CLLD_0 0*0x0200 /* 立即装载 */
#define CLLD_1 1*0x0200 /* TBR 计数到0时装载 */
#define CLLD_2 2*0x0200 /* 在增减模式下,计数到TBCLx或0时装载; 在连续计数模式下,计数到0时装载 */
#define CLLD_3 3*0x0200 /* 当计数到TBCL0时装载 */
点击查看:怎样获取“电子币”的详细说明---漫步于开源世界之中,一起与自由同行!
Posted: 2007-04-13 00:14 | [楼 主]
hueiyew
级别: 新手上路
精华: 0
发帖: 24
威望: 25 点
电子币: 46 元
贡献值: 0 点
注册时间:2007-04-12
最后登录:2007-04-13 小 中 大
/************************************************************
* Basic Clock Module
************************************************************/
#define DCOCTL_ 0x0056 /* DCO 时钟频率控制寄存器 :复位后的值位060h*/
sfrb DCOCTL = DCOCTL_;
#define BCSCTL1_ 0x0057 /* 系统时钟控制寄存器1 :复位后的值位084h*/
sfrb BCSCTL1 = BCSCTL1_;
#define BCSCTL2_ 0x0058 /* 系统时钟控制寄存器2 :复位后的值位000h*/
sfrb BCSCTL2 = BCSCTL2_;
/* DCO 时钟频率控制寄存器 */
#define MOD0 0x01 /* DCO插入周期控制位0 */
#define MOD1 0x02 /* DCO插入周期控制位1 */
#define MOD2 0x04 /* DCO插入周期控制位2 */
#define MOD3 0x08 /* DCO插入周期控制位3 */
#define MOD4 0x10 /* DCO插入周期控制位4 */
#define DCO0 0x20 /* 8种频率控制位0 */
#define DCO1 0x40 /* 8种频率控制位1 */
#define DCO2 0x80 /* 8种频率控制位2 */
/* 系统时钟控制寄存器1 :复位后的值位084h*/
#define RSEL0 0x01 /* 选择内部电阻控制位0 */
#define RSEL1 0x02 /* 选择内部电阻控制位1 */
#define RSEL2 0x04 /* 选择内部电阻控制位2 */
#define XT5V 0x08 /* 必须为0*/
#define DIVA0 0x10 /* ACLK分频系数控制位0*/
#define DIVA1 0x20 /* ACLK分频系数控制位1 */
#define XTS 0x40 /* LFXT1工作模式控制位 0:低频模式. / 1: 高频模式. */
#define XT2OFF 0x80 /* XT2CLK 使能控制位 0:开启; 1:关闭 */
#define DIVA_0 0x00 /* ACLK分频系数为: 1 */
#define DIVA_1 0x10 /* ACLK分频系数为: 2 */
#define DIVA_2 0x20 /* ACLK分频系数为: 4 */
#define DIVA_3 0x30 /* ACLK分频系数为: 8 */
/* 系统时钟控制寄存器2 :复位后的值位000h*/
#define DCOR 0x01 /* 内外电阻选择控制位 */
#define DIVS0 0x02 /* SMCLK分频控制位0*/
#define DIVS1 0x04 /* SMCLK分频控制位1 */
#define SELS 0x08 /* SMCLK 时钟源选择位t 0:DCOCLK / 1:XT2CLK/LFXTCLK */
#define DIVM0 0x10 /* MCLK分频控制位0 */
#define DIVM1 0x20 /* MCLK分频控制位1 */
#define SELM0 0x40 /* MCLK 时钟输入源选择位0 */
#define SELM1 0x80 /* MCLK 时钟输入源选择位1 */
#define DIVS_0 0x00 /* SMCLK 分频系数为: 1 */
#define DIVS_1 0x02 /* SMCLK 分频系数为: 2 */
#define DIVS_2 0x04 /* SMCLK 分频系数为: 4 */
#define DIVS_3 0x06 /* SMCLK 分频系数为: 8 */
#define DIVM_0 0x00 /* MCLK 分频系数为: 1 */
#define DIVM_1 0x10 /* MCLK 分频系数为: 2 */
#define DIVM_2 0x20 /* MCLK 分频系数为: 4 */
#define DIVM_3 0x30 /* MCLK 分频系数为: 8 */
#define SELM_0 0x00 /* MCLK 时钟输入源: DCOCLK */
#define SELM_1 0x40 /* MCLK 时钟输入源: DCOCLK */
#define SELM_2 0x80 /* MCLK 时钟输入源: XT2CLK/LFXTCLK */
#define SELM_3 0xC0 /* MCLK 时钟输入源: LFXTCLK */
/*************************************************************
* Flash Memory FLASH操作寄存器定义
*************************************************************/
#define FCTL1_ 0x0128 /* FLASH控制寄存器1:控制编程、擦除 */
sfrw FCTL1 = FCTL1_;
#define FCTL2_ 0x012A /* FLASH 控制寄存器2 :控制时钟分频*/
sfrw FCTL2 = FCTL2_;
#define FCTL3_ 0x012C /* FLASH 控制寄存器3: 状态标志 */
sfrw FCTL3 = FCTL3_;
#define FRKEY 0x9600 /* 读FLASH 密码 */
#define FWKEY 0xA500 /* 写FLASH 密码 */
#define FXKEY 0x3300 /* for use with XOR instruction */
/* FLASH控制寄存器1:控制编程、擦除 */
#define ERASE 0x0002 /* 擦除段使能 */
#define MERAS 0x0004 /* 主存擦除使能 */
#define WRT 0x0040 /* 编程使能 */
#define BLKWRT 0x0080 /* 段编程使能 */ |