Microsoft Word - MSP430F³£ÓÃÄ£¿éÓ¦ÓÃÔ�Àí.doc

Size: px
Start display at page:

Download "Microsoft Word - MSP430F³£ÓÃÄ£¿éÓ¦ÓÃÔ�Àí.doc"

Transcription

1 微控设计网 中国 MSP430 单片机专业网站 MSP430F 常用模块应用原理 微控设计网版主 DC 策划原创于 : 最后更新 : V8.2

2 为了更好地引导 MSP430 单片机爱好者的入门, 微控设计网为大家整理了一个份 MS430 单片机入门资料, 希望能够帮助到更多的国内单片机爱好者朋友 如果你在学习或应用 MSP430 单片机过程中想与同行分享成果或交流技术问题, 欢迎进入我们的微控技术论坛 欢迎购买微控设计网 MSP430 单片机开发工具 DC 版主 QQ: 模块列表 1- 复位模块 2- 时钟模块 3- IO 端口模块 4- WDT 看门狗模块 5- Timer A 定时器模块 6- 比较器 A 模块 7- ADC12 数模转换模块 8- USART 串行异步通讯模块 9- CPU 模块及全局资料 10-MSP430 其它应用介绍

3 1- 复位模块 MSP430 单片机系统复位电路从上 MSP430 系统复位电路功能模块图中可以看到了两个复位信号, 一个是上电复位信号 POR(Power On Reset) 和上电清除信号 PUC(Power Up Clear) POR 信号是器件的复位信号, 此信号只有在以下的事件发生时才会产生 : 器件上电时 RST/NMI 引脚配置为复位模式, 当 RST/NMI 引脚生产低电平时 当 POR 信号产生时, 必然会产生 PUC 信号 ; 而 PUC 信号的产生时不会产生 POR 信号 会引起产生 PUC 信号的事件 : POR 信号发生时 启动看门狗时, 看门狗定时器计满时 向看门狗写入错误的安全参数值时 向片内 FLASH 写入错误的安全参数值时 MSP430 单片机系统复位后器件的初始当 POR 信号或 PUC 信号发生时引起器件复位后, 器件的初始化状态为 : RST/NMI 引脚配置为复位模式 I/O 引脚为输入模式

4 装态寄存器复位 程序计数器 (PC) 装入复位向量地址 0xFFFE,CPU 从此地址开发始执行 其它模块的寄存器初始化, 详情请查器件手册 POR 和 PUC 两者的关系 : POR 信号的产生会导致 系统复位 并 产生 PUC 信号 而 PUC 信号不会引起 POR 信号的产生 无论是 POR 信号还是 PUC 信号触发的复位, 都会使 MSP430 从地址 0xFFFE 处读取复位中断向量, 程序从中断向量所指的地址处开始执行 触发 PUC 信号的条件中, 除了 POR 产生触发 PUC 信号外, 其他的豆科一通过读取相应的中断向量来判断是何种原因引起的 PUC 信号, 以便作出相应的处理 系统复位 ( 指 POR) 后的状态为 : (1) RST/NMI 管脚功能被设置为复位功能 ; (2) 所有 I/O 管脚被设置为输入 ; (3) 外围模块被初始化, 其寄存器值为相关手册上的默认值 ; (4) 状态寄存器 SR 复位 ; (5) 看门狗激活, 进入工作模式 ; (6) 程序计数器 PC 载入 0xFFFE 处的地址, 微处理器从此地址开始执行程序 典型的复位电路有一下 3 种 : (1) 在 RST/NMI 管脚上接 100K 欧的上拉电阻 (2) 在 [1] 的基础上再接 0.1uf 的电容, 电容的一端接地, 可以使复位更加可靠 (3) 在 [2] 的基础上, 再在电阻上并接一个型号为 IN4008 的二极管, 可以可靠的实现系统断电后立即上电 2- 时钟模块

5 MSP430F1XX 系列时钟模块图 时基模块结构如上图 : MSP430 系列单片机基础时钟主要是由低频晶体振荡器, 高频晶体振荡器, 数字控制振荡器 (DCO), 锁频环 (FLL) 及 FLL+ 等模块构成 由于 430 系列单片机中的型号不同, 而时钟模块也将有所不同 虽然不同型号的单片机的时基模块有所不同, 但这些模块产生出来的结果是相同的. 在 MSP430F13 14 中是有 TX2 振荡器的, 而 MSP430F11X,F11X1 中是用 LFXT1CLK 来代替 XT2CLK 时钟信号的. 在时钟模块中有 3 个 ( 对于 F13,F14) 时钟信号源 ( 或 2 个时钟信号源, 对于 F11X F11X1): 1-LFXT1CLK: 低频 / 高频时钟源. 由外接晶体振荡器, 而无需外接两个振荡电容器. 较常使用的晶体振荡器是 32768HZ 2-XT2CLK: 高频时钟源. 由外接晶体振荡器 需要外接两个振荡电容器, 较常用的晶体振荡器是 8MHZ 3-DCOCLK: 数字可控制的 RC 振荡器

6 MSP430 单片机时钟模块提供 3 个时钟信号输出, 以供给片内各部电路使用 1-ACLK: 辅助时钟信号. 由图所示,ACLK 是从 FLXT1CLK 信号由 1/2/4/8 分频器分频后所得到的. 由 BCSCTL1 寄存器设置 DIVA 相应为来决定分频因子.ACLK 可用于提供 CPU 外围功能模块作时钟信号使用. 2-MCLK: 主时钟信号. 由图所示,MCLK 是由 3 个时钟源所提供的 他们分别是 LFXT1CLK,XT2CLK(F13 F14, 如果是 F11,F11X1 则由 LFXT1CLK 代替 ),DCO 时钟源信号提供.MCLK 主要用于 MCU 和相关系统模块作时钟使用 同样可设置相关寄存器来决定分频因子及相关的设置 3-SMCLK: 子系统时钟,SMCLK 是由 2 个时钟源信号所提供. 他们分别是 XT2CLK(F13 F14) 和 DCO, 如果是 F11 F11X1 则由 LFXT1CLK 代替 TX2CLK 同样可设置相关寄存器来决定分频因子及相关的设置 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 高频 以便能对系统硬件请求和事件作出快速响应 2 低频率, 以便将电流消耗降制至最少 3 稳定的频率, 以满足定时器的应用 4 低 Q 值振荡器, 以保证开始或停止操作没有延时 MSP430 采用了一个折衷的办法 : 就是用一个低频晶镇振, 将其倍频在高频的工作频率上 一般采用这种技术的实用方法有两种, 一个是说 锁相环 一个是锁频环, 而锁相环采用模拟的控制容易引起 失锁 和易引起电容量的改变 而 TI 采用的是锁频环技术, 它采用数字控制器 DCO 和频率积分来产生高频的运行时钟频率 低功耗设置的技巧问题 : 1 LPM4: 在振荡器关闭模式期间, 处理机的所有部件工作停止, 此时电流消耗最小 此时只有在系统上电电路检测到低点电平或任一请求异步响应中断的外部中断事件时才会从新工作 因此在设计上应含有可能需要用到的外部中断才采用这种模式 否则发生不可预料的结果 2 LPM3: 在 DC 发生器关闭期间, 只有晶振是活动的 但此时设置的基本时序条件的 DC 发生器的 DC 电流被关闭 由于此电路的高阻设计, 使功耗被抑制 注 : 当从 DC 关闭到启动 DC0 要花一端时间 (ns-us) 3 LPM2: 在此期间, 晶镇振和 DC 发生器是工作的, 所以可实现快速启动 4 LPM1: 在此振荡器已经工作, 所以不存在启动时间延时问题 结合上述特点, 在写程序时要综合考虑低功好耗特性, 对外部事件的安排也很重要 你必须在功能实现上综合考虑才能达到你预期的效果 使用 C 语言可用如下的语

7 句 :_BIS_SR(LMP3_bits) 和 _BIC_SR(LPM3 bits) LPM3 和 LPM3_EXIT 它们的定义是一样的 这里说明在 C 语言环境中有些定义的函数是不可见的 但你可以从 in430.h 文件看到它们的定义 DCOCTL DCO 控制寄存器 DCO.2 DCO.1 DCO.0 MOD.4 MOD.3 MOD.2 MOD.1 MOD.0 DCO.0-DCO.4 定义 8 种频率之一, 可以分段调节 DCOCLK 频率, 相邻两种频率相差 10% 而频率由注入直流发生器的电流定义 MOD.0-MOD.4 定义在 32 个 DCO 周期中插入的 Fdco+1 周期个数, 而在下的 DCO 周期中为 Fdco 周期, 控制改换 DCO 和 DCO+1 选择的两种频率 如果 DCO 常数为 7, 表示已经选择最高频率, 此时不能利用 MOD.0-MOD.4 进行频率调整 BCSCTL1 基本时钟系统控制寄存器 XT2OFF TXS DIVA.1 DIVA.0 XT5V Rsel.2 Resl.1 Resl.0 XT2OFF 控制 XT2 振荡器的开启与关闭 TX2OFF=0,XT2 振荡器开启 TX2OFF=1,TX2 振荡器关闭 ( 默认为 TX2 关闭 ) XTS 控制 LFXT1 工作模式, 选择需结合实际晶体振荡器连接情况 XTS=0,LFXT1 工作在低频模式 ( 默认 ) XTS=1,LFXT1 工作在高频模式 ( 必须连接有高频相应的高频时钟源 ) DIVA.0 DIVA.1 控制 ACLK 分频 0 不分频 ( 默认 ) 1 2 分频 2 4 分频 3 8 分频 XT5V 此位设置为 0 Resl1.0,Resl1.1,Resl1.2 三位控制某个内部电阻以决定标称频率 Resl=0, 选择最低的标称频率.. Resl=7, 选择最高的标称频率 BCSCTL2 基本时钟系统控制寄存器 SELM.1 SELM.0 DIVM.1 DIVM.0 SELS DIVS.1 DIVS.0 DCOR SELM.1 SELM.0 选择 MCLK 时钟源

8 0 时钟源为 DCOCLK( 默认 ) 1 时钟源为 DCOCLK 2 时钟源为 LFXT1CLK( 对于 MSP430F11/12X), 时钟源为 XT2CLK( 对于 MSP430F13/14/15/16X); 3 时钟源为 LFTXTICLK DIVM.1 DIVM.0 选择 MCLK 分频 0 1 分频 ( 默认 ) 1 2 分频 2 4 分频 3 8 分频 SELS 选择 SMCLK 时钟源 0 时钟源为 DCOCLK( 默认 ) 1 时钟源为 LFXT1CLK( 对于 MSP430F11/12X), 时钟源为 XT2CLK( 对于 MSP430F13/14/15/16X) DIVS.1 DIVS.0 选择 SMCLK 分频 0 1 分频 1 2 分频 2 4 分频 4 8 分频 DCOR 选择 DCO 电阻 0 内部电阻 1 外部电阻 PUC 信号之后,DCOCLK 被自动选择 MCLK 时钟信号, 根据需要,MCLK 的时钟源可以另外设置为 LFXT1 或者 XT2 设置顺序如下 : [1] 复位 OscOff [2] 清除 OFIFG [3] 延时等待至少 50us [4] 再次检查 OFIFG, 如果仍然置位, 则重复 [3] [4] 步骤, 直到 OFIFG=0 为止 时基模块应用范例 (1) 本例程是设置时钟模块的工作方式和相关的控制寄存器. 以 MSP430F149 和 C 程序编写. 设置主时钟信号 MCLK=TX2, 子时钟信号 SMCLK=DCOCLK, 将 MCLK 从 MSP430F149 的 P5.4 口输出, 在 F14X 系列中 P5.4 和 MCLK 是复用的,( 详情请看相关的芯片资料可查得 ) #include <msp430x14x.h>

9 void main (void) unsigned int i; WDTCL = WDTPW+WDTHOLD; // 停止看门狗 P5DIR = 0x10; // 设置 P5.4 输出 P5SEL = 0x10; // 设置 P5.4 口为外围模块用作 MCLK 信号输出 BCSCTL1 &= ~XT2OFF; // 使 TX2 有效,TX2 上电时默认为关闭的. do IFG1 &= ~OFIFG; // 清振荡器失效标志 for(i= 0xff; i>0; i--); // 延时, 待稳定. while ((IFG1 & OFIFG)!=0); BCSCTL2 = SELM1; for(;;); // 若振荡器失效标志有效 // 使 MCLK = XT2 时基模块应用范例 (2) XT1 时钟源外接高频晶体振荡器并使其工作在高频模式. 利用 P2.0 的复用引脚功能输出 ACLK( 高频 ). 同时 P1.1 输出一个方波. #include <msp430x11x1.h> void main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; // 停止看门狗 BCSCTL1 = XTS; // 设置时基寄存器 1, 使 ACLK = LFXT1 = HF XTAL, 也就是高频模式. P2DIR = 0x01; // 设置 P2.0 方向寄存器为输出 P2SEL = 0x01; // 设置 P2.0 口为外围模块用作 ACLK 信号输出 P1DIR = 0x02; // 设置 P1.1 方向寄存器为输 do IFG1 &= ~OFIFG; // 清振荡器失效标志 for (i = 0xFF; i > 0; i--); // 延时, 待稳定 while ((IFG1 & OFIFG)); // 若振荡器失效标志有效?

10 BCSCTL2 = SELM_3; // 设置时基寄存器 2, 使主时钟信号 MCLK = LFXT1 ( 可靠的 ) for (;;) // 无穷循环 P1OUT = 0x02; // P1.1 = 1 P1OUT &= ~0x02; // P1.1 = 0 3-IO 端口数字输入输出端口使用特性 : 1 所有端口都可以单独进行编程 2 可以进行输入输出和中断条件的任意组合 3 对具有中断功能的引脚输入沿可进行选择 4 具有第 2 功能选择, 以适合不同 I/O 口操作 5 所有指令支持端口控制寄存器的读写操作注 :1 对输入寄存器写入会增加电流的消耗 2 由于各端口的功能各不相同, 因此它们的内部电路原理也不相同, 具体可参考数据手册

11 MSP430 的端口器件 P1 P2 P3 P4 P5 P6 S COM MSP430F11X MSP430F12X MSP430F13/14/15/16 MSP430F4XX MSP430F20X MSP430F21X MSP430F22X MSP430 端口功能端口 P1 P2 P3 P4 P5 P6 S COM 功能 I/O 中断功能 其他片内外设功能 I/O 其他片内外设功能 I/O 驱动液晶 PxDIR 方向寄存器 P7DIR P6DIR P5DIR P4DIR P3DIR P2DIR P1DIR P0DIR 0 为输入模式 1 为输出模式 在 PUC 后全都为复位, 作为输入时, 只能读 ; 作为输出时, 可读可定 PxIN 输入寄存器 PxIN PxIN PxIN PxIN PxIN PxIN PxIN PxIN 输入寄存器是只读的, 用户不能对它写入, 只能读取其 IO 内容 此时引 脚方向必须为输入

12 PxOUT 输出寄存器 P7OUT P6OUT P5OUT P4OUT P3OUT P2OUT P1OUT P1OUT 这是 IO 端口的输出缓冲器, 在读取时输出缓存的内容与脚引方向定义无关 改变方向寄存器的内容, 输出缓存的内容不受影响 PxIFG 中断标专寄存器 P7IFG P6IFG P5IFG P4IFG P3IFG P2IFG P1IFG P0IFG 标志相应引脚是否有待处理中断信息 0 没有中断请求 1 有中断请求 PxIES 中断触发沿选择寄存器 P7IES P6IES P5IES P4IES P3IES P2IES P1IES P0IES 0 上升沿使相应标志置位 1 下降沿使相应标志置位 PxIE 中断使能寄存器 P7IE P6IE P5IE P4IE P3IE P2IE P1IE P0IE 0 禁止中断 1 允许中断 PxSEL 功能选择寄存器 P7SEL P6SEL P5SEL P4SEL P3SEL P2SEL P1SEL P0SEL 0 选择引脚为 I/O 功能 1 选择引脚为外围模块功能 关于端口 P3 P4 P5 P6 端口 P3 P4 P5 P6 是没有中断功能的, 其它功能与 P1 P2 相同 所以在此不再作详尽说明 关于端口 COM S 这些端口实现与 LCD 片的驱动接口,COM 端是 LCD 片的公共端,S 端为 LCD 片的段码端 LCD 片输出端也可以用软件配置为数字输出端口, 详情使用请查看其手册

13 4-WDT 看门狗看门狗定时器实际上是一个特殊的定时器, 它的的功能是当程序运行发生故障时序时能使系统从新启动 其原理就是发生的故障的时间满足规定的定时时间后, 产生一个非屏蔽中断, 使系统的复位 这样当在调试程序或预计程序运行在某段内部可能瞬时发生时序错误时 ( 如外部电路干扰 ) 选用设置看门狗定时中断可以避免程序跑飞看门狗的定时时间可以通过 WDTCTL 中的低三位 (SSEL IS1 IS0) 选择, 当系统时钟为 1MHz 时, 最大可设置为 1 秒钟, 最小可设置 64 微秒 WDTCTL 是一个 16 位寄存器, 其高字节为口令, 口令为 5AH, 当对它写入操作时必须写口令才能操作, 否则会导致系统复位 另外该模块还具有定时器的功能 你可通过 TMSET 位进行选择 你可通过设置 CNTCL 来使 WDTCNT 从 0 开始计数 其定时按选定的时间周期产生中断请求 当 WDT 工作在定时器模式时,WDTCTL 中断标志位在定时间到时置位, 因该模式下定时器中断源是单源的, 当得到中断服务时其 WDTCTL 标志位复位 WDTCNT 计数单元

14 15--0 这是 16 位增计数器, 由 MSP430 所选定的时钟电路产生的固定周期时钟信号对计数器进行加法计数 如果计数器事先被预置的初始状态不同, 那么从开始计数到计数溢出为止所用的时间就不同 WDTCNT 不能直接通过软件存取, 必须通过看门狗定时器的控制寄存器 WDTCTL 来控制 WDTCTL 控制寄存器 口令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1 IS0 WDTCTL 由高 8 位口令和低 8 位控制命令组成 要写入操作 WDT 的控制命令, 出于安 全原因必须先正确写入高字节看门狗口令 口令为 5AH, 如果口令写错将导致系统 复位 读 WDTCTL 时不需要口令 这个控制寄存器还可以用于设置 NMI 引脚功能 ISO,IS1 选择看门狗定时器的定时输出 其中 T 是 WDTCNT 的输入时钟源周期 0 T x 2(15) 1 T x 2(13) 2 T x 2(9) 3 T x 2(6) SSEL 选择 WDTCNT 的时钟源 0 SMCLK 1 ACLK 由 IS0,IS1,SSEL3 可确定 WDT 定时时间 WDT 最多只能定时 8 种和时钟源相关的 时间 下表列出了 WDT 可选的定时时间 ( 晶体为 32768HZ,SMCLK=1MHZ) WDT 的定时时间表 SSEL IS1 IS0 定时时间 /ms Tsmclk x 2(6) Tsmclk x 2(9) Taclk x 2(6) Tsmclk x 2(13) Taclk x 2(9) Tsmclk x 2(15) (PUC 复位后的值 ) Taclk x 2(13) Taclk x 2(15) CNTCL 当该位为 1 时, 清除 WDTCNT TMSEL 工作模式选择 0 看门狗模式

15 1 定时器模式 NMI 选择 RST/NMI 引脚功能, 在 PUC 后被复位 0 RST/NMI 引脚为复位端 1 RST/NMI 引脚为边沿触发的非屏蔽中断输入 NMIES 选择中断的边沿触发方式 0 上升沿触发 NMI 中断 1 下降沿触发 NMI 中断 HOLD 停止看门狗定时器工作, 降低功耗 0 WDT 功能激活 1 时钟禁止输入, 计数停止 5- 定时器各种定时器功能 定时器 看门狗定时器 基本定时器 定时器 A 定时器 B 功能 基本定时, 当程序发生错误时执行一个受控的系统重启动 基本定时, 支持软件和各种外围模块工作在低频率 低功耗条件下 基本定时, 支持同时进行的多种时序控制 多个捕获 比较功能和多种输出波形 (PWM), 可以以硬件方式支持串行通信 基本定时, 功能基本同定时器 A, 但比较定时器 A 灵活, 功能更强大 定时器 A

16

17 Timer_A 的寄存器 寄存器 缩写 读定类型 地址 初态 Timer_A 控制寄存器 TACTL R/W 160H POR 复位 Timer_A 计数器 TAR R/W 170H POR 复位 捕捞 / 比较控制寄存器 0 CCTL0 R/W 162H POR 复位 捕捞 / 比较寄存器 0 CCR0 R/W 172H POR 复位 捕捞 / 比较控制寄存器 1 CCTL1 R/W 164H POR 复位 捕捞 / 比较寄存器 1 CCR1 R/W 174H POR 复位 捕捞 / 比较控制寄存器 2 CCTL2 R/W 166H POR 复位 捕捞 / 比较寄存器 2 CCR2 R/W 176H POR 复位 中断向量寄存器 TAIV R/W 12EH POR 复位 由于 MSP430 系列单片机不同系列可能包含不同数目的捕获 / 比较器, 这里列出含有 3 个捕获 / 比较器 Timer_A 的寄存器 在 MSP430 系列单片机中带有功能强大的定时器资源, 这定时器在单片机应用系统中起到重要的作用 利用 MSP430( 以下称为 430) 单片机的定时器可以用来实现计时, 延时, 信号频率测量, 信号触发检测, 脉冲脉宽信号测量,PWM 信号发生 另外通过软件编写可以用作串口的波特率发生器 后面我们将用定时器 A 作为一个波特率发生器, 来编写一个串口例程给初学者参考 以加强初学者对定时器 A 的理解和应用 在 430 的大系列产品中, 不同的子系列产品定时器资源有所不同 ; 在 F11X,F11X1

18 中是不带定时器 B 资源的 430 的定时器主要分为 3 部分模块 : 看门狗定时器, 定时器 A, 定时器 B 定时器 A 主要资源特点有 16 位定时计数器, 其计数模式有 4 种 多种计数时钟信号供选择 3 个可配置输入的捕获 / 比较功能寄存器和 8 种输出模式的 3 个可配置输出单片 以上各块定时器资源可作多种组合使用, 以实现强大的功能 定时器资源功能说明 (1) 看门狗定时器 (WDT): 主要用于程序在生错误时用作单片机系统复位重起的 另外, 也可作为一个基本定时器使用 (2) 定时器 A: 作基本定时器使用, 结合捕获 / 比较功能模块可实现时序控制, 可编程波形信号发生输出 可作串口波特率发生器使用 (3) 定时器 B: 作基本定时器使用, 与定时器 A 基本相同, 但是功能方面有某些功能会比 A 增强些 详情请看关于定时器 B 应用范例 定时器 _A( 三个比较 / 捕获寄存器 ) 定时器 _A 模块资源 : 一个 16 位计数器 TAR 三个捕获 / 比较寄存器 CCRx 三个捕获 / 比较控制寄存器 CCTLx 工作模式 : 停止模式增计数模式 : 定时计数器增到 CCR0 ( 你可在此期间设置 CCRx 来产生中断标记, 但计数是一定走到 CCR0 后在循环进行, 以下也一样 ) 连续计数模式 : 从 0 到 连续增计数模式 增 / 减模式 : 先增 CCR0 后减至 0 模式 ( 当条件满足后中断标志置位 ) 该工作模式可通过控制寄存器 TACTL 中的 MC1 和 MC0 选择计数器 TAR: 就是存放定时器的计数值, 虽然它只有 16 位寄存器, 但可设置为 位的计数长度 该定数器是该模块的核心, 它与包括定时器 捕获 / 比较模块打交道 如用于比较时要于它比较, 捕获时是将它的值捕获保存 可用字进行读写 比较模式 : 这是该定时器的默认模式, 在此所有的捕获硬件停止工作 如果此时相应定时器中断允许打开的话, 同时开始启动定时器, 定时计数器 TAR 中的数值等于比较寄存器的值时, 则产生中断请求 如没有中断允许, 只是响应的中断标志 CCIFGx 置位 同时 EQUx 信该号位为真 否则为假利用它可以控制输出产生占空比可变的 PWM 波形输出 当选用了比较模式时 : 比较模式常用在用软件设定时中断间隔, 来处理有关的事情, 如键盘扫描 事件查询处理 也可结合输出产生脉冲时序发生信号,PWM 信号等 一个典型的例子就是利用不断的装载到 TxCCRx 中的数据与 TAR 的值比较来产生中断处理信号 捕获模式 : 主要用于利用信号的正沿 负沿或正负沿的任一组合, 测量外部或内部事件, 也

19 可以由软件停止 外部触发事件可以用 CCISx 选择 CCIxA,CCIxB,GND, 和 Vcc 源 完成捕获后相应的中断标志 CCIFGx 置为位 捕获模式应用 : 捕获是当外部有信号进来后 ( 触发 ), 将定时器 TxR 的值捕获到自己的锁存寄存器 TxCCRx 中, 你可以随时读出 TxCCRx 为 16 位可读可写 捕获模式用于事件的精确定位, 它可用在速度 ( 或频率 ) 或时间测量中 一个典型的例子就是通过两次捕获外部事件来获得外部脉冲信号的宽度 最简单的例子是 : 捕获模式选择任意沿,CCISx1=1, 变化 CCISx0( 及输入选择 Vcc 和 GND), 这样在发生 Vcc 与 GND 切换 ( 有高低电平触发时 ) 产生捕获条件 异步通讯 : 再一个例子就是同时应用比较模式和捕获模式用软件实现 UART 通讯 即利用定时器比较模式来模拟通讯时序的波特率来发送数据, 同时采用捕获模式来接收数据, 并及时转换比较模式来选定调整接收波特率, 达到接收一个字节的目的 时钟源选择 : 它是通过定时控制器 TACTL 中的两位完成, 当从新上电或发生 POR 时 ( 系统复位 ) 或用软件通过 CLR 位使分频器复位 在正常操作时分频器的状态是不可见的 工作模式的选择 : 增计数模式 : 当计数器增计数到 CCR0 时捕获比较中断 CCIFG 标志置位 连续计数模式 : 从 0 开始到 0FFFFH 在从 0 开始, 当回到 0 时 TAIFG 置位 ( TAIFG 为溢出标志 ) 但并不中断, 只有 TAIE=1 时才产生中断 可以设置不同的 CCR0 的值来产生中断 CCIFG

20 增 / 减计数模式 : 增减计数模式, 当增到 CCR0 时 CCIF0 置位, 当减到 0 时 TAIFG 置位 ( TAIFG 为溢出标志 ) TACTL 控制寄存器 未用 SSEL1 SSEL0 ID1 ID0 MC1 MC0 未用 CLR TAIE TAIFG SSEL1 SSEL0 选择定时器输入分频器的时钟源 Timer_A 时钟源 SSEL1 SSEL0 输入时钟源 说明 0 0 TACLK 用特定的外部引脚信号 0 1 ACLK 辅助时钟 1 0 SMCLK 子系统时钟 1 1 INCLK 见器件说明 ID1,ID0 输入分频选择 00 不分频 01 2 分频 10 4 分频 11 8 分频 MC1,MC0 计数模式控制位 00 停止模式 01 增计数模式 10 连续计数模式 11 增 / 减计数模式 CLR 定时器清除位 POR 或 CLR 置位时定时器和输入分频器复位 CLR 由硬件自动复位, 其读出始终为 0 定时器在下一个有效输入沿开始工作 如果不是被清除模式控制暂停, 则定时器以增计数模式开始工作 TAIE 定时器中断允许位 0 禁止定时器溢出中断

21 1 允许定时器溢出中断 TAIFG 定时器溢出标志位增计数模式 : 当定时器由 CCR0 计数到到 0 时,TAIFG 置位 连续计数模式 : 当定时器由 0FFFFH 计数到 0 时,TAIFG 置位 增 / 减计数模式 : 当定时器由 CCR0 减计数到 0 时,TAIFG 置位 TAR 16 位计数器 这是计数器的主体, 内部可读写 [1] 修改 TIMWER_A: 当计数时钟不是 MCLK 时, 写入应该在计数器停止计数时写, 因为它与 CPU 时钟不同步, 可能引起时间竞争 [2]TIMER_A 控制位的改变 : 如果用 TACLK 控制寄存器中的控制位来改变定时器工作, 修改时定器应停止, 特别是修改输入选择位 输入分频器和定时器清除位时 输入时钟和软件所用的系统时钟异步可能引起时间竞争, 使定时器响应出错 CCTLx 捕获 / 比较控制寄存器 CAPTMOD1-0 CCIS1-0 SCS SCCIx CAP OUTMODx CCIEx CCIx OUT COV CCIFx TIMER_A 有多个捕获比较模块, 每个模块都有自己的控制寄存器 CCTLx CAPTMOD1-0 选择捕获模式 00 禁止捕获模式 01 上升沿捕获 10 下降沿捕获 11 上升沿与下降沿都捕获 CCISI1-0 在捕获模式中用来定提供捕获事件的输入端 00 选择 CCIxA 01 选择 CCIxB 10 选择 GND 11 选择 VCC SCS 选择捕获信号与定时器时钟同步 异步关系 0 异步捕获 1 同步捕获异步捕获模式允许在请求时立即将 CCIFG 置位和捕获定时器值, 适用于捕获信号的周期远大于定时器时钟周期的情况 但是, 如果定时器时钟和捕获信号发生时间竞争, 则捕获寄存器的值可能出错 在实际中经常使用同步捕获模式, 而且捕获总是有效的

22 SSCIx 比较相等信号 EQUx 将选择中的捕获 比较输入信号 CCIx(CCIxA,CCIxB,Vcc 和 GND) 进行锁存, 然后可由 SCCIx 读出 CAP 选择捕获模式还是比较模式 0 比较模式 1 捕获模式注意 : 同时捕获和捕获模式选择如果通过捕获比较寄存器 CCTLx 中的 CAP 使工作模式从比较模式变为捕获模式, 那么不应同时进行捕获 ; 否则, 在捕获比较寄存器中的值是不可预料的, 推荐的指令顺序为 :[1] 修改控制寄存器, 由比较模式换到捕获模式 [2] 捕获 OUTMODx 选择输出模式 000 输出 001 置位 010 PWM 翻转 / 复位 011 PWM 置位 / 复位 100 翻转 / 置位 101 复位 110 PWM 翻转 / 置位 111 PWM 复位 / 置位 定时器时钟上升沿时 OUTx 在各模式下的状态 输出模式 EQU0 EQUx OUTx 状态 ( 或触发器输入端 D) 0 X X X(OUTx 位 ) 1 X 0 OUTx( 不变 ) X 1 1( 置位 ) 0 0 OUTx( 不变 ) /OUTx( 与以前相反 ) ( 置位 ) 0 0 OUTx( 不变 ) ( 置位 ) ( 置位 ) 4 X 0 OUTx( 不变 ) X 1 /OUTx( 与以前相反 ) 5 X 0 OUTx( 不变 ) X OUTx( 不变 )

23 0 1 /OUTx( 与以前相反 ) CCIx 捕获比较模的输入信号捕获模式 : 由 CCIS0 和 CCIS1 选择的输入信号通过该位读出 比较模式 :CCIx 复位 OUT 输出信号 0 输出低电平 1 输出高电平如果 OUTMODx 选择输出模式 0( 输出 ), 则该位对应于输入状态 COV 捕获溢出标志 0 输出低电平 1 输出高电平 [1] 当 CAP=0 时, 选择比较模式 捕获信号发生复位, 没有使 COV 置位的捕获事件 [2] 当 CAP=1 时, 选择捕获模式, 如果捕获寄存器的值被读出再次发生捕获事件, 则 COV 置位 程序可检测 COV 来断定原值读出前是否又发生捕获事件 读捕获寄存器时不会使溢出标志复位, 须用软件复位 CCIFGx 捕获比较中断标志捕获模式 : 寄存器 CCRx 捕获了定时器 TAR 值时置位 比较模式 : 定时器 TAR 值等于寄存器 CCRx 值时置位 CCRx 捕获 / 比较寄存器 在捕获比较模块中, 可读可写 其中 CCR0 经常用作周期寄存器, 其他 CCRx 相同 TAIV 定器器 A 中断向量寄存器 中断向量 0 Timer_A 有两个中断向量, 一个单独分配给捕获比较寄存器 CCR0, 另一个作为共用的中断向量用于定时器和其他的捕获比较寄存器 CCR0 中断向量具有最高的优先级, 因为 CCR0 能用于定义是增计数和增减计数模式的周期 因此, 他需要最快速度的服务 CCIFG0 在被中断服务时能自动复位 CCR1-CCRx 和定时器共用另一个中断向量, 属于多源中断, 对应的中断标志 CCIFG1-CCIFGx 和 TAIFG1 在读中断向量字 TAIV 后, 自动复位 如果不访问 TAIV 寄

24 存器, 则不能自动复位, 须用软件清除 ; 如果相应的中断允许位复位 ( 不允许中断 ), 则将不会产生中断请求, 但中断标志仍存在, 这时须用软件清除 关于中断挂起和返回不包括处理约需要 11~16 个时钟周期 TIMER_A 中断优先级 中断优先级 中断源 缩写 TAIV 的内容 捕获 / 比较器 1 CCIFG1 2 捕获 / 比较器 1 CCIFG1 4 最高 最低 捕获 / 比较器 x CCIFGx 定时器溢出 TAIFG1 10 没有中断将挂起 0 例 1 定时器 A 自动溢出 简述 : 利用 Timer_A 直接计数产生溢出, 然后中断处理 ACLK = TACLK = 32768Hz, MCLK = SMCLK = default DCO ~800kHz 例程 : //***************************************************************** #include <msp430x14x.h> void main(void) WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器 P1DIR = 0x01; // 设 P1.0 为输出 TACTL = TASSEL_1 + MC_2 + TAIE; // ACLK, 定时器 A 计数模式, 且开中断功能 _BIS_SR(LPM3_bits + GIE); // 进入 LPM3 低功耗模式和开总中断允许 // Timer_A3 中断向量 (TAIV) 处理程序 #pragma vector=timera1_vector interrupt void Timer_A(void) switch( TAIV ) // 应用 switch 语句来处理多中断源的向量 // 向量列表通过 case 语句来分多中断源的入口 case 2: break; // CCR1 比较 / 捕获寄存器的中断入口, // 本例子未用到 case 4: break; // CCR2 比较 / 捕获寄存器的中断入口,

25 case 10: P1OUT ^= 0x01; break; // 本例子未用到 // 定时器 A 在计满 16 位时将产生计数溢出中断 // 进入中断, 向量值为 10 此中断处理入口 //********************************************************************* 例 2 CCR0 捕获 / 比较寄存器 -- 比较功能中断定用 简述 : 本程序是利用了定时器 A 模块中的 CCR0 捕获 / 比较寄存器的值与定时器 A 的值进行比较 如果比较相等就产生 CCR0 中断, 进入 Timer A0 中断服务程序进行中断处理 以 P1.0 作为指示, 反转速度 = 32768/(2*1000) = ACLK = TACLK = 32768Hz, MCLK = SMCLK = default DCO ~800kHz 本程序 TA(Timer A) 采用增计数模式 在增计数模式时, 当 TA 中的计数值与 CCR0 的值相等时 ( 或 TA>CCR0 的值时 ),TA 被清零并且重新由 0 开始计数 在此同时,CCR0 产生中断 产生 CCIFG0 标志置位, 及 TAIFG 定时器 A 溢出标志置位 CCIFG0,TAIFG 在被中断服务程序处理时是自动复位 如本例中执行 interrupt void Timer_A (void) 时,CCIFG0 已被清除标志位 例程 : //********************************************************************* #include <msp430x14x.h> void main(void) WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器 P1DIR = 0x01; // 设 P1.0 为输出 CCTL0 = CCIE; //CCR0 开中断允许 CCR0 = ; // 向 CCR0 捕获 / 比较寄存器装入初值, 用于比较 TACTL = TASSEL_1 + MC_1; // 选 ACLK 为定时器 A 时钟源, 增计数模式 _BIS_SR(LPM3_bits + GIE); // 进入 LPM3 模式 / 开中断允许 // Timer A0 中断服务程序 #pragma vector=timera0_vector interrupt void Timer_A (void) P1OUT ^= 0x01; // 反转 P1.0

26 //********************************************************************* 例 3 CCR0 捕获 / 比较寄存器 -- 比较功能中断定用 简述 :ACLK = TACLK = 32kHz, MCLK = SMCLK = default DCO ~800kHz 实现输出 P1.1= CCR0 = 32768/(2*4) = 4096Hz P1.2= CCR1 = 32768/(2*16) = 1024Hz P1.3= CCR2 = 32768/(2*100) = Hz P1.0= overflow = 32768/(2*65536) = 0.25Hz 此程序中主要用到了 CCR0,CCR1,CCR0 捕获 / 比较寄存器的值与 TA 的值进行比较 TA 的计数模式为连续计数 此模式适合产生多个不同时序信号, 只要将改变 CCRX 中的值就可以 在本例中,CCRX 每次中断里增长了下一次中断发生时的时差值 另外, 还需设置 TA 模块输出单元 OUTx 的输出模式, 本例设置的输出模式为反转模式 需要注意的,CCR0 是一个单独分配的中断向量 而 CCR1-CCRx 和 TA 的中断向量是共用的, 这是一个多源中断 CCIFG1-CCIFGx 和 TAIFG1 中断标志在读中断向量 TAIV 后, 硬件会自动复位这些标志 ;CCR0 中断服务程序执行后 CCIFG0 标志也被复位 CCR0 和 CCR1-CCRx,TA 的中断服务程序是分开的 interrupt void Timer_A0(void) interrupt void Timer_A1(void) 例程 : //****************************************************************************** #include <msp430x14x.h> void main(void) WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器 P1SEL = 0x0E; // 设 P1.1 - P1.3 为模块功能 P1DIR = 0x0F; // 设 P1.0 - P1.3 方向为输出 CCTL0 = OUTMOD_4 + CCIE; // CCR0 输出为反转模式, 开中断允许 CCTL1 = OUTMOD_4 + CCIE; // CCR1 输出为反转模式, 开中断允许 CCTL2 = OUTMOD_4 + CCIE; // CCR2 输出为反转模式, 开中断允许 TACTL = TASSEL_1 + MC_2 + TAIE; // ACLK, 连续计数模式, 开 TA 中断允许 _BIS_SR(LPM3_bits + GIE); // 进入 LPM3/ 开总中断允许

27 // Timer A0 中断服务程序 #pragma vector=timera0_vector interrupt void Timer_A0 (void) CCR0 += 4; // 向 CCR0 增加偏移量 // Timer_A3 中断服务程序 #pragma vector=timera1_vector interrupt void Timer_A1(void) switch( TAIV ) case 2: CCR1 += 16; // 向 CCR1 增加偏移量 break; case 4: CCR2 += 100; // 向 CCR2 增加偏移量 break; case 10: P1OUT ^= 0x01; // Timer_A3 定时器 A 溢出 break; //****************************************************************************** 例 4 CCR1 CCR2 捕获 / 比较寄存器 产生 PWM 波形 简述 : 利用定时器 A 的自动产生 PWM 波形输出, 而无需采用软件程序来服务生产 本程序 CCR0 的值作为 PWM 的周期宽度, 而 CCR1,CCR2 的值作为 PWM 的占空宽 适当修改软件可以容易实现动态 PWM 输出或外加少量的 RC 元件要以实现 DAC 功能 ACLK = TACLK = LFXT1 = 32768Hz, MCLK = default DCO ~800kHz. 例程 : //****************************************************************************** #include <msp430x14x.h> void main(void) WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器 P1DIR = 0x0C; // 设 P1.2 和 P1.3 为输出 P1SEL = 0x0C; // 设 P1.2 和 P1.3 TA1/2 为模块功能 CCR0 = 512-1; CCTL1 = OUTMOD_7; CCR1 = 384; CCTL2 = OUTMOD_7; // 装入 PWM 周期值 // 设 CCR1 输出单元为复位 / 置位输出模式 // 装入 CCR1 PWM 的占空值 // 设 CCR2 输出单元为复位 / 置位输出模式

28 CCR2 = 128; TACTL = TASSEL_1 + MC_1; _BIS_SR(LPM3_bits); // 装入 CCR2 PWM 的占空值 // 时钟源选择 ACLK, 定时器 A 增计数模式 // 进入 LPM3 低功耗模式 //****************************************************************************** 例 5 定时器 A 模块的 CCR0 捕获 / 比较寄存器的捕获功能应用 简述 : 利用 CCR0 捕获 / 比较寄存器的捕获功能对 ACLK/8 信号进行捕获, 分别捕获 16 次数据存储到数组中 在每次捕获到数据时都用新数据对旧数相比较, 并将两数据的差异数据存入数组中, 同时保存新数据 完成 16 次数据捕获后 LED 取反 例程 : //****************************************************************************** #include <msp430x14x.h> unsigned int new_cap=0; unsigned int old_cap=0; unsigned int cap_diff=0; unsigned int diff_array[16]; unsigned int capture_array[16]; unsigned char index=0; unsigned char count = 0; void main(void) volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; for (i=0; i<20000; i++) P1DIR = 0x01; P1OUT &= ~0x01; P1SEL = 0x02; P2DIR = 0x01; P2SEL = 0x01; BCSCTL1 = DIVA_3; // 差异数组 // 捕获数组 // 停止看门狗定时器 // 延时, 等待晶体振荡器称定 // 置 P1.0 为输出,P1.1 为输入 // LED 关 // 设 P1.1 为 TA0 功能 // 设 P2.0 方向为输出 // 设 P2.0 为 ACLK 输出 // 将 ACLK/8 分频 CCTL0 = CM_1 + SCS + CCIS_0 + CAP + CCIE; // 上升边 + 同步 + CCI0A (P1.1 信号源 ) + 捕获功能 + 捕获中断允许

29 TACTL = TASSEL_2 + MC_2; _BIS_SR(LPM0_bits + GIE); // SMCLK 时钟 + 连续计数模式 // 进入 LPM0 + 开总中断允许 #pragma vector=timera0_vector interrupt void TimerA0(void) new_cap = TACCR0; cap_diff = new_cap - old_cap; // 将中断时 TACCR0 值装入 new_cap // 差异值 = 新值 - 旧值 diff_array[index] = cap_diff; // 向差异数组写入差异值 capture_array[index++] = new_cap; // 向捕获数组写入捕获值 if (index == 16) // 数组是否已满?(1-16) index = 0; // 清索引变量 P1OUT ^= 0x01; // 反转 P1.0 old_cap = new_cap; // 存储捕获新值 count ++; if (count == 32) count = 0; _NOP(); //****************************************************************************** 6- 比较器 A 以下图可以看出比较器 A 的结构大概可以分 4 部分构成, 分别为模拟输入, 比较器 A 核心, 低通虑波器, 基准电压部分和中断部分组成 首先, 整个比较器 A 的工作必需由 CAON 位置为 1 时才能工作的, 此位属 CACTL1 控制寄存器 单片机上电时此位是为 0 的, 也就是说比较器是不工作的 以下大概讲述几个部分电路的功能和一些相关信息 模拟输入电路 : 外部模拟引脚信号 CA0,CA1( 正负端 ) 可以分别由 P2CA0,P2CA1 位控制开或关 经过软件的设置可以分别与内部的几个基准电压进行比较 (0.5VCC,0.25VCC, 三极管门值电压 ) 或外部其中的电压进行比较 应用的硬件比较可以分为以下三种组合 : 两个外部引脚输入信号进行比较 其中一个外部引脚信号与内部的 0.5VCC 或 0.25VCC 比较 其中一个外部引脚信号与内部基准电压比较

30 参考电压发生器参考电压电路是可以由 CARSEL,CARERF0,CARERF1 位来控制电压的产生 通过软件设置可以选择几种电压输出到比较器的输入中作为比较, 当然此参考电压也可以通过单片机的引脚往外部提供参考电压之用 比较器 A 核心比较器 CAON 位控制开关,CAEX 位控制位控制方向 低通虑波器低通虑波器只需一个 CAF 位来控制此虑波器的功能开与关 此虑波器功能是用于消除比较器输出信号的毛剌, 以保证信号的质量和中断请求的可靠性 中断请求比较器 A 模块是具有中断功能的, 如比较器功能 CAIE 中断允许开了, 在 CAIF 信号产生时将生产中断 ( 当然 GIE 要为 1 时 ) 比较器 A 模块是具有中断独立向量的, 是一个单独的中断, CUP 接受请求后会硬件自动清除中断标志位 CAIFG

31 CACTL1 比较器 A 控制寄存器 CAEX CARESL CAREF1 CAREF0 CAON CAIES CAIE CAIFG CAEX 比较器的输入端, 控制比较器 A 的输入信号和输出方向 CARSEL 选择内部参考源加到比较器 A 的正端或负端 CAEX 和 CARSEL 的含义 CARSE CAEX 含义

32 0 1 0 内部参考源加到比较器的正端 1 内部参考源加到比较器的负端 0 内部参考源加到比较器的负端 1 内部参考源加到比较器的正端 CAREF1 CAREF0 选择参考源 0 使用外部参考源 ; 1 选择 0.25Vcc 为参考电压 2 选择 0.5Vcc 为参考电压 3 选择二极客电压为参考电压, 必须见具体的芯片资料 CAON 控制比较器 A 的打开和关闭 0 关闭比较器 1 打开比较顺 CAIES 中断触发沿选择 0 上升沿使中断标志 CAIFG 置位 1 下降沿使中断标志 CAIFG 置位 CAIE 中断允许 0 禁止中断 1 允许中断 CAIFG 比较器中断标志 0 没有中断请求 1 有中断请求 CACTL2 比较器 A 控制寄存器 CACTL2.7 CACTL2.6 CACTL2.5 CACTL2.4 P2CA1 P2CA0 CAF CAOUT CACTL 含义请参见具体的芯片资料, 例如, 在 MSP430X1XX 系列中, 这位可以被执行, 但不控制任何硬件, 可被用作标志位 P2CA1 控制输入端 CA1 0 外部引脚信号不连接比较器 A 1 外部引脚信号连接比较器 A P2CA0 控制输入端 CA0 0 外部引脚信号不连接比较器 A 1 外部引脚信号连接比较器 A

33 CAF 选择比较器输出端是否经过 RC 低通滤波器 0 不经过 1 经过 CAOUT 比较器 A 的输出 0 CA0 小于 CA1 1 CA0 大于 CA1 CAPD 端口禁止寄存器 7--0 比较器 A 模块的输入输出与 IO 口共用引脚,CAPD 可以控制 IO 端口输入缓冲器的通断开关 当输入电压不接近 Vss 或 Vcc 时,CMOS 型的输入缓冲器可以起到分流作用 这样可以减少了由不是 Vss 或 Vcc 的输入电压所引起的流入输入缓冲器的电流 控制位 CAPD0 CAPD7 初始化为 0, 则端口输入缓冲器有效 当相应控制位置 1 时, 端口输入缓冲器无效 程序范例 : #include <msp430x11x1.h> void main (void) WDTCTL = WDTPW + WDTHOLD; CAPD = 0x08; CACTL2 = P2CA0; CCTL0 = CCIE; TACTL = TASSEL_2 + ID_3 + MC_2; _EINT(); // 停止 WDT // 断开与 IO 端口输入 // 设置 P2.3 为 +comp // CCR0 允许中断 // SMCLK/8, 计数模式 // 开总中断 while (1) // 循环 CACTL1 = 0x00; // 没有参考电压 _BIS_SR(LPM0_bits); // 进入 LPM0 CACTL1 = CAREF0 + CAON; // 0.25*Vcc=P2.3, 比较器开 _BIS_SR(LPM0_bits); // 再次进入 LPM0 CACTL1 = CAREF1 + CAON; // 0.5*Vcc=P2.3, 比较器开 _BIS_SR(LPM0_bits); // 再次进入 LPM0 CACTL1 = CAREF1 + CAREF0 + CAON; // 0.55V on P2.3, 比较器开 _BIS_SR(LPM0_bits); // 再次进入 LPM0 // Timer A0 interrupt service routine

34 #pragma vector=timera0_vector interrupt void Timer_A (void) _BIC_SR_IRQ(LPM0_bits); // 退出 LMP0 模式 7-ADC12 模数转换模块 MSP430 模数转换模块 --ADC12 MSP430 单片机的 ADC12 模块是一个 12 位精度的 A/D 转换模块, 他具有高速度, 通用性等特点 大部分都内置了 ADC 模块. 而有些不带 ADC 模块的片子, 也可通过利用内置的模拟比较器来实现 AD 的

35 转换 在系列产品中, 我们可以通过以下列表来简单地认识他们的 ADC 功能实现 系列型号 ADC 功能实现转换精度 MSP430X1XX2 Slope AD 10 位 MSP430F13X ADC 模块 12 位 MSP430F14X ADC 模块 12 位 MSP430F41X Slope AD 12 位 MSP430F43X ADC 模块 12 位 MSP430F44X ADC 模块 12 位 MSP430X32X ADC 模块 14 位 MSP430F21X Slope AD 12 位从以下 ADC12 结构图中可以看出,ADC12 模块中是由以下部分组成 : 输入的 16 路模拟开关,ADC 内部电压参考源,ADC12 内核,ADC 时钟源部分, 采集与保持 / 触发源部分,ADC 数据输出部分, ADC 控制寄存器等组成 输入的 16 路模拟开关 16 路模拟开关分别是由 IC 外部的 8 路模拟信号输入和内部 4 路参考电源输入及 1 路内部温度传感器源及 AVCC-AVSS/2 电压源输入 外部 8 路从 A0-A7 输入, 主要是外部测量时的模拟变量信号 内部 4 路分别是 Veref+ ADC 内部参考电源的输出正端,Vref-/Veref- ADC 内部参考电源负端 ( 内部 / 外部 ) 1 路 AVCC-AVSS/2 电压源和 1 路内部温度传感器源 片内温度传感器可以用于测量芯片上的温度, 可以在设计时做一些有用的控制 ; 在实际应用时用得较多 而其他电源参考源输入可以用作 ADC12 的校验之用, 在设计时可作自身校准 ADC 内部电压参考源 ADC 电压参考源是用于给 ADC12 内核作为一个基准信号之用的, 这是 ADC 必不可少的一部分 在 ADC12 模块中基准电压源可以通过软件来设置 6 种不同的组合 AVCC(Vr+), Vref+,Veref+,AVSS(Vr-),Vref-/Veref- ADC12 内核 ADC12 的模块内核是共用的, 通过前端的模拟开关来分别来完成采集输入 ADC12 是一个精度为 12 位的 ADC 内核,1 位非线性微分误差,1 位非线性积分误差 内核在转换时会参用到两个参考基准电压, 一个是参考相对的最大输入最大值, 当模拟开关输出的模拟变量大于或等于最大值时 ADC 内核的输出数字量为满量程, 也就是 0xfff; 另一个则是最小值, 当模拟开关输出的模拟变量大小或等于最大值时 ADC 内核的输出数字量为最低量程, 也就是 0x00 而这两个参考电压是可以通过软件来编程设置的 ADC 时钟源部分 ADC12 的时钟源分有 ADC12OSC,ACLK,MCLK,SMCLK 通过编程可以选择其中之一时钟源, 同时还可以适当的分频 采集与保持, 触发源部分 ADC12 模块中有着较好的采集与保持电路, 采用不同的设置有着灵活的应用 ADC 数据输出部分 ADC 内核在每次完成转换时都会将相应通道上的输出结果存贮到相应用通道缓冲区单元中, 共有 16 个通道缓冲单元 同时 16 个通道的缓冲单元有着相对应的控制寄存器, 以实现更灵活的控制 ADC12 模块的所有寄存器寄存器 寄存器缩写 寄存器含义 转换控制寄存器 ADC12CTL0 转换控制寄存器 0 ADC12CTL1 转换控制寄存器 1 ADC12IFG 中断标志寄存器 中断控制寄存器 ADC12IE 中断使能寄存器 ADC12IV 中断向量寄存器

36 存储及其控制寄存器 ADC12MCTL0-ADC12MCTL15 存储控制寄存器 0-15 ADC12MEM0-ADC12MCTL15 存储寄存器 0-15 ADC12CTL0 转换控制寄存器 SHT1 SHT0 MSC 2.5V REFON ADC12ON ADC12TOVIE ADC12TVIE ENC ADC12SC ADC12SC 采集 / 转换控制位在不同条件 ADC12SC 的含义. ENC=1 ISSH=0 SHP=1 SHP=0 ADC12SC 由 0 变为 1 启动 AD 转换 AD 转换完成后 ADC12SC 自动复位 ADC12SC 保持高电平时采集 ADC12SC 复位时启动一次转换 ENC=1 表示转换允许 ( 必须使用 );ISSH=0 表示采要输入信号为同相输入 ( 推荐使用 );SHP=1 表示采样信号 SAMPCON 来源于采样定时器 ;SHP=0 表示采样直接由 ADC12SC 控制 使用 ADC12SC 时, 需注意以上表格信号的匹配 用软件启动一次 AD 转换, 需要使用一条指令来完成 ADC12SC 与 ENC 的设置 ENC 转换允许位 0 ADC12 为初始状态, 不能启动 AD 转换 1 首次转换由 SAMPCON 上升沿启动只有在该位为高电平时, 才能用软件或外部信号启动转换 在不同转换模式, ENC 由高电平变为低电平的影响不同 : 当 CONSEQ=0 ( 单通道单次转换模式 ) 且 ADC12BUSY=1(ADC12 处于采样或者转换 ) 时, 中途撤走 ENC 信号 ( 高电平变为低电平 ), 则当前操作结束, 并可能得到错误结果 所以在单通道单次转换模式整个过程中, 都必须保证 ENC 信号有效 当 CONSEQ=0( 非单通道单次转换 ) 时,ENC 由高电平变为低电平, 则当前转换正常结束, 且转换结果有效, 在当前转换结束时停止操作 ADC12TVIE 转换时间溢出中断允许位 0 没发生转换时间溢出 1 发生转换时间溢出当前转换还没有完成时, 又发生一次采样请求, 则会发生转换时间溢出 如果允许中断, 则会发生中断请求 ADC12OVIE 溢出中断允许位 0 没有发生溢出 1 发生溢出当 ADC12MEMx 中原有的数据还没有被读出, 而现在又有新的转换结果数据要写入时, 则会发生溢出 如果相应的中断允许, 则会发生中断请求

37 ADC12ON ADC12 内核控制位 0 关闭 ADC12 内核 1 打开 ADC12 内核 REFON 参考电压控制位 0 内部参考电压发生器关闭 1 内部参考电压发生器打开 2.5V 内部参考电压的电压值选择位 0 选择 1.5V 内部参考电压 1 选择 2.5V 内部参考电压 MSC 多次采样 / 转换位 有效条件 MSC 值 含义 SHP=1 0 每次转换需要 SHI 信号的上升沿触发采集定时器 CONSE!=0 1 仅首次转换同 SHI 信号的上升沿触发采样定时器, 而后采样转换将在前一次转换完成立即进行 其中 CONESQ 0 表示当前转换模式不是单通道单次转换 SHT1,SHT0 采集保持定时器 1, 采样保持定时器 0 这是定义了每通道转换结果中的转换时序与采样时钟 ADC12CLK 的关系 采样周期是 ADC12CLK 周期的整 4 倍, 则 : Tsample = 4 x Tadc12clk x N SHT1,SHT0 采样保持定时器 1, 采样保持定时器 0 的分频因子 SHITx N ADC12CTL2 转换控制寄存器 ,3 2,1 0 CSSTARTADD SHS SHP ISSH ADC12DIV ADC12SSEL CONSEQ ADC12BUSY 大多数位只有在 ENC=0 时才可被修改, 如 3-15 位 CSSTARTADD 转换存储器地址位, 这 4 位表示二进制数 0-15 分别对应 ADC12MEM0-15 可以定义单次转换地址或序列转换的首地址 SHS 采样触发输入源选择位

38 0 ADC12SC 1 Timer_A.OUT1 2 Timer_B.OUT0 3 Timer_B.OUT1 SHP 采样信号 (SAMPCON) 选择控制位 0 SAMPCON 源自采样触发输入信号 1 SAMPCON 源自采样定时器, 由采样输入信号的上升沿触发采样定时器 ISSH 采样输入信号方向控制位 0 采样输入信号为同向输入 1 采样输入信号为反向输入 ADC12DIV ADC12 时钟源分频因子选择位, 分频因子为 3 位二进制数加 1 ADC12SEL ADC12 内核时钟源选择 0 ADC12 内部时钟源 :ADC12OSC 1 ACLK 2 MCLK 3 SMCLK CONSEQ 转换模式选择位 0 单通道单次转换模式 1 序列通道单次转换模式 2 单通道多次转换模式 3 序列通道多次转换模式 ADC12BUSY ADC12 忙标志位 0 表示没有活动的操作 1 表示 ADC12 正处于采样期间 转换期间或序列转换期间 ADC12BUSY 只用于单通道单次转换模式, 如果 ENC 复位, 则转换立即停止, 转换结果不可靠, 需要在使 ENC=0 之前, 测试 ADC12BUSY 位以确定是否为 0 在其它转换模式下此位是无效的 ADC12MEM0-ADC12MEM15 转换存储器 MSB LSB 这 16 位寄存器是用来存储 AD 转换结果, 只用其中低 12 位, 高 4 位在读出时为 0 ADC12MCTLx 转换存储器控制寄存器 7 6,5,4 3,2,1,0

39 EOS SREF INCH EOS 序列结束控制位 0 序列没有结束 1 此序列中最后一次转换 SREF 参考电压源选择位 0 V R+ = A VCC,V R-=A VSS 1 V R+ = A REF+,V R-=A VSS 2,3 V R+ = A eref+,v R-=A VSS 4 V R+ = A VCC,V R-=V REF-/V eref-; 5 V R+ = V REF+, V R-=V REF-/ V eref-; 6,7 V R+ = A eref+,v R-=V REF-/ V eref-; INCH 选择模拟输入通道 用 4 位二进制码表示输入通道 0-7 A0-A7 8 V eref+ 9 V eref-/v eref- 10 片内温度传感器的输出 (A VCC-A VSS) /2 中断控制寄存器 :ADC12IFG ADC12IE ADC12IV ADC12IFG 中断标志寄存器 ADC12IFG.15 ADC12IFG.14 ADC12IFG.1 ADC12IFG.0 ADC12IFG.x = 1 转换结束, 并且转换结果已经装入转换存储器 ADC12IFG.x = 0 ADC12MEMx 被访问 ADC12IE 中断使能寄存器 ADC12IE.15 ADC12IE.14 ADC12IE.1 ADC12IE.0 ADC12IE.x= 1 允许相应的中断标志位 ADC12IFG.x 在置位时发生的中断请求服务 ADC12IE.x=0 禁止相应的中断标志位 ADC12IFG.x 在置位时发生的中断请求服务 ADC12IV 中断向量寄存器 ADC12 是一个多源中断 : 有 18 个中断标志 (ADC12IFG.0 ADC12IFG.15 ADC12TOV ADC12OV) 但只有一个中断向量 ADC12 各中断标志对应的 ADC12IV 值 ADC12 ADC12 ADC TOV OV 2IV

40 优先级从高到低, 分别为 : 数据溢出标志 ADC12OV, 时间溢出中断标志 ADC12TOV ADC12IFG.15 各中断标志产生一个 0-36 的偶数 0 表示没有中断标志 ADC12OV ADC12TOV 会在访问后 ADC12IV 后自动复位, 但 ADC12IFG.0-- ADC12IFG.15 对应中断服务程序响应后, 其标志不自动复位, 用以保证能处理发生 溢出的情况 因为如在 ADC12IFG.x 未复位, 也就是说此时转换结果的数据还未被读 出 而又有新的转换数据写入 ADC12EME 时, 会发生溢出, 所以 ADC12IFG.x 需在用 户软件中复位, 或通过访问对应转换存储器 ADC12MEMx 自动复位 例 1 ADC12- 使用外部参考电压 简述 : 使用单通进行 ADC 转换, 电压参考源来自外部 ADC12 的 Vr+=VeREF+,Vr-=Avss; Vr+ Vr- 是 ADC12 模块的最大值和最小值的参考电压源 当输入模拟电压信号等于或高于 Vr+ 时,ADC12 转换满幅输出, 此时输出值为 0x0FFF 而当输入模拟电压信号等于或小于 Vr- 时,ADC12 转换输出为 0, 此时输出值为 0x0000 ADC12 模拟电压的转换公式为 : Nadc=4095 x (Vin- Vr-) / (Vr+-Vr-) 例程 : //***************************************************************************** #include <msp430x14x.h> void main(void)

41 WDTCTL = WDTPW+WDTHOLD; // 停止看门狗 P6SEL = 0x01; // 打开 A0 A/D 通道输入 ADC12CTL0 = ADC12ON+SHT0_2; // 开 ADC12 模块 + 采集定时器分频系数 n=4 ADC12CTL1 = SHP; // 使用采样定时器输出作采集 / 转换信号 SAMPCON ADC12MCTL0 = SREF_2; // 使用外部参考电压 Vr+ = VeREF+ ADC12CTL0 = ENC; // 允许转换 while (1) ADC12CTL0 = ADC12SC; while ((ADC12IFG & BIT0)==0); _NOP(); // 开始转换 // 等待转换结束 // 转换完成 例 2 ADC12-A0-A3 重复序列转换 简述 : 对 AD0-AD3 进行重复序列转换 在学习 MSP430 ADC12 模块和编写 ADC12 程序时应掌握好对 ADC12 的初始设置 : 1- 设置 AD 端口的输入 2- 打开 ADC12 模块工作 ; 选择 ADC12 内核时钟源 ; 选择采集 / 转换信号源, 若选用了采样定时器作为采集 / 转换信号源 (SAMPCON) 时还要选择转换采样时序与采样时钟 ADC12CLK 的系数 ( 定时器的分频系数 N, 由 SHITx 位组合决定 ) 和采样定时器的触发方式 (MSC 位决定 ) 采集 / 转换周期 : Tsample=4 x Tadc12clk x N 3- 转换模式选择 : 单通道单次 序列单次 单通多次 序列多次 由 ADC12CTL1 的 CONSEQ 位决定 4- 选择 ADC12 参考电压, 和输入通道的选择 例程 : //***************************************************************************** //ADC12 内核时钟源为 ADC12OSC #include <msp430x14x.h> #define Num_of_Results 8 // 定义常数 // 定义全局变量数组, 第个数据为 16 位. static unsigned int A0results[Num_of_Results]; // A0 结果数组 static unsigned int A1results[Num_of_Results]; // A1 结果数组 static unsigned int A2results[Num_of_Results]; // A2 结果数组

42 static unsigned int A3results[Num_of_Results]; // A3 结果数组 void main(void) WDTCTL = WDTPW+WDTHOLD; // 停止看门狗 P6SEL = 0x0F; // 打开 A0-A3 A/D 通道输入 ADC12CTL0 = ADC12ON+MSC+SHT0_8; // 开 ADC12 模块 + 采样信号由 SHI 仅首次触发 //+ 采集定时器分频系数 n=64, ADC12CTL1 = SHP+CONSEQ_3; // 使用采样定时器输出作采集 / 转换信号 SAMPCON // 重复序列采样模式 ADC12MCTL0 = INCH_0; ADC12MCTL1 = INCH_1; ADC12MCTL2 = INCH_2; ADC12MCTL3 = INCH_3+EOS; ADC12IE = 0x08; ADC12CTL0 = ENC; ADC12CTL0 = ADC12SC; _BIS_SR(LPM0_bits + GIE); // 参考电压 ref+=avcc, 输入通道选择为 A0 // 参考电压 ref+=avcc, 输入通道选择为 A1 // 参考电压 ref+=avcc, 输入通道选择为 A2 // 参考电压 ref+=avcc, 输入通道选择为 A3 //+ 由此通道产生序列结束控制位 // A3 通道开中断 ADC12IFG.3 // 允许转换 // 启动转换 // 进入 LPM0 模式, 开总中断允许 #pragma vector=adc_vector interrupt void ADC12ISR (void) static unsigned int index = 0; //ADC 中断服务程序 // 中断服务程序中的静态变量 A0results[index] = ADC12MEM0; // 移动 A0 结果往数组, 此操作的同时清除 ADC12FIG.0 A1results[index] = ADC12MEM1; // 移动 A1 结果往数组, 此操作的同时清除 ADC12FIG.1 A2results[index] = ADC12MEM2; // 移动 A2 结果往数组, 此操作的同时清除 ADC12FIG.2 A3results[index] = ADC12MEM3; // 移动 A3 结果往局数组, 此操作的同时清除 ADC12FIG.3 index = (index+1)%num_of_results; // 增加结果的索引, 取 index 变量的模 ( 余数 ) //***************************************************************************** 例 3 ADC12- 重复单通道转换 简述 :ADC12- 重复单通道转换, 主要了解 ADC12 的设置 例程 : //***************************************************************************** #include <msp430x14x.h> #define Num_of_Results 8

43 static unsigned int results[num_of_results]; // 静态结果数组 void main(void) WDTCTL = WDTPW+WDTHOLD; // 停止看门狗 P6SEL = 0x01; // 打开 A0 A/D 通道输入 ADC12CTL0 = ADC12ON+SHT0_8+MSC; // 开 ADC12 模块,+ 采集时间分频系数 n=64 // 采样信号由 SHI 仅首次触发 ADC12CTL1 = SHP+CONSEQ_2; // 使用采样定时器输出采集 / 转换信号 SAMPCON // 单通道多次转换模式 ADC12IE = 0x01; // 允许 A0 中断 ADC12IFG.0 ADC12CTL0 = ENC; // 允许转换 ADC12CTL0 = ADC12SC; // 开始转换 _BIS_SR(LPM0_bits + GIE); // 进入 LPM0, 开中断总允许 #pragma vector=adc_vector interrupt void ADC12ISR (void) static unsigned int index = 0; // 中断服务程序中的静态变量 results[index] = ADC12MEM0; // 移动结果 index = (index+1)%num_of_results; // 增加结果的索引, 取 index 变量的模 ( 余数 ) //***************************************************************************** 例 4 ADC12- 单通道多次转换, 采用 TA1 作为采样触发源 简述 : 利用 P6.0 为 ADC 输入, 用 CCR1 产生 ADC12 所需的采样触发信号源 P6.0 采用单通道多次采方式采样, 共采样 512 次后进入 LPM3 模式 例程 : //***************************************************************************** TACLK = ACLK #include <msp430x14x.h> #define Num_of_Results 512 int results[num_of_results] = 0; void ADC_Init(void);

44 void main(void) WDTCTL = WDTPW WDTHOLD; ADC_Init(); ADC12CTL0 = ENC; _BIS_SR(LPM0_bits); // 停止看门狗 // 初始化 ADC12 // ADC 开始转换 // 进入 LPM0 模式 void ADC_Init(void) P1DIR = 0xff; // 设 P1 方向为输出 P1OUT = 0; // P1 口输出 0 P6SEL = 0x01; // P6.0 设为 AD0 输入功能 ADC12CTL0 = ADC12ON+SHT0_1+REF2_5V+REFON; // 设置 ADC12 //ADC12 内核开 + 采样保持时间系数 (2)+ 选择内部参考电压 + 打开内部参考电压发生器 ADC12CTL1 = SHP+CONSEQ_2+SHS_1; // 采样触发源来自采样定时器, 由采样输入信号 (ADC12CLK) 的上升沿触发采样定时器 //+ 单通道多次采样 + 采样触发源为 Timer_A 的输出单元 out1 输出的信号 ( 由 CCR1 定时产生 ) ADC12MCTL0 = INCH_0 + SREF_1; // 选择 AD 通道 0+ 正参考电压 =Vref+, 负参考电压 =AVss ADC12IE = 0x0001; TACCR0 = 1500; TACCTL0 = CCIE; TACTL = TASSEL_1 MC_1; _BIS_SR(LPM3_bits + GIE); TACCTL0 &= ~CCIE; P2SEL = BIT3; P2DIR = 0x08; TACCR0 = 7; // 开中断允许 -ADC12IFG.0 // 延时, 允许有足够时间用于整理 // TA 为比较模式 (TA 与 CCRO 比较 ),TA 开中断允许 // TACLK = ACLK, 定时器 A 为增计数模式工作 // 进入 LPM3 模式, 开总中断允许, 等待延时时间结束 // 关闭 CCR0 捕获比较寄存器的中断 // 设 P2.3 为 TimerA out1 输出功能 // 设 p2.3 为输出 // 初始化 TACCR0, 采样时钟源周期 =CCR0+1 TACCR1 = 4; // 初始化 TACCR1, 用于产一个 TimerA.out1 信号给 ADC12 做采样触发信号源 TACCTL1 = OUTMOD_3; // CCR1 捕获比较寄存器的 OUT1 输出单元输出为置位 / 复位模式 TACTL = TACLR MC_1 TASSEL_1; // 定时器时钟 =ACLK, 清除 TA, 增计数模式

45 // Timer_A0 CCR0 中断服务程序 #pragma vector=timera0_vector interrupt void ta0_isr(void) TACTL = 0; // TA 控制寄存器清零 LPM3_EXIT; // 在返回时退出 LPM3 模式 // ADC12 中断服务程序 #pragma vector=adc_vector interrupt void ADC12ISR (void) static unsigned int index = 0; results[index++] = ADC12MEM0; // 静态变量 // 移动 ADC 结果往 results 数组 if (index == 512) // 是否转换了 512 次? ADC12CTL0 &= ~ENC; // 是, 则停止转换 index = 0; P1OUT = 0x01; // P1.0=1 _BIS_SR(LPM3_bits); // 进入 LPM3 模式 //***************************************************************************** 8-USART 串行异步模式 MSP430F149 有两个 USART 通讯端口, 其性能完全一样, 每个通讯口可通过 RS232 RS485 等芯片转换, 与之相应的串行接口电路通讯 MSP430F449 支持串口异步和同步通讯, 每种方式都具有独立的帧格式和独立的控制寄存器 以下简单的介绍异步通讯和用到几个寄存器的功能 1 异步通讯的模式结构 在异步模式下, 接收器自身实现帧的同步, 外部的通讯设备并不使用这一时钟 波特率的产生是在本地完成的 异步帧格式由 1 个起始位 7 或 8 个数据位 校验位 ( 奇 / 偶 / 无 ) 1 个地址位 和 1 或 2 个停止位 一般最小帧为 9 个位, 最大为 13 位 2 波特率发生器 :MSP430 的波特率发生器是根据波特率选择寄存器 UBR 和调整寄存器 UM 来产生的串行数据位, 因此在设置上非常灵活, 波特率 = 模块时钟 / 分频因子 =UBR+UM/8 波特率 : 指每秒传送的位 分频因子 : 是指在特定的波特率下, 每传送一位数据所需要的时钟周期, 用 N 表示 3 UBR 和 UM 寄存器的装载数据的确定 UBR 是一个 16 位的寄存器, 它分两个 8 位寄存器来设顶定,UBR00 和 UBR10 注意他们的高低直接字节, 使用时是按字节操作 例如 : 波特率 =2400, 模块时钟 =32768Hz, 其分频因子为 由于分频因子不一定正好为整数, 因此对小数部分必须通过调整寄存器来进行调整, 在此可插进 5 个 1 来满足一帧数据的 65% 的误差 但即使这样也不可能完全消除这种误差, 只是

46 误差很小可忽略不计, 这样才能准确的进行数据传送 MSP430F14 USART0 异步方式中断控制位 特殊功能寄存器 接收中断控制位 发送中断控制位 IFG1 接收中断标志 URXIFG0 接收中断标志 UTXIFG0 IE1 接收中断使能 URXIE0 接收中断使能 UTXIE0 ME1 接收允许 URXE0 接收允许 UTXE0 MSP430F14 USART1 异步方式中断控制位 特殊功能寄存器 接收中断控制位 发送中断控制位 IFG2 接收中断标志 URXIFG1 接收中断标志 UTXIFG1

47 IE2 接收中断使能 URXIE1 接收中断使能 UTXIE1 ME2 接收允许 URXE1 接收允许 UTXE1 在 MSP430 器件中有的型号有两个通信硬件模块 USART0 和 USART1, 因此他们有两套 寄存器. 请看下表 : USART0 的寄存器 寄存器 缩写 读写类型 地址 初始状态 控制寄存器 U0CTL 读 / 写 070H PUC 后 001H 发送控制寄存器 U0TCTL 读 / 写 71H PUC 后 001H 接收控制寄存器 U0RCTL 读 / 写 72H PUC 后 000H 波特率调整控制寄存器 U0MCTL 读 / 写 73H 不变 波特率控制寄存器 0 U0BR0 读 / 写 74H 不变 波特率控制寄存器 1 U0BR1 读 / 写 75H 不变 接收缓冲器 U0RXBUF 读 76H 不变 发送缓冲器 U0TXBUF 读 / 写 77H 不变 SFR 模块使能寄存器 1 ME1 读 / 写 004H PUC 后 000H FR 模块使能寄存器 1 IE1 读 / 写 000H PUC 后 000H FR 模块使能寄存器 1 IFG1 读 / 写 002H PUC 后 082H USART1 的寄存器寄存器 缩写 读写类型地址 初始状态 控制寄存器 U1CTL 读 / 写 078H PUC 后 001H 发送控制寄存器 U1TCTL 读 / 写 79H PUC 后 001H 接收控制寄存器 U1RCTL 读 / 写 7AH PUC 后 000H 波特率调整控制寄存器 U1MCTL 读 / 写 7BH 不变 波特率控制寄存器 0 U1BR0 读 / 写 7CH 不变 波特率控制寄存器 1 U1BR1 读 / 写 7DH 不变 接收缓冲器 U1RXBUF 读 7EH 不变 发送缓冲器 U1TXBUF 读 / 写 7FH 不变 SFR 模块使能寄存器 1 ME2 读 / 写 005H PUC 后 000H FR 模块使能寄存器 1 IE2 读 / 写 001H PUC 后 000H FR 模块使能寄存器 1 IFG2 读 / 写 003H PUC 后 020H UxCTL 控制寄存器 PENA PEV SPB CHAR LISTEN SYNC MM SWRST PENA 校验允许位 0 校验禁止

48 1 校验允许校验允许时, 发送端发送校验, 接收端接收该校验, 地址位多机模式中, 地址位包含校验操作. PEV 奇偶校验位, 该位在校验允许时有效 0 奇校验 1 偶校验 SPB 停止位选择. 决定发送的停止位数, 但接收时接收器只检测 1 位停止位. 0 1 位停止位 1 2 位停止位 CHAR 字符长度 0 7 位 1 8 位 LISTEN 反馈选择. 选择是否发送数据由内部反馈给接收器 0 无反馈 1 有反馈, 发送信号由内部反馈给接收器 SYNC USART 模块的模式选择 0 UART 模式 [ 异步 ] 1 SPI 模式 [ 同步 ] MM 多机模式选择位 0 线路空闲多机协议 1 地址位多机协议 SWRST 控制位上电时该位置位, 此时 USART 状态机和运行标志初始化成复状态 (URXIFG=0,URXIE=0,UTXIE=0,UTXIFG=1) 所有受影响的逻辑保持在复位状态, 直至 SWRST 复位 也就是说一次系统复位后, 只有对 SWRST 复位,USART 才能重新被允许 而接收和发送允许标志 URXE 和 UTXE 不会因 SWRST 而更改 SWRST 位会使 URXIE UTXIE URXIFG RXWAKE TXWAKE RXERR BRK PE OE 及 FE 等复位 在串行口使用设置时, 这一位起重要的作用 一次正确的 USART 模块初始化应该是这样设置过程的 : 先在 SWRST=1 时设置, 设置完串口后再设置 SWRST=0; 最后如需要中断, 则设置相应的中断使能 UxTCTL 发送控制寄存器

49 未用 CKPL SSEL1 SSEL0 URXSE TXWAKE 未用 TXEPT CKPL 时钟极性控制位 0 UCLKI 信号与 UCLK 信号极性相同 1 UCLKI 信号与 UCLK 信号极性相反 SSEL1 SSEL0 时钟源选择, 此两位确定波特率发生器的时钟源 0 外部时钟 UCLKI; 1 辅助时钟 ACLK 2 子系统时钟 SMCLK 3 子系统时钟 SMCLK URXSE 接收触发沿控制位 0 没有接收触发沿检测 1 有接收触发沿检测 TXWAKE 传输唤醒控制 0 下一个要传输的字符为数据 1 下一个要传输的字符是地址 TXEPT 发送器空标志, 在异步模式与同步模式时是不一样的 0 正在传输数据或者发送缓冲器 (UTXBUF) 有数据 1 表示发送移位寄存器和 UTXBUF 空或者 SWRST=1 URCTL 接收控制寄存器 FE PE OE BRK URXEIE URXWIE RXWAKE RXERR FE 帧错误标志位 0 没有帧错误 1 帧错误 PE 校验错误标志位 0 校验正确 1 校验错误 OE 溢出标志位 0 无溢出 1 有溢出

50 BRK 打断检测位 0 没有被打断 1 被打断 URXEIE 接收出错中断允许位 0 不允许中断, 不接收出错字符并且不改变 URXIFG 标志 1 允许中断, 出错字符接收并且能够置位 URXIFG URXWIE 接收唤醒中断允许位, 当接收到地址字符时, 该位能够置位 URXIFG, 当 URXEIE=0, 如果接收内容有错误, 该位不能置位 URXIFG 0 所有接收的字符都能够置位 URXIFG 1 只能接收到地址字符才能置位 URXIFG 在各种条件下 URXEIE 和 URXWIE 对 URXIFG 的影响 URXEIE URXWIE 字符出错 地址字符 接收字符后的标志位 URXIFG 0 X 1 X 不变 X 置位 不变 置位 1 0 X X 置位 ( 接收所有字符 ) 1 1 X 0 不变 1 1 X 1 置位 RXWAKE 接收唤醒检测位 在地址位多机模式, 接收字符地址位置位时, 该机被唤醒, 在线路空闲多机模式, 在接收到字符前检测到 URXD 线路空闲时, 该机被唤起, RXWAKE 置位 0 没有被唤醒, 接收到的字符是数据 1 唤醒, 接收的字符是地址 RXERR 接收错误标志位 0 没有接收错误 1 有接收到错误 UxBR0 UxBR1 波特率选择寄存器 这两个寄存器是用于存放波特率分频因子的整数部分 UxBR0 波特率选择寄存器 UxBR1 波特率选择寄存器

51 UxMCTL 波特率调整控制寄存器 M7 M6 M5 M4 M3 M2 M1 M0 若波特率发生器的输入频率 BRCLK 不是所需波特率的整数倍, 带有一小数, 则整数部分写 UBR 寄存器, 小数部分由调整寄存器 UxMCTL 的内容反映 波特率由以下公式计算 : 波特率 =BRCLK/(UBR+(M7+M6+ M0)/8) URXBUF 接收数据缓存 接收缓存存放移位寄存器最后接收的字符, 可由用户访问 读接收缓存可以复位接收时产生的各种错误标志 RXWAKE 位和 URXIFGx 位 如果传输 7 位数据, 接收缓存内容右对齐, 最高位为 0 当收接和控制条件为真时, 接收缓存装入当前接收到的字符 当接收和控制条件为真时接收数据缓存结果 条件 结果 URXEIE URXWIE 装入 URXBUF PE FE BRK 0 1 无差错地址字符 所有地址字符 X X X 0 0 无差错字符 所有字符 X X X UTXBUF 发送数据缓存 发送缓存内容可以传至发送移位寄存器, 然后由 UTXDx 传输 对发送缓存进行写操作可以复位 UTXIFGx 如果传输出 7 位数据, 发送缓存内容最高为 0 常用波特率及其对应设置参数与对应误差表 Divide by ACLK[32768HZ 低频振荡器 ] MCLK[ HZ 高频振荡器 ] baud rate 75 ACLK MCLK Ux BR 1 UxB R0 UxM CTL Max.TX Error/% 1 B4 FF -0.3/0.3 Max.R X Error /% -0.3/ 0.3 Sync hr TX Erro r/% UxBR1 Ux BR 0 UxM CTL Max. TX Error /% Max. RX Erro r/% ±2 36 9D FF 0/0.1 ±2

52 FF 0/0.5 0/0.5 ±3 25 3C FF 0/0.1 ±3 0 DA 55 0/0.4 0/0.4 ±2 1B 4E FF 0/0.1 ±2 0 6D / / 0.7 ±2 0D A / D5-1/1-1/1 ±2 06 D3 FF 0/0.3 ±2 0 1B 03-4/3-4/3 ± FF 0/0.3 ±2 0 0D 6B -6/3-6/3 ±4 01 B4 FF 0/0.3 ± F -9/11-9/11 ±7 0 DA 55 0/0.4 ± A -21/12-21/1 2 ±15 0 6D B -0.4/ 1-0.2/ 2 ±2 ±2 ±2 0 1B 03-4/3 ±2 0 0D 6B -6/3 ± /7 ±7 例程描述 : 利用上位软件发送一个字符给单片机, 单片机接收后发回上位软件 MSP430 电路简图如下 : 程序 : // ACLK = UCLK0 = LFXT1 = 32768, MCLK = SMCLK = DCO~ 800k // 波特率在 32768hz = 32768Hz/9600 = 3.41 (0003h 4Ah ) // 软件 :IAR Embedded Workbench Version: 3.4A #include <msp430x14x.h> void delay (void); void main(void) // 串口时, 无此延时

53 WDTCTL = WDTPW + WDTHOLD; P5DIR = 0x80; P5OUT &= ~0x80; P1DIR = 0x02; P1OUT &= ~0x02; // 以下是串口设置 P3SEL = 0x30; ME1 = UTXE0 + URXE0; UCTL0 = CHAR; UTCTL0 = SSEL0; UBR00 = 0x03; UBR10 = 0x00; UMCTL0 = 0x4A; UCTL0 &= ~SWRST; IE1 = URXIE0; // 停止看门 // P5.7 为输出,RS485 控制端 // 使 SN75176B 为接收状态 // 设 LED 指示 // P3.4,5 = USART0 TXD/RXD // 使能 USART0 模块 TXD/RXD // 8 位字符格式 // 串口模块时时钟 UCLK = ACLK // 设置波特率控制寄存器 // 32k/ (ACLK) // 波特率调整寄存器设置 // 初始化 USART 状态机 // 使能 USART0 接收中断 // Mainloop for (;;) _BIS_SR(LPM3_bits + GIE); // 进入 LPM3 模式 / 允许总中断 while (!(IFG1 & UTXIFG0)); // USART0 发送缓冲器是否准备? P5OUT = 0x80; // 使 SN75176B 为发送 TXBUF0 = RXBUF0; // 从接收缓冲器写入发送缓冲器 delay (); P5OUT &= ~0x80; // 使 SN75176B 为接收 P1OUT ^= 0x02; //LED // UART0 接收中断将从 LPM3 模式退出 #pragma vector=uart0rx_vector interrupt void usart0_rx (void) _BIC_SR_IRQ(LPM3_bits); // 退出 LPM3 void delay (void) unsigned i=180; while(i!=0) i--;

54 10-CPU 模块及全局资料 MSP430 中断嵌套机制 (1) 430 默认的是关闭中断嵌套的, 除非你在一个中断程序中再次开总中断 EINT (2) 当进入中断程序时, 只要不在中断中再次开中断, 刚总中断是关闭的, 此时来中断不管是比当前中断的优先级高还是低都不执行 (3) 若在中断 A 中开了总中断, 刚可以响应后来的中断 B( 不管 B 的优先级比 A 高还是低 ),B 执行完现继续执行 注意 : 进入中断 B 生总中断同样也会关闭, 如果 B 中断程序执行时需响应中断 C, 则此时也要开总中断, 若不需响应中断, 则不用开中断,B 执行完后中跳出中断程序进入 A 程序时, 总中断会自动打开 (4) 若在中断中开了总中断, 后来的中断同时有多个, 则会按优先级来执行, 即中断优先级只有在多个中断同时到来才起做用! 中断服务不执行抢先原则 (5) 对于单源中断, 只要响应中断, 系统硬件自动清中断标志位, 对于 TA/TB 定时器的比较 / 捕获中断, 只要访问 TAIV/TBIV, 标志位倍被自动清除 ; 对于多源中断要手动清标志位, 比如 P1/P2 口中断, 要手工清除相应的标志, 如果在这种中断用 EINT(); 开中断, 而在打开中断前没有清标志, 就会有相同的中断不断嵌入, 而导致堆栈溢出引起复位, 所以在这类中断必须先清标志现打开中断开关 关于 CPU 部分我这次主要着重讲述下 SR 状态寄存器各位功能作用, 对于 C 语言写已足够用了 另外还会补充一部单片机全局性的资料 MSP430 的中断分为 3 种 : 系统复位 不可屏蔽中断 可屏蔽中断 关于中断相关状态情况 : (1) 系统复位的中断向量为 0xFFFE (2) 不可屏蔽中断的中断向量为 0xFFFC 响应不可屏蔽中断时, 硬件自动将 OFIE NMIE ACCVIE 复位 软件首先判断中断源并复位中断标志, 接着执行用户代码 退出中断之前需要置位 OFIE NMIE ACCVIE, 以便能够再次响应中断 需要特别注意点 : 置位 OFIE NMIE ACCVIE 后, 必须立即退出中断相应程序, 否则会再次触发中断, 导致中断嵌套, 从而导致堆栈溢出, 致使程序执行结果的无法预料 (3) 可屏蔽中断的中断来源于具有中断能力的外围模块, 包括看门狗定时器工作在定时器模式时溢出产生的中断 每一个中断都可以被自己的中断控制位屏蔽, 也可以由全局中断控制位屏蔽 多个中断请求发生时, 响应最高优先级中断 响应中断时,MSP430 会将不可屏蔽中断控制位 SR.GIE 复位 因此, 一旦响应了中断, 即使有优先级更高的可屏蔽中断出现, 也不会中断当前正在响应的中断, 去响应另外的中断 但 SR.GIE 复位不影响不可屏蔽中断, 所以仍可以接受不可屏蔽中断的中断请求 中断响应的过程 : (1) 如果 CPU 处于活动状态, 则完成当前指令 ; (2) 若 CPU 处于低功耗状态, 则退出低功耗状态 ; (3) 将下一条指令的 PC 值压入堆栈 ; (4) 将状态寄存器 SR 压入堆栈 ; (5) 若有多个中断请求, 响应最高优先级中断 ; (6) 单中断源的中断请求标志位自动复位, 多中断源的标志位不变, 等待软件复位 ; (7) 总中断允许位 SR.GIE 复位 SR 状态寄存器中的 CPUOFF OSCOFF SCG1 V N Z C 位复位 ; (8) 相应的中断向量值装入 PC 寄存器, 程序从此地址开始执行

55 中断返回的过程 : (1) 从堆栈中恢复 PC 值, 若响应中断前 CPU 处于低功耗模式, 则可屏蔽中断仍然恢复低功耗模式 ; (2) 从堆栈中恢复 PC 值, 若响应中断前 CPU 不处于低功耗模式, 则从此地址继续执行程序 CPU 的状态寄存器 SR 保留 V SCG1 SCG0 OscOff CPUoff GIE N Z C V 溢出标志 SCG1 SCG0 时钟控制位 SCG1 置位关闭 SMCLK SCG0 置位关闭 DCO 发生器 OscOff 晶体振荡控制位置位 OscOff 使晶体振荡器处于停止状态, 置位 OscOff 同时 CPUoff 位也置位 可用 NMI 或外部中断 ( 系统当前中断允许 ) 将 CPU 唤醒 CPUoff CPU 控制位置位 CPUoff 可使 CPU 进入关闭模式, 可以用所中断允许将 CPU 唤醒 GIE 全局中断标志位控制可屏蔽中断 GIE 置位 CPU 可响应可屏蔽中断 GIE 置位 CPU 不响应可屏蔽中断 N 负标志 Z 零标志 C 进位标志 特殊功能寄存器系统中断处理当各模块发生中断请求时并且相应的中断允许和通用中断允许位 (GIE) 置位时, 中断服务程序按以下顺序动作 : [1] CPU 处于活动状态 : 完成当前所执行的指令. [2]CPU 处于停止状态 : 低功耗模式终止. [3] 指向下一条指令的 PC 值压入堆栈. [4]SR 压入堆栈 [5] 如果在执行上条指令时已发生多个中断请求等待服务, 则选择最高优先级者. [6] 单中断源标志的中断请求位自动复位, 多中断源标志仍保持置位等待软件服务. [7] 通用中断允许位 GIE 复位 ;CPUoff 位 OSCOff 位和 SCG1 位置位 ; 状态位 V N Z 和 C

56 复位 ;SCG0 位保持不变. [8] 相应的中断向量值装入 PC, 程序从此地址继续执行中断处理. 除了 CPU 的 SR 寄存器中的 GIE 位 ( 总中断允许 ), 中断源都可以被控制位单独或成组地允许或禁止 中断允许标志集中于两个地址的 SFR 中 中断请求对程序流的控制可以运用中断允许和屏蔽来方便地调整 硬件只对被允许的中断源中的最高优先级者服务 系统中断优先级 11,11x1 中断向量表系统中中断标志中断源断 地址 优先级 上电 外部复位 WDTIFG 复位 0FFFEH 15 最高看门狗 KEYV 级 FLASH NMI NMIIFG ( 非 ) 屏蔽 振荡器故障 OFIFG ( 非 ) 屏蔽 0FFFCH 14 FLASH 存储器非法访问 ( 非 ) 屏 ACCVIFG 蔽 0FFFAH 13 0FFF8H 12 比较器 A CMPAIFG 可屏蔽 0FFF6H 11 WDT WDTIFG 可屏蔽 0FFF4H 10 Timer_A3 CCIFG0 可屏蔽 0FFF2H 9 CCIFG1 Timer_A3 CCIFG2 CCIFG 可屏蔽 0FFF0H 8 0FFEEH 7 0FFECH 6 0FFEAH 5 0FFE8H 4 P2 P2IFG.0-7 可屏蔽 0FFE6H 3 P1 P1IFG.0-7 可屏蔽 0FFE4H 2 0FFE2H 1 0FFE0H 0 最低 13,14 中断向量表系统中中断标志中断源断 地址 优先级 上电 复位 0FFFEH 15 最高

57 外部复位 WDTIFG 级 看门狗 KEYV FLASH NMI NMIIFG ( 非 ) 屏蔽 振荡器故障 OFIFG ( 非 ) 屏蔽 0FFFCH 14 FLASH 存储器非法访问 ACCVIFG ( 非 ) 屏蔽 Timer_B7 BCCIFG0 可屏蔽 0FFFAH 13 Timer_B7 BCCIFG1-6 可屏蔽 TBIFG 可屏蔽 0FFF8H 12 比较器 A CMPAIFG 可屏蔽 0FFF6H 11 WDT WDTIFG 可屏蔽 0FFF4H 10 USART0 接收 URXIFG0 可屏蔽 0FFF2H 9 USART0 发送 UTXIFG0 可屏蔽 0FFF0H 8 ADC12 ADCIFG 可屏蔽 0FFEEH 7 Timer_A3 CCIFG0 可屏蔽 0FFECH 6 CCIFG1 可屏蔽 Timer_A3 CCIFG2 可屏蔽 0FFEAH 5 CCIFG 可屏蔽 P1 P1IFG.0-7 可屏蔽 0FFE8H 4 USART1 URXIFG1 可屏蔽 0FFE6H 3 USART1 UTXIFG1 可屏蔽 0FFE4H 2 P2 P2IFG.0-7 可屏蔽 0FFE2H 1 可屏蔽 0FFE0H 0 最低 44x 中断向量表 系统中断 中断源 中断标志 地址 优先级 上电 外部复位 WDTIFG 看门狗 KEYV 复位 FLASH NMI ( 非 ) 屏 NMIIFG 蔽 振荡器故障 OFIFG ( 非 ) 屏蔽 0FFFCH 14 FLASH 存储器非法访问 ACCVIFG ( 非 ) 屏蔽 Timer_B7 BCCIFG0 可屏蔽 0FFFAH 13 0FFFEH 15 最高级

58 Timer_B7 BCCIFG1-6 可屏蔽 TBIFG 可屏蔽 0FFF8H 12 比较器 A CMPAIFG 可屏蔽 0FFF6H 11 WDT WDTIFG 可屏蔽 0FFF4H 10 USART0 接收 URXIFG0 可屏蔽 0FFF2H 9 USART0 发送 UTXIFG0 可屏蔽 0FFF0H 8 ADC12 ADCIFG 可屏蔽 0FFEEH 7 Timer_A3 CCIFG0 可屏蔽 0FFECH 6 CCIFG1 可屏蔽 Timer_A3 CCIFG2 可屏蔽 0FFEAH 5 CCIFG 可屏蔽 P1 P1IFG.0-7 可屏蔽 0FFE8H 4 USART1 URXIFG1 可屏蔽 0FFE6H 3 USART1 UTXIFG1 可屏蔽 0FFE4H 2 P2 P2IFG.0-7 可屏蔽 0FFE2H 1 基础定时器 BTIFG 可屏蔽 0FFE0H 0 最低 ME1 模块允许寄存器 UTXE0 URXE0/ USPIE0 初始状态 :PUC 后为 000H UTXE0 USART0 发送允许位 0 不允许 1 可允许 URXE0 USART0 接收允许位 0 不允许 1 可允许 USPIE0 USART0 发送与接收允许位 ( 在 SPI 模式 ) IFG1 中断标志寄存器 UTXIFG0 URXIFG0 NMIIFG OFIFG WDTIFG 初始状态 :PUC 后为 082H UTXIFG0 USART0 发送中断标志位 (F )

59 此位上电为 UTXIFG0=1, 表示可以向发送缓冲器写操作 对发送缓存进行写操作时可以复位 UTXIFG0 URXIFG0 USART0 接收中断标志位 (F ) 0 无接收到有效字符 1 接收到有效字符, 读接收缓存可以复位接收时产生的各种错误标志 RXWAKE 位和 URXIFGx 位 NMIIFG NMI/RST 引脚信号位 OFIFG 振荡器失效时置位 0 无振荡器失效 1 振荡器失效, 当 XT 扫荡器丢失大约 100 个振荡周期时设置 TX 振荡器失效标志 OSCFault OSCFault 标志设置振荡器失效中断标志 OFIFG, 如果这时振荡器失效中断允许 (OFIE) 置位, 则将产生非屏蔽中断请求 OFIFG 标志必须由用户软件来清除 WDTIFG 看门狗中断标志看门狗模式时溢出或密钥不符时产生置位 IE1 中断使能寄存器 UTXIE0 URXIE0 ACCVIE NMIIE OFIE WDTIE 初始状态 :PUC 后为 000H UTXIE0 USART 发送中断允许位 0 不允许 1 允许 URXIE0 USART0 接收中断使能位允许 0 不允许 1 允许 ACCVIE FLASH 存贮器非法访问中断允许 NMIIE NMI 中断允许 OFIE 振荡器失效中断允许 0 不允许 1 允许

60 WDTIE 看门狗允许, 选看门狗模式无效 0 不允许 1 允许 ME2 中断使能寄存器 UTIE1 URXE1/ USPIE1 初始状态 :PUC 后为 000H UTXE1 USART1 发送允许位 0 不允许 1 可允许 URXE1 USART1 接收允许位 0 不允许 1 可允许 USPIE1 USART0 发送与接收允许位 ( 在 SPI 模式 ) IFG2 中断标志寄存器 UTXIFG1 URXIFG1 初始状态 :PUC 后为 020H UTXIFG1 USART1 发送中断标志位 (F ) 此位上电为 UTXIFG0=1, 表示可以向发送缓冲器写字符 对发送缓存进行写操作时可以复位 UTXIFG0 URXIFG1 USART1 接收中断标志位 (F ) 0 无接收到有效字符 1 接收到有效字符, 读接收缓存可以复位接收时产生的各种错误标志 RXWAKE 位和 URXIFGx 位 IE2 中断使能寄存器 UTXIE1 URXIE1 初始状态 :PUC 后为 000H UTXIE1 USART1 发送中断允许位 (F ) URXIE1 USART1 接收中断允许位 (F )

61 MSP430 低功耗模式 低功耗是 MSP430 单片机其中一种的最大特色, 所以要用得其所, 就要好好了解其低功耗模式的不同状态的不同设置

62 各种工作模式 各控制位及时钟的活动状态 工作模式 控制位 CPU 状态 振荡器及时钟状态 SCG1=0 CPU 处于活动状态 活动模式 (AM) SCG0=0 MCLK 活动 OscOff=0 SMCLK 活动 CPUoff=0 ACLK 活动 SCG1=0 CPU 处于禁止状态 低功耗模式 0 SCG0=0 MCLK 被禁止 (LPM0) OscOff=0 SMCLK 活动 CPUoff=1 ACLK 活动 SCG1=0 CPU 处于禁止状态 SCG0=1 如果 DCO 未用作 MCLK 或 SMCLK, 则直流发生器被禁止, 低功耗模式 1 OscOff=0 否则仍然保持活动 (LPM1) CPUoff=1 SMCLK 活动 ACLK 活动 SCG1=0 CPU 处于禁止状态 SCG0=1 如果 DCO 未用作 MCLK 或 SMCLK, 则自动被禁止 低功耗模式 2 OscOff=0 MCLK 被禁止 (LPM2) SMCLK 被禁 CPUoff=1 止 ACLK 活动 SCG1=1 CPU 处于禁止状态 低功耗模式 3 (LPM3) SCG0=1 OscOff=0 CPUoff=1 DCO 被禁止, 直流发生器被禁止 MCLK 被禁止 SMCL 被禁止 ACLK 活动

63 低功耗模式 4 (LPM4) SCG1=X SCG0=X OscOff=0 CPUoff=1 CPU 处于禁止状态 DCO 被禁止, 直流发生器被禁止 MCLK 被禁止 SMCL 被禁止 ACLK 活动所有振荡器停止工作 参考文献 1. Texas Instruments Incorporated MSP430F14X C code Example 2. Texas Instruments Incorporated MSP430x1xx Family slau049e.pdf 3. Texas Instruments Incorporated MSP430F149 Datasheet 4. <<MSP430 系列 16 位超低功耗单片机原理与应用 >> 沈建华杨艳琴骁曙清华大学出版社 后面将相继推出其它模块寄存器说明, 请密切留意微控设计网的更新 [ 注意版号与更新日期 ] 广告片段 : 出自 DC 版主之手的 MSP430 开发板与 MSP430 仿真器, 详情请往微控设计网查看

64 MSP430FET 仿真器

(3)ADC12Ó¦Ó÷¶Àý

(3)ADC12Ó¦Ó÷¶Àý MSP430 单片机入门应用系列例程 V1.0 (3)ADC12 应用范例策划 : 微控设计网 DC 例 3.1 ADC12- 使用外部参考电压 简述 : 使用单通进行 ADC 转换, 电压参考源来自外部 ADC12 的 Vr+=VeREF+,Vr-=Avss; Vr+ Vr- 是 ADC12 模块的最大值和最小值的参考电压源 当输入模拟电压信号等于或高于 Vr+ 时,ADC12 转换满幅输出, 此时输出值为

More information

untitled

untitled 0571-89908088 89908091 www.lierda.com MSP430X11X2,MSP430X12X2 :1.8V-3.6V -:1MHz 2.2V 200 ua -:0.7 ua -(RAM ):0.1uA 6us 16, 125us -DCO -DCO - 32kHz - 16MHz - - 3 / 16 Timer_A 200ksps 10 A/D,,,. (USART0)(MSP430X12X2),

More information

MSP430单片机简介

MSP430单片机简介 . September 14, 2012 . 1 简介 MSP430 单片机特点超低功耗 2 MSP430 时钟系统 3 MSP430 的端口 4 定时器看门狗定时器定时器 A 5 示例 MSP430 单片机特点. 简介 MSP430 单片机是美国德州仪器 (TI) 公司 1996 年开始推向市场的一种 16 位超低功耗 具有精简指令集的混合信号处理器 它将多个不同功能的模拟电路 数字电路模块和微处理器集成在了一个芯片上

More information

MSP430x11x1 T A -40 ~ SOWB 20 TSSOP (DW) (PW) MSP430F110IDW MSP430F110IPW MSP430F112IDW MSP430F112IPW + F11x 30kΩ

MSP430x11x1 T A -40 ~ SOWB 20 TSSOP (DW) (PW) MSP430F110IDW MSP430F110IPW MSP430F112IDW MSP430F112IPW + F11x 30kΩ MSP430F11x 1.8-3.6V 1.6uA@4KHz 200uA@1MHz 2.2V 5 ( 0.8uA RAM 0.1uA) 6us 16 RISC 125nS 32KHz / 16 A/D MSP430F110 1KB+128B 128B RAM MSP430F112 4KB+256B 256B RAM 20 (SOWB) 20 (TSSOP) MSP430 16 RISC CPU 16

More information

MSP430F KB+256B flash 10KB RAM 64 Quad Flat Pack QFP MSP430x1xx SLAU049 MSP430 MSP RISC CPU 16 DCO 6 MSP430x15x/16x/161x A/D 12 D/A

MSP430F KB+256B flash 10KB RAM 64 Quad Flat Pack QFP MSP430x1xx SLAU049 MSP430 MSP RISC CPU 16 DCO 6 MSP430x15x/16x/161x A/D 12 D/A MSP430x15x, MSP430x16x MSP430x161x 1.8V 3.6V 1MHz 2.2V 280 A 1.6 A RAM 0.1 A 6 S 16 125 DMA 12 A/D 12 D/A / 16 A / 16 B USART1 UART SPI USART0 UART SPI I 2 C / Bootstrap Loader MSP430F155: 16KB+256B flash

More information

untitled

untitled MSP430F22X4 :1.8V-3.6V -:1MHz 2.2V 250 ua -:0.7 ua -(RAM ):0.1uA 1us 16, 65ns -16MHz ±1% - - 32kHz - 16M - - - 3 / 16 Timer_A 3 / 16 Timer_B 10 A/D 200ksps (USCI) - UART LIN -IrDA - SPI -I2C Bootstrap

More information

Microsoft Word - MSP430 Launchpad 指导书.docx

Microsoft Word - MSP430 Launchpad 指导书.docx Contents 3... 9... 14 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 New Project File > New > CCS Project Project name: ButtonLED Device>Family: MSP430 Variant: MSP430G2553 Project templates and examples : Empty Project

More information

Microsoft Word - MSP_430学习笔记.doc

Microsoft Word - MSP_430学习笔记.doc MSP430 学习笔记 (1) 这只是我在学习 TI 公司生产的 16 位超的功耗单片机 MSP430 的随笔, 希望能对其他朋友有所借鉴, 不对之处还请多指教 下面, 开始 430 之旅 讲解 430 的书现在也有很多了, 不过大多数都是详细说明底层硬件结构的, 看了不免有些空洞和枯燥, 我认为了解一个 MCU 的操作首先要对其基础特性有所了解, 然后再仔细研究各模块的功能 1. 首先你要知道 msp430

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

Microsoft Word - µÚ4ÕÂ Basic clock+.doc

Microsoft Word - µÚ4ÕÂ Basic clock+.doc MSP430F2 系列 16 位超低功耗单片机模块原理第 4 章 Basic Clock + 基础时钟模块 + 版本 : 1.4 日期 : 2007.6. 原文 : TI MSP430x2xxfamily.pdf 翻译 : 张超哈尔滨理工大学编辑 : DC 微控技术论坛版主 注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限, 有整理过程中难免有所不足或错误

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机比较器原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系列单片机的比较器内部结 构 STC 单片机比较器结构 从图中可以看出, 比较器正端输入 CMP+ 的输入电压来自单片机的 P5.5

More information

MSP430 MSP430 F149 MSP430F149 P USART MSP430F PWM 63#

MSP430 MSP430 F149 MSP430F149 P USART MSP430F PWM 63# MSP430 MSP430 0002 63# 710061 2003 7 63# 710061 1 MSP430 MSP430 F149 MSP430F149 P USART MSP430F149 485 232 PWM 63# 710061 2 MSP430 MSP430 16 FLASH,, 16, 64K,, 16 14 12 6 P USART DCO, 8M FLASH,, JTAG FET(FLASH

More information

Microsoft Word - µÚ15ÕÂ Compare.doc

Microsoft Word - µÚ15ÕÂ Compare.doc MSP430F2 系列 16 位超低功耗单片机模块原理第 15 章 Compare A+ 比较器 A+ 版本 : 1.2 日期 : 2007.7. 原文 : TI MSP430x2xxfamily.pdf 翻译 : 欧浩源中国计量学院编辑 : DC 微控技术论坛版主 注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限, 有整理过程中难免有所不足或错误

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

议程 介绍 Value Line 系列 Code Composer Studio CPU 与基本时钟模块 中断与 GPIO Timer_A 与 WDT+ MSP430 低功耗设计 ADC10 和 Comparator_A+ 串行通信模块 Grace 电容式触摸按键解决方案

议程 介绍 Value Line 系列 Code Composer Studio CPU 与基本时钟模块 中断与 GPIO Timer_A 与 WDT+ MSP430 低功耗设计 ADC10 和 Comparator_A+ 串行通信模块 Grace 电容式触摸按键解决方案 采用 MSP430 LaunchPad 启动开发工作 议程 介绍 Value Line 系列 Code Composer Studio CPU 与基本时钟模块 中断与 GPIO Timer_A 与 WDT+ MSP430 低功耗设计 ADC10 和 Comparator_A+ 串行通信模块 Grace 电容式触摸按键解决方案 MSP430 系列 MCU 产品 MSP430 MCU 介绍 超低功耗 业内功耗最低的

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

MSP430 串行异步通讯原理与实现 南京航空航天大学 魏小龙 本讲讲述串口功能与连接的实现 大多数 MSP430 芯片都有硬件异步通讯功能, 有一些器件有两个通讯端口, 也有少数没有 没有硬件串口的芯片可以实现软件 ( 模拟 ) 串口 下面表格为 430 系列芯片串口的情况 系列芯片 F11 系列

MSP430 串行异步通讯原理与实现 南京航空航天大学 魏小龙 本讲讲述串口功能与连接的实现 大多数 MSP430 芯片都有硬件异步通讯功能, 有一些器件有两个通讯端口, 也有少数没有 没有硬件串口的芯片可以实现软件 ( 模拟 ) 串口 下面表格为 430 系列芯片串口的情况 系列芯片 F11 系列 MSP430 串行异步通讯原理与实现 南京航空航天大学 魏小龙 本讲讲述串口功能与连接的实现 大多数 MSP430 芯片都有硬件异步通讯功能, 有一些器件有两个通讯端口, 也有少数没有 没有硬件串口的芯片可以实现软件 ( 模拟 ) 串口 下面表格为 430 系列芯片串口的情况 系列芯片 F11 系列 F12 系列 F13 系列 F14 系列 F15 系列 F16 系列 串口数量 0 1 1 2 1

More information

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模 新一代超低功耗 16 位单片机 TI MSP430 系列 美国 TI 公司的 MSP430 系列单片机可以分为以下几个系列 X1XX X3XX X4XX 等等 而且 在不断发展 从存储器角度 又可分为 ROM C 型 OTP P 型 EPROM E 型 Flash Memory F 型 系列的全部成员均为软件兼容 可以方便地在系列各型号间移植 MSP430 系列单片机 的 MCU 设计成适合各种应用的

More information

MSP430系统实验教程.doc

MSP430系统实验教程.doc MSP430 系列十六位超低功耗单片机 教学实验系统实验教程 赵建谢楷沈雪亮张宝梁海军杨乐林庹明光徐常志编写 西安电子科技大学测控工程与仪器系 2006 年 5 月 1 第一部分 MSP430 系列单片机系统原理 2 第一章 MSP430 单片机概述 MSP430 系列单片机是美国德州仪器 (TI)1996 年开始推向市场的一种 16 位超低功耗的混合信号处理 器 (Mixed Signal Pocessor)

More information

MSP430

MSP430 微控设计网 http://www.microcontrol.cn 微控技术论坛 http://bbs.microcontrol.cn 主题 : 基于模拟前端信号处理与控制技术的专业论坛, 网站. 基于模拟前端信号处理与控制技术的专业论坛 网站. MSP430F20xx 小巧 快速 灵活 Vincent Chan 德州仪器亚洲 MSP430 市场经理 vince-chan@ti.com 2005 Texas

More information

128K Flash EPROM 的程序?\(Bank=64K\) 切?

128K Flash EPROM 的程序?\(Bank=64K\) 切? 应用说明 华邦 8 位单片机 (8051 内核 ) 应用说明 华邦 8 位单片机 (8051 内核 ) ANSC-UC08-0007 目录 - 1. 应用说明 :...4 1.1...4 1.2 相关寄存器介绍...4 1.2.1 串行口控制寄存器 (SCON)... 4 1.2.2 串行数据缓冲寄存器 (SBUF)... 5 1.2.3 串行口控制 1 (SCON1)... 5 1.2.4 串行数据接收缓冲

More information

第 1 章 MSP430 快速入门 因为最近转入 MPS430 的技术支持工作, 所以现在开始学习 430 的开发 由于之前用过 51, 也用过 TI 的 ARM CORTEX-M3, 但是就是没有用过 TI 的 430, 所以将 我学习 430 的过程写出来, 给像我一样之前没有 430 开发经验

第 1 章 MSP430 快速入门 因为最近转入 MPS430 的技术支持工作, 所以现在开始学习 430 的开发 由于之前用过 51, 也用过 TI 的 ARM CORTEX-M3, 但是就是没有用过 TI 的 430, 所以将 我学习 430 的过程写出来, 给像我一样之前没有 430 开发经验 目录 第 1 章 MSP430 快速入门...1 1.1 准备工作... 1 1.2 MSP430 的时钟系统... 3 1.3 DCO 时钟校准...3 1.4 硬件最小系统...4 1.5 在 IAR 下新建工程...4 i/11 第 1 章 MSP430 快速入门 因为最近转入 MPS430 的技术支持工作, 所以现在开始学习 430 的开发 由于之前用过 51, 也用过 TI 的 ARM CORTEX-M3,

More information

Microsoft Word - µÚ14ÕÂ OA.doc

Microsoft Word - µÚ14ÕÂ OA.doc MSP430F2 系列 16 位超低功耗单片机模块原理第 14 章 OA 运算放大器版本 : 1.4 日期 : 2007.5. 原文 : TI MSP430x2xxfamily.pdf 翻译 : 陈军长春工业大学编辑 : DC 微控技术论坛版主注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限, 有整理过程中难免有所不足或错误 ; 所以以下内容只供参考.

More information

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示 实验题目 : 串行接口芯片 8251 实验目的 : 1. 掌握 8251 的工作方式及应用 2. 了解有关串口通讯的知识 串行接口芯片 8251 3. 掌握使用 8251 实现双机通讯的软件编程和电路连接 实验设备 : IA-32 架构的微机系统及应用教学平台两套 实验原理 : 1. 8251 的基本性能 性能 : 8251 是可编程的串行通信接口, 可以管理信号变化范围很大的串行数据通信 有下列基本

More information

Microsoft Word - MSP430简介.doc

Microsoft Word - MSP430简介.doc TI 提供业界超低功耗微控制器 TI MSP430 家族阵容 : MSP430F1X:MSP430 单片机较早产品, 体积小 性价比高 使用灵活 品种最多 MSP430F2X:1X 系列的精简升级版, 价格低 小型 灵活, 是业界功耗最低的单片机 MSP430F4X: 包含片内段式 LCD 驱动模块, 为流量和电量计量提供单芯片解决方案 MSP430F5X: 新款基于闪存的产品系列, 具有更强的存储功能和集成功能和前所未有的低功耗

More information

MSP430 Launchpad 指导书

MSP430 Launchpad 指导书 MSP430 Launchpad 指导书 徐珺 2013.12 Contents 第一部分第一个工程... 3 第二部分中断和计时器... 10 第三部分 UART... 16 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 在这一部分中, 我们将介绍 CCS 集成开发环境的一些基本 使用方法, 并试着编写一个简单的小程序, 实现按键打开 LED TI 的 Launchpad 板本身是完整的

More information

作业四:

作业四: 考试试题姓名 : 班级 : 分数 : 一 : 简述题 (1)MSP430F5xx 单片机的时钟系统中有哪几个时钟, 并分别讲述下它们的作用 (7) MSP430F5xx 单片机的时钟系统有 MCLK ACLK SMCLK MCLK 为主系统时钟, 主 要为 CPU 提供时钟 ACLK 为辅助系统时钟, 主要为低速的外围模块提供时钟 SMCLK 为子系统时钟, 主要为高速外围模块时钟 各种模块时钟的选择取决于系统对处理速度

More information

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结!

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! 以下是串口的时序 : 在设计中, 耽误时间最长的问题就是数据老是出错, 为了找出问题的所在, 用示波器观察了

More information

查询 MSP430F1111A 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 SLAS241G SEPTEMBER 1999 REVISED AUGUST 2003 Low Supply Voltage Range 1.8 V 3.6 V Ultralow-Power Consump

查询 MSP430F1111A 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 SLAS241G SEPTEMBER 1999 REVISED AUGUST 2003 Low Supply Voltage Range 1.8 V 3.6 V Ultralow-Power Consump 查询 MSP43FA 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 Low Supply Voltage Range.8 V 3.6 V Ultralow-Power Consumption Active Mode: 6 µa at MHz, 2.2 V Standby Mode:.7 µa Off Mode (RAM Retention):. µa Wake-Up From Standby

More information

练习 5: 冒泡程序目的 : 了解 C 语言的基础知识, 学会比较数据和排序要求 : 1 将 9,17,5,38,26 这五个数按从小到大的顺序排序 ; 2 将排序函数放在起始地址为 0XC000 的 FLASH 中 ; 3 将排好序的数组放到起始地址为 0x300 开始的 RAM 中 ; 4 程序

练习 5: 冒泡程序目的 : 了解 C 语言的基础知识, 学会比较数据和排序要求 : 1 将 9,17,5,38,26 这五个数按从小到大的顺序排序 ; 2 将排序函数放在起始地址为 0XC000 的 FLASH 中 ; 3 将排好序的数组放到起始地址为 0x300 开始的 RAM 中 ; 4 程序 第一周汇编指令系统培训作业 练习 1: 一个 16 进制的字与 BCD 码相互转换目的 : 了解不同进制之间的关系, 学习加 减等指令 要求 : 绘制流程图 参数使用通用寄存器 R11-R15 练习 2:1.2s 延时程序目的 : 了解寻址方式和指令执行周期, 学习跳转等指令 要求 : 绘制流程图 时钟采用 MCLK( 默认 1M), 延时 1.2s, 双层循环结构 练习 3:16 16 软件乘法程序目的

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机 CCP/PCA/PWM 模块原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 CCP/PCA/PWM 结构 STC15 系列部分单片机内部集成了三路 CCP/PCA/PWM 模块, 如图 24.1 所示 注 : STC15W1K16S STC15W404S STC15W201S STC15F100W 系列单片机无 CCP/PCA/PWM

More information

Microsoft Word - ¹ØÓÚMSP430flash×ÔÉý¼¶µÄ³¢ÊÔ.doc

Microsoft Word - ¹ØÓÚMSP430flash×ÔÉý¼¶µÄ³¢ÊÔ.doc MSP430 程序自升级的实现原理及过程 更新 : 01 作者 : 乔海坤微控论坛特约 DC 微控论坛版主 在过去有很多公司或个人对于 MSP430 单片机串口自升级技术都当一个技术机密 而 TI 公布的是汇编语言编写的例子, 在理解上也不便 而在网络上也很难得到公开例程, 这样使得部分 MSP430 用户想实现这个功能时极为艰难 为此, 微控论坛和大家分享如何利用 MSP430 单片机串口自升级的实现实验

More information

Microsoft Word - 430实验说明.doc

Microsoft Word - 430实验说明.doc 实验一 :LED 灯显示实验 实验电路 : led_one: 实验结果为实现 1 个灯闪烁 led_all_timer: 实验结果为控制 8 个 LED 灯同时闪烁 led_run: 实验结果为实现简单流水灯 led_run_timer: 实验结果为实现流水灯以三种流动方式和四种流动速度的不同组合而进行点亮 " 流动 " led_pwm: 实验结果为用从 P2.3 和 P2.4 输出的 PWM 波形驱动

More information

RO 电容检测 : 其原理就是测震荡电路频率, 关键参数在电容 ----C1 的充放电,R5 和 C1 构成一阶 RC 震荡电路 比较器的输入电压时随着输出电压变化而变化的, 而比较器负输入端电压是由 C1 充放电决定 通过计算可以发现, 电容电压在 1/3VCC-2/3VCC 之间反复变化 其震荡

RO 电容检测 : 其原理就是测震荡电路频率, 关键参数在电容 ----C1 的充放电,R5 和 C1 构成一阶 RC 震荡电路 比较器的输入电压时随着输出电压变化而变化的, 而比较器负输入端电压是由 C1 充放电决定 通过计算可以发现, 电容电压在 1/3VCC-2/3VCC 之间反复变化 其震荡 硬件检测电路原理 : Capitiactive Touch Pad 3 种常见电容检测电路介绍 :1.RC 检测, 基本趋于淘汰, 灵敏度低,2.RO 外部震荡, 外围需要一些电阻电容, 加大 PCB 体积,3.PinOsc with internal RO, 外部只需挂一个电容 RO 电容检测 : 其原理就是测震荡电路频率, 关键参数在电容 ----C1 的充放电,R5 和 C1 构成一阶 RC

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc 可程序计数数组 (PCA) 功能使用方法 1 适用产品 :SM59D04G2,SM59D03G2 2 应用说明 : PCA 共有五组, 每组皆可工作于以下七种模式 : 捕获模式 - 正缘捕获模式 (Positive edge capture mode) 捕获模式 - 负缘捕获模式 (Negative edge capture mode) 捕获模式 - 正缘及负缘捕获模式 (Both positive

More information

Microsoft Word - µÚ17ÕÂ SD16A.doc

Microsoft Word - µÚ17ÕÂ SD16A.doc MSP430F2 系列 16 位超低功耗单片机模块原理第 17 章 SD16_A 16 位 Σ-Δ 模数转换器版本 : 1.3 日期 : 2007.5. 原文 : TI MSP430x2xxfamily.pdf 翻译 : 李璘中国计量学院编辑 : DC 微控技术论坛版主 注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限, 有整理过程中难免有所不足或错误

More information

查询 MSP430F110 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 Low Supply Voltage Range 1.8 V to 3.6 V Ultralow-Power Consumption: Active Mode: 200 µa at 1 MHz, 2.2 V S

查询 MSP430F110 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 Low Supply Voltage Range 1.8 V to 3.6 V Ultralow-Power Consumption: Active Mode: 200 µa at 1 MHz, 2.2 V S 查询 MSP43F11 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 Low Supply Voltage Range 1.8 V to 3.6 V Ultralow-Power Consumption: Active Mode: 2 µa at 1 MHz, 2.2 V Standby Mode:.8 µa Off Mode (RAM Retention):.1 µa Wake-Up

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

第 16 章 SPI 串行同步通讯接口模式 这个 5 系列通用串行通信接口支持一个硬件模块下的多通道串行通信模式 本章节主要讨论同步外围接口的运行或称 SPI 模式的运行 16.1 USCI 的概述通用串行通信接口模块支持多道串行通信模式 不同的 USCI 支持不同的模式 每一个不同的 USCI 模

第 16 章 SPI 串行同步通讯接口模式 这个 5 系列通用串行通信接口支持一个硬件模块下的多通道串行通信模式 本章节主要讨论同步外围接口的运行或称 SPI 模式的运行 16.1 USCI 的概述通用串行通信接口模块支持多道串行通信模式 不同的 USCI 支持不同的模式 每一个不同的 USCI 模 MSP430F5 系列 16 位超低功耗单片机模块原理 第 16 章 SPI 串行同步通讯接口模式 版本 : 1.1 发布日期 : 2008.9. 最后更新日期 :2010.8. 原文 : TI slau208.pdf (5xxfamily User's Guide) 翻译 : 张桂兴西北工业大学 编辑 : DC 微控网总版主 注 : 以下文章是翻译 TI slau208.pdf 文件中的部分内容

More information

static unsigned int n250ms=o; n250ms++; if(n250ms==2){ // 延时 250ms 2=500ms n250ms=0; // 清零计数器 DelayTime&=~Delay500ms;// 复位标志位 WDTCTL=WDTHOLD+WDTPW; 1E

static unsigned int n250ms=o; n250ms++; if(n250ms==2){ // 延时 250ms 2=500ms n250ms=0; // 清零计数器 DelayTime&=~Delay500ms;// 复位标志位 WDTCTL=WDTHOLD+WDTPW; 1E MSP430C 延时程序设计 ( 为了阅读方便, 贴在下面 ) MSP430 是超低功耗 16 位单片机, 越来越受到电子工程师亲睐并得到广泛应用 C 程序直观, 可读性好, 易于移植和维护, 已被很多单片机编程人员所采用 MSP430 集成开发环境 ( 如 IAR Embedded Workbench 和 AQ430) 都集成了 C 编译器和 C 语言级调试器 C SPY 但是 C 语言难以实现精确延时,

More information

Microsoft Word - µÚ5ÕÂ Flash control.doc

Microsoft Word - µÚ5ÕÂ Flash control.doc MSP430F2 系列 16 位超低功耗单片机模块原理第 5 章 Flash 块控制器版本 : 1.3 日期 : 2007.6. 原文 : TI MSP430x2xxfamily.pdf 翻译 : 余川编辑 : DC 微控技术论坛版主 注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限, 有整理过程中难免有所不足或错误 ; 所以以下内容只供参考.

More information

Microsoft Word - mcu-an z-10.doc

Microsoft Word - mcu-an z-10.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500004-Z-10 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 8/16 位多功能定时器 应用笔记 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 本手册共 40 页 1. 本文档记载的产品信息及规格说明如有变动, 恕不预先通知 如需最新产品信息和 /

More information

untitled

untitled www.mcudriver.cn 1.1 / 1) WinAVR20070525 2) Source Insight 3) ISP 4) PonyProg ISP 5) USB 6) 1.2. MCU ATMEGA16 1.3. AVR8 1.4 LED0~LED7 1 1.5 #include // Program 1.1 LED.C #define uchar unsigned

More information

Microsoft Word - µÚ10ÕÂ Universal Serial Interface.doc

Microsoft Word - µÚ10ÕÂ Universal Serial Interface.doc MSP430F2 系列 16 位超低功耗单片机模块原理第 10 章通用串口界面 Universal Serial Interface 版本 : 1.5 日期 : 2007.5. 原文 : TI MSP430x2xxfamily.pdf 翻译 : 陈安都湖南长沙 - 中南大学编辑 : DC 微控技术论坛版主 注 : 以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容 由于我们翻译水平有限,

More information

第 卷 第 期 年 月 半 导 体 学 报! " # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% )

第 卷 第 期 年 月 半 导 体 学 报!  # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% ) 第 卷 第 期 年 月!"# $%&'%' $!&'#%#$1/#1 $'! /18103 2?/03101?/18103 /3 0,?/0301.13 )*+!!! '!,!! -.&' $!'! 4%%&1)/1(7%&)03(%)%&,%*(1&0)%$-0*,%30)17*1*)0(+1(1+&1*+*),)1; &113(%44(10&.0701&0-&00*/)%;()1%-1+%&0)0*1*)%

More information

第三章 3.5 Flash 使用的代码样例 #include "msp430g2553.h" /**************************************************** g2553 有 4 个数据段, 每个数据段有 64bytes, 共 256bytes D:0x10

第三章 3.5 Flash 使用的代码样例 #include msp430g2553.h /**************************************************** g2553 有 4 个数据段, 每个数据段有 64bytes, 共 256bytes D:0x10 MSP-EXP430Launchpad 实验指南参考代码附录 本附录为 MSP-EXP430Launchpad 实验指南中各章节涉及示例程序的完整参考代码 目录 第三章... 2 3.5... 2 3.6... 5 第五章... 11 5.1.1... 11 5.1.2... 13 5.1.3... 14 5.1.4... 17 5.1.5... 18 5.1.6... 21 5.2.1... 22

More information

CM ZT1

CM ZT1 Spansion 模拟和微控制器产品 本文档包含有关 Spansion 模拟和微控制器产品的信息 尽管本文档内有原来开发该产品规格的公司名称 富士通 或 Fujitsu, 该产品将由 Spansion 提供给现有客户和新客户 规格的延续本文档内容并不因产品供应商的改变而有任何修改 文档内容的其他更新, 均为改善文档而进行, 并已记录在文档更改摘要 日后如有需要更改文档, 其更改内容也将记录在文档更改摘要

More information

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC LCD PIC 单片机解决方案 集成 LCD 驱动器模块的 PIC 单片机 www.microchip.com/lcd ,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC,

More information

Electrical and Optical Clock Data Recovery Solutions - Data Sheet

Electrical and Optical Clock Data Recovery Solutions - Data Sheet 32 GBd N1076A 32 GBd N1077A / 64 GBd N1076B 64 GBd N1078A / 64 GBd NRZ PAM4 O/E < 100 fs RMS JSA PLL ...3...4...4...5 /...6...8...11 N1076A...12 N1076B DCA-M...13 N1077A...15 N1078A DCA-M...17...21...

More information

第10章:CCP捕捉/比较/脉宽调制

第10章:CCP捕捉/比较/脉宽调制 第 10 章 :CCP 捕捉 / 比较 / 脉宽调制 CCP 模块功能 捕捉功能模式 比较功能模式 脉宽调制功能 1 CCP 模块功能 PIC 2 捕捉 比较 脉宽调制模块 CCP1 CCP2(Capture/Compare/PWM) 16 CCPR1 CCPR2 模块 功能 功能 TMR1 TMR2 2 CCP 模块功能 CCP 模块 3 模式 : 捕捉 式 比较 式 脉宽调制 式 捕捉功能 捕捉

More information

目录

目录 ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28

More information

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D 控制器 thert thert thert 接下一个电机驱动模块 () 接下一个电机驱动模块 () 电机驱动模块 电机驱动模块 电源模块 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () X 0 X 0 4 /RK /RK 注 注 制动电阻阻值 Ω Φ 80: 适用电机驱动模块型号 8-M-XXXX--XX Φ : 适用电机驱动模块型号

More information

Microsoft Word - SC16C550应用实例.doc

Microsoft Word - SC16C550应用实例.doc SCC0 应用实例. 概述 SCC0 是 PHILIPS 推出的一款高性能的 UART 芯片, 其具有 字节 FIFO 和 IrDA 编 / 解码模块 本文将结合电路和程序演示如何使用 SCC0 接收和回送 UART 数据 读者可以根据图 制作 SCC0 的 DEMO 版 ; 在 KEIL C 开发环境下, 可利用 PVRD 的 SOFTICE 功能, 方便调试 SCC0 的各种功能. 电路分析 图

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

bingdian001.com

bingdian001.com TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 whym1987@126.com! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk)

More information

Microsoft Word - 第1章 MCS-51单片机基础.docx

Microsoft Word - 第1章 MCS-51单片机基础.docx 51 单片机应用开发实战手册 作者 : 华清远见 第 1 章 MCS-51 单片机基础 本章目标 单片机作为嵌入式微控制器在工业测控系统 智能仪器和家用电器中得到广泛 应用 虽然单片机的品种很多, 但 MCS-51 系列单片机仍不失为单片机中的主流机 型 本章主要介绍 MCS-51 单片机的基础知识和学习要点, 以目前应用最为广泛的 AT89SXX 系列单片机为例, 介绍单片机的历史发展 应用领域

More information

Getting Started with the MSP430 LaunchPad

Getting Started with the MSP430 LaunchPad 采用 MSP430 LaunchPad 启动开发工作 议程 介绍 Value Line 系列 Code Composer Studio CPU 与基本时钟模块 中断与 GPIO Timer_A 与 WDT+ MSP430 低功耗设计 ADC10 和 Comparator_A+ 串行通信模块 Grace 电容式触摸按键解决方案 MSP430 系列 MCU 产品 MSP430 MCU 介绍 超低功耗 业内功耗最低的

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

33023A.book(31026A_cn.fm)

33023A.book(31026A_cn.fm) 26 第 26 章看门狗定时器与休眠模式 目录 看门狗定时器与休眠模式 本章包括下面一些主要内容 : 26.1 简介... 26-2 26.2 控制寄存器... 26-3 26.3 看门狗定时器 (WDT) 的操作... 26-4 26.4 休眠省电模式... 26-7 26.5 初始化... 26-9 26.6 设计技巧... 26-10 26.7 相关应用笔记... 26-11 26.8 版本历史...

More information

2005.book

2005.book ...4... 4... 7...10... 10... 10... 10... 10... 11... 11 PCC... 11 TB170... 12 /... 12...13... 13 BP150 / BP151 / BP152 / BP155... 14...15... 15... 15... 15... 15... 15... 15... 16 PS465 / PS477... 17 PS692

More information

没有幻灯片标题

没有幻灯片标题 第 2 章单片机结构 第 1 节单片机简介 第 2 节 MSP430 单片机结构 第 1 节单片机简介 一 单片机与嵌入式系统 二 典型单片机的基本构成 一 单片机与嵌入式系统 将 CPU 内存 I/O 接口集成一块芯片上, 构成具备基本功能的计算机, 称单片机 总线控制 CPU 时钟逻辑复位控制 CPU 系统 CPU 外围单元 ROM RAM I/O T/C UART 中断 基本功能单元 PWM

More information

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD Leica MC170 HD Leica MC190 HD 5 6 7 8 11 12 13 14 16 HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD 22 23 24 26 Leica MC170 HD Leica MC190 HD ( ) 28

More information

STC15W4K60S4系列增强型PWM波形发生器应用

STC15W4K60S4系列增强型PWM波形发生器应用 STC15W4K32S4 系列新增 6 通道增强型带死区控制高精度 PWM 波形发生器应用 STC15W4K32S4 系列的单片机集成了一组 ( 各自独立 6 路 ) 增强型的 PWM 波形发生器 PWM 波形发生器内部有一个 15 位的 PWM 计数器供 6 路 PWM 使用, 用户可以设置每路 PWM 的初始电平 另外,PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,

More information

Microsoft Word - mcu-an z-10.doc

Microsoft Word - mcu-an z-10.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500007-Z-10 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 外部中断 应用笔记 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 本手册共 22 页 1. 本文档记载的产品信息及规格说明如有变动, 恕不预先通知 如需最新产品信息和 / 或规格说明, 联系富士通销售代表或富士通授权分销商

More information

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63> 实验四 ARM 的 I/O 接口实验 一 实验目的 1. 了解 S3C44B0X 的通用 I/O 接口 2. 掌握 I/0 功能的复用并熟练的配置, 进行编程实验二 实验设备 1. EL-ARM-830 教学实验箱,PentiumII 以上的 PC 机, 仿真器电缆 2. PC 操作系统 WIN98 或 WIN2000 或 WINXP,ARM SDT2.5 或 ADS1.2 集成开发环境, 仿真器驱动程序

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

2 12

2 12 SHENZHEN BRILLIANT CRYSTAL TECHNOLOGIC CO.,LTD. The specification for the following models Graphic LCM serial communication control board CB001 PROPOSED BY APPROVED Design Approved TEL:+86-755-29995238

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

GW2A 系列 FPGA 产品 GW2A-18 器件 Pinout Version History 日期 版本 2016/8/ /9/ /11/ /2/ /6/ /6/ /8

GW2A 系列 FPGA 产品 GW2A-18 器件 Pinout Version History 日期 版本 2016/8/ /9/ /11/ /2/ /6/ /6/ /8 Version History 日期 版本 2016/8/4 1.00 2016/9/2 1.01 2016/11/29 1.02 2017/2/16 1.03 2017/6/9 1.04 2018/6/27 1.05 2018/8/8 1.06 新增 MG196 PBGA256S 封装信息 ; 修改 SSPI 模式的配置功能 ; 增加 QN88 封装信息 2019/3/27 1.07 增加电源供电要求

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

极客良品 -CC3200xx wifi 学习板 -PWM 实验 CC32xx-PWM 实验 片内定时器功能介绍 ( 使用的 mcu 外设和上一个节内容是一样的 ) 该 CC320 包含 4 个 32 位用户可编程通用定时 (GPTA0~3 或有文档标注为 TIMERA0~3),GPT 可以用于对具有

极客良品 -CC3200xx wifi 学习板 -PWM 实验 CC32xx-PWM 实验 片内定时器功能介绍 ( 使用的 mcu 外设和上一个节内容是一样的 ) 该 CC320 包含 4 个 32 位用户可编程通用定时 (GPTA0~3 或有文档标注为 TIMERA0~3),GPT 可以用于对具有 CC32xx-PWM 实验 片内定时器功能介绍 ( 使用的 mcu 外设和上一个节内容是一样的 ) 该 CC320 包含 4 个 32 位用户可编程通用定时 (GPTA0~3 或有文档标注为 TIMERA0~3),GPT 可以用于对具有定时器复用功能的管脚进入的外部事件进行计数或计时, 也可以在输出引脚上产生脉冲宽度调试 (PWM) 信号 每个 GPT 模块包含两个 16 位定时 / 计数器 (TimerA

More information

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B 直流稳压电源 第 4 章 4.1 整流电路及其应用 学习目标 1. 熟悉单相整流电路的组成, 了解整流电路的工作原理. 掌握单相整流电路的输出电压和电流的计算方法, 并能通过示波器观察整流电路输出电压的波形 3. 能从实际电路中识读整流电路, 通过估算, 能合理选用整流元器件 4.1.1 认识整流电路 1. 图解单相半波整流电路 ( 图 4-1-1) 电路名称电路原理图波形图 4-1-1. 图解单相全波整流电路

More information

Microsoft Word - 部分习题参考答案.doc

Microsoft Word - 部分习题参考答案.doc 部分习题参考答案 第 1 章 1.1 (1) U ab 5 (2) U ab 5 () I 2 () I 2 1.2 (a)-10w(b)-8w,0w(c)-50w,25w 1. () P 560 W, P 50 W, P 600 W, P 20 W, P 180 W 1. I 2 m U 60 1.5 P 50 W 1.6 U 26, U 7 ac bd 1.7 U ab 11, I, I 2,

More information

16位A/D转换器

16位A/D转换器 16 位 A/D 转换器 anyh 是双竞公司新推出的 16 位 A/D 转换器, 具有两个全差分输入通道, 可用于测量低频模拟信号 这种器件带有增益可编程放大器, 可通过软件编程来直接测量传感器输出的各种微小信号 具有分辨率高 动态范围广 自校准等特点, 因而非常适合于工业控制 仪表测量等领域 16 位 A/D 转换器 1. 概述 是双竞公司新推出的 16 位 A/D 转换器, 具有两个全差分输入通道,

More information

ETA104 数据采集模块数据手册

ETA104 数据采集模块数据手册 Emtronix ETA104 数据采集模块数据手册 1. 概述 1.1 ETA104 介绍 ETA104 模拟数据采集模块 ( 下文简称 :ETA104 模块 ) 是基于英创公司 SBC840 工控应用底板 符合 DM5028 标准应用扩展模块 ETA104 模块上的模数转换功能, 采用 ADS7871 模拟信号转换芯片, 占用 ESMARC 工控主板的 SPI 总线进行通讯, 最高可实现 48K

More information

Microsoft Word - mcu-an z-11.doc

Microsoft Word - mcu-an z-11.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500007-Z-11 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 外部中断 应用笔记 外部中断 V1.1 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 2008-07-18 Levi.Zhang V1.1, 在第 6 章更多信息中添加 URL; 更新了一些样本程式

More information

吉林大学学报 工学版 244 第 4 卷 复杂 鉴于本文篇幅所限 具体公式可详见参考文 献 7 每帧的动力学方程建立及其解算方法如图 3 所示 图4 滚转角速度与输入量 η 随时间的变化波形 Fig 4 Waveform of roll rate and input η with time changing 图5 Fig 5 滚转角随时间的变化波形 Waveform of roll angle with

More information

2 PIC PIC 1 / CPU PIC MCU PIC RC

2 PIC PIC 1 / CPU PIC MCU PIC RC 2 PIC PIC 1 /... 2-2 2... 2-3 3... 2-4 4... 2-4 5... 2-4 6 CPU... 2-5 7 PIC MCU... 2-6 8 PIC16... 2-6 9... 2-7 10... 2-7 11 RC... 2-7 12... 2-8 13... 2-8 14 NOP... 2-9 15 PMD... 2-9 16... 2-10 17 WDTWDT...

More information

PowerPoint Presentation

PowerPoint Presentation 7.2 并行接口 二. 可编程并行接口芯片 8255A 的功能及其应用 与 CPU 一侧相连的引脚 D0 PA0 ~ ~ ~ ~ ~ D7 PA7 RESET PC7 WR RD PC4 PC3 PC0 A0 PB0 A1 PB7 CS PA 口 PC 口上半部 PC 口下半部 PB 口 A 组 B 组 与 I/O 设备相连的引脚 7.2 并行接口二. 可编程并行接口芯片 8255A 的功能及其应用

More information

第一章 MSP 430G2系列单片机概述(0-10)

第一章  MSP 430G2系列单片机概述(0-10) MSP-EXP430Launchpad 实验指南 前言 MSP430G 系列是德州仪器近期推出的一款产品, 在秉承 MSP430 超低功耗, 高集成度的优点的同时, 具有高性价比的特点 该系列被称为 ValueLine, 旨在以 8 位单片机的价格实现 6 位单片机的性能 MSP-EXP430Launchpad 是 TI 推出的又一套用于 MSP430 和电路实验的开发板 在该套不到名片大小的开发板上集成了一片超低功耗

More information

超级好的移值过程介绍: μC/GUI在MSGl9264液晶上的移植

超级好的移值过程介绍: μC/GUI在MSGl9264液晶上的移植 : C GUI MSGl9264 C GUI MSGl9264 µc GUI Micrium µc OS µc GUI * [1] µc GUI Windows µc GUI VC Windows µc GUI µc GUI µc GUI µc GUI MSGl9264 µc GUI 1 µc GUI MSP430F149 MSP430F149 16 (RISC 125ns ) ( ADC ) 2KB

More information

F²MC-8L/16LX/FR FAMILY

F²MC-8L/16LX/FR FAMILY 富士通半导体 ( 上海 ) 有限公司应用笔记 MCU-AN-500074-Z-13 F²MC-8FX 家族 8 位微型控制器 全系列 低功耗策略 应用笔记 修改记录 修改记录 版本日期作者修改记录 1.0 2009-12-07 Edison, Zhang 初稿 1.1 2009-01-08 Jacky, Zhou 增加细节描述 1.2 2009-01-12 Jacky, Zhou 增加 3.3.4

More information

1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1.

1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1. http://www.unsp.com.cn 1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1... 11 4.2... 12 5... 13 5.1...

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

发送 IP 数据时, 首先根据目的 IP 地址在 ARP 高速缓存表中查询相应的以太网 地址 如果查到匹配的结点, 则相应的以太网地址被写入以太网帧首部, 数据报 被加入到输出队列等候发送 如果查询失败,ARP 会先保留待发送的 IP 数据报, 然后广播一个询问目的主机硬件地址的 ARP 报文, 等

发送 IP 数据时, 首先根据目的 IP 地址在 ARP 高速缓存表中查询相应的以太网 地址 如果查到匹配的结点, 则相应的以太网地址被写入以太网帧首部, 数据报 被加入到输出队列等候发送 如果查询失败,ARP 会先保留待发送的 IP 数据报, 然后广播一个询问目的主机硬件地址的 ARP 报文, 等 嵌入式 TCP/IP 详解 1.1 TCP/IP 协议介绍 HTTP FTP SMTP TELNET DNS SNMP TCP UDP IP 层 ICMP/IGMP 以太网驱动 ARP/RARP 图 1.1 TCP/IP 协议结构图 Fig. 1.1 Structure of TCP/IP protocol 如图 1.1 所示, 以上 TCP/IP 协议栈可分为链路层协议 网络层协议 传输层 协议

More information

MPS430系列微控制器

MPS430系列微控制器 TEXAS INSTRUMENTS MSP430 系列混合信号微控制器结构及模块 用户指南 目录 1 MSP430 系列 1.1 特性与功能 1.2 系统关键性能 1.3 MSP430 系列的各型号 2 结构概述 2.1 CPU 2.2 代码存储器 2.3 数据存储器 (RAM) 2.4 运行控制 2.5 外围模块 2.6 振荡器 倍频器和时钟发生器 3 系统复位 中断和运行模式 3.1 系统复位和初始化

More information

DS_MM32P021_Ver1.9.0

DS_MM32P021_Ver1.9.0 产品手册 Datasheet MM32P021 32 位基于 ARM Cortex M0 核心的微控制器 版本 :1.9.0 保留不通知的情况下, 更改相关资料的权利 目录 1. 总介... 5 1.1 概述... 5 1.2 产品特性... 5 2. 规格说明... 6 2.1 器件对比... 6 2.2 功能简述... 6 3. 引脚定义... 7 3.1 引脚配置... 7 3.2 引脚描述...

More information

微雪电子 Open407V-D 实验手册 Open407V-D 实验手册 目录 准备工作... 2 ADC+DMA... 2 CAN1 TO CAN2-Normal... 3 DCMI_OV DCMI_OV I2C... 6 L

微雪电子   Open407V-D 实验手册 Open407V-D 实验手册 目录 准备工作... 2 ADC+DMA... 2 CAN1 TO CAN2-Normal... 3 DCMI_OV DCMI_OV I2C... 6 L Open407V-D 实验手册 目录 准备工作... 2 ADC+DMA... 2 CAN1 TO CAN2-Normal... 3 DCMI_OV7670... 4 DCMI_OV9655... 5 I2C... 6 LCD-HY32D_FSMC... 7 Nand Flash_PCB0... 8 Nand Flash_SCB0... 9 SD_FatFS... 11 SDIO... 12 SPI...

More information

MSP430 常见问题解答

MSP430 常见问题解答 MSP430 FAQ 1. 我无法在器件数据表中找到与 MSP430 器件外设模块相关的信息, 在哪里可找到这些信息? 基本上,MSP430 器件有 3 个主要文档 : 器件数据表 : 包含器件专用信息, 诸如器件上可用的外设列表 存储器组织结构 电气特性等 系列用户指南文档 : 包含与 MSP430 器件系列 ( 例如 1xx,2xx,4xx,5xx/6xx) 的内部模块 (CPU, 外设等 )

More information

本文档为 TI 数字温度传感器 TMP104 的应用入门, 介绍如何利用 MSP430 及 TMP104 来进 行温度的读取及系统设计过程中的注意事项 文中涉及源代码仅供参考, 如需完整代码, 请邮件索取 准备文档 TMP104 Datasheet

本文档为 TI 数字温度传感器 TMP104 的应用入门, 介绍如何利用 MSP430 及 TMP104 来进 行温度的读取及系统设计过程中的注意事项 文中涉及源代码仅供参考, 如需完整代码, 请邮件索取 准备文档 TMP104 Datasheet 本文档为 TI 数字温度传感器 TMP104 的应用入门, 介绍如何利用 MSP430 及 TMP104 来进 行温度的读取及系统设计过程中的注意事项 文中涉及源代码仅供参考, 如需完整代码, 请邮件索取 准备文档 TMP104 Datasheet http://www.ti.com/lit/ds/symlink/tmp104.pdf TMP104 评估板用户手册 http://www.ti.com/lit/ug/sbou118/sbou118.pdf

More information

Cost_Effective C Handbook

Cost_Effective C Handbook HT8 MCU 看门狗 (WDT) 应用范例 防止死机 文件编码 :AN0426S 简介 Holtek Flash MCU 提供了一个功能单元 WDT (Watch Dog Timer) 看门狗定时器, 其最主要的功能是避免程序因不可预期的因素 ( 如 : 电路噪声 ) 造成系统长时间的瘫痪 ( 如 : 跳至死循环或未知地址造成无法预测的结果 ) 功能说明 Holtek 新推出的 MCU 已无 2

More information

Microsoft Word - MAN2011A_CH_RTT.doc

Microsoft Word - MAN2011A_CH_RTT.doc 基于 SAM7X EK 和 IAR EWARM 文档编号 文档版本 Rev. A 文档摘要 基于 AT91SAM7X EK 开发板的代码解读,RTT 代码解读 关键词 AT91SAM7X256 SAM7X EK IAR EWARM J LINK RTT 创建日期 2010 06 08 创建人员 Cust126 审核人员 Robin 文档类型 公开发布 / 开发板配套文件 版权信息 Mcuzone 原创文档,

More information

NiOS II SOPC 嵌入式系统基础教程

NiOS II SOPC   嵌入式系统基础教程 第 4 章 Nios II 外围设备 主要内容 本章介绍了 Nios II 处理器常用外围设备 (Peripherals) 内核的特点 配置以及软件编程, 以便使用这些外设定制 Nios II 系统时查阅 这些外设都是以 IP 核的形式提供给用户的, 用户可以根据实际需要把这些 IP 核集成到 Nios II 系统中去 主要介绍 : 硬件结构 ; 内核的特性核接口 ; SOPC Builder 中各内核的配置选项

More information

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集 XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 2.400--2.483GHz 世界通用 ISM 频段, 它集成射频收发通路 频率发生器 晶体振荡器 调制解调器等功能模块, 并且支持一对多组网和带 ACK 的通信模式

More information

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD2 1...2 1.1...2 1.2...2 1.3 /...2 2 SoftICE...2 3 SoftICE MCU...2 4 SoftICE...3 4.1 SST BootLoader SOFTICE...3 4.2 SoftICE SST MCU...6 5 SoftICE...7

More information