一、简介
1.1CPU:
16-bit RISC
除program-flow指令外所有指令都在寄存器和7种源操作数寻址方式及4种目的操作数合作下执行
16个寄存器,register-to-register指令执行时间是一个CPU时钟
R0 程序计数器寄存器20-bit
R1 堆栈指针20-bit
R2 状态寄存器16-bit
R3 不变的产生器
R4~R15 通用寄存器
1.2指令集:
51指令 3格式 7中寻址方式 附加指令
1.3操作模式
6个可软件设置的LOW-POWER模式 一个中断事件可以唤醒5个模式中的任何一个,响应请求,并从中断程序中返回原模式
Mode ACTIVE DISABLED
Active mode (AM) 所有时钟ACTIVE
Low-power mode 0 (LPM0) ACLK SMCLK FLL CPU MCLK
LPM1 ACLK SMCLK CPU FLL MCLK
LPM2 DCO发生器 ACLK CPU MCLK FLL DCOCLK
LPM3 ACLK CPU MCLK FLL DCOCLK DC发生器
LPM4 晶振关闭 完整数据保留
LPM5 内部调节器关闭 无数据保留 通过RST和IO唤醒
1.4中断矢量
地址:FFFF~FF80H
1.5 SFR
处于最低地址空间 可以进行字访问和字节访问
1.6存储
256K闪存空间 64K程序存储器 16KRAM 512BBSL程序装载器用于编程存储器串连接口
1.7外围
时钟:支持统一的时钟系统UCS包括:
32K手表晶振(XT1 低频模式)
内部低频振荡器VLO
内部平衡低频振荡器REFO
内部集成数字控制器DCO
高频晶振(XT1高频模式 or XT2)
FLL锁频环连同一个数字调节器使得DCO构成一个多倍可编程的手表晶振
时钟信号:ACLK 32K手表晶振、高频晶振、VLO、REFO、DCO
MCLK CPU用,来源同ACLK
SMCLK 用于外围来源同ACLK
多分频ACLK
电源管理模块(PMM)
包括一个集成的PMM电压调节器,提供核心电压设备和包含可编程的产出水平,来提供电力的优化。
还包括SVS和SVM电路即降压保护,可用来产生内部复位信号
实时时钟RTC:用来作为32位的多用计数器或实时时钟,计数模式下,RTC有两个独立的8位计数器可被级联成16位的计数器
ADC12_A:
支持一个快速的12位的AD转换器
12位的SAR核心、简单选择控制、参考发生器、16字的BUFF可在CPU不参与的情况下允许16个独立的ADC采样
N=选择的时钟频率/波特率=UBR1x(整数部分的高位)+UBR0x(整数部分的低位)+小数部分(小数部分=调整因子个数/8)
例如:串口配置选用时钟为32768KHz,波特率为9600,则N=32768/9600=3.41。所以,UBR1x=0,UBR0x=3,调整因子个数/8=0.41 =>调整因子个数=3 =>UMCTLx=01010010(原则是调整因子"1"分布要均匀)。
1.8系统复位及初始化
掉电复位(BOR)》上电复位(POR)》PUC
Rst/nmi配置成复位状态,I/O口恢复到输入状态、状态寄存器复位、看门狗到看门狗状态
1.9中断源:系统复位
可屏蔽中断、
不可屏蔽(系统不可屏蔽中断和用户不可屏蔽中断)
二.USC
5个时钟源:
XT1CLK:有低频(LF)和高频(HF)模式,低频32768HZ的手表晶振、标准晶振、谐振器或者外部的4M~32MHZ的晶振
VLOCLK:内部10KHZ低功率、低频振荡器
REFOCLK:内部32768HZ平衡的、低频参考振荡器、作为FLL的参考晶振
DCOCLK:内部数字控制振荡器,可被FLL稳定
XT2CLK:可选的高频振荡源,可选用标准晶振、谐振器或来自外部的4M~40MHZ的晶振
3个时钟信号
ACLK:辅助时钟,可软件设置为XT1CLK, REFOCLK, VLOCLK, DCOCLK,DCOCLKDIVXT2CLK,DCOCLKDIV is the DCOCLK frequency divided by 1, 2, 4,8, 16, or 32 within the FLL block.用于外围模块
MCLK:主时钟,可软件设置为XT1CLK, REFOCLK, VLOCLK, DCOCLK,DCOCLKDIVXT2CLK, DCOCLKDIV is the DCOCLK frequency divided by 1, 2, 4,8, 16, or 32 within the FLL block.用于CPU和系统
SMCLK:子时钟,可软件设置为XT1CLK, REFOCLK, VLOCLK, DCOCLK,DCOCLKDIVXT2CLK, DCOCLKDIV is the DCOCLK frequency divided by 1, 2, 4,8, 16, or 32 within the FLL block.用于外围独立的模块。
USC系统默认配置:
XT1在低频模式下作为振荡源给XT1CLK、XT1CLK提供给ACLK
DCOCLKDIV提供给MCLK和SMCLK
FLL使能,XT1CLK作为FLL参考时钟FLLREFCLK
XIN和XOUT设为普通I/O口功能、XT1处于关闭状态直到XT1操作配置该I/O口
XT2IN和XT2OUT同样被配成普通I/O口,XT2关闭
REFO:
32768HZ提供一个稳定的参考晶振为FLLREFCLK,它联合FLL在不需要晶体的情况下可提供范围灵活的系统时钟设置,REFO不工作时不耗电!if the REFO oscillator is not used to source MCLK, SMCLK. or FLLREFCLK. The OSCOFF bit disables REFO for LPM4.
XT1:
LF模式下支持一个极低功耗的32768MHZ的手表晶振,内部XCAP为其提供下载电容,也可通过外加电容
HF模式下需要加外部电容,通过XT1DRIVE设置驱动器力度,以便减少功耗;XT1BYPASS设置可与外部晶振信号一起使用,此时处于休眠状态;
XT2:相同于XT1的HF模式
DCO:一般配合FLL一起使用
XT2CLK (if available) The value of n is defined by the FLLREFDIVx (n = 1, 2, 4, 8, 12, or 16). default is n = 1.
fDCOCLK = D×(N + 1) ×(fFLLREFCLK /n)
fDCOCLKDIV = (N + 1) × (fFLLREFCLK /n)
FLL:
连续不断的把一个频率计分器相加或相减
寄存器:
UCSCTL0,
UCSCTL1,对DCO的设置寄存器
UCSCTL2,FLL分频、倍乘N
UCSCTL3,对FLL参考晶振的选择、分频FLLREFCLK
UCSCTL4,设置ACLK、MCLK、SMCLK时钟来源,
UCSCTL5,设置外部ACLK、ACLK、MCLK、SMCLK分频
UCSCTL6,对XT1、XT2的允许范围,旁路,开关
UCSCTL7,XT2、XT1、DC0时钟中断错误标志
UCSCTL8,MODOSC、ACLK、SMCLK、MCLK条件响应请求标志
附注:DCO设置:
fDCOCLK = D×(N + 1) ×(fFLLREFCLK /n)
fDCOCLKDIV = (N + 1) × (fFLLREFCLK /n) = fDCOCLK/D
UCSCTL1,DCORSEL 设置DCOCLK的频率范围,在频率范围内可满足其参考时钟源的倍频,若超出范围,则用FLLN无法完成倍频
DISMOD 使能调整
UCSCTL2,FLLD 设置D的值,(1、2、4、8……)
FLLN 设置N的值,在DCOCLK的频率范围内才可以实现对其参考晶振的倍频
UCSCTL3,SELREF,选择参考晶振
FLLREFDIV对参考晶振进行分频(1/2/4/8……)
三、看门狗
看门狗功能和间隔定时功能
看门狗中断标志位WDTIFG;
看门狗中断使能WDTIE;
WDTCTL 看门狗时钟(00为SMCLK)选择、模式选择、间隔设定
四、通用串口
两类串口模块:USCI_Ax——UART\IrDA\SPI
USCI_Bx——I2C\SPI
4.1(UART模式)
特点:
两根线UCAxTXD、UCAxRXD;独立的收发移位寄存器和缓冲寄存器;波特率自动检测,可编程设置;状态寄存器提供错误监测和抑制、地址监测;独立收发中断
异步传输格式:(UCMODEx)
UCIDLE:在IDLE-LINE模式下,表示该模式开启的标志位;
UCDORM控制数据传输,置位时,所有非地址字节数据被装配但不送入缓存RXBUF中;
UCRXIFG:溢出标志,缓存中有数据进入则置位;
UCRXEIE:置位时所有可用的错误标志位可置位;
UCTXADDR:地址数据进入TXBUF置位,字节完成后自动清位;
UCBRK:检测到break则置位;UCTXBRK
IrDA解码与编码:
对每个低位(0)数据调职为脉冲
UCIRTXPLx 规定脉冲调制时间为若干个半时钟周期;时钟由UCIRXCLK选择;
UCIRTXCLK = 1 : UCIRTXPLx = 6 - 1 = 5.
UCIRTXCLK = 0 : UCIRTXPLx = tPULSE ′ 2 ′ fBRCLK – 1
解码:滤波!UCIRRXEF滤波标志,长脉冲过、低脉冲丢弃
程序编制的滤波长度:UCIRRXFLx = (tPULSE – tWAKE) ′ 2 ′ fBRCLK – 4
自动错误监测:UCRXEIE
帧错误(UCFE)、校验错误(UCPE)、接受溢出错误(UCOE)、Break(UCBRK)
波特率产生:
低频模式(UCOS16 = 0),来自低频时钟源,最大波特率时源晶振BRCLK的1/3;
N is the number of BRCLKs per BITCLK.
过采样模式:(UCOS16 = 1),支持在高电平时钟信号下采样位流;支持IrDA
最大波特率时源晶振BRCLK的1/16;
中断:中断适量寄存器UCAxIV
寄存器:(8位)
UCAxCTL0:校验使能与选择、MSB、数据长度、停止位、工作模式、同步异步选择
UCAxCTL1:时钟信号、错误标志与Break使能、休眠(UCDORM)、复位时能、地址与数据选择
UCAxBR0,UCAxBR1:波波特率设置
UCAxMCTL:调整控制寄存器 UCBRFx UCBRSx UCOS16 模式选择
UCAxSTAT:状态寄存器、错误标志位、
UCAxRXBUF\UCAxTXBUF
UCAxIRTCTL:红外发送脉冲长度、发送时钟、调制使能
UCAxIRRCTL:红外接收脉冲长度、发送时钟、调制使能
UCAxABCTL:自动波特率控制寄存器
UCAxIE: 中断使能
UCAxIFG:中断标志
UCAxIV:中断矢量
用户377235 2013-9-4 13:21
谈了这么多,仍然不知道如何确认我手提电话的电池的电量.
bjstar_970997020 2013-7-27 09:46
baohua.lv_497455161 2013-7-6 09:38
用户1010551 2013-7-5 23:03
baohua.lv_497455161 2013-6-24 21:12
用户1590967 2013-6-24 13:54
baohua.lv_497455161 2013-6-21 17:42
用户1703049 2013-6-21 08:59
用户377235 2013-6-20 17:45
chen_zs2012_704941858 2013-4-27 19:45