MSP430F5418中文翻译
关于单片机msp430的时钟资料
![关于单片机msp430的时钟资料](https://img.taocdn.com/s3/m/8a08081676a20029bc642d48.png)
msp430f5419/38学习笔记之时钟系统(2011-11-30 10:41:30)分类: msp430标签:msp430f541xmsp430f543xucs时钟系统注:msp5419/38中,如果你使用SMCLK做TIMER_A的时钟,那么进入低功耗3或低功耗4是不会把SMCLK关掉的,这点5系列和其他系列的不一样。
UCS模块是一个低成本超低功耗系统,通过选择使用3个部时钟信号,用户可以得到性能和功耗的最佳平衡点。
UCS可以由软件配置其工作模式,如配置成:不需要任何外部器件、使用 1或 2个外部晶振等。
一、时钟系统UCS模块具有5个时钟源:XT1CLK:低频/高频振荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,又可以与外部4M-32MHZ时钟源一起使用,XT1CLK可以作为FLL模块部的参考时钟。
有些芯片XT1CLK只允许使用外部的低频晶振,具体可参考数据手册;XT2CLK:可选高频振荡器,可与标准晶振,振荡器或者 4MHZ~32MHZ外部时钟源一起使用;VLOCLK:部低功耗、低频振荡器,频率典型值为10KHZ;REFOCLK:部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源;DCOCLK:可以通过 FLL来稳定的部数字控制振荡器(DCO);DCOCLK经过 FLL 分频后可得DCOCLKDIV。
UCS模块可以提供3种时钟信号:ACLK:辅时钟;MCLK:系统主时钟;SMCLK:子系统主时钟。
二、UCS操作PUC之后,UCS的默认配置模式如下:XT1CLK 选择LF模式下的XT1作为时钟源,ACLK 选择 XT1CLK 作为时钟源;MCLK 选择DCOCLKDIV作为时钟源;SMCLK 选择DCOCLKDIV作为时钟源;FLL操作使能,FLL基准时钟(FLLREFCLK)选择XT1CLK;XIN 和 XOUT作普通IO 口使用,禁止了 XT1 功能,直到 I/O 口重新配置为 XT1 模式;如果有 XT2IN 和XT2OUT,则一并配置为普通 IO 口,禁止 XT2 功能。
关于(单片机)msp430的时钟资料
![关于(单片机)msp430的时钟资料](https://img.taocdn.com/s3/m/2bbb045704a1b0717ed5dd04.png)
msp430f5419/38学习笔记之时钟系统(2011-11-30 10:41:30)分类: msp430标签:msp430f541xmsp430f543xucs时钟系统注:msp5419/38中,如果你使用SMCLK做TIMER_A的时钟,那么进入低功耗3或低功耗4是不会把SMCLK关掉的,这点5系列和其他系列的不一样。
UCS模块是一个低成本超低功耗系统,通过选择使用3个内部时钟信号,用户可以得到性能和功耗的最佳平衡点。
UCS可以由软件配置其工作模式,如配置成:不需要任何外部器件、使用1或 2个外部晶振等。
一、时钟系统UCS模块具有5个时钟源:XT1CLK:低频/高频振荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,又可以与外部4M-32MHZ时钟源一起使用,XT1CLK可以作为FLL模块内部的参考时钟。
有些芯片XT1CLK只允许使用外部的低频晶振,具体可参考数据手册;XT2CLK:可选高频振荡器,可与标准晶振,振荡器或者 4MHZ~32MHZ外部时钟源一起使用;VLOCLK:内部低功耗、低频振荡器,频率典型值为10KHZ;REFOCLK:内部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源;DCOCLK:可以通过 FLL来稳定的内部数字控制振荡器(DCO);DCOCLK经过 FLL分频后可得DCOCLKDIV。
UCS模块可以提供3种时钟信号:ACLK:辅时钟;MCLK:系统主时钟;SMCLK:子系统主时钟。
二、UCS操作PUC之后,UCS的默认配置模式如下:XT1CLK 选择LF模式下的XT1作为时钟源,ACLK 选择 XT1CLK 作为时钟源;MCLK 选择DCOCLKDIV作为时钟源;SMCLK 选择DCOCLKDIV作为时钟源;FLL操作使能,FLL基准时钟(FLLREFCLK)选择XT1CLK;XIN 和 XOUT作普通IO 口使用,禁止了 XT1 功能,直到 I/O 口重新配置为 XT1 模式;如果有 XT2IN 和XT2OUT,则一并配置为普通 IO 口,禁止 XT2 功能。
MSP f 中文手册
![MSP f 中文手册](https://img.taocdn.com/s3/m/4a6037714693daef5ff73d48.png)
MSP430F552X中文手册及例程一、先写一篇开个头:这样快速闯入MSP430学习过程进入各个电子产品公司的网站,招聘里面嵌入式占据了大半工程师职位。
广义的嵌入式无非几种:传统的什么51单片机、 MSP430称做嵌入式微控制器;ARM是嵌入式微处理器;当然还有DSP;FPGA。
我们现在就不说别的,就说MSP430单片机,多数想学MSP430的童鞋,对89C51内核系列的单片机是很熟悉的,为了加深对MSP430 系列单片机的认识吗,迅速闯入MSP430学习过程,就必须彻底了解MSP430单片机,我们不妨将51单片机和MSP430两者进行一下比较。
第一点, 51内核单片机是8 位单片机。
其指令是采用的被称为“ CISC ”的复杂指令集,共具有111 条指令。
而MSP430 单片机是16 位的单片机,采用了精简指令集( RISC )结构,只有简洁的27 条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据存储器都可参加多种运算。
这些内核指令均为单周期指令,功能强,运行的速度快。
第二点,MCU主要分为两种工作模式:待机与执行。
51内核单片机正常情况下消耗的电流为mA级 ,在掉电状态下,其耗电电流仍约为3mA左右 ;即使在掉电方式下,电源电压可以下降到2V ,但是为了保存内部RAM 中的数据,还需要提供约50uA的电流。
而430单片机功耗是在uA级的,工作电流极小,并且超低功耗,关断状态下的电流仅为0.1μA,待机电流为0.8μA,常规模式下的(250μA/1MIPS@3V),端口漏电流不足50 nA,并可零功耗掉电复位(BOR)。
另外,该芯片属低电器件,仅需1.8~3.6V电压供电,因而可有效降低系统功耗。
MSP430将低功耗模式扩展为7种,分别对应不同应用场合及任务的低功耗方式。
以睡眠模式为例,包括深度睡眠模式RTC:只有时钟在跑而其他都不动,目前,TI宣布其MSP430在RTC模式下最低功耗仅为360nA。
MSP430简介_中文
![MSP430简介_中文](https://img.taocdn.com/s3/m/316de86dcaaedd3383c4d3fe.png)
Energia中极为丰富的示例程序:
包括数字量、模拟 量、串口通信、集 成传感器等例程
插上Lauchpad能够自 动生成虚拟的串口
MSP430 | Ultra-Low Power is in our DNA
更简易的编程方式:
基于Energia和ArduBlock的图形编程
从左端的工具框中 拖出逻辑模块和外 设模块,按照接口 的对接完成程序流 程的构建
LaunchPad 开发板初探:
USB 仿真连接
嵌入式仿真 6-pin eZ430 Connector Crystal Pads Chip Pinouts Part and Socket
P1.3 Button LEDs and Jumpers P1.0 & P1.6
Power Connector Reset Button
MSP430 | Ultra-Low Power is in our DNA
The TI Development Programme
MSP430 Launchpad 基于 Arduino系统的介绍
——上海交通大学
Shanghai Jiaotong university
MSP430 | Ultra-Low Power is in our DNA
—— Launchpad的扩展
基于Launchpad的简易收音机
基于Launchpad的空中鼠标
基于Launchpad的简易播放器
像Arduino系统一样添加传感器
MSP430 | Ultra-Low Power is in our DNA
—— Launchpad的扩展
模拟电压的测量
像Arduino系统一样添加传感器
MSP430寄存器的中文解释,熟知这些写起程序来很方便
![MSP430寄存器的中文解释,熟知这些写起程序来很方便](https://img.taocdn.com/s3/m/ba5e67fc4693daef5ff73d06.png)
#define P5DIR_ sfrb P5DIR
#define P5SEL_ sfrb P5SEL
#define P6IN_ const sfrb P6IN #define P6OUT_ sfrb P6OUT
0x0034 /* P6 输入寄存器 */ = P6IN_; 0x0035 /* P6 输出寄存器*/ = P6OUT_; 0x0036 /* P6 方向选择寄存器*/ = P6DIR_; 0x0037 /* P6 功能选择寄存器*/ = P6SEL_;
#define P4DIR_ sfrb P4DIR
#define P4SEL_ sfrb P4SEL
/************************************************************ * DIGITAL I/O Port5/6 I/O口寄存器定义PORT5和6 无中断功能
************************************************************/
#define P5IN_ const sfrb P5IN #define P5OUT_ sfrb P5OUT
0x0030 /* P5 输入寄存器 */ = P5IN_; 0x0031 /* P5 输出寄存器*/ = P5OUT_; 0x0032 /* P5 方向选择寄存器*/ = P5DIR_; 0x0033 /* P5 功能选择寄存器*/ = P5SEL_;
#define MPY_
0x0130 /* 无符号乘法 */
sfrw
MPY
= MPY_; 0x0132 /* 有符号乘法*/ = MPYS_; 0x0134 /* 无符号乘加 */ = MAC_; 0x0136 /* 有符号乘加 */ = MACS_; 0x0138 /* 第二乘数 */ = OP2_; 0x013A /* 低6位结果寄存器 */ = RESLO_; 0x013C /* 高6位结果寄存器 */ = RESHI_; 0x013E /*结果扩展寄存器 */ = SUMEXT_;
MSP430寄存器中文注释18页word文档
![MSP430寄存器中文注释18页word文档](https://img.taocdn.com/s3/m/de538bc769dc5022abea0025.png)
MSP430寄存器中文注释---P1/2口(带中断功能)/************************************************************* DIGITAL I/O Port1/2 寄存器定义有中断功能************************************************************/#define P1IN_ 0x0020 /* P1 输入寄存器 */const sfrb P1IN = P1IN_;#define P1OUT_ 0x0021 /* P1 输出寄存器 */sfrb P1OUT = P1OUT_;#define P1DIR_ 0x0022 /* P1 方向选择寄存器 */sfrb P1DIR = P1DIR_;#define P1IFG_ 0x0023 /* P1 中断标志寄存器*/sfrb P1IFG = P1IFG_;#define P1IES_ 0x0024 /* P1 中断边沿选择寄存器*/ sfrb P1IES = P1IES_;#define P1IE_ 0x0025 /* P1 中断使能寄存器 */ sfrb P1IE = P1IE_;#define P1SEL_ 0x0026 /* P1 功能选择寄存器*/sfrb P1SEL = P1SEL_;#define P2IN_ 0x0028 /* P2 输入寄存器 */const sfrb P2IN = P2IN_;#define P2OUT_ 0x0029 /* P2 输出寄存器 */sfrb P2OUT = P2OUT_;#define P2DIR_ 0x002A /* P2 方向选择寄存器 */ sfrb P2DIR = P2DIR_;#define P2IFG_ 0x002B /* P2 中断标志寄存器 */sfrb P2IFG = P2IFG_;#define P2IES_ 0x002C /* P2 中断边沿选择寄存器 */ sfrb P2IES = P2IES_;#define P2IE_ 0x002D /* P2 中断使能寄存器 */ sfrb P2IE = P2IE_;#define P2SEL_ 0x002E /* P2 功能选择寄存器 */ sfrb P2SEL = P2SEL_;MSP430寄存器中文注释---P3/4口(无中断功能)/************************************************************* DIGITAL I/O Port3/4寄存器定义无中断功能************************************************************/#define P3IN_ 0x0018 /* P3 输入寄存器 */ const sfrb P3IN = P3IN_;#define P3OUT_ 0x0019 /* P3 输出寄存器 */sfrb P3OUT = P3OUT_;#define P3DIR_ 0x001A /* P3 方向选择寄存器 */ sfrb P3DIR = P3DIR_;#define P3SEL_ 0x001B /* P3 功能选择寄存器*/ sfrb P3SEL = P3SEL_;#define P4IN_ 0x001C /* P4 输入寄存器 */ const sfrb P4IN = P4IN_;#define P4OUT_ 0x001D /* P4 输出寄存器 */sfrb P4OUT = P4OUT_;#define P4DIR_ 0x001E /* P4 方向选择寄存器 */ sfrb P4DIR = P4DIR_;#define P4SEL_ 0x001F /* P4 功能选择寄存器 */ sfrb P4SEL = P4SEL_;/************************************************************* DIGITAL I/O Port5/6 I/O口寄存器定义PORT5和6 无中断功能#define P5IN_ 0x0030 /* P5 输入寄存器 */ const sfrb P5IN = P5IN_;#define P5OUT_ 0x0031 /* P5 输出寄存器*/sfrb P5OUT = P5OUT_;#define P5DIR_ 0x0032 /* P5 方向选择寄存器*/ sfrb P5DIR = P5DIR_;#define P5SEL_ 0x0033 /* P5 功能选择寄存器*/ sfrb P5SEL = P5SEL_;#define P6IN_ 0x0034 /* P6 输入寄存器 */ const sfrb P6IN = P6IN_;#define P6OUT_ 0x0035 /* P6 输出寄存器*/sfrb P6OUT = P6OUT_;#define P6DIR_ 0x0036 /* P6 方向选择寄存器*/ sfrb P6DIR = P6DIR_;#define P6SEL_ 0x0037 /* P6 功能选择寄存器*/ sfrb P6SEL = P6SEL_;MSP430寄存器中文注释--- 硬件乘法器/************************************************************硬件乘法器的寄存器定义************************************************************/#define MPY_ 0x0130 /* 无符号乘法 */ sfrw MPY = MPY_;#define MPYS_ 0x0132 /* 有符号乘法*/sfrw MPYS = MPYS_;#define MAC_ 0x0134 /* 无符号乘加 */ sfrw MAC = MAC_;#define MACS_ 0x0136 /* 有符号乘加 */sfrw MACS = MACS_;#define OP2_ 0x0138 /* 第二乘数 */sfrw OP2 = OP2_;#define RESLO_ 0x013A /* 低6位结果寄存器 */sfrw RESLO = RESLO_;#define RESHI_ 0x013C /* 高6位结果寄存器 */sfrw RESHI = RESHI_;#define SUMEXT_ 0x013E /*结果扩展寄存器 */const sfrw SUMEXT = SUMEXT_;MSP430寄存器中文注释---看门狗和定时器/************************************************************* 看门狗定时器的寄存器定义************************************************************/#define WDTCTL_ 0x0120sfrw WDTCTL = WDTCTL_;#define WDTIS0 0x0001 /*选择WDTCNT的四个输出端之一*/#define WDTIS1 0x0002 /*选择WDTCNT的四个输出端之一*/#define WDTSSEL 0x0004 /*选择WDTCNT的时钟源*/#define WDTCNTCL 0x0008 /*清除WDTCNT端: 为1时从0开始计数*/#define WDTTMSEL 0x0010 /*选择模式 0: 看门狗模式; 1: 定时器模式*/#define WDTNMI 0x0020 /*选择NMI/RST 引脚功能 0:为 RST; 1:为NMI*/#define WDTNMIES 0x0040 /*WDTNMI=1时.选择触发延 0:为上升延 1:为下降延*/#define WDTHOLD 0x0080 /*停止看门狗定时器工作 0:启动;1:停止*/#define WDTPW 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 /* TACL K*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_;#define ADC12IV_ 0x01A8 /* ADC12 Interrupt Vector Word */sfrw ADC12IV = ADC12IV_;/*ADC12存贮器类寄存器*/#define ADC12MEM_ 0x0140 /* ADC12 Conversion Memory */#ifndef __IAR_SYSTEMS_ICC#define ADC12MEM ADC12MEM_ /* ADC12 Conversion Memory (for assembler) */#else#define ADC12MEM ((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位控制寄存器位*/#define ADC12SC 0x001 /*采样/转换控制位*/#define ENC 0x002 /* 转换允许位*/#define ADC12TOVIE 0x004 /*转换时间溢出中断允许位*/#define ADC12OVIE 0x008 /*溢出中断允许位*/#define ADC12ON 0x010 /*ADC12内核控制位*/#define REFON 0x020 /*参考电压控制位*/#define REF2_5V 0x040 /*内部参考电压的电压值选择位 ' 0'为1.5V; '1'为2.5V*/#define MSH 0x080 /*多次采样/转换位*/#define MSC 0x080 /*多次采样/转换位*//*SHT0 采样保持定时器0 控制ADC12的结果存贮器MEM0~MEM7的采样周期*/#define SHT0_0 0*0x100 /*采样周期=TADC12CLK*4 */#define SHT0_1 1*0x100 /*采样周期=TADC12CLK*8 */#define SHT0_2 2*0x100 /*采样周期=TADC12CLK*16 */ #define SHT0_3 3*0x100 /*采样周期=TADC12CLK*32 */ #define SHT0_4 4*0x100 /*采样周期=TADC12CLK*64 */ #define SHT0_5 5*0x100 /*采样周期=TADC12CLK*96 */ #define SHT0_6 6*0x100 /*采样周期=TADC12CLK*128 */ #define SHT0_7 7*0x100 /*采样周期=TADC12CLK*192 */ #define SHT0_8 8*0x100 /*采样周期=TADC12CLK*256 */ #define SHT0_9 9*0x100 /*采样周期=TADC12CLK*384 */ #define SHT0_10 10*0x100 /*采样周期=TADC12CLK*512 */#define SHT0_11 11*0x100 /*采样周期=TADC12CLK*768 */#define SHT0_12 12*0x100 /*采样周期=TADC12CLK*1024 */ #define SHT0_13 13*0x100 /*采样周期=TADC12CLK*1024 */ #define SHT0_14 14*0x100 /*采样周期=TADC12CLK*1024 */ #define SHT0_15 15*0x100 /*采样周期=TADC12CLK*1024 */ /*SHT1 采样保持定时器1 控制ADC12的结果存贮器MEM8~MEM15的采样周期*/#define SHT1_0 0*0x100 /*采样周期=TADC12CLK*4 */#define SHT1_1 1*0x100 /*采样周期=TADC12CLK*8 */#define SHT1_2 2*0x100 /*采样周期=TADC12CLK*16 */ #define SHT1_3 3*0x100 /*采样周期=TADC12CLK*32 */ #define SHT1_4 4*0x100 /*采样周期=TADC12CLK*64 */#define SHT1_5 5*0x100 /*采样周期=TADC12CLK*96 */ #define SHT1_6 6*0x100 /*采样周期=TADC12CLK*128 */ #define SHT1_7 7*0x100 /*采样周期=TADC12CLK*192 */ #define SHT1_8 8*0x100 /*采样周期=TADC12CLK*256 */ #define SHT1_9 9*0x100 /*采样周期=TADC12CLK*384 */ #define SHT1_10 10*0x100 /*采样周期=TADC12CLK*512 */ #define SHT1_11 11*0x100 /*采样周期=TADC12CLK*768 */ #define SHT1_12 12*0x100 /*采样周期=TADC12CLK*1024 */ #define SHT1_13 13*0x100 /*采样周期=TADC12CLK*1024 */ #define SHT1_14 14*0x100 /*采样周期=TADC12CLK*1024 */ #define SHT1_15 15*0x100 /*采样周期=TADC12CLK*1024 *//* ADC12CTL1 内8位控制寄存器位*/#define ADC12BUSY 0x0001 /*ADC12忙标志位*/#define CONSEQ_0 0*2 /*单通道单次转换*/#define CONSEQ_1 1*2 /*序列通道单次转换*/#define CONSEQ_2 2*2 /*单通道多次转换*/#define CONSEQ_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分频*/#define ISSH 0x0100 /*采样输入信号反向与否控制位*/#define SHP 0x0200 /*采样信号(SAMPCON)选择控制位*/#define SHS_0 0*0x400 /*采样信号输入源选择控制位 A DC12SC*/#define SHS_1 1*0x400 /*采样信号输入源选择控制位 T IMER_A.OUT1*/#define SHS_2 2*0x400 /*采样信号输入源选择控制位 T IMER_B.OUT0*/#define SHS_3 3*0x400 /*采样信号输入源选择控制位 T IMER_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 */#define INCH_0 0 /*选择模拟量通道0 A0 */#define INCH_1 1 /*选择模拟量通道0 A1*/#define INCH_2 2 /*选择模拟量通道0 A2*/#define INCH_3 3 /*选择模拟量通道0 A3*/#define INCH_4 4 /*选择模拟量通道0 A4*/#define INCH_5 5 /*选择模拟量通道0 A5*/#define INCH_6 6 /*选择模拟量通道0 A6*/#define INCH_7 7 /*选择模拟量通道0 A7*/#define INCH_8 8 /*VEREF+*/#define INCH_9 9 /*VEREF-*/#define INCH_10 10 /*片内温度传感器的输出*/#define INCH_11 11 /*(AVCC-AVSS)/2*/ #define INCH_12 12 /*(AVCC-AVSS)/2*/ #define INCH_13 13 /*(AVCC-AVSS)/2*/ #define INCH_14 14 /*(AVCC-AVSS)/2*/ #define INCH_15 15 /*(AVCC-AVSS)/2*/ /*参考电压源选择位*/#define SREF_0 0*0x10 /*VR+ = AVCC; VR- = AVSS*/#define SREF_1 1*0x10 /*VR+ = VREF+; VR- = AVSS*/#define SREF_2 2*0x10 /*VR+ = VEREF+; VR- = AVSS*/#define SREF_3 3*0x10 /*VR+ = VEREF+; VR- = AVSS*/#define SREF_4 4*0x10 /*VR+ = AVCC; VR- = VREF-*/#define SREF_5 5*0x10 /*VR+ = VREF+; VR- = VREF-*/#define SREF_6 6*0x10 /*VR+ = VEREF+; VR- = VREF-*/#define SREF_7 7*0x10 /*VR+ = VEREF+; VR- = VREF-*/#define EOS 0x80 /*序列结束选择位*/MSP430寄存器中文注释----串口寄存器/************************************************************* 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时异步与U CLK相反;同步下降延有效*/#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 /* UART 0 Control */sfrb U0CTL = U0CTL_;#define U0TCTL_ 0x0071 /* UART 0 Transmit Control */sfrb U0TCTL = U0TCTL_;#define U0RCTL_ 0x0072 /* UART 0 Receive Control */sfrb U0RCTL = U0RCTL_;#define U0MCTL_ 0x0073 /* UART 0 Modulation Control */sfrb U0MCTL = U0MCTL_;#define U0BR0_ 0x0074 /* UART 0 Baud Rate 0 */sfrb U0BR0 = U0BR0_;#define U0BR1_ 0x0075 /* UART 0 Baud Rate 1 */sfrb U0BR1 = U0BR1_;#define U0RXBUF_ 0x0076 /* UART 0 Receive Buffer */const sfrb U0RXBUF = U0RXBUF_;#define U0TXBUF_ 0x0077 /* UART 0 Transmit Buffer */sfrb U0TXBUF = U0TXBUF_;/* Alternate register names */#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 /* UART 1 Control */sfrb U1CTL = U1CTL_;#define U1TCTL_ 0x0079 /* UART 1 Transmit Control */ sfrb U1TCTL = U1TCTL_;#define U1RCTL_ 0x007A /* UART 1 Receive Control */ sfrb U1RCTL = U1RCTL_;#define U1MCTL_ 0x007B /* UART 1 Modulation Control */ sfrb U1MCTL = U1MCTL_;#define U1BR0_ 0x007C /* UART 1 Baud Rate 0 */sfrb U1BR0 = U1BR0_;#define U1BR1_ 0x007D /* UART 1 Baud Rate 1 */sfrb U1BR1 = U1BR1_;#define U1RXBUF_ 0x007E /* UART 1 Receive Buffer */ const sfrb U1RXBUF = U1RXBUF_;#define U1TXBUF_ 0x007F /* UART 1 Transmit Buffer */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_;。
基于MSP430的双界面读卡器设计
![基于MSP430的双界面读卡器设计](https://img.taocdn.com/s3/m/df61103b482fb4daa58d4b56.png)
基于MSP430的双界面读卡器设计作者:杨玲玲谢星孙玲吴烨来源:《现代电子技术》2014年第16期摘要:市场对双界面智能卡的需求不断增多,这也加速了双界面读卡器产业的发展。
在此主要介绍一种基于MSP430的双界面读卡器的设计,给出硬件系统的电路设计方法以及软件架构。
该系统以MSP430F5418为主控芯片,同时主要对接触式读卡电路和非接触式读卡电路进行了设计和实现。
接触式模块符合ISO7816标准要求,非接触读卡电路模块内嵌CLRC632,采用13.56 MHz非接触射频技术进行读/写。
测试结果表明,该读卡器系统性能稳定、实用性强,具有很好的市场推广价值。
关键词:双界面智能卡; MSP430F5418;读卡器; CL RC632中图分类号: TN710⁃34; TN964⁃34 文献标识码: A 文章编号: 1004⁃373X(2014)16⁃0018⁃03Design of double⁃interface card reader based on MSP430YANG Ling⁃ling1, 2, XIE Xing3, SUN Ling2, WU Ye1(1. Xinglin College, Nantong University, Nantong 226019, China; 2. Jiangsu Key Laboratory of ASIC Design, Nantong 226019, China;3. Engineering Training Center, Nantong University, Nantong 226019, China)Abstract: With the demand for the double⁃interface cards in the market growing, the development of double interface reader industry has been accelerated. Based on MSP430, the design method of double⁃interface card reader is introduced. Then the hardware design and software ware proposed in this paper. MSP430F5418 chip is used as the main control unit. At the same time, the hardware design method of the circuit including the design of the contact card reader circuit and the contactless card reader circuit has been given. The contact module was complies with ISO7816 standards. The contactless card reader circuit module embedded CL RC632.13.56MHz non⁃contact radio frequency technology is adopted for reading and writing. The experimental results show that the design method has the features of stable performance, good effect in its practical application.Keywords: double⁃interface intelligent card; MSP430F5418; card reader; CL RC6320 引言自从智能卡问世以来,因为其存储量大、安全性高、便于携带等优点,在市场中的应用也迅速提高,所以人们对智能卡的要求也在不断提高[1]。
MSP430F5系列中文手册 IO 输入输出端口
![MSP430F5系列中文手册 IO 输入输出端口](https://img.taocdn.com/s3/m/5d5f29232f60ddccda38a00a.png)
MSP430F5系列16位超低功耗单片机模块原理第7章IO 输入输出端口版本: 1.0日期: 2008.7.原文: TI slau208.pdf (5xxfamily User's Guide)翻译: 王浩武汉大学编辑: DC 微控技术论坛版主注:以下文章是翻译TI slau208.pdf 文件中的部分内容。
由于我们翻译水平有限,有整理过程中难免有所不足或错误;所以以下内容只供参考.一切以原文为准。
文章更新详情请密切留意微控技术论坛。
Page 1 of 12第七章IO 输入输出端口本章描述了数字IO接口的操作。
在所有的5系列MSP430单片机供了数字IO接口。
主题7.1 数字IO接口介绍7.2 数字IO接口的操作7.3 数字IO接口寄存器7.1 数字IO接口介绍5系列的MSP430最多可以提供12路数字IO接口,P1到P11和PJ。
大部分接口都有8个管脚,但是有些接口会少于8个管脚。
可以参考说明文档中关于接口的章节。
每个I/O管脚都可以独立的设置为输入或者输出方向,并且每个I/O接线都可以被独立的读取或者写入。
所有接口的寄存器都可以被独立的置位或者清零,就像设置驱动能力一样。
P1和P2接口具中断功能。
从P1和P2接口的各个I/O管脚引入的中断可以独立的被使能并且设置为上升沿或者下降沿出发中断。
所有的P1接口的I/O管脚的中断都来源于同一个中断向量P1IV,并且P2接口的中断都来源于另外一个中断向量P2IV。
在一些MSP430x5xx单片机中,附加的接口也具有中断功能。
详细说明请查阅芯片的说明文档。
每个独立的接口可以作为字节长度端口访问或者结合起来作为字长度端口进行访问。
端口配对P1/P2、P3/P4、P5/P6、P7/P8等联合起来分别叫做PA、PB、PC、PD等。
当进行字操作写入PA口时,所有的16为都被写入这个端口。
利用字节操作写入PA口的低字节时,高字节保持不变。
相似地,使用字节指令写入PA口高字节时,低字节保持不变。
MSP430F5418的详细解析
![MSP430F5418的详细解析](https://img.taocdn.com/s3/m/f28e9b54f5335a8102d220d6.png)
MSP430F5418 的详细解析
1)UCS
时钟如同处理器的心脏,每一个周期就是心脏的一次脉动。
以前使用其他处理器时,只需要选择合适频率的晶体,接在XT1 和XT2 两端,再加两个
电容就可以了。
而MSP430F5418 的时钟系统略显复杂,容易让刚开始接触它
的人一头雾水。
5418 的时钟设置由UCS(Unified Clock System)来管理,使
用起来比较灵活,其结构图如下所示。
UCS 模块有XT1CLK 和XT2CLK 两个外部时钟源,以及VLOCLK、
REFOCLK 和DCOCLK(DCOCLKDIV 是DCOCLK 的分频输出)三个内部
时钟源。
其中XT1CLK、REFOCLK 和XT2CLK 可以作为FLLREFCLK 输入
到FLL 单元来改变DCO 的输出。
所有这些时钟源经分频后都可以作为MCLK、SMCLK 和ACLK 输出。
下面是一个UCS 设置的例子,使用32768Hz 的内部时钟源REFOCLK,
并通过FLL 倍频使MCLK 为16.384MHz。
void UCS_Init(void)。
MSP430F5XX_中文翻译第三章_UCS
![MSP430F5XX_中文翻译第三章_UCS](https://img.taocdn.com/s3/m/a64a088ba0116c175f0e4893.png)
第3章标准时钟系统标准时钟系统可以为器件提供各种需要的时钟信号。
本章主要讲述如何根据需要对标准时钟系统进行配置。
目录3.1时钟系统介绍3.2UCS操作模式3.3MODSOC操作3.4UCS模块寄存器3.1 时钟系统介绍UCS模块是一个低成本低功耗的时钟系统。
包含有三个内部时钟信号,用户可以自行配置,得到性能和功耗的最佳平衡点。
UCS软件配置后,只需要外部一两个晶振或者电阻,而不需要其他的任何器件。
UCS模块最多含有5个时钟源:●XT1CLK:低频/高频振荡器,可以使用低频32768HZ钟振、标准晶振、外部振荡器或者通过外部输入源输入4MHZ~32MHZ时钟。
XT1CLK可以作为内部FLL模块的参考时钟,有些器件只支持外部的低频晶振,具体可参考数据手册。
●VLOCLK:内部低功耗,低频振荡器。
典型值为10KHZ。
●REFOCLK:内部低频振荡器,典型值为32768HZ,作为FLL基准时钟源。
●DCOCLK:内部数字控制振荡器(DCO)可以通过FLL来稳定。
●XT2CLK:可选择的高频振荡器,可以使用标准晶振,振荡器或者外部时钟源输入4MHZ~32MHZ。
UCS模块可以提供三个时钟信号:●ACLK:辅助时钟。
ACLK可由软件选择来自于XT1CLK,REFOCLK,VLOCLK,DCOCLK,DCOCLKDIV,和XT2CLK(如果可以用)。
DCOCLKDIV为DCOCLK在FLL模块中通过1、2、4、8、19、32分频后得到的频率。
ACLK可由软件配置位各个模块的时钟信号。
ACLK可由1、2、4、8、16、32分频后使用。
ACLK/n是ACLK经1、2、4、8、16、32分频后通过IO口输出作为外部电路使用。
●MCLK:系统主时钟。
MCLK可由软件选择来自于XT1CLK,REFOCLK,VLOCLK,DCOCLK,DCOCLKDIV,XT2CLK(如果可以用)。
DCOCLKDIV为DCOCLK在FLL模块中通过1、2、4、8、19、32分频后得到的频率。
MSP430_Family_Users_Guide(中文版)_430单片机__极端详细__应用程序
![MSP430_Family_Users_Guide(中文版)_430单片机__极端详细__应用程序](https://img.taocdn.com/s3/m/c8a37dcca417866fb94a8e42.png)
2.强大的处理能力
MSP430 系列单片机是 16 位单片机,采用了目前流行的、颇受学术界好评的精简指令集(RISC)结构, 一个时钟周期可以执行一条指令(传统的 MCS51 单片机要 12 个时钟周期才可以执行一条指令),使 MSP430 在 8MHz 晶振工作时,指令速度可达 8MIPS(注意:同样 8MIPS 的指令速度,在运算性能上 16 位处理器比 8 位处理器高远不止两倍)。不久还将推出 25~30MIPS 的产品。
同时,MSP430 系列单片机中的某些型号,采用了一股只有 DSP 中才有的 16 位多功能硬件乘法器、 硬件乘.加(积之和)功能、DMA 等一系列先进的体系结构,大大增强了它的数据处理和运算能力,可以有 效地实现一些数字信号处理的算法(如 FFT、DTMF 等)。这种结构在其他系列单片机中尚未使用。
MSP430 系列单片机的丰富片内外设,在目前所有单片机系列产品中是非常突出的,为系统的单片解 决方案提供了极大的方便。
MSP430F5XX 中文翻译第十六章 REF模块
![MSP430F5XX 中文翻译第十六章 REF模块](https://img.taocdn.com/s3/m/af690a6c561252d380eb6e83.png)
第16章REFREF模块是一个通用的参考系统,在该系统中可以为子模块系统提供一个参考电压,如:模数转换、数模转换、比较器等。
16.1 REF简介REF模块负责为系统中的所有需要参考电压的模块提供参考电压。
包括但不限于如:ADC12_A,DAC12_A,LCD_B及COMP_B等模块。
其核心是一个源于质子或正向增益能级的能带隙。
REFGEN子系统使用能带隙、能带隙偏置、正向增益能级缓冲来产生三个主要的参考电压系统,如:1.5V、2.0V、2.5V,此外,如果可能,能带隙缓冲也是可以使用的。
REF模块包括:●具有良好PSRR(电源抑制比)的集中产生平衡式能带隙,良好的温度系数,精度高●用户可选择的内部参考有:1.5V、2.0V、2.5V●产生的能带隙电压可用于复位系统●具有低功耗特性●具有良好向下兼容性REF的模块框图如图16-1。
16.2 工作原理REF模块为整个系统中需要使用参考电压的模块提供参考电压。
主要包括但不限于:ADC12_A、DAC12_A、LCD_B及COMP_B。
REFGEN子系统包括一个高性能的能带隙,这个能带隙具有非常好的精度(出厂时已经校准),低的温度系统,及在低功耗模式下的高PSRR(电源抑制比)。
这个能带隙电压通过一个正向的电压放大器来产生三个参考电压:1.5V、2.0V及2.5V。
一次只能使用一个电压。
REFGEN子系统的一个输出是一个可变参考源。
这个可变参考源可以给复位系统提供1.5V、2.0V及2.5V中的一个参考源。
REFGEN的另一个输出提供一个具有能带隙缓冲的参考源,该参考源可以为整个系统中的模块提供参考源。
此外,REFGEN还可以为DAC12_A模块提供必需的参考电压。
最后,REFGEN子系统还包括一个来源于能带隙的温度传感器。
这个温度传感器可以通过ADC模块来测量与温度对应的电压。
16.2.1 低功耗原理REF模块支持如LCD发生器的低功耗应用。
有很多的应用系统不需要有非常精确的参考源,相对于数据转换来说,电源还是首选要考虑的。
MSP430中文资料
![MSP430中文资料](https://img.taocdn.com/s3/m/b536c0115f0e7cd184253628.png)
MSP430X1X1 系列产品中,其中 XT1 时钟源引脚接法有如 3 种应用。F13、14 的 XT1 相 同。需要注意的是,LFXT1 只有工作在高频模式下才需要外接电容。 对以引脚较少的 MSPX1XX 系列产品中有着不同时基模块,具体如下:
MSP430X11X1:LFXT1CLK , DCO
MSP430F12X: LFXT1CLK , DCO
MSP430F13X/14X/15X/16X:LFXT1CLK , DCO , XT2CLK
MSP430F4XX: LFXT1CLK , DCO , XT2CLK , FLL+
时钟发生器的原理说明: 问题的提出:1、高频、以便能对系统硬件请求和事件作出快速响应
微控设计网
微控设计网 中国 MSP430 单片机专业网站 MSP430F 常用模块应用原理
微控设计网 版主 DC 策划 原创于:2006-3-7
最后更新:2008-5-31 V8.2
微控设计网为你准备的 MSP430F 单片机入门必修课
XT5V 此位设置为 0。
Resl1.0,Resl1.1,Resl1.2 三位控制某个内部电阻以决定标称频率。
Resl=0,选择最低的标称频率。 …….. Resl=7,选择最高的标称频率。
BCSCTL2 基本时钟系统控制寄存器 2
7
6
54ຫໍສະໝຸດ SELM.1 SELM.0 DIVM.1 DIVM.0
MSP430F5438 USCI模块的详细介绍
![MSP430F5438 USCI模块的详细介绍](https://img.taocdn.com/s3/m/07bb10c75fbfc77da269b153.png)
第十五章第十五章 UART USCI支持的通讯方式☐USCI_A0UARTIrDASPI自适应波特率下的LIN通讯☐USCI_B0I2CSPI异步通讯特性概述7位或8位数据位,支持奇偶校验独立的发送和接收移位寄存器独立的发送和接收缓存可选择先发送(接收)MSB还是LSB空闲位多机模式和地址位多机模式通过有效的起始位检测将msp430从低功耗唤醒 状态标志检测错误或者地址位独立的接收和发送中断可编程实现波特率的调整UART内部结构图UART内部结构图初始化流程置位UCSWRST。
初始化USCI的各个相关寄存器。
设置端口。
清除UCSWRST。
使能UCAxRXIE和UCAxTXIE。
UART下不同通讯方式UART下不同通讯方式☐UCACTL0寄存器:UCSYNC• 0 异步• 1 同步UCMODEx•00 点对点异步通讯•01 线路空闲多机模式•10 地址位多机模式•11 自适应波特率的异步通讯线路空闲多机模式(UCMODEx=01)•当UCMODEx=01的时候,选择了线路空闲多机模式,具体看如下图:如何发送空闲帧1、先置位UCTXADDR,然后把地址字符写入UCAxTXBUF。
(UCAxTXIFG=1为前提)•当地址字符从发送缓存转入到发送移位寄存器的时候,UCTXADDR会自动复位2、把要发送的数据写到发送缓存UCAxTXBUF中。
☐F449在发送空闲帧时要置位TXWAKE,在写个任意数据到UCAxTXBUF产生11个空闲位,再才写地址字符到发送缓存。
关注标志位UCDORM 0ALLcharacters•UCAxRXIFG置位,进入接收中断•数据装载到接收缓存UCAxRXBUF中1Addresscharacters•UCAxRXIFG置位,进入接收中断•数据装载到接收缓存UCAxRXBUF中•假如UCRXEIE=1,错误标志位也会被置位Non-ddresscharacters•在接收端接收但不置位UCAxRXIFG,也不进入接收中断•数据不装载到接收缓存UCAxRXBUF中UCTXADDRUCTXADDR 先置位UCTXADDR,然后把地址字符写入UCAxTXBUF。
msp430x14x.h中各函数中文翻译
![msp430x14x.h中各函数中文翻译](https://img.taocdn.com/s3/m/12c67259312b3169a451a412.png)
#define BIT0 0x0001#define BIT1 0x0002#define BIT2 0x0004#define BIT3 0x0008#define BIT4 0x0010#define BIT5 0x0020#define BIT6 0x0040#define BIT7 0x0080#define BIT8 0x0100#define BIT9 0x0200#define BITA 0x0400#define BITB 0x0800#define BITC 0x1000#define BITD 0x2000#define BITE 0x4000#define BITF 0x8000/************************************************************ * STATUS REGISTER BITS************************************************************/#define C 0x0001#define Z 0x0002#define N 0x0004#define V 0x0100#define GIE 0x0008#define CPUOFF 0x0010#define OSCOFF 0x0020#define SCG0 0x0040#define SCG1 0x0080/* Low Power Modes coded with Bits 4-7 in SR */#ifndef __IAR_SYSTEMS_ICC /* Begin #defines for assembler */ #define LPM0 CPUOFF#define LPM1 SCG0+CPUOFF#define LPM2 SCG1+CPUOFF#define LPM3 SCG1+SCG0+CPUOFF#define LPM4 SCG1+SCG0+OSCOFF+CPUOFF/* End #defines for assembler */#else /* Begin #defines for C */#define LPM0_bits CPUOFF#define LPM1_bits SCG0+CPUOFF#define LPM2_bits SCG1+CPUOFF#define LPM3_bits SCG1+SCG0+CPUOFF#define LPM4_bits SCG1+SCG0+OSCOFF+CPUOFF#include <In430.h>#define LPM0 _BIS_SR(LPM0_bits) /* Enter Low Power Mode 0 */ #define LPM0_EXIT _BIC_SR(LPM0_bits) /* Exit Low Power Mode 0 */ #define LPM1 _BIS_SR(LPM1_bits) /* Enter Low Power Mode 1 */ #define LPM1_EXIT _BIC_SR(LPM1_bits) /* Exit Low Power Mode 1 */ #define LPM2 _BIS_SR(LPM2_bits) /* Enter Low Power Mode 2 */ #define LPM2_EXIT _BIC_SR(LPM2_bits) /* Exit Low Power Mode 2 */ #define LPM3 _BIS_SR(LPM3_bits) /* Enter Low Power Mode 3 */ #define LPM3_EXIT _BIC_SR(LPM3_bits) /* Exit Low Power Mode 3 */ #define LPM4 _BIS_SR(LPM4_bits) /* Enter Low Power Mode 4 */ #define LPM4_EXIT _BIC_SR(LPM4_bits) /* Exit Low Power Mode 4 */ #endif /* End #defines for C *//************************************************************* PERIPHERAL FILE MAP************************************************************//************************************************************* 特殊功能寄存器地址和控制位************************************************************//*中断使能1*/#define IE1_ 0x0000sfrb IE1 = IE1_;#define WDTIE 0x01 /*看门狗中断使能*/#define OFIE 0x02 /*外部晶振故障中断使能*/#define NMIIE 0x10 /*非屏蔽中断使能*/#define ACCVIE 0x20 /*可屏蔽中断使能/flash写中断错误*/#define URXIE0 0x40 /*串口0接收中断使能*/#define UTXIE0 0x80 /*串口0发送中断使能*//*中断标志1*/#define IFG1_ 0x0002sfrb IFG1 = IFG1_;#define WDTIFG 0x01 /*看门狗中断标志*/#define OFIFG 0x02 /*外部晶振故障中断标志*/#define NMIIFG 0x10 /*非屏蔽中断标志*/#define URXIFG0 0x40 /*串口0接收中断标志*/#define UTXIFG0 0x80 /*串口0发送中断标志*//* 中断模式使能1 */#define ME1_ 0x0004sfrb ME1 = ME1_;#define URXE0 0x40 /* 串口0接收中断模式使能 */#define USPIE0 0x40 /* 同步中断模式使能 */#define UTXE0 0x80 /* 串口0发送中断模式使能 *//* 中断使能2 */#define IE2_ 0x0001sfrb IE2 = IE2_;#define URXIE1 0x10 /* 串口1接收中断使能 */#define UTXIE1 0x20 /* 串口1发送中断使能 *//* 中断标志2 */#define IFG2_ 0x0003sfrb IFG2 = IFG2_;#define URXIFG1 0x10 /* 串口1接收中断标志 */#define UTXIFG1 0x20 /* 串口1发送中断标志 *//* 中断模式使能2 */#define ME2_ 0x0005sfrb ME2 = ME2_;#define URXE1 0x10 /* 串口1接收中断模式使能 */#define USPIE1 0x10 /* 同步中断模式使能 */#define UTXE1 0x20 /* 串口1发送中断模式使能 *//************************************************************* 看门狗定时器的寄存器定义************************************************************/#define WDTCTL_ 0x0120sfrw WDTCTL = WDTCTL_;#define WDTIS0 0x0001 /*选择WDTCNT的四个输出端之一*/#define WDTIS1 0x0002 /*选择WDTCNT的四个输出端之一*/#define WDTSSEL 0x0004 /*选择WDTCNT的时钟源*/#define WDTCNTCL 0x0008 /*清除WDTCNT端: 为1时从0开始计数*/ #define WDTTMSEL 0x0010/*选择模式 0: 看门狗模式; 1: 定时器模式*/ #define WDTNMI 0x0020/*选择NMI/RST 引脚功能 0:为 RST; 1:为NMI*/ #define WDTNMIES 0x0040/*WDTNMI=1时.选择触发延 0:为上升延 1:为下降延*/#define WDTHOLD 0x0080/*停止看门狗定时器工作 0:启动;1:停止*/ #define WDTPW 0x5A00 /* 写密码:高八位*//* SMCLK= 1MHz定时器模式 */#defineWDT_MDLY_32 WDTPW+WDTTMSEL+WDTCNTCL /* TSMCLK*2POWER15=32ms 复位状态 */#defineWDT_MDLY_8 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0 /* TSMCLK*2POWER13=8.192ms " */#defineWDT_MDLY_0_5 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */#defineWDT_MDLY_0_064 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0/* TSMCLK*2POWER6=0.512ms " *//* ACLK=32.768KHz 定时器模式*/#defineWDT_ADLY_1000 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL/* TACLK*2POWER15=1000ms"*/#defineWDT_ADLY_250 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0/* TACLK*2POWER13=250ms"*/#defineWDT_ADLY_16 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1/* TACLK*2POWER9=16ms" */#define WDT_ADLY_1_9 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDT IS0 /* TACLK*2POWER6=1.9ms"*//* SMCLK=1MHz看门狗模式 */#defineWDT_MRST_32 WDTPW+WDTCNTCL /*TSMCLK*2POWER15=32ms 复位状态 */#defineWDT_MRST_8 WDTPW+WDTCNTCL+WDTIS0 /*TSMCLK*2POWER13=8.192ms " */#defineWDT_MRST_0_5 WDTPW+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */#defineWDT_MRST_0_064 WDTPW+WDTCNTCL+WDTIS1+WDTIS0 /* TSMCLK*2POWER6=0.512ms " *//* ACLK=32KHz看门狗模式 */#defineWDT_ARST_1000 WDTPW+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */#defineWDT_ARST_250 WDTPW+WDTCNTCL+WDTSSEL+WDTIS0 / * TACLK*2POWER13=250ms " */#defineWDT_ARST_16 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1 / * TACLK*2POWER9=16ms " */#defineWDT_ARST_1_9 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0 /* TACLK*2POWER6=1.9ms " *//************************************************************硬件乘法器的寄存器定义************************************************************/#define MPY_ 0x0130 /* 无符号乘法 */sfrw MPY = MPY_;#define MPYS_ 0x0132 /* 有符号乘法*/sfrw MPYS = MPYS_;#define MAC_ 0x0134 /* 无符号乘加 */sfrw MAC = MAC_;#define MACS_ 0x0136 /* 有符号乘加 */sfrw MACS = MACS_;#define OP2_ 0x0138 /* 第二乘数 */sfrw OP2 = OP2_;#define RESLO_ 0x013A /* 低6位结果寄存器 */sfrw RESLO = RESLO_;#define RESHI_ 0x013C /* 高6位结果寄存器 */sfrw RESHI = RESHI_;#define SUMEXT_ 0x013E /*结果扩展寄存器 */const sfrw SUMEXT = SUMEXT_;/************************************************************* DIGITAL I/O Port1/2 寄存器定义有中断功能************************************************************/#define P1IN_ 0x0020 /* P1 输入寄存器 */const sfrb P1IN = P1IN_;#define P1OUT_ 0x0021 /* P1 输出寄存器 */sfrb P1OUT = P1OUT_;#define P1DIR_ 0x0022 /* P1 方向选择寄存器 */sfrb P1DIR = P1DIR_;#define P1IFG_ 0x0023 /* P1 中断标志寄存器*/sfrb P1IFG = P1IFG_;#define P1IES_ 0x0024 /* P1 中断边沿选择寄存器*/ sfrb P1IES = P1IES_;#define P1IE_ 0x0025 /* P1 中断使能寄存器 */sfrb P1IE = P1IE_;#define P1SEL_ 0x0026 /* P1 功能选择寄存器*/sfrb P1SEL = P1SEL_;#define P2IN_ 0x0028 /* P2 输入寄存器 */const sfrb P2IN = P2IN_;#define P2OUT_ 0x0029 /* P2 输出寄存器 */sfrb P2OUT = P2OUT_;#define P2DIR_ 0x002A /* P2 方向选择寄存器 */sfrb P2DIR = P2DIR_;#define P2IFG_ 0x002B /* P2 中断标志寄存器 */sfrb P2IFG = P2IFG_;#define P2IES_ 0x002C /* P2 中断边沿选择寄存器 */ sfrb P2IES = P2IES_;#define P2IE_ 0x002D /* P2 中断使能寄存器 */sfrb P2IE = P2IE_;#define P2SEL_ 0x002E /* P2 功能选择寄存器 */sfrb P2SEL = P2SEL_;/************************************************************ * DIGITAL I/O Port3/4寄存器定义无中断功能************************************************************/#define P3IN_ 0x0018 /* P3 输入寄存器 */const sfrb P3IN = P3IN_;#define P3OUT_ 0x0019 /* P3 输出寄存器 */sfrb P3OUT = P3OUT_;#define P3DIR_ 0x001A /* P3 方向选择寄存器 */sfrb P3DIR = P3DIR_;#define P3SEL_ 0x001B /* P3 功能选择寄存器*/sfrb P3SEL = P3SEL_;#define P4IN_ 0x001C /* P4 输入寄存器 */const sfrb P4IN = P4IN_;#define P4OUT_ 0x001D /* P4 输出寄存器 */sfrb P4OUT = P4OUT_;#define P4DIR_ 0x001E /* P4 方向选择寄存器 */sfrb P4DIR = P4DIR_;#define P4SEL_ 0x001F /* P4 功能选择寄存器 */sfrb P4SEL = P4SEL_;/************************************************************ * DIGITAL I/O Port5/6 I/O口寄存器定义PORT5和6 无中断功能************************************************************/#define P5IN_ 0x0030 /* P5 输入寄存器 */const sfrb P5IN = P5IN_;#define P5OUT_ 0x0031 /* P5 输出寄存器*/sfrb P5OUT = P5OUT_;#define P5DIR_ 0x0032 /* P5 方向选择寄存器*/sfrb P5DIR = P5DIR_;#define P5SEL_ 0x0033 /* P5 功能选择寄存器*/sfrb P5SEL = P5SEL_;#define P6IN_ 0x0034 /* P6 输入寄存器 */const sfrb P6IN = P6IN_;#define P6OUT_ 0x0035 /* P6 输出寄存器*/sfrb P6OUT = P6OUT_;#define P6DIR_ 0x0036 /* P6 方向选择寄存器*/sfrb P6DIR = P6DIR_;#define P6SEL_ 0x0037 /* P6 功能选择寄存器*/sfrb P6SEL = P6SEL_;#define BIT0 0x0001#define BIT1 0x0002#define BIT2 0x0004#define BIT3 0x0008#define BIT4 0x0010#define BIT5 0x0020#define BIT6 0x0040#define BIT7 0x0080#define BIT8 0x0100#define BIT9 0x0200#define BITA 0x0400#define BITB 0x0800#define BITC 0x1000#define BITD 0x2000#define BITE 0x4000#define BITF 0x8000/************************************************************ * STATUS REGISTER BITS************************************************************/#define C 0x0001#define Z 0x0002#define N 0x0004#define V 0x0100#define GIE 0x0008#define CPUOFF 0x0010#define OSCOFF 0x0020#define SCG0 0x0040#define SCG1 0x0080/* Low Power Modes coded with Bits 4-7 in SR */#ifndef __IAR_SYSTEMS_ICC /* Begin #defines for assembler */#define LPM0 CPUOFF#define LPM1 SCG0+CPUOFF#define LPM2 SCG1+CPUOFF#define LPM3 SCG1+SCG0+CPUOFF#define LPM4 SCG1+SCG0+OSCOFF+CPUOFF/* End #defines for assembler */#else /* Begin #defines for C */#define LPM0_bits CPUOFF#define LPM1_bits SCG0+CPUOFF#define LPM2_bits SCG1+CPUOFF#define LPM3_bits SCG1+SCG0+CPUOFF#define LPM4_bits SCG1+SCG0+OSCOFF+CPUOFF#include <In430.h>#define LPM0 _BIS_SR(LPM0_bits) /* Enter Low Power Mode 0 */ #define LPM0_EXIT _BIC_SR(LPM0_bits) /* Exit Low Power Mode 0 */ #define LPM1 _BIS_SR(LPM1_bits) /* Enter Low Power Mode 1 */ #define LPM1_EXIT _BIC_SR(LPM1_bits) /* Exit Low Power Mode 1 */ #define LPM2 _BIS_SR(LPM2_bits) /* Enter Low Power Mode 2 */ #define LPM2_EXIT _BIC_SR(LPM2_bits) /* Exit Low Power Mode 2 */ #define LPM3 _BIS_SR(LPM3_bits) /* Enter Low Power Mode 3 */ #define LPM3_EXIT _BIC_SR(LPM3_bits) /* Exit Low Power Mode 3 */ #define LPM4 _BIS_SR(LPM4_bits) /* Enter Low Power Mode 4 */ #define LPM4_EXIT _BIC_SR(LPM4_bits) /* Exit Low Power Mode 4 */ #endif /* End #defines for C *//************************************************************* PERIPHERAL FILE MAP************************************************************/* 特殊功能寄存器地址和控制位************************************************************/ /*中断使能1*/#define IE1_ 0x0000sfrb IE1 = IE1_;#define WDTIE 0x01 /*看门狗中断使能*/#define OFIE 0x02 /*外部晶振故障中断使能*/#define NMIIE 0x10 /*非屏蔽中断使能*/#define ACCVIE 0x20 /*可屏蔽中断使能/flash写中断错误*/ #define URXIE0 0x40 /*串口0接收中断使能*/#define UTXIE0 0x80 /*串口0发送中断使能*//*中断标志1*/#define IFG1_ 0x0002sfrb IFG1 = IFG1_;#define WDTIFG 0x01 /*看门狗中断标志*/#define OFIFG 0x02 /*外部晶振故障中断标志*/#define NMIIFG 0x10 /*非屏蔽中断标志*/#define URXIFG0 0x40 /*串口0接收中断标志*/#define UTXIFG0 0x80 /*串口0发送中断标志*//* 中断模式使能1 */#define ME1_ 0x0004sfrb ME1 = ME1_;#define URXE0 0x40 /* 串口0接收中断模式使能 */#define USPIE0 0x40 /* 同步中断模式使能 */#define UTXE0 0x80 /* 串口0发送中断模式使能 *//* 中断使能2 */#define IE2_ 0x0001sfrb IE2 = IE2_;#define URXIE1 0x10 /* 串口1接收中断使能 */#define UTXIE1 0x20 /* 串口1发送中断使能 *//* 中断标志2 */#define IFG2_ 0x0003sfrb IFG2 = IFG2_;#define URXIFG1 0x10 /* 串口1接收中断标志 */#define UTXIFG1 0x20 /* 串口1发送中断标志 *//* 中断模式使能2 */#define ME2_ 0x0005sfrb ME2 = ME2_;#define URXE1 0x10 /* 串口1接收中断模式使能 */#define USPIE1 0x10 /* 同步中断模式使能 */#define UTXE1 0x20 /* 串口1发送中断模式使能 */* 看门狗定时器的寄存器定义************************************************************/#define WDTCTL_ 0x0120sfrw WDTCTL = WDTCTL_;#define WDTIS0 0x0001 /*选择WDTCNT的四个输出端之一*/#define WDTIS1 0x0002 /*选择WDTCNT的四个输出端之一*/#define WDTSSEL 0x0004 /*选择WDTCNT的时钟源*/#define WDTCNTCL 0x0008/*清除WDTCNT端: 为1时从0开始计数*/#define WDTTMSEL 0x0010 /*选择模式 0: 看门狗模式; 1: 定时器模式*/#define WDTNMI 0x0020/*选择NMI/RST 引脚功能 0:为 RST; 1:为NMI*/#define WDTNMIES 0x0040/*WDTNMI=1时.选择触发延 0:为上升延 1:为下降延*/ #define WDTHOLD 0x0080 /*停止看门狗定时器工作 0:启动;1:停止*/#define WDTPW 0x5A00 /* 写密码:高八位*//* SMCLK= 1MHz定时器模式 */#defineWDT_MDLY_32 WDTPW+WDTTMSEL+WDTCNTCL /* TSMCLK*2POWER15=32ms 复位状态 */#defineWDT_MDLY_8 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0 /* TSMCLK*2POWER13=8.192ms " */#defineWDT_MDLY_0_5 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */#defineWDT_MDLY_0_064 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0 /* TSMCLK*2POWER6=0.512ms " *//* ACLK=32.768KHz 定时器模式*/#defineWDT_ADLY_1000 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */#defineWDT_ADLY_250 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0 /* TACLK*2POWER13=250ms " */#defineWDT_ADLY_16 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1/* TACLK*2POWER9=16ms" */#defineWDT_ADLY_1_9 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDT IS0 /* TACLK*2POWER6=1.9ms " *//* SMCLK=1MHz看门狗模式 */#defineWDT_MRST_32 WDTPW+WDTCNTCL /* TSMCLK*2POWER15=32ms 复位状态 */#defineWDT_MRST_8 WDTPW+WDTCNTCL+WDTIS0 /* TSMCLK*2POWER13=8.192ms " */#defineWDT_MRST_0_5 WDTPW+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */#defineWDT_MRST_0_064 WDTPW+WDTCNTCL+WDTIS1+WDTIS0 /* TSMCLK*2POWER6=0.512ms " *//* ACLK=32KHz看门狗模式 */#defineWDT_ARST_1000 WDTPW+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */#defineWDT_ARST_250 WDTPW+WDTCNTCL+WDTSSEL+WDTIS0 /* TACLK*2POWER13=250ms " */#defineWDT_ARST_16 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1 /* TACLK*2POWER9=16ms" */#defineWDT_ARST_1_9 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0 /* TACLK*2POWER6=1.9ms " *//************************************************************ 硬件乘法器的寄存器定义************************************************************/#define MPY_ 0x0130 /* 无符号乘法 */sfrw MPY = MPY_;#define MPYS_ 0x0132 /* 有符号乘法*/sfrw MPYS = MPYS_;#define MAC_ 0x0134 /* 无符号乘加 */sfrw MAC = MAC_;#define MACS_ 0x0136 /* 有符号乘加 */sfrw MACS = MACS_;#define OP2_ 0x0138 /* 第二乘数 */sfrw OP2 = OP2_;#define RESLO_ 0x013A /* 低6位结果寄存器 */ sfrw RESLO = RESLO_;#define RESHI_ 0x013C /* 高6位结果寄存器 */ sfrw RESHI = RESHI_;#define SUMEXT_ 0x013E /*结果扩展寄存器 */const sfrw SUMEXT = SUMEXT_;/************************************************************ * DIGITAL I/O Port1/2 寄存器定义有中断功能************************************************************/#define P1IN_ 0x0020 /* P1 输入寄存器 */const sfrb P1IN = P1IN_;#define P1OUT_ 0x0021 /* P1 输出寄存器 */sfrb P1OUT = P1OUT_;#define P1DIR_ 0x0022 /* P1 方向选择寄存器 */ sfrb P1DIR = P1DIR_;#define P1IFG_ 0x0023 /* P1 中断标志寄存器*/sfrb P1IFG = P1IFG_;#define P1IES_ 0x0024 /* P1 中断边沿选择寄存器*/ sfrb P1IES = P1IES_;#define P1IE_ 0x0025 /* P1 中断使能寄存器 */sfrb P1IE = P1IE_;#define P1SEL_ 0x0026 /* P1 功能选择寄存器*/sfrb P1SEL = P1SEL_;#define P2IN_ 0x0028 /* P2 输入寄存器 */const sfrb P2IN = P2IN_;#define P2OUT_ 0x0029 /* P2 输出寄存器 */sfrb P2OUT = P2OUT_;#define P2DIR_ 0x002A /* P2 方向选择寄存器 */sfrb P2DIR = P2DIR_;#define P2IFG_ 0x002B /* P2 中断标志寄存器 */sfrb P2IFG = P2IFG_;#define P2IES_ 0x002C /* P2 中断边沿选择寄存器 */ sfrb P2IES = P2IES_;#define P2IE_ 0x002D /* P2 中断使能寄存器 */sfrb P2IE = P2IE_;#define P2SEL_ 0x002E /* P2 功能选择寄存器 */sfrb P2SEL = P2SEL_;/************************************************************ * DIGITAL I/O Port3/4寄存器定义无中断功能************************************************************/#define P3IN_ 0x0018 /* P3 输入寄存器 */const sfrb P3IN = P3IN_;#define P3OUT_ 0x0019 /* P3 输出寄存器 */sfrb P3OUT = P3OUT_;#define P3DIR_ 0x001A /* P3 方向选择寄存器 */sfrb P3DIR = P3DIR_;#define P3SEL_ 0x001B /* P3 功能选择寄存器*/sfrb P3SEL = P3SEL_;#define P4IN_ 0x001C /* P4 输入寄存器 */const sfrb P4IN = P4IN_;#define P4OUT_ 0x001D /* P4 输出寄存器 */sfrb P4OUT = P4OUT_;#define P4DIR_ 0x001E /* P4 方向选择寄存器 */sfrb P4DIR = P4DIR_;#define P4SEL_ 0x001F /* P4 功能选择寄存器 */sfrb P4SEL = P4SEL_;/************************************************************ * DIGITAL I/O Port5/6 I/O口寄存器定义PORT5和6 无中断功能************************************************************/#define P5IN_ 0x0030 /* P5 输入寄存器 */const sfrb P5IN = P5IN_;#define P5OUT_ 0x0031 /* P5 输出寄存器*/sfrb P5OUT = P5OUT_;#define P5DIR_ 0x0032 /* P5 方向选择寄存器*/sfrb P5DIR = P5DIR_;#define P5SEL_ 0x0033 /* P5 功能选择寄存器*/sfrb P5SEL = P5SEL_;#define P6IN_ 0x0034 /* P6 输入寄存器 */const sfrb P6IN = P6IN_;#define P6OUT_ 0x0035 /* P6 输出寄存器*/sfrb P6OUT = P6OUT_;#define P6DIR_ 0x0036 /* P6 方向选择寄存器*/sfrb P6DIR = P6DIR_;#define P6SEL_ 0x0037 /* P6 功能选择寄存器*/sfrb P6SEL = P6SEL_;* 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时装载 */#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 /* 段编程使能 *//* FLASH 控制寄存器2 :控制时钟分频*/#define FN_0 0x0000 /*直通 */#define FN_1 0x0001 /*2分频 */#define FN_2 0x0002 /*3分频*/#define FN_3 0x0003 /*4分频 */#define FN_4 0x0004 /*5分频 */#define FN_5 0x0005 /*6分频*/#define FN_6 0x0006 /*7分频 */#define FN_7 0x0007 /*8分频*/#define FN_8 0x0008 /*9分频 */#define FN_9 0x0009 /*10分频 */#define FN_10 0x000A /*11分频*/#define FN_11 0x000B /*12分频 */#define FN_12 0x000C /*13分频*/#define FN_13 0x000D /*14分频 */#define FN_14 0x000E /*15分频 */#define FN_15 0x000F /*16分频*/#define FN_16 0x0010 /*17分频 */#define FN_17 0x0011 /*18分频*/#define FN_18 0x0012 /*19分频 */#define FN_19 0x0013 /*20分频 */#define FN_20 0x0014 /*21分频*/ #define FN_21 0x0015 /*22分频 */ #define FN_22 0x0016 /*23分频*/ #define FN_23 0x0017 /*24分频 */ #define FN_24 0x0018 /*25分频 */ #define FN_25 0x0019 /*26分频*/ #define FN_26 0x001A /*27分频 */ #define FN_27 0x001B /*28分频*/ #define FN_28 0x001C /*29分频 */ #define FN_29 0x001D /*30分频 */ #define FN_30 0x001E /*31分频*/ #define FN_31 0x001F /*32分频 */ #define FN_32 0x0020 /*33分频*/ #define FN_33 0x0021 /*34分频 */ #define FN_34 0x0022 /*35分频 */ #define FN_35 0x0023 /*36分频*/ #define FN_36 0x0024 /*37分频 */ #define FN_37 0x0025 /*38分频*/ #define FN_38 0x0026 /*39分频 */ #define FN_39 0x0027 /*40分频 */ #define FN_40 0x0028 /*41分频*/ #define FN_41 0x0029 /*42分频 */ #define FN_42 0x002A /*43分频*/ #define FN_43 0x002B /*44分频 */ #define FN_44 0x002C /*45分频 */ #define FN_45 0x002D /*46分频*/ #define FN_46 0x002E /*47分频 */ #define FN_47 0x002F /*48分频*/ #define FN_48 0x0030 /*49分频 */ #define FN_49 0x0031 /*50分频 */ #define FN_50 0x0032 /*51分频*/ #define FN_51 0x0033 /*52分频 */ #define FN_52 0x0034 /*53分频*/ #define FN_53 0x0035 /*54分频 */ #define FN_54 0x0036 /*55分频 */ #define FN_55 0x0037 /*56分频*/ #define FN_56 0x0038 /*57分频 */ #define FN_57 0x0039 /*58分频*/ #define FN_58 0x003A /*59分频 */ #define FN_59 0x003B /*60分频 */ #define FN_60 0x003C /*61分频*/ #define FN_61 0x003D /*62分频 */ #define FN_62 0x003E /*63分频*/ #define FN_63 0x003F /*64分频 */#define FSSEL_0 0x0000 /* Flash时钟选择: ACLK */#define FSSEL_1 0x0040 /* Flash时钟选择: MCLK */#define FSSEL_2 0x0080 /* Flash时钟选择: SMCLK */#define FSSEL_3 0x00C0 /* Flash时钟选择: SMCLK *//* FLASH 控制寄存器3:状态标志 */#define BUSY 0x0001 /* Flash忙标志*/#define KEYV 0x0002 /* Flash安全键值出错标志 */#define ACCVIFG 0x0004 /* Flash非法访问中断标志*/#define WAIT 0x0008 /* 等待指示信号位*/#define LOCK 0x0010 /* 锁定位 */#define EMEX 0x0020 /* 紧急退出位 *//************************************************************* Comparator A 比较器A寄存器定义************************************************************/#define CACTL1_ 0x0059 /* 比较器A控制寄存器1 */sfrb CACTL1 = CACTL1_;#define CACTL2_ 0x005A /* 比较器A控制寄存器2 */sfrb CACTL2 = CACTL2_;#define CAPD_ 0x005B /*比较器A端口禁止寄存器*/sfrb CAPD = CAPD_;/* 比较器A控制寄存器1 */#define CAIFG 0x01 /*比较器A中断标志*/#define CAIE 0x02 /* 比较器A中断使能 */#define CAIES 0x04/* 比较器A中断边沿触发选择 0:上升延 1:下降延 */ #define CAON 0x08 /* 比较器电源开关*/#define CAREF0 0x10 /* 选择参考源位0 */#define CAREF1 0x20 /* 选择参考源位1 */#define CARSEL 0x40/* 选择内部参考源加到比较器的正端或负端 */#define CAEX 0x80 /* 交换比较器的输入端 */#define CAREF_0 0x00 /* 选择参考源0 : Off 使用外部参考源*/#define CAREF_1 0x10 /* 选择参考源1 : 0.25*Vcc为参考源 */#define CAREF_2 0x20 /* 选择参考源2 : 0.5*Vcc为参考源 */#define CAREF_3 0x30 /* 选择参考源3 : Vt*//* 比较器A控制寄存器2 */#define CAOUT 0x01 /* 比较器输出 */#define CAF 0x02 /* 选择比较器是否经过RC低通滤波器 */#define P2CA0 0x04 /* 外部引脚信号连接到比较器A的CA0 */#define P2CA1 0x08 /* 外部引脚信号连接到比较器A的CA1 */#define CACTL24 0x10#define CACTL25 0x20。
基于MSP430F5418A的井口压力计
![基于MSP430F5418A的井口压力计](https://img.taocdn.com/s3/m/b7af928a2b160b4e777fcfb2.png)
基于MSP430F5418A的井口压力计摘要:为了实现对油田注水井压力的采集、显示、存储及远传功能,设计了一款以单片机MSP430F5418A为核心的井口压力计。
通过采集介质的压力,利用高分辨率的模数转换芯片把压力信号转换成单片机可识别的数字信号,然后对此信号进行处理,通过液晶屏进行显示、数据存储并输出标准工业信号,方便数据采集和传输,进而实现井场的数字化管理。
1 引言油田注水是油气开采过程的重要工作之一,油田的注水开发在油田的开发过程中具有极其重要的意义,通过精确测试注水井的压降过程,控制注水量保持地层压力,是实现油田稳、高产的一项重要技术。
注水作为油藏稳压、增产的重要方法之一,在世界范围内得到了广泛的应用。
注水井在注水开发中起着相当重要的作用,利用注水井试井评价油藏动态,监控注水过程具有重要意义,注水井压降资料的应用是认识油藏、评价油藏及油藏动态监测的重要方法之一,能有效反映油藏动态参数。
为油田较长期稳产和高产打下良好的基础。
2 工作原理该压力计是机电一体化的高技术产品,主要由压力测试系统、温度测试系统和控制部分等组成。
压力测试系统是该装置的关键部分,其通过高精度的压力传感器实时采集介质压力,然后把压力信号通过高分辨率的模数转换芯片转换成单片机可识别的数字信号;温度测试系统通过高精度的温度传感器实时采集温度信号,然后把温度信号通过高分辨率的模数转换芯片转换成单片机可识别的数字信号;控制部分通过当前的温度参数对压力值进行实时补偿,已得到最准确的压力值;然后对此上述参数进行存储、显示以及RS485远传。
3 硬件设计3.1硬件整体结构硬件设计时,需根据仪器使用的现场工况以及整体性能要求,选择合适的元器件[1]。
油田注水井大多没有大多数井场没有电力设施,所以,此次设计必须要考虑降低功耗设计,硬件功能上实现外界电源和电池供电自动切换[2]。
此次设计的井口压力计硬件电路部分主要由电源管理模块、主控模块、温度和压力检测电路模块、液晶显示模块、数据存储模块及RS485数据远传模块等组成。
MSP430F5XX 中文翻译第十九章 USCI—UART模式
![MSP430F5XX 中文翻译第十九章 USCI—UART模式](https://img.taocdn.com/s3/m/6b92e1dd6f1aff00bed51e83.png)
第19章USCI-UART 5xx通用串行通信接口(USCI)支持多种串行通信模式。
本章讨论异步UART模式的操作。
目录:19.1 USCI概述19.2 USCI介绍:UART模式19.3 USCI操作:UART模式19.4 USCI存储器:UART模式19.1 USCI概述通用串行通信接口(USCI)模块支持多种串行通信模式。
不同的USCI模块支持不同的模式。
每一个不同的USCI模块以不同的字母命名。
例如,USCI_A和USCI_B不同,等等。
如果在一个器件中有一个以上相同的USCI模块,它们被命名为USCI_A0和USCI_A1。
可以参阅具体器件的数据手册来确定哪些器件上有哪些USCI模块。
USCI_Ax模块支持:●UART模块●具有脉冲整形功能的IrDA通信●自动波特率检测的LIN通信●SPI模式USCI_Bx模块支持:●IIC模式●SPI模式19.2 USCI介绍:UART模式在异步模式下,USCI_Ax模块通过两个外部引脚UCAxRXD和UCAxTXD连接MSP430和外部系统。
当UCSYNC位清零时,选择UART模式。
UART模块特征包括:●7位或者8位数据,奇校验,偶校验或者无校验●独立的发送和接收移位寄存器●独立的发送和接受缓冲寄存器●最低位优先或者最高位优先的数据发送和接收●内置线路空闲和地址位通信协议的多处理器系统●接收机起始边沿检测能自动从LPMx模式唤醒●波特率可编程及小数调整●错误检测和抑制的状态标志●地址检测状态标志位●独立的发送和接受中断能力图19-1显示了USCI_Ax配置为UART模式的框图。
图19-1 USCI_Ax框图:UART模式(UCSYNC = 0)19.3 USCI操作:UART模式在UART串口模式下,USCI以一个比特的速率和其他的设备之间进行异步的传送和接收数据。
发送每一个字符的时间是由USCI选择的波特率决定的。
发送和接收功能使用相同的波特率。
基于MSP430F5418的低功耗翻斗流量计(赵璐)
![基于MSP430F5418的低功耗翻斗流量计(赵璐)](https://img.taocdn.com/s3/m/254cc57125c52cc58bd6be4f.png)
赵璐,贾先
(1.西安思源学院工学院,陕西省西安市,710065;2.西安思源学院工学院,陕西省西安市,710065)
摘要:煤层气井是通过排水降压实现气体产出,为了避免排采过程中储层应力敏感和速敏造成的储层伤害,要求有严格的排水量控制,使得液面缓慢、匀速下降。根据目前煤层气井排采对产出液的计量需求,结合其在实际排采生产中的流量特性,提出一种翻斗结构的流量计,可以计量间歇出液、非满管、含煤粉、具有腐蚀性气液两相中液相流体的平均流量和累计流量,以满足现场对流量计量的需求。
M2=G2l
当M2≥M1+M0,计量翻斗将自行翻转。式中M0为摩擦力矩。
在斗形计量容器两侧端面的一定位置上设有固定转轴,在支架上装有挡板,使翻斗保持一个处于进液位置,另一个处于排液位置。当进液斗达到翻转重量时便翻转为排液状态,排液斗立即进入进液位置,如此循环往复实现连续计量。
基于上述原理的翻斗流量计采用预定时间内记录翻转的斗数的方法计算产量。这种方法的计算公式为
2系统总体设计
翻斗流量计是利用计量斗内装有液体后,由于重心位移失去平衡而翻转的原理制成,如图1所示:
图1翻斗流量计翻转原理
当计量翻斗为空斗时,其重心在中心隔板的一定高度A处。空斗产生的重力为G1,距支点O垂直距离为L,这时空斗的扭矩M1为
M1=G1L
当计量斗内盛有液体后,其重心在三角形容器的垂直平分面某一点B上,该点对支点O的距离为l,当斗内液体产生的重力为G2时,其扭矩M2为
3.5显示模块
显示部分使用深圳九立科技发展有限公司生产的低功耗LCD,工作电流只有210uA,在强光下可视,型号为LCM120711C。数据主要显示累积时间、累积流量和平均流量。电路如图7所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
混合信号单片机
特征
低电源电压范围:1.8 V至3.6 V
超低功耗
主动模式
所有系统时钟模式
230微安/ MHz的频率为8 MHz,3.0伏,闪存程序执行
110微安/ MHz的频率为8 MHz,3.0伏,内存程序执行
待机模式
实时时钟,看门狗
电源监控操作,全内存保留,快速工作
1.7 μA at
2.2 V, 2.1 μA at
3.0 V (Typical)
低功耗振荡器
通用计数器,看门狗,和电源监控操作,全内存保留,快速上电1.2 μA at 3.0 V (Typical)
关闭模式
电源监控操作,全内存保留,快速上电
1.2 μA at 3.0 V (Typical)
关断模式
0.1μA at 3.0 V (Typical)
唤醒时间小于5μs的待机模式
16位RISC构架
内存扩展
高达25 MHz的系统时钟
灵活的电源管理系统
完全集成的LDO稳压随着可编程核心供电电压
电源电压监控,监测和掉电
统一时钟系统
FLL的稳定控制回路频
Low-Power/Low-Frequency内部时钟源(VLO)
低频修剪过的内部参考源
32-kHz 石英钟
高频率高达32 MHz的石英钟
16位定时器TA0,有五个Timer_A捕捉/比较寄存器
16位定时器TA1的,有三个Timer_A捕捉/比较寄存器
16位定时器TB0,七Timer_B捕捉/比较寄存器的阴影
多达四个通用串行通信接口
USCI_A0,USCI_A1,USCI_A2,和USCI_A3相互支持
增强型UART支持自动波特率检测
IrDA编码器和解码器
同步SPI
USCI_B0,USCI_B1,USCI_B2,和USCI_B3相互支持
I2CTM
同步SPI
12位模数(A / D)转换器
内部参考
采样和保持
自动扫描特性
14个外部通道,2个内部通道
支持32位操作的硬件乘法器
板载串行编程,无需外部编程电压
三通道内部DMA
带有实时时钟功能的基本定时器
家庭成员如表1所示
如需完整的模块说明,请参见MSP430x5xx系列用户指南(SLAU208)。