msp430f5529简单uart程序
msp430f5529定时器实验
定时器实验一、实验目的1、学习MSP430F5529定时器的使用。
2、学习MSP430F5529定时器相应的寄存器的使用。
二、实验任务LED灯的电路图如图*所示:图* LED灯的电路图任务:编程实现LED1 以1Hz频率闪烁。
三、程序流程图实现LED1 以1Hz频率闪烁的程序流程图如图*所示四、程序代码#includ#include<msp430.h>#define CPU_F ((double)1000000)#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) unsigned char count=0;int main(void){//定时器口中断控制函数WDTCTL = WDTPW | WDTHOLD; // stop watchdog timerP1DIR |= BIT0; //P1.0置为输出TA0CCTL0 = CCIE; //CCR0中断使能TA0CCR0 = 50000; //设定计数值TA0CTL =TASSEL_2+MC_1+TACLR;//SMCLK,增计数模式,清除TAR_bis_SR_register(LPM0_bits+GIE);//低功耗模式0,使能中断}#pragma vector=TIMER0_A0_VECTOR__interrupt void TIMER0_A0_ISR(void){count++;if(count==20){count=0;P1OUT ^= BIT0; //1s改变LED1灯状态 }}五、遇到的问题及解决办法无六、实验小结练习了单片机mspf5529的编程。
MSP430F5529测频法测量信号频率
MSP430F5529测量频率-----测频法信号变换电路过零比较器,lm393输出上拉电阻,两电阻分压程序#include <>#include ""//测频法,上限1Mhz//看门狗定时1s,开门狗中断处理程序开启捕获器,捕获1s中所有的上升脉冲,脉冲个数即为频率/*优化的反向可以将开门够定时1S使用定时器去定时1s**/long fre=0;char buf[60]="\0";void SetVcoreUp (unsigned int level){// Open PMM registers for writePMMCTL0_H = PMMPW_H;// Set SVS/SVM high side new levelSVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level;// Set SVM low side to new levelSVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level;// Wait till SVM is settledwhile ((PMMIFG & SVSMLDLYIFG) == 0);// Clear already set flagsPMMIFG &= ~(SVMLVLRIFG + SVMLIFG);// Set VCore to new levelPMMCTL0_L = PMMCOREV0 * level;// Wait till new level reachedif ((PMMIFG & SVMLIFG))while ((PMMIFG & SVMLVLRIFG) == 0);// Set SVS/SVM low side to new levelSVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level;// Lock PMM registers for write accessPMMCTL0_H = 0x00;}void init_clock(){SetVcoreUp (0x01);SetVcoreUp (0x02);SetVcoreUp (0x03);UCSCTL3 = SELREF_2; // Set DCO FLL reference = REFOUCSCTL4 |= SELA_2; // Set ACLK = REFO__bis_SR_register(SCG0); // Disable the FLL control loopUCSCTL0 = 0x0000; // Set lowest possible DCOx, MODxUCSCTL1 = DCORSEL_7; // Select DCO range 50MHz operationUCSCTL2 = FLLD_0 + 609; // Set DCO Multiplier for 25MHz// (N + 1) * FLLRef = Fdco// (762 + 1) * 32768 = 25MHz// Set FLL Div = fDCOCLK/2__bic_SR_register(SCG0); // Enable the FLL control loop__delay_cycles(782000);do{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);// Clear XT2,XT1,DCO fault flagsSFRIFG1 &= ~OFIFG; // Clear fault flags}while (SFRIFG1&OFIFG); // Test oscillator fault flag}void send_char(char sc){UCA0TXBUF=sc;while(!(UCA0IFG&UCTXIFG));}void send_string(char *s){while(*s!='\0'){send_char(*s++);}}init_uart(){P3SEL |= BIT3+BIT4; // ,4 = USCI_A0 TXD/RXDUCA0CTL1 |= UCSWRST; // **Put state machine in reset**UCA0CTL1 |= UCSSEL__SMCLK; // SMCLKUCA0BR0 = 173; // 1MHz 115200 (see User's Guide)UCA0BR1 = 0; // 1MHz 115200 UCA0MCTL |= UCBRS_5 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**// UCA0IE |= UCRXIE; // Enable USCI_A0 RX interruptsend_string("CLS(0);\r\n");}int main(void) {WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timerinit_clock();//初始化系统时钟为20 MHzinit_uart();//串口波特率为115200bpsWDTCTL=WDT_ADLY_1000 ;//开门狗定时1sP1DIR &= ~BIT2; // inP1SEL |= BIT2; //捕获输入SFRIE1|=WDTIE; //开看门狗定时器中断__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, enable interrupts__no_operation(); // For debugger return 0;}void measure_fre(){if(fre>=500)sprintf(buf,"DS16(0,60,'频率:% ',4);\r\n",fre*;if(fre<=52)sprintf(buf,"DS16(0,60,'频率:% ',4);\r\n",(fre)*;else if(fre<=208)sprintf(buf,"DS16(0,60,'频率:% ',4);\r\n",(fre+1)*;else if(fre<=496)sprintf(buf,"DS16(0,60,'频率:% ',4);\r\n",(fre+3)*;send_string( buf);fre=0;TA0CTL = TASSEL_2 + MC_2 + TACLR+TAIE; // SMCLK, 连续mode, clear TAR 8分频下限可以测到8Hz。
mspf串口程序程序uart完整版
m s p f串口程序程序u a r t集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]/*****用串口助手发什么回复什么****/#include "msp430f5529.h"// ACLK = REFO = 32768Hz, MCLK = SMCLK = default DCO/2 = 1048576Hz// P3.4,5——USCI_A0 TXD/RXD;P9.4,5——USCI_A2 TXD/RXD;P10.4,5——USCI_A3 TXD/RXD;unsigned int table[12]={1,2,3,4,5,6,7,8,9,10,11,12};unsigned int j;void Delay(unsigned int time){unsigned int i,k;for(i=0;i<255;i )for(k=0;k<time;k )_NOP();}void send_buf(unsigned char *ptr){while(*ptr !='\0') //C语言里字符串末尾自动加“\0”(ASCII码值为0) {while (!(UCA1IFG&UCTXIFG));UCA1TXBUF=*ptr; //发送字符对应的ASCII码,12864指针可设置自动指向下一个显示地址*ptr ;Delay(50);}}void main(void){WDTCTL = WDTPW WDTHOLD; // Stop WDTP1DIR|=BIT0;P1OUT|=BIT0;P2IE |= BIT1; //设置p2.1可以中断P2IES |= BIT1; //设置p2.1为下降沿中断P2IFG &= ~BIT1;//设置p2.1为0 无中断请求P2REN |= BIT1; //设置p2.1为上下拉电阻使能P2OUT |= BIT1;P4SEL |=BIT4 BIT5 ; // P5.6,7 = USCI_A1 TXD/RXDUCA1CTL1 |= UCSWRST; // **Put state machine in reset**UCA1CTL1 |= UCSSEL_2; // SMCLKUCA1BR0 = 9; // 1MHz 115200 (see User's Guide)UCA1BR1 = 0; // 1MHz 115200UCA1MCTL |= UCBRS_1 UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**UCA1IE |= UCRXIE; // Enable USCI_A1 RX interrupt__bis_SR_register(LPM0_bits GIE); // Enter LPM0, interrupts enabled}// Echo back RXed character, confirm TX buffer is ready first,发送数据之前确定发送缓存准备好#pragma vector=USCI_A1_VECTOR__interrupt void USCI_A1_ISR(void){switch(__even_in_range(UCA1IV,4)){case 0:break; // Vector 0 - no interrupt case 2: // Vector 2 - RXIFGwhile (!(UCA1IFG&UCTXIFG)); // USCI_A1 TX buffer ready UCTXIFG(USCI Transmit Interrupt Flag)switch(UCA1RXBUF){case 0x00:{P1OUT^=BIT0;UCA1TXBUF=UCA1RXBUF;}break;case 0x01:{UCA1TXBUF=table[j];j ;if(j==12) j=0;}break;} // TX -> RXed characterbreak;case 4:break; // Vector 4 - TXIFGdefault: break;}}// UCTXIFG=0x02,UCA1IFG&UCTXIFG,当UCA1IFG的UCTXIFG位为1时,说明UCA1TXBUF为空,//跳出while循环循环;当UCTXIFG位为0时UCA1TXBUF不为空,停在循环。
MSP430F5529中文技术资料
描述MSP430F5529 实验板(MSP-EXP430F5529) 是MSP430F5529 器件的开发平台,出自最新一代的具有集成USB 的MSP430 器件。
该实验板与CC2520EMK 等众多TI 低功耗射频无线评估模块兼容。
实验板能帮助设计者快速使用新的F55xx MCU 进行学习和开发,其中F55xx MCU 为能量收集、无线传感以及自动抄表基础设施(AMI) 等应用提供了业界最低工作功耗的集成USB、更大的内存和领先的集成技术。
实验板上的MSP430F5529 器件可以通过集成ezFET或通过TI 闪存仿真工具(如MSP-FET430UIF)进行供电和调试。
∙基于新的MSP430F5529 MCU,可用于需要增强型功能和集成USB 的超低功耗设计∙凭借eZ430-RF2500 工具、用于Z-Stack Pro 的开包即用平台以及对各种TI 低功耗射频无线评估模块的支持,可实现快速的低功耗无线开发,覆盖低于1GHz 和2.4GHz 的频带∙用于各种用户界面和娱乐游戏的102x64 点-矩阵LCD∙多个输入/输出选项可实现快速的系统开发:电容触摸按钮/滑块、按钮、USB、micro SD 插槽、LED 和滚轮。
∙集成ezFET 可让实验板直接插到PC 上,通过USB 实现供电和调试。
∙JTAG 接头连接,可借助MSP-FET430UIF 用于4 线JTAG 编程和调试。
∙与Code Composer Studio 兼容,免费的16KB IDE∙已预安装完整的用户体验软件演示,源码提供下载∙PCB 设计提供下载(Eagle PCB)特性∙集成MSP430F5529:o128KB 闪存/ 8KB SRAM(如禁用USB,则为10kB)o全速USB 2.0o16 位RISC 架构,高达25MHzo 3 个Timer_A 块、1 个Timer_B 块o 2 个USCI (UART/SPI/I2C) 块、16 通道12 位ADC12_A、12 通道Comp_B、63 I/O∙USB 开发平台∙ 5 块电容触摸条(按钮或滑块功能)∙microSD Card 插槽,附1GB 内存卡。
MSP430F5529单片机
• PxIN 设置成输入时有效,P2IN内存着P2的16个引脚当前的高低电 平状态 • PxOUT 设置成输出时有效,PxOUT =1(高电平)/0(低电平)
• PxSEL 外设功能选择 如引脚作为AD输入、TXD、RXD • PxREN 内部上拉/下拉电子(输入) • PxDS 实现额外的的驱动强度(输出) • PxIE/PxIES/PxIFG 终端相关
MSP430F5529
特点、参数
工作电压:1.8—3.6V 12位AD转换 USB驱动 128KB flash,8KBRAM 4个16位计时器 通用串行接口:I2C,UART,SPI 16位CPU,最高可达25MHZ
GPIO
• PxDIR 方向(输入 vs 输出)
– P1DIR |= BIT0 p1.0设置成输入 检测引脚状态 – P1DIR ^= (~BIT1) p1.0设置成输出 高低电。 2、有多种时钟源可供选择,内带时钟发生器。 3、多达12个外部输入 4、四种转换方式:
1)、单通道单次转换模式: 2)、单通道多次转换模式: 3)、序列通道单次转换模式: 4)、序列通道多次转换模式:
5、ADC12MEM0~ADC12MEN16存储转换结果 6、初始化程序:引脚功能选择、选择时钟源和预分频(达 到需要的采样频率)、参考电压(VR+,VR-)、转换方式 、开中断
• 2、SPI(同步串行通信) • 3、I2C
程序演示
1. ADC 2. UART
USCI(通用串行通信接口)
• 1、 UART(异步串行通讯)
(1) 初始化:PxSEL选择端口UART功能、时钟源选择、波特率设置、开中断 (2)UART发送 while (!(UCA0IFG&UCTXIFG)); UCA0TXBUF = 100; (1) 接受UART receive = UCA0RXBUF;
Msp430f5529时钟系统与定时器以及中断
一般地讲,计数器的计数输入信号是外部事 件(脉冲信号),而定时器的计数输入信号则是 MCU中的时钟信号或经过分频后的时钟信号。
MSP430F5529定时器分为看门狗定时器、定时 器A和定时器B。
00: stop mode 01: up mode 10: continuous mode 11: up/down mode
1: interrupt pending
1: TA interrupt enabled
1: reset TAR ,clock divider and count direction for up/down mode. The TACLR bit is automatically reset and is always read as zero.
定时器 A 的四种计数方式(Count Mode)
MCx count mode
0 0: stop mode 0 1: up mode 1 0: continuous mode 1 1: up/down mode
Mode Control
Stop mode : the timer is halted
中断响应过程
1. 当前指令执行完毕,且满足响应条件; 2. 入栈保护断点:相当于执行 PUSH PC; 3. 入栈保护SR:相当于执行 PUSH SR; 4. 优先级裁决:若有多个中断同时请求,则CPU选
择优先级最高的中断请求进行响应; 5. 中断请求标志的处理:对于单一中断标志的中断
源请求,则由CPU自动清零该中断标志;对于有 多个中断标志的中断源请求,则中断标志的清零 处理交由中断服务子程完成(以便于中断服务子 程区分本次中断到底是由哪一个/哪些中断标志 请求的); 6. 清零SR(关中断,结束低功耗方式); 7. 装载中断向量至PC,转去执行中断服务子程。
MSP430_UART串口模块
MSP430_UART串口模块MSP430--UART模块UART是通用异步串行接口的简称。
串行通信接口是用来与单片机外界系统进行通信桥梁,比如可以吧单片机ADC 转换的数据通过串口发送给PC机(上位机),经上位机处理之后在发回给单片,达到通信的目的。
TI公司的MSP430系列单片机均具有UART功能,其中大部分还和SPI,I2C功能复用,通过相关寄存器的配置,可以很轻松地就实现了UART,SPI,I2C的通信功能。
在此以MSP430x149为例介绍UART 功能及其实现过程。
1.异步通信的结构:2.UART数据格式(数据协议):异步通信再不发送数据的时候,通信线路上总是呈现高电平状态,称为空闲状态。
当有数据发送是,信号线变成低电平,并持续一位的时间用于表示发送字符的开始,该为称为起始位。
起始位之后在信号线上依次出现发送的数据。
起始位,数据位由高到低7/8位,地址位0/1位,奇偶校验位奇偶或无,停止位1/2位。
数据位位数、地址位、奇偶校验位、停止位均可由单片机内部寄存器控制;这款单片机都有两个USART模块,有两套独立的寄存器组;以下寄存器命中出现x代表0或是1,0代表对应0模块的寄存器,1代表对应1模块的寄存器;其中,与串口模式设置相关的控制位都位于UxCTL寄存器,与接收相关的控制位都位于UxRCTL寄存器,与发送相关的控制位都位于UxTCTL寄存器;波特率设置用UxBR0、UxBR1、UxMCTL三个寄存器;接收与发送有独立的缓存UxRXBUF、UxTXBUF,并具有独立的移位寄存器和独立的中断;中断允许控制位位于IE1/2寄存器,中断标志位位于IFG1/2寄存器。
3.波特率设置:430的波特率设置用三个寄存器实现:UxBR0:波特率发生器分频系数低8位。
UxBR1:波特率发生器分频系数高8位。
UxMCTL:波特率发生器分频系数的小数部分实现。
设置波特率时,首先要选择合适的时钟源:USART模块可以设置的时钟源有UCLK引脚、ACLK、SMCLK;对于较低的波特率(9600以下),可选ACLK作为时钟源,这样,在LPM3(低功耗3)模式下,串口仍能正常发送接收数据;另外,由于串口接收过程有一个三取二判决逻辑,这至少需要三个时钟周期,因此分频系数必须大于3;波特率高于9600时,将不能使用ACLK作为时钟源,要调为频率较高的SMCLK作为时钟源;另外还可以外部输入UCLK时钟。
MSP430F5529制作的施工车辆信息监测系统.doc
MSP430F5529制作的施工车辆信息监测系统一,功能介绍:本系统主要用于监测施工车辆运行的速度,运行时路面的温度以及车辆的位置信息。
然后将这些这些信息借助移动的网络发送到服务器上去并将温度,速度,时间信息通过显示屏进行显示。
系统的控制核心选用的是TI的msp430F5529,考虑到整个系统用到的IO管脚比较多,所以选用了该款430。
一下是整个系统的方案选型:(1)测速系统采用的霍尔器件,430单片机对霍尔器件输出的脉冲进行输入捕获对其频率进行测量就可计算出车辆的速度;(2)测量车辆运行的路面温度系统我采用的是红外测温温度传感器,430通过smBUS总线方式读取温度传感器的数据,然后进行数据处理,显示在LCD屏上。
(3)计时系统我选用了的是DS1302时钟芯片,外加上一个3v的纽扣电池起到掉电时间保护左右,然后430负责读取时间进行显示。
(4)车辆定位系统我选用的GPS模块,430通过GPS读取到车辆的经纬度信息。
(5)数据发送装置我采用的GPRS模块将采集到速度,温度,时间,位置信息发送到我们自己建立的服务器上去(6)LCD屏,我选用的是240*128的LCD屏,这样尺寸的屏刚好满足我设计的要求。
(7) 考虑到有时没有移动信号,我们在电路上设计了SD卡,这样当GPRS 没有信号时,我们的数据可以自动的到存到我们的SD卡中二,系统框图上图就是我整个设计的框图。
(1)电源给整个系统供电,输入12v通过两种稳压芯片,分别稳压到5v和3.3v 给整个系统供电。
(2)测速,键盘, LCD我采用的都是IO进行和430单片机进行连接(3)GPS和GPRS采用的是UART和430进行连接(4) SD卡采用的是SPI接口和430进行连接三,系统原理图图2 电源图3 LCD和时钟芯片图4 430核心部分整个系统的原理图如图2,3,4所示。
图2是整个系统的电源部分,图3是lcd 显示屏,图4是整个430核心部分。
MSP-EXP430F5529LP快速测试
MSP-EXP430F5529LP快速测试
MSP430LaunchPad™开发工具是一种廉价和简单MSP430F5529 USB单片机开发工具包。
它提供了一个简单的方法来在MSP430的开始开发编程和仿真调试以及按钮和发光二极管为一个简单的用户界面
首先我们可以从官方的MSP-EXP430F5529LP LaunchPad™ Development Kit User's Guide.pdf中找到快速的测试方法
注释:值得注意的是插上MSP-EXP430F5529LP LaunchPad是找不到驱动的,再装
驱动前我们应该先安装开发工具,之后驱动会自动安装。
完成以上步骤后,我们再插上MSP-EXP430F5529LP LaunchPad,可以看到
这个存储卷存储在MSP430F5529的芯片上的Flash中。
如果我们打开H盘:
我们可以打开任意文件对USB接口应用程序进行测试:(打开Button1.txt)
现在我们按下板卡上的S2按键,可以看到记事本中打印出如下图案
如果你打开Button2.txt,你会发现此时的内容正是Button2.txt的内容。
到此板子一切正常!。
标准实验三MSP430F5529_传感器实验
电子科技大学实验报告学生姓名:学号:指导教师:邮箱:一、实验室名称:MSP430单片机实验室二、实验项目名称:基于I2C接口的数据采集三、实验原理:(1)I2C接口简介IIC(Inter-Integrated Circuit,常被称为I2C)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,高速I2C总线一般可达400kbps以上。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。
●开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
●结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
●应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
若未收到应答信号,由判断为受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
I2C总线时序图如图3.1所示:图3.1 I2C总线时序图在MSP430系列单片机中,硬件I2C接口是通过通用串行通信接口(universalserialcommunicationinterface,USCI)来实现的,通用串行通信接口在一套硬件模块上支持多种串行通信模式,例如SPI接口、I2C接口、UART接口等。
配置通用串行通信接口的工作模式是通过为一系列寄存器赋值来实现的,接下来将介绍将通用串行通信接口配置为I2C模式涉及的一系列寄存器。
(2)MSP430F5529中的I2C接口MSP430F5529中USCI(Universal Serial Communication Interface)模块可提供多种串行通信模式。
MSP430程序库(二)UART异步串口
小数分频是 MSP430单片机的串口特色之一, UxMCTL 寄存器的作用就是控制小数的分频, 控制方法如下:对应位是1,则分频系数加一, 0则分频系数减一;小数分频器会自动依次 取出每一位来调整分频系数。其计算方法:可以先计算小数部分一的个数,然后把 1均匀的
放入 UxMCTL 的8位中,这样计算比较简单,分频系数的小数部分乘以8即得到1的位数, 查表得到对应的 UxMCTL 值;另外一种通过计算每一位的错误率,交互计算,直到得到最 小错误率的 UxMCTL 值,这种方法比较复杂,但得到的小数分频误差更小,这种方法也是 TI 给的计算方法,详细参考 UserGuide。 另外, 有关寄存器, 以及其他单片机硬件有关知识请参考德州仪器提供的用户指南和数据手 册等资料。 2.程序实现: • 宏定义:是程序具有更好的移植性。
baud * 出口参数:无 * 范 波特率
波特率
(300~115200)
例: SetBaudRateRegisters(32768,9600) //用时钟频率32768产生 9600的
************************************************************** **************/ voidSetBaudRateRegisters(longclk,longbaud) { intn = clk / baud; //整数波特率 charmSum = 0; inttxEr0; inttxEr1; chari = 0; UxBR1 = n >> 8; UxBR0 = n & 0xff; UxMCTL = 0; //循环 比较错误率大小 设置 UxMCTL for(;i < 8;i++) { txEr0 = 100 * baud * ((i + 1) * n + mSum) / clk - 100 * (i + 1); txEr1 = 100 * baud * ((i + 1) * n + mSum + 1) / clk - 100 * (i + 1); if(abs(txEr1) < abs(txEr0)) { mSum++; UxMCTL |= (1<<i); } } } 程序可以使用任何的 C 语言编译器编译运行,可供网友们复用此程序。我使用 vs2010编 译运行的,运行结果如下: //Σmi //对应位为0时错误率 //对应位为1时错误率 //循环计数 //高8位 //低8位
MSP430F5529实验指导书(V1.0)
MSP430F5529 实验指导书(V1.0)2014年10月27日东北林业大学机电工程学院“3+1”实验室实验一基础GPIO实验实验二键盘与液晶显示实验实验三时钟系统配置实验实验四看门狗与定时器实验实验五 AD/DA实验实验六比较器实验实验七 Flash实验实验八串行通信实验实验一基础GPIO实验【实验目的】1、熟悉CCS的基本使用方法;2、掌握MSP430系列单片机程序开发的基本步骤;3、掌握MSP430 IO口的基本功能。
【实验仪器】1、SEED-EXP430F5529v1.0开发板一套;2、PC机操作系统Windows XP或Windows 7,CCSv5.1集成开发环境。
【实验原理】CCS(Code Composer Studio)是 TI 公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。
CCSv5.1 为 CCS 软件的最新版本,功能更强大、性能更稳定、可用性更高,是 MSP430 软件开发的理想工具。
SEED-EXP430F5529v1.0开发板上的有8个可操作的LED灯,与MCU的IO口对应关系如图1-1所示:图1-1 LED与MCU的IO对应关系电路我们可以通过控制单片机IO口的输出电平状态来控制各个LED灯的亮灭。
开发板上还有2个可操作的按键S1,S2。
如图1-2所示。
图1-2 按键电路我们可以通过读取与按键相连的IO口的输入电平状态来执行相应的操作。
此外,S1,S2还可以作为外部中断源,触发中断。
【实验内容】1、用调用头文件的方法,使能MSP430F5529开发板上的8个LED灯依次按顺序循环点亮;2、用按键S1控制开发板上LED1的亮灭状态(查询法);3、用按键S2控制开发板上跑马灯的循环速度(中断方式)。
【实验步骤】内容1:使能开发板上的8个LED灯依次按顺序循环点亮1、打开CCSv5并确定工作区间,然后选择File-->New-->CCS Project 弹出图1-3对话框。
学习笔记-CCS-MSP430F5529[快速入门篇二]
学习笔记-CCS-MSP430F5529[快速⼊门篇⼆] 由于2021的全国电赛延期了,从今天开始打算好好整理⼀下使⽤CCS编程的经验,本篇笔记会好好整理⼀下我备赛期间⽤CCS写的程序,包括外部中断,定时器部分的定时中断,定时器输⼊捕获,PWM波输出,UART,OLED(IIC),MPU6050,内容涵盖了硬件和软件部分。
鉴于笔者⽔平有限和能⼒不⾜,⽂中有不到之处还请看者多包涵,我的⼯程源代码链接会在⽂章末尾贴出。
先贴⼀张peripheral图,MSP430的外部引脚及其复⽤功能都可在图⾥查到。
⼀·外部中断 外部中断的操作⽅式与GPIO⼀样是使⽤寄存器操作,所以学习相关的寄存器是不可避免的,不过MSP430的寄存器不算太多,操作外部中断主要要⽤到以下寄存器:1.PxIV 中断向量表(字),P1端⼝的中断函数⼊⼝地址应该都放在⾥⾯,只是⼀个地址;2.PxIE 中断使能寄存器,相应引脚位置1表⽰允许产⽣中断;置0表⽰该引脚不产⽣中断;3.PxIES 中断触发⽅式选择寄存器,相应引脚位置1表⽰下降沿触发,置0表⽰上升沿触发;4.PxIFG 中断标志,由于MSP430的中断使能需要使能总中断,所以仅当总中断GIE和中断使能寄存器PxIE都打开后,PxIFG⾼电平表⽰有中断请求等待待响应,等中断服务函数结束时需要软件清该标志位; 这些寄存器在TI的msp430f5xx_6xxgeneric.h头⽂件有如下定义下⾯看⼀个外部中断程序,所⽤引脚为P2.1,对应MSP430F5529⽕箭板的板载按键S1,初始化为下降沿触发void EXTI_Init(){/*按键中断*/P2IE |= BIT1; //P2.1中断使能P2IES |= BIT1; //设置为下降沿触P2IFG &= ~BIT1; //清中断标志位P2REN |= BIT1; //上拉电阻P2OUT |= BIT1; //初始化置⾼}/*中断服务函数*/#pragma vector=PORT2_VECTOR__interrupt void P2_ISR(void){if(P2IFG & BIT1){delay(2); //延时2ms消抖动/*这⾥是函数算法部分*/}P2IFG &=~BIT1; //清空中断标志}⼆·定时器MSP430的定时器资源还算丰富,共有两类共四个定时器,分别是3个TimerA和1TimerB,由于我对TimerA使⽤较多,所以本⽂着重来讲TimerA,三个TimerA分别为Timer0_A(5个捕获/⽐较寄存器),Timer1_A(3个捕获/⽐较寄存器),Timer2_A(3个捕获/⽐较寄存器),下⾯是TimerA的结构图我们结合TimerA的寄存器讲解⼀下这张图上半部分是整个定时器的基础,整个上半部分可通过TACTL控制寄存器来编程,从功能⾓度来讲从左往右分别是,⾃⾝时钟源配置TASSEL,第⼀次分频选择ID,定时器清零位TACLR,计数值存放寄存器TAR,⼯作模式控制位MC,中断标志位TAIFG以及没有在结构图出现的定时器中断使能TAIE。
MSP430f5529中文手册
MSP430F552X中文手册及例程一、先写一篇开个头:这样快速闯入MSP430学习过程进入各个电子产品公司的网站,招聘里面嵌入式占据了大半工程师职位。
广义的嵌入式无非几种:传统的什么51单片机、 MSP430称做嵌入式微控制器;ARM是嵌入式微处理器;当然还有DSP;FPGA。
我们现在就不说别的,就说MSP430单片机,多数想学MSP430的童鞋,对89C51内核系列的单片机是很熟悉的,为了加深对MSP430 系列单片机的认识吗,迅速闯入MSP430学习过程,就必须彻底了解MSP430单片机,我们不妨将51单片机和MSP430两者进行一下比较。
第一点, 51内核单片机是8 位单片机。
其指令是采用的被称为“ CISC ”的复杂指令集,共具有111 条指令。
而MSP430 单片机是16 位的单片机,采用了精简指令集( RISC )结构,只有简洁的27 条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据存储器都可参加多种运算。
这些内核指令均为单周期指令,功能强,运行的速度快。
第二点,MCU主要分为两种工作模式:待机与执行。
51内核单片机正常情况下消耗的电流为mA级 ,在掉电状态下,其耗电电流仍约为3mA左右 ;即使在掉电方式下,电源电压可以下降到2V ,但是为了保存内部RAM 中的数据,还需要提供约50uA的电流。
而430单片机功耗是在uA级的,工作电流极小,并且超低功耗,关断状态下的电流仅为0.1μA,待机电流为0.8μA,常规模式下的(250μA/1MIPS@3V),端口漏电流不足50 nA,并可零功耗掉电复位(BOR)。
另外,该芯片属低电器件,仅需1.8~3.6V电压供电,因而可有效降低系统功耗。
MSP430将低功耗模式扩展为7种,分别对应不同应用场合及任务的低功耗方式。
以睡眠模式为例,包括深度睡眠模式RTC:只有时钟在跑而其他都不动,目前,TI宣布其MSP430在RTC模式下最低功耗仅为360nA。
MSP430F5529实验指导书(V1.0)
MSP430F5529 实验指导书(V1.0)2014年10月27日东北林业大学机电工程学院“3+1”实验室实验一基础GPIO实验1、熟悉2、掌握3、掌握1、2、PC【实验原理】CCS(Code Composer Studio)是 TI 公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。
CCSv5.1 为 CCS 软件的最新版本,功能更强大、性能更稳定、可用性更高,是 MSP430 软件开发的理想工具。
SEED-EXP430F5529v1.0开发板上的有8个可操作的LED灯,与MCU的IO口对应关系如图1-1所示:图1-1 LED与MCU的IO对应关系电路我们可以通过控制单片机IO口的输出电平状态来控制各个LED灯的亮灭。
开发板上还有2个可操作的按键S1,S2。
如图1-2所示。
图1-2 按键电路我们可以通过读取与按键相连的IO口的输入电平状态来执行相应的操作。
此外,S1,S2还可以作为外部中断源,触发中断。
【实验内容】1、用调用头文件的方法,使能MSP430F5529开发板上的8个LED灯依次按顺序循环点亮;2、用按键S1控制开发板上LED1的亮灭状态(查询法);3、用按键S2控制开发板上跑马灯的循环速度(中断方式)。
【实验步骤】family,Finish。
__delay_cycles(500000); //延时P8OUT &= ~BIT2;for(i=BIT1;i<=BIT5; i=i<<1){P1OUT = i;__delay_cycles(500000); //延时}}}6、保存程序后Bulid(单击菜单中,或快捷键Ctrl+B)编译程序。
7、调试程序(单击菜单中)自动进入调试界面并下载程序。
8、运行程序(单击菜单中)进行程序的运行、暂停、停止、单步运行等操作。
单片机MSP4305299实验程序
实验一熟悉CCS 编译环境实验目的:熟悉 CCS 编译环境,学习CCS 中新建工程,编译调试程序,观察变量窗口,设置断点等实验内容与步骤:1. 在 CCSv5 中新建工程,指定MSP430F5529 芯片;2. 在中键入以下程序段3.#include <>void main(void){volatile unsigned int i;WDTCTL = WDTPW+WDTHOLD; 编译 Build 工程;5. 下载调试 Debug 工程;6. 在调试环境下选择全部运行,观察记录实验板上的现象;7. 选择单步运行,观察记录每条指令执行时的现象;8. 选择单步运行,观察寄存器 P1DIR,P1OUT 中数据的变化;9. 停止调试,返回到编辑环境,在程序中设置断点运行;实验二简单输入输出实验实验目的:学习MPS430 通用输入输出端口GPIO 的操作,掌握CCS 中建立工程编辑调试的过程。
实验内容与步骤:1. 端口输出点亮指定 LED 或闪烁(软件延时),按键控制交替点亮或熄灭LED 编写程序指定端口输出方向,控制指示灯LED1 或LED2 或LED3 闪烁#include <>void main(void){volatile unsigned int i;WDTCTL = WDTPW+WDTHOLD; 编写程序指定端口输出方向,控制指示灯LED4 或LED5 或LED6 交替点亮,如:LED4 亮,LED5和LED6 灭,然后LED5 亮,LED4 和LED6 灭,然后LED6 亮,LED4 和LED5 灭,按此顺序循#include<>void main(void){volatile unsigned int i;WDTCTL = WDTPW+WDTHOLD; 检测按键 S1,按键按下时产生输入中断,设置变量NUM 记录按键次数。
单步调试,观察变量NUM 数值的变化。
最新MSP430F5529资料
M S P430F5529资料MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。
MSP430单片机称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。
该系列单片机多应用于需要电池供电的便携式仪器仪表中。
什么是单片机?单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),英文缩写:MCU。
它是把中央处理器、存储器、定时/计数器、各种输入输出接口等都集成在一块芯片上的微型计算机。
什么是嵌入式?IEEE(国际电气和电子工程师协会) 对嵌入式系统的定义:用于控制、监视或者辅助操作机器和设备的装置.Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants.国内普遍认同的嵌入式系统定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
MSP430单片机内核是16位RISC处理器的超低功耗混合信号处理器丰富的片内外设灵活的开发手段MSP430单片机特点◆超低功耗低电压工作1.8~3.6V,RAM数据不丢失情况下耗电仅0.1μA,活动模式耗电290μA/MIPS,I/O输入最大漏电流仅为50nA灵活的时钟系统采用向量中断,需要运行时通过中断唤醒CPU,只需3.5μs◆强大的处理能力指令速度高达25MIPS◆高性能模拟技术及丰富的片上外设时钟模块、Flash控制器、RAM控制器、通用I/O端口、定时器、数模转换器、比较器、UART、SPI、I2C、USB等MSP430单片机的应用领域◆能量收集太阳能、热能、振动能、人体运动的动能等;◆计量仪表水表、电表、流量表等;◆安全与安防烟雾探测器、破损玻璃检测系统等;◆便携式医疗血糖计、个人血压监控器、心率检测计等;MSP430F5529单片机特性◆低工作电压:1.8V到3.6V;◆超低功耗:--活动模式(AM):所有系统时钟活动290 μA/MHz在8MHz,3.0V,Flash Program150 μA/MHz在8MHz,3.0V,RAM Program--待机模式(LPM3):实时时钟、看门狗、电源监控、RAM数据保持、快速唤醒:1.9μA在2.2V,2.1μA在3.0V(典型)低功耗振荡器、通用计数器、看门狗、电源监控、RAM数据保持、快速唤醒:1.4 μA在3.0V(典型)--关闭模式(LPM4):RAM数据保持,电源监控,快速唤醒:1.1μA在3.0V(典型)--关断模式(LPM4.5):0.18μA在3.0V(典型)◆从待机模式下唤醒时间在3.5μs内(典型);◆16位RISC结构,可拓展内存,高达25-MHZ的系统时钟;◆灵活的电源管理系统:--核心供电电压可编程调节的内置LDO--电源电压监控、监测及掉电检测◆UCS统一时钟系统:--频率稳定的FLL控制回路--低功率或低频率内置时钟源(VLO)MSP430F5529单片机特性◆ UCS统一时钟系统:--修整后的低频内置参考源(REFO)--32KHZ低频晶振(XT1)--高达32MHZ高频晶振 (XT2)◆具有五个捕获/比较寄存器的16位定时器TA0,Timer_A;◆具有三个捕获/比较寄存器的16位定时器TA1,Timer_A;◆具有三个捕获/比较寄存器的16位定时器TA2,Timer_A;◆具有七个捕获/比较映射寄存器的16位定时器TB0,Timer_B;◆两个通用串行通讯接口:--USCI_A0和USCI_A1,每个支持:增强UART、IrDA、同步SPI --USCI_B0和USCI_B1,每个支持: I2C 、同步SPI◆全速USB:--集成USB-PHY--集成3.3V/1.8V USB 电源系统--集成USB-PLL--8输入,8输出端点◆具有内部基准电压,采样和保持及自动扫描功能的12位ADC(MSP430F552X系列仅有);◆比较器;◆支持32位运算的硬件乘法器;◆串行系统编程,无需添加外部编程电压;◆三通道内部DMA;◆具有实时时钟功能的基本定时器;MSP430F5529引脚图MSP430F5529结构图MSP430F5529LP开发板介绍eZ-FET仿真模块的LED说明隔离跳线块eZ-FET仿真器适用于几乎所有MSP430产品短路跳线块,eZ-FET仿真器可以选择连接开发板上的F5529芯片断开跳线块,eZ-FET仿真器可以作用于外接的其他芯片隔离跳线模块应用设置见TI官网MSP430F5529 LaunchPad User’s guide Section2.2.7各接口引脚介绍见Quickstart Guide一些缩写说明(x为数字):GPIO: 通用数字I/O口;CBx: 比较器B输入通道CBx;Ax: ADC输入通道Ax;RTC: 实时时钟;UCAx: USCI_Ax;TAxCLK: TAx时钟信号输入;CBOUT: 比较器B输出;STE: 从机传输使能;PM_: 默认映射;SDA: I2C数据;SCL: I2C时钟;DMAEx: DMA外部触发输入;SOMI: 在SPI模式下的从机输出、主机输入;SIMO:在SPI模式下的从机输入、主机输出;UCAxRXD: USCI_Ax在UART模式下的接收数据输入; TXD为数据输出; CCS简介TI公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境。