版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MSP 430单片机培训,1、 MSP430简介 2、MSP430G2553单片机硬件资源 3、LaunchPad系统板的使用方法; 4、开发工具介绍 5、实验任务介绍,1、MSP430介绍,1、超低功耗 16 位 RISC 混合信号处理器 2、内置Flash存储器,上电自动运行 3、集成模拟外设 4、多种通信结构,LaunchPad 开发板上各部分介绍,片上仿真器模块,6针 eZ430 连接器,MSP430器件和插座,外置晶体接口,电源连接器,复位按钮,LED和跳线 P1.0 ,不同的MSP430系列,时钟系统略有不同: MSP430 x2xx: The Basic Clock Module
2、+ (BCM+); 一个或两个外部晶体(根据器件); 可同时使用外部晶体和内部振荡器; 内部数字控制振荡器(DCO) 最高频率可达16 MHz; 低功耗; 低振荡器启动时间.,时钟系统,辅助时钟,主系统时钟,子系统时钟,32768Hz,MSP430 x4xx: 频率锁相环(FLL+): 一个或两个晶体; 内置DCO; 内部高速频率可由外部低速晶振 同步,MSP430F5XXX、6XXX,基础时钟模块可提供3种时钟信号: MCLK 系统主时钟: 由DCO产生,也可以由外部晶振产生; 激活到稳定至少 6 s; 用于CPU和高速外设. ACLK 辅助时钟: ACLK可由软件选择来自XT1CLK、RE
3、FOCLK、VLOCLK、DCOCLK、DCOCLKDIV、XT2CLK(由具体器件决定)这几个时钟源之一。然后经1、2、4、8、16、32分频得到。ACLK可由软件选作各个外设模块的时钟信号,一般用于低速外设模块。 RTC 时钟或低功耗模式唤醒时钟 (32.768 kHz); SMCLK 子系统时钟: 作为外围设备选择时钟源使用。,2.2、设置DOC为1MHz及系统主时钟MCLK,/ 设定 MCLK BCSCTL2 |= SELM_1 + DIVM_3; / 设置 MCLK,对MCLK,即指令运行的时钟源进行分频 DIVM_0: MCLK=1M DIVM_1: MCLK=1M/2 DIVM_
4、2: MCLK=1M/4 DIVM_3: MCLK=1M/8,/ 设置DCO为1MHz BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;,对MCLK的时钟源进行选择 SELM_0: MCLK选择DCOCLK SELM_1 : MCLK选择DCOCLK SELM_2 : MCLK选择XT2CLK/LFXTCLK SELM_3: MCLK选择LFXTCLK,2.1、时钟模块的控制寄存器,Power Up Clear,复位信号,二、通用IO,可独立编程 可提供输入、输出与中断(边沿可选)的任意组合 所有寻址指令可对端口控制寄存器进行读/写访问 每个 I/O 具
5、有一个可独立编程的上拉/下拉电阻 某些器件/引脚具有触摸按键模块 (PinOsc),1、P口端口寄存器:,(1)、PxDIR 输入/输出方向寄存器 (0:输入模式 1:输出模式) (2)、PxIN 输入寄存器 输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。 (3)、PxOUT 输出寄存器 寄存器内的内容不会受引脚方向改变的影响。 (4)、PxIFG 中断标志寄存器 (0:没有中断请求 1:有中断请求) 该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求; 这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位; 外部中断事件的时
6、间必须=1.5倍的MCLK的时间,以保证中断请求被接受; (5)、PxIES 中断触发沿选择寄存器 (0:上升沿中断 1:下降沿中断) (6)、PxSEL 功能选择寄存器 (0:选择引脚为I/O端口 1:选择引脚为外围模块功能) (7)、PxREN 上拉/下拉电阻使能寄存器 (0:禁止 1:使能),2、基本操作: (1)、所有P口都可作为通用IO口使用 (2)、所有P口都可进行字节操作和位操作 按字节操作: 例 : P1DIR=0 xff; /将P1口作为输出口 PIOUT=0 x20; / P1口输出0 x20 P1DIR=0 x00; /将P1口作为输入口 data=P1IN /读取P1口
7、外部输入值 按位操作: 例: P1DIR=BIT0; /将P1.0作为输出口 P1OUT|=BIT0; /P1.0输出1 P1OUT /P1.0输出0 P1DIR/打开P1.0外部中断 ,BIT0的值为0 x01,即把P1IE的第一位置1 关闭局部中断一般是给想关的特殊功能寄存器相关位置0 同样以P1口外部中断为例: 关闭局部中断: P1IE/关闭P1.0外部中断,(2)、打开、关闭全局中断: _EINT();/打开总中断,相当于51的EA=1; _DINT();/关闭总中断,相当于51的EA=0; (3)、各中断向量Interrupt Vectors: #define BASICTIMER_
8、VECTOR (0 * 2u) /* 0 xFFE0 Basic Timer */ #define PORT2_VECTOR (1 * 2u) /* 0 xFFE2 Port 2 */ #define USART1TX_VECTOR (2 * 2u) /* 0 xFFE4 USART 1 Transmit */ #define USART1RX_VECTOR (3 * 2u) /* 0 xFFE6 USART 1 Receive */ #define PORT1_VECTOR (4 * 2u) /* 0 xFFE8 Port 1 */ #define TIMERA1_VECTOR (5 * 2
9、u) /* 0 xFFEA Timer A CC1-2, TA */ #define TIMERA0_VECTOR (6 * 2u) /* 0 xFFEC Timer A CC0 */ #define ADC12_VECTOR (7 * 2u) /* 0 xFFEE ADC */ #define USART0TX_VECTOR (8 * 2u) /* 0 xFFF0 USART 0 Transmit */ #define USART0RX_VECTOR (9 * 2u) /* 0 xFFF2 USART 0 Receive */ #define WDT_VECTOR (10 * 2u) /*
10、0 xFFF4 Watchdog Timer */ #define COMPARATORA_VECTOR (11 * 2u) /* 0 xFFF6 Comparator A */ #define TIMERB1_VECTOR (12 * 2u) /* 0 xFFF8 Timer B CC1-6, TB */ #define TIMERB0_VECTOR (13 * 2u) /* 0 xFFFA Timer B CC0 */ #define NMI_VECTOR (14 * 2u) /* 0 xFFFC Non-maskable */ #define RESET_VECTOR (15 * 2u)
11、 /* 0 xFFFE Reset Highest Priority */,(5)、中断应用程序举例(外部中断): void main(void) WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timer P1DIR |= BIT0; / Set P1.0 to output direction P1IES |= BIT3; / P1.3 下降沿 P1IFG / P1.3 清除中断标志 #pragma vector 下面的函数是一个用于所列矢量的中断 _interrupt void 识别中断名称,四、定时器,异步16位定时器/计数器 连续、递增-递减、递增
12、计数模式 3个捕获/比较寄存器 PWM 输出 中断向量寄存器,实现快速中断响应 可触发DMA 多个时钟源可选 所有430均有Timer_A,1、定时器的计数模式,(1)、停止模式:用于定时器的暂停,并不发生复位,所有寄存器现行类容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停前的计数方向计数。 (2)、增计数模式:捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等时,定时器复位,并从0开始重新计数。,连续计数模式:,
13、void zengjishu() TACTL=TASSEL1+TACLR; /选择计数时钟为ACLK,将计数器TAR清零 CCTL0=CCIE; /使能中断 CCR0=200; /计数终值,方波频率为:32768/200/2 TACTL|=MC_1; /选择Timer_A为增计数模式 P1DIR|=BIT0; /P1.0作为输出 _EINT(); /使能总中断 #pragma vertor =TIMERA0_VECTOR _interrupt void Timer_A(void) P1OUT=0X01; /P1.0取反 ,例程:,增计数模式: 特点:定时器从0开始记到0XFFFF后又开始从0开
14、始计数,当记到CCR0时产生中断(可产生多个定时信号),4、增/减计数模式:需要对称波形的情况可以用增/减计数模式,该模式下,定时器先计数到CCR0的值,然后反向减计数到0。 注:定时器TAR的值从CCR01增计数到CCR0时,中断标志CCIFG0置位,从1减计数到0时,中断标志TAIFG置位,2、捕获/比较模块: 工作模式: (1)、捕获模式:当捕获/比较控制寄存器CCTLx中的CAP=1时,该模块工作于捕 获模式。这时如果在选定的引脚上发生设定的脉冲沿,则TAR中的值将自动写入到捕获/比较寄存器CCRx中。 用途:1、测量软件程序执行所用时间。 2、测量硬件之间的时间。 3、测量频率。 用
15、CM1和CM0 位选择捕获条件,可以选择禁止捕获、上升沿捕获、下降沿捕获或者上升沿下降沿都捕获。 当捕获完成后,定时器的值被复制到 TAxCCRn 寄存器,并且中断标志 CCIFG 置位。如果总的中断允许位GIE允许,相应的中断允许位CCIE也允许,则将产生中断请求。如下图所示:,定时器 A 捕获/比较模块 (4/5),捕获模式的信号,定时器 A 捕获/比较模块 (5/5), 比较模式 当TACCTLx中的CAP = 0,该模块工作在比较模式。 比较方式主要用于为软件或应用硬件产生定时,还可为D/A转换功能或者马达控制等各种用途产生脉宽调制(PWM)输出信号。 在计数器TAxR计数到TAxCC
16、Rn(n 代表具体的捕获比较寄存器)的值时: 中断标志 CCIFG 置位 内部信号 EQUx=1 EQUx 根据输出模式影响输出 输入信号 CCI 被锁存在 SCCI,定时器 A 输出单元(1/5),每个捕获/比较模块都包含一个输出单元,用于产生输出信号。 每个输出单元有8种工作模式,可产生基于EQUx的多种信号。 除模式0外,其他模式的输出都在定时器时钟上升沿时发生变化。 输出模式2,3,6,7不适合输出单元0,因为EQUx=EQU0。 输出单元在输出控制位OUTMODx的控制下,有8种输出模式输出信号。这些模式与TAxR、TACCTLx、TAxCCR0的值有关,如下表所示。,定时器 A 输
17、出单元(2/5),定时器 A典型应用实现PWM (1/5), PWM信号是一种具有固定周期不定占空比的数字信号,如下图所示:, 如果Timer_A定时器的计数器工作在增计数方式,输出采用输出模式7(复位/置位模式),则可利用寄存器TAxCCR0控制PWM波形的周期,用某个寄存器TAxCCRx控制占空比。这样Timer_A就可以产生出任意占空比的PWM波形。如下图所示:,定时器 A典型应用实现PWM (2/5), 可以随时间变化任意改变PWM信号的占空比,具体做法: 保持CCR0值(周期不变); 改变CCRx值(改变占空比)。 如下图所示:,定时器 A典型应用实现PWM (3/5), 如果PWM
18、信号占空比随时间变化,那么经过滤波之后的输出信号就是幅度变化的模拟信号,因此通过控制PWM信号的占空比,就可以产生不同的模拟信号,实现D/A转换。如下图所示: PWM不需要修改占空比和时间时,CPU在做完Timer_A初始化工作之后,Timer_A就能自动输出PWM,而不需利用中断维持PWM输出,此时CPU就可以进入低功耗状态。,利用上下计数模式消除死区。,PWM实例,void timerA1_init() TA1CTL = TASSEL_2 + TACLR + MC_1; /SMCLK as clock, up mode TA1CCTL1 = OUTMOD_7; /Compare modul
19、e 0 is set to Output Mode 7(PWM) TA1CCR0 = 200; TA1CCR1 = 100; void PWM_update(float dew) uchar buffer; TA1CCR1 = (uchar)(dew+60)/75*180); / dew+15 ,五、串行通信,1、串口是系统与外界联系的重要手段,我们有时需要使用上位机实现系统调试 及现场数据的采集和控制,msp430G2553中有两个串口模块USCI_A0、USCI_B0 2、串行异步通信的主要特点: (1)、两个独立的移位寄存器:输入、输出寄存器。 (2)、传输7位或8位数据,可采用奇校验或
20、偶校验或无校验。 (3)、数据在发送或接收时低位在先。 (4)、独立的发送、接收中断。 (5)、可编程实现分频因子为整数或小数的波特率。,USI,MSP430G2xx1/2 devices Variable length shift register Supports I2C START/STOP detection SCL held after START SCL held after counter overflow Arbitration lost detection Supports SPI 8/16-bit Shift Register MSB/LSB first Flexible
21、Clocking Interrupt Driven,83,串口通信的一般步骤: 1、选择串口模块(USCI_A0、USCI_B0)。 USCI_A0 : P1SEL = BIT1 + BIT2; P1SEL2 = BIT1 + BIT2; /设置IO口,P1.2为发送TXD,P1.1为接收RXD 2、在SWRST=1时,设置串口。 UCA0CTL=UCSWRST; / 复位USART,并设置串口 3、选择波特率发生器时钟。 UCA0TCTL1=UCSSEL1; /UCLK=MCLK 4、使能发送、接收。 ME2=UCA0TXE1+UCA0RXE1; /使能RXD TXD 5、设置字符长度。 U
22、CA0CTL=CHAR; /设置字符长度为8位,默认时为7位 6、设置波特率。 注:UCA0BR=UCA0BR0+UCA0BR1; 其值应大于3 UCA0BR0=8; /存放波特率分频因子的整数部分的低字节 UCA0BR1=0; /存放波特率分频因子的整数部分的高字节 UCA0MCTL= UCBRS2 + UCBRS0; /设置波特率为115200 7、SWRST=0,串口设置完毕。 UCA0CTL /使能接收 中断,void Configure_SPI() /- Initialization of SPI Commuinication (USCI_B) - P1SEL |= BIT5 + B
23、IT6 + BIT7; / P1.5 6 7 P1SEL2 |= BIT5 + BIT6 + BIT7; / P1.5 6 7 / IE2 |= UCB0TXIE; UCB0CTL0 |= UCCKPH + UCMSB+ UCMST+ UCMODE_0 + UCSYNC; / 3-pin, 8-bit SPI mstr, MSb 1st UCB0CTL1 |= UCSSEL_2; / SMCLK UCB0BR0 = 0 x01; UCB0BR1 = 0; UCB0CTL1 / *Initialize USCI state machine* ,void TFT_SendData(uint8_t
24、bdata) / uint8_t mask; ST7735_NCS_CLR(); ST7735_DC_SET(); /* for(mask=0 x80;mask;mask=1) / IO 模拟SPI。 ST7735_SCL_CLR(); if(bdata ,六、ADC10,一、主要特点: 1、 10位转换精度。 2、有多种时钟源可供选择,内带时钟发生器。 3、配有6个外部通道和2个内部通道。 4、内置参考电源,并且参考电压Vref有8种组合。 5、采样速度快,最快200Ks/s。 6、四种工作模式: 1、单通道单次转换模式: CONSEQ_0。 2、单通道多次转换模式: CONSEQ_2。 3
25、、序列通道单次转换模式:CONSEQ_1 。 4、序列通道多次转换模式:CONSEQ_3。,二、A/D结构图:,例程: P1SEL /开始转换;,七、低功耗,MSP430 具有一种运行模式及5 种可利用软件来选择的低功耗操作模式。一个中断事件能够将器件从任一低功耗 模式唤醒、处理请求、并在接收到来自中断程序的返回信号时恢复至低功耗模式。 以下6 种操作模式可利用软件来配置: 1、激活模式(AM) 所有时钟处于激活状态 2、低功耗模式0 (LPM0) CPU 被禁用 ACLK 和SMCLK 仍然有效,MCLK 被禁用 3、低功耗模式1 (LPM1) CPU 被禁用 ACLK 和SMCLK 仍然有
26、效,MCLK 被禁用 如果DCO 不是在激活模式下被使用,则DCO 的dc 生成器被禁用,3、低功耗模式2 (LPM2) CPU 被禁用 MCLK 和SMCLK 被禁用 DCO 的dc 生成器保持启用 ACLK 保持激活 4、低功耗模式3 (LPM3) CPU 被禁用 MCLK 和SMCLK 被禁用 DCO 的dc 生成器保持启用 ACLK 保持激活 5、低功耗模式4 (LPM4) CPU 被禁用 ACLK 被禁用 MCLK 和SMCLK 被禁用 DCO 的dc 生成器保持启用 晶体振荡器被停止,msp430g2553.h #define LPM0 _BIS_SR(LPM0_bits) /*
27、Enter Low Power Mode 0 */ #define LPM0_EXIT _BIC_SR_IRQ(LPM0_bits) /* Exit Low Power Mode 0 */ #define LPM1 _BIS_SR(LPM1_bits) /* Enter Low Power Mode 1 */ #define LPM1_EXIT _BIC_SR_IRQ(LPM1_bits) /* Exit Low Power Mode 1 */ #define LPM2 _BIS_SR(LPM2_bits) /* Enter Low Power Mode 2 */ #define LPM2_E
28、XIT _BIC_SR_IRQ(LPM2_bits) /* Exit Low Power Mode 2 */ #define LPM3 _BIS_SR(LPM3_bits) /* Enter Low Power Mode 3 */ #define LPM3_EXIT _BIC_SR_IRQ(LPM3_bits) /* Exit Low Power Mode 3 */ #define LPM4 _BIS_SR(LPM4_bits) /* Enter Low Power Mode 4 */ #define LPM4_EXIT _BIC_SR_IRQ(LPM4_bits) /* Exit Low P
29、ower Mode 4 */,Using our Low Power Modes are easy,void main(void) WDT_init(); / initialize Watchdog Timer while(1) _bis_SR_register(LPM3_bits + GIE); / Enter LPM3, enable interrupts activeMode(); / in active mode. Do stuff! #pragma vector=WDT_VECTOR _interrupt void watchdog_timer (void) _bic_SR_regi
30、ster_on_exit(LPM3_bits); / Clear LPM3 bits from 0(SR), Leave LPM3, enter active mode ,Code Composer Studio,实际系统使用: 用杜邦线可以与电路板相连 人机交互接口不足。 增加按键,独立按键或矩阵按键 液晶显示:串行接口,开发工具,Free Integrated Development Environments (IDE) available,Code Composer Studio Eclipse-based IDE (Compiler, debugger, linker, etc) fo
31、r all TI embedded processors Unrestricted version available for $495 Free versions are available! Free 16kB code-limited version available for download Free, full-featured, 120-day trial version available,Other MSP430 IDE options are available! Learn more ,IAR Embedded Workbench Strong third-party I
32、DE offering with project management tools and editor. Includes config files for all MSP430 devices. Free versions are available! Free 4/8/16kB code-limited Kickstart version available for download Free, full-featured, 30-day trial version available,MSPGCC Free, Open source, GCC tool chain for MSP430 includes the GNU C compiler (GCC), the assembler and linker (binutils), the debugger (GDB) Tools can be used on Windows,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 流程图专题教学模版
- 4A公司户外广告投放分析课件
- 2024-2025学年人教版二年级数学第一学期期末测试卷二(含答案)
- 2024-2025学年高一【数学(人教A版)】函数的性质应用-教学设计
- 办公园区安全生产强制性规定检查表
- 自动控制原理知到智慧树章节测试课后答案2024年秋潍坊科技学院
- 北师大版英语小学六年级上学期期中试题及解答参考(2024-2025学年)
- 2024年四川省教育局考试中心事业单位招聘招录49人管理单位遴选600题题库大全(全优)
- 《产权交易资料》课件
- 建筑施工技术课件
- 建筑施工组织课程设计某校区办公楼单位工程施工组织设计
- 幼儿园小班课件:《迪迪医生》
- 《患者保护与平价医疗法案》(ACA)标题及各章主要内容
- 洗涤部绩效考核表
- 空白试卷模板.doc
- 图书信息管理系统毕业论文
- 全国中学生语文能力竞赛决赛八年级(初二)组试题
- 冶金企业设备检维修安全风险分析与对策
- 家庭教育指导菜单及家长作业
- 车库人防工程预埋安装施工方案范本
- 监控系统投标书(含施工方案)范本
评论
0/150
提交评论