




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、msp430f449+msp430 launchpad,1、开发环境:IAR Embedded Workbench 2、IAR的安装及相应设置 3、IAR的使用,1,2020/8/2,msp430f449简介,1、低工作电压:1.83.6V 2、超低功耗: 活动模式:280UA(1MHZ,2.2V) 待机模式 : 1.1UA 掉电模式 : (RAM数据保持)0.1UA 3、有5种节电模式 4、从待机到唤醒的响应时间不超过6us 5、12位A/D转换器 (8通道、带有内部参考源、采样保持) 6、16位精简指令结构(RISC),150ns指令周期 7、带有3个捕获/比较器结构的16位定时器 8、串
2、行通信可软件选择UART/SPI两种模式 9、可在线串行编程,不需要外部编程电压 10、驱动液晶能力为160段 11、FLASH存储器为60KB,RAM为2KB,2,2020/8/2,msp430f449,1、IO口 2、时钟 3、中断 4、定时 5、AD 6、UART 7、PWM波 8、头文件,3,2020/8/2,1、IO口,一、P口端口寄存器: 1、PxDIR 输入/输出方向寄存器 (0:输入模式 1:输出模式) 2、PxIN 输入寄存器 输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。 3、PxOUT 输出寄存器 寄存器内的内容不会受引脚方向
3、改变的影响。 4、PxIFG 中断标志寄存器 (0:没有中断请求 1:有中断请求) 该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求; 这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位; 外部中断事件的时间必须=1.5倍的MCLK的时间,以保证中断请求被接受; 5、PxIES 中断触发沿选择寄存器 (0:上升沿中断 1:下降沿中断) 6、PxSEL 功能选择寄存器 (0:选择引脚为I/O端口 1:选择引脚为外围模块功能) 7、PxREN 上拉/下拉电阻使能寄存器 (0:禁止 1:使能),4,2020/8/2,二、常用特殊P口: 1、P1和P2口可作为外部中断口。 2
4、、P6可作为A/D输入口。 3、P1.2和P2.0可作为PWM波输出口。 4、P1.1:MCLK P1.5:ACLK 5、串口通信时:P2.4、 P4.0为发送TXD, P2.5 、P4.1为接收RXD。,5,2020/8/2,三、基本操作: 1、所有P口都可作为通用IO口使用 2、所有P口都可进行字节操作和位操作 按字节操作: 例 : P1DIR=0 xff; /将P1口作为输出口 PIOUT=0 x20; / P1口输出0 x20 P1DIR=0 x00; /将P1口作为输入口 data=P1IN /读取P1口外部输入值 按位操作: 例: P1DIR=BIT0; /将P1.0作为输出口 P
5、1OUT|=BIT0; /P1.0输出1 P1OUT /P1.0输出0 P1DIR/打开P1.0外部中断,12,2020/8/2,关闭局部中断一般是给想关的特殊功能寄存器相关位置0 同样以P1口外部中断为例: 关闭局部中断: P1IE 3、各中断向量Interrupt Vectors: #define BASICTIMER_VECTOR (0 * 2u) /* 0 xFFE0 Basic Timer */ #define PORT2_VECTOR (1 * 2u) /* 0 xFFE2 Port 2 */ #define USART1TX_VECTOR (2 * 2u) /* 0 xFFE4
6、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 * 2u) /* 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
7、 */ #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) /* 0 xFFF4 Watchdog Timer */ #define COMPARATORA_VECTOR (11 * 2u) /* 0 xFFF6 Comparator A */ #define TIMERB1_VECTOR (12 * 2u) /* 0 xFFF8 Tim
8、er 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) /* 0 xFFFE Reset Highest Priority */,13,2020/8/2,4、中断优先级: 优先级顺序从高到低为: PORT2_VECTOR (1 * 2u) /* 0 xFFE2 Port 2 */ PORT1_VECTOR (4 * 2u) /
9、* 0 xFFE8 Port 1 */ TIMERA1_VECTOR (5 * 2u) /* 0 xFFEA Timer A CC1-2, TA */ TIMERA0_VECTOR (6 * 2u) /* 0 xFFEC Timer A CC0 */ ADC_VECTOR (7 * 2u) /* 0 xFFEE ADC */ USART0TX_VECTOR (8 * 2u) /* 0 xFFF0 USART 0 Transmit */ USART0RX_VECTOR (9 * 2u) /* 0 xFFF2 USART 0 Receive */ WDT_VECTOR (10 * 2u) /* 0
10、 xFFF4 Watchdog Timer */ COMPARATORA_VECTOR (11 * 2u) /* 0 xFFF6 Comparator A */ TIMERB1_VECTOR (12 * 2u) /* 0 xFFF8 Timer B CC1-2, TB */ TIMERB0_VECTOR (13 * 2u) /* 0 xFFFA Timer B CC0 */ NMI_VECTOR (14 * 2u) /* 0 xFFFC Non-maskae */ RESET_VECTOR (15 * 2u) /* 0 xFFFE Reset Highest Priority */,14,20
11、20/8/2,5、中断的嵌套: 当同时有多个中断来的时候才有优先级的考虑(优先级顺序可查看向量表) 实现中断嵌套需要注意以下几点: 1)430默认的是关闭中断嵌套的,一定要中断嵌套的话,就必须在中断服务程序中打开总中断 msp430的指令中,_DINT()和_EINT()分别指关和开总中断。 2)当进入中断服务程序时,只要不在中断服务程序中再次开中断,则总中断是关闭的,此时来中断不管是比当前中断的优先级高还是低都不执行; 3)若在中断服务程序A中开了总中断,则可以响应后来的中断B(不管B的优先级比A高还是低),B执行完再继续执行A。注意:进入中断服务程序B后总中断同样也会关闭,如 果B中断程序
12、执行时需响应中断C,则此时也要开总中断,若不需响应中断,则不用开中断,B执行完后跳出中断程序进入A程序时,总中断会自动打开; 4)若在中断服务程序中开了总中断,后来的中断同时有多个,则会按优先级来执行,即中断优先级只有在多个中断同时到来时才起做用!中断服务不执行抢先原则。 5)对于单源中断,只要响应中断,系统硬件自动清中断标志位,对于TA/TB定时器的比较/捕获中断,只要访问TAIV/TBIV,标志位倍被自动清除; 对于多源中断要手动清标志位,比如P1/P2口中断,要手工清除相应的标志,如果在这种中断用EINT();开中断,而在打开中断前没有清标志,就会 有相同的中断不断嵌入,而导致堆栈溢出引
13、起复位,所以在这类中断中必须先清标志再打开中断开关.,15,2020/8/2,6、中断应用程序举例(外部中断): void interrupt_initial() P1DIR /P1.7中断标志清除 /*在此写中断服务子程序*/ ,16,2020/8/2,4、定时,一、常见的定时方式: 1、软件定时:通过延时程序实现。缺点:在延时期间,CPU一直被占用,浪费 了CPU的利用率,而且延时时间不好计算。 2、硬件延时:通过专门的定时器件实现。优点:在简单的软件控制下,产生准 确的延时。 二、硬件定时器种类: 1、看门狗定时器。 2、定时器A。 3、定时器B。 4、实时时钟RTC。,17,2020/
14、8/2,三、Timer_A的基本特点: 1、输入时钟可以有多种选择。 2、产生的定时脉冲或PWM信号没有软件带来的误差。 3、四种计数功能。 4、8种输出方式。 5、16位定时器。 6、生成的PWM波能用软件任意改变占空比和周期,当PWM波不需要修改占空比和周期时,Timer_A能自动输出PWM,而不需要利用中断来维持PWM波的输出 四、定时器的工作模式: 1、停止模式:用于定时器的暂停,并不发生复位,所有寄存器现行类容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停前的计数方向计数。 2、增计数模式:捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为CCR
15、0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等时,定时器复位,并从0开始重新计数。,18,2020/8/2,增计数模式:,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 vert
16、or =TIMERA0_VECTOR _interrupt void Timer_A(void) P1OUT=0X01; /P1.0取反 ,例程:,19,2020/8/2,3、连续计数模式: 特点:定时器从0开始记到0XFFFF后又开始从0开始计数,当记到CCR0时产生中断(可产生多个定时信号),20,2020/8/2,例程: void lianxujishu() TACTL=TASSEL_1+TACLR; /选择计数时钟为ACLK,将计数器TAR清零 CCTL0=CCIE; /使能中断 CCR0=1000; /计数终值,方波频率为:32768/1000/2 TACTL|=MC_2; /选择T
17、imer_A为连续计数模式 P1DIR|=BIT0; /P1.0作为输出 _EINT(); /使能总中断 #pragma vertor =TIMERA0_VECTOR _interrupt void Timer_A(void) P1OUT=0X01; /P1.0取反 CCR0+=1000; ,21,2020/8/2,4、增/减计数模式:需要对称波形的情况可以用增/减计数模式,该模式下,定时器先计数到CCR0的值,然后反向减计数到0。 注:定时器TAR的值从CCR01增计数到CCR0时,中断标志CCIFG0置位,从1减计数到0时,中断标志TAIFG置位,22,2020/8/2,5、捕获/比较模块
18、: 一、工作模式: 1、捕获模式:当捕获/比较控制寄存器CCTLx中的CAP=1时,该模块工作于捕 获模式。这时如果在选定的引脚上发生设定的脉冲沿,则TAR中的值将自动写入到捕获/比较寄存器CCRx中。 用途:1、测量软件程序执行所用时间。 2、测量硬件之间的时间。 3、测量频率。 2、比较模式:当捕获/比较控制寄存器CCTLx中的CAP=0时,该模块工作于比较模式。Timer_A 有三个捕获/比较器,在比较模式下有8个输出模式,23,2020/8/2,5、A/D,一、msp430f449内自带A/D的主要特点: 1、 12位转换精度。 2、有多种时钟源可供选择,内带时钟发生器。 3、配有8个
19、外部通道和4个内部通道。 4、内置参考电源,并且参考电压Vref有6种组合。 5、采样速度快,最快200Ks/s。 6、四种工作模式: 1、单通道单次转换模式: CONSEQ_0。 2、单通道多次转换模式: CONSEQ_2。 3、序列通道单次转换模式:CONSEQ_1 。 4、序列通道多次转换模式:CONSEQ_3。 二、ADC12内部结构图:,24,2020/8/2,25,2020/8/2,三、A/D转换的一般步骤: 1、选择转换通道: P6SEL|=0 x01; /使能A/D通道A0(P6.0); P6SEL|=BIT7; /使能A/D通道A7(P6.7); 2、打开ADC12内核,设置
20、采样周期,参考电压: ADC12CTL0=ADC12ON; /打开ADC12内核; ADC12CTL0=SHT0_0; /设置采样周期为4/200KHZ*1 ADC12CTL0=REFON; /选择内部参考电压为2.5V; ADC12CTL0=MSC; /多次采样/转换位 3、设置工作模式,转换触发方式: ADC12CTL1=SHP; /采样信号SAMPCON来自采样定时器 ADC12CTL1=ADC12SSEL_0; /采样时钟来自ADC12OSC为200KHZ ADC12CTL1=CONSEQ_2;/单通道多次转换模式 4、使能转换(即允许转换): ADC12CTL0|=ENC; /使能转
21、换;,26,2020/8/2,注意:当MSC=1且SHP=1时,仅首次转换由SHI信号的上升沿触发采样定 时器,之后采样转换将在前一次转换完成之后立即进行。 5、开始转换: ADC12CTL0|=ADC12SC; /开始转换; 四、几种工作模式例程: 1、单通道单次转换: void ADC_convert() P6SEL|=0 x01; /使能A/D通道A0(P6.0); ADC12CTL0=ADC12ON+ SHT0_0; /开ADC12内核,设置采样周期为4*200KHZ*1 ADC12CTL1=SHP; /采样信号SAMPCON来自采样定时器 ADC12CTL0|=ENC; /使能转换;
22、 ADC12CTL0|=ADC12SC; /开始转换; int Read_result() int result; result= ADC12MEM0; return (result); ,27,2020/8/2,2、单通道多次转换: Void ADC_convert() P6SEL|=0 x02; /使能A/D通道A1; ADC12CTL0=ADC12ON+SHT0_8+MSC; /打开ADC12内核,设置为首次触发即可,确定采样周期为4*mclk*64,选择内部参考电压为2.5v; ADC12CTL1=SHP+ADC12SSEL_2+CONSEQ_2; /设置为单通道多次转换模式并且由采样
23、输入信号的上升沿触发采样定时器 ; ADC12CTL0|=ENC; /使能转换; ADC12CTL0|=ADC12SC; /开始转换; int Read_result() int result; result= ADC12MEM1; return (result); ,28,2020/8/2,3、序列通道单次转换: void ADC_convert() P6SEL|=0 x0f; ADC12MCTL0=SREF_0+INCH_0; ADC12MCTL1=SREF_0+INCH_1; ADC12MCTL2=SREF_0+INCH_2; ADC12MCTL3=SREF_0+INCH_3+EOS;
24、/EOS为序列结束信号 ADC12CTL0=ADC12ON+MSC+ SHT0_0; /开ADC12内核,设置采样周期为4*200KHZ*1 ADC12CTL1=SHP+CONSEQ_1; /采样信号SAMPCON来自采样定时器 ADC12CTL0|=ENC; /使能转换; ADC12CTL0|=ADC12SC; /开始转换; _EINT(); /开中断 #pragma vector=ADC_VECTOR _interrupt void ADC12ISR(void) result0 = ADC12MEM0; result1 = ADC12MEM1; result2 = ADC12MEM2; r
25、esult3 = ADC12MEM3; ,29,2020/8/2,4、序列通道多次转换: void ADC_convert() P6SEL|=0 x0f; ADC12MCTL0=SREF_0+INCH_0; ADC12MCTL1=SREF_0+INCH_1; ADC12MCTL2=SREF_0+INCH_2; ADC12MCTL3=SREF_0+INCH_3+EOS; /EOS为序列结束信号 ADC12CTL0=ADC12ON+MSC+ SHT0_0; /开ADC12内核,设置采样周期为4*200KHZ*1 ADC12CTL1=SHP+CONSEQ_3; /采样信号SAMPCON来自采样定时器
26、 ADC12CTL0|=ENC; /使能转换; ADC12CTL0|=ADC12SC; /开始转换; _EINT(); /开中断 #pragma vector=ADC_VECTOR _interrupt void ADC12ISR(void) result0 = ADC12MEM0; result1 = ADC12MEM1; result2 = ADC12MEM2; result3 = ADC12MEM3; ,30,2020/8/2,6、USART,一、串口是系统与外界联系的重要手段,我们有时需要使用上位机实现系统调试 及现场数据的采集和控制,msp430f449中有两个串口模块USART0、
27、USART1 分别对应P2.4、P2.5和P4.0、P4.1都可实现 UART异步通信和SPI同步通信。 二、串行异步通信的主要特点: 1、两个独立的移位寄存器:输入、输出寄存器。 2、传输7位或8位数据,可采用奇校验或偶校验或无校验。 3、数据在发送或接收时低位在先。 4、独立的发送、接收中断。 5、可编程实现分频因子为整数或小数的波特率。 三、USART模块结构图:,31,2020/8/2,32,2020/8/2,四、串口通信的一般步骤(无校验): 1、选择串口模块(USART0、USART1)。 USART1: P4SEL=0X03; P4DIR=0X01; /P4.0为发送TXD,P4
28、.1为接收RXD 2、在SWRST=1时,设置串口。 U1CTL=SWRST; / 复位USART,并设置串口 3、选择波特率发生器时钟。 UTCTL1=SSEL1; /UCLK=MCLK 4、使能发送、接收。 ME2=UTXE1+URXE1; /使能RXD TXD 5、设置字符长度。 U1CTL=CHAR; /设置字符长度为8位,默认时为7位 6、设置波特率。 注:UBR=U1BR0+U1BR1; 其值应大于3 U1BR0=0X1B; /存放波特率分频因子的整数部分的低字节 U1BR1=0X00; /存放波特率分频因子的整数部分的高字节 U1MCTL=0X03; /设置波特率为38400 7
29、、SWRST=0,串口设置完毕。 U1CTL /使能接收 中断,33,2020/8/2,7、PWM波,一、Timer_A在增计数模式下的PWM输出: void PWM_Creat(int a,int b) TACTL=TASSEL_1+TACLR+ID_3; /选择计数时钟为ACLK,并进行8分频,将计数器TAR清零 CCR0=255; /计数终值,方波频率为:32768/256/8/2=8HZ CCTL1=OUTMOD_7; CCR1=a; /占空比为:a/256 CCTL2=OUTMOD_7; CCR2=b; /占空比为:b/256 P1DIR|=BIT2; /CCR1 P1SEL|=BI
30、T2; P2DIR|=BIT0; /CCR2 P2SEL|=BIT0; TACTL|=MC_1; /选择Timer_A为增计数模式 ,34,2020/8/2,二、增计数模式下的输出:,35,2020/8/2,8、头文件,一、两种头文件使用方式: 1、#ifndef _ADC_H #define _ADC_H extern void ADC_convert(); extern int Read_result(); #endif 2、在工程里直接调用.C文件,36,2020/8/2,msp430launchpad,Msp430g2553简介: 1、低工作电压:1.83.6V 2、超低功耗: 活动模
31、式:280UA(1MHZ,2.2V) 待机模式 : 0.5UA 掉电模式 : (RAM数据保持)0.1UA 3、有5种节电模式 4、从待机到唤醒的响应时间不超过1us 5、10位A/D转换器 (带有内部参考源、采样保持,最大采样率200Ks/s) 6、16位精简指令结构(RISC),6.25ns指令周期 7、带有3个捕获/比较器结构的16位定时器 8、串行通信可软件选择UART/SPI/I2C三种模式 9、可在线串行编程,不需要外部编程电压 11、FLASH存储器为16KB,RAM为512B,37,2020/8/2,Msp430g2553结构图,38,2020/8/2,Msp430g2553,
32、1、IO口 2、时钟 3、中断 4、定时 5、AD 6、PWM波,39,2020/8/2,1、IO,一、P口的基本特点: 1、有P1、P2两个可独立编程的IO口。 2、每个P口都有输入、输出、中断功能。 3、对P口控制寄存器的读写支持所有指令集。 4、每一个P口都有独立可编程的上拉、下拉电阻。 二、P口的 基本操作: 大致同msp430f449相同,注意:在将P2.6、P2.7作为普通IO口时,需要进行以下设置: P2SEL,40,2020/8/2,三、IO口的复用:,41,2020/8/2,2、时钟,一、时钟源: 1、ACLK:系统辅助时钟,来自 LFXT1CLK 为32768HZ。 2、MCLK:系统主时钟,有以下5种选择: 1、32768HZ,来自ACLK。 2、1MHZ: BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; 3、8MHZ: BCSCTL1 = CALBC1_8MHZ; DCOCTL = CALDCO_8MHZ; 4、12MHZ: BCSCTL1 = CALBC1_12MHZ; DCOCTL = CALDCO_12MHZ; 5、16MHZ: BCSCTL1 = CALBC1_16MHZ; DCOCTL = CALDCO_16MHZ; 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品涂装合同样本
- 公园投资经营合同标准文本
- 仓库电梯维修合同标准文本
- 公司购买商铺合同标准文本
- 传媒内部合同样本
- 入股种植合同样本
- 公租房服务合同标准文本
- 书面保险合同样本
- 2025股权代持合同协议样本
- 个人买卖机器合同样本
- 医院处方笺模板
- 【工程项目施工阶段造价的控制与管理8100字(论文)】
- XX学校推广应用“国家中小学智慧教育平台”工作实施方案
- 非遗文化创意产品设计 课件全套 第1-5章 概述- 非遗文创产品设计案例解析
- 法律尽职调查所需资料清单
- 幼儿园中班安全教育活动《紧急电话的用途》
- 118种元素原子结构示意图
- 英语四线三格Word版
- 幼儿园行政工作制度
- 广州新华学院
- 部编版七年级下册道法期中试卷1
评论
0/150
提交评论