基于msp430g2553比较器使用

合集下载

MSP430G2553捕获程序案例与经验分享

MSP430G2553捕获程序案例与经验分享

MSP430G2553捕获程序案例与经验分享MSP430G2553单片机定时器A有3个捕获比较寄存器CCR0,CCR1,CCR2.。

MSP430G2553捕获程序应用很广泛,电子工程师可以多加了解。

所谓捕获,就是我们来检测外围的信号跳变时刻(此时信号理解为数字信号,即脉冲),此信号乃为我们捕获的对象,可以测量信号的脉冲宽度,即频率等。

捕获首先需要考虑的初始化工作1.设置BCS模块,确定系统时钟MCLK子系统时钟SMCLK把MCLK设置为8MHZ,SMCLK设置为1MHZ。

2.捕获输入引脚的选择选择IO引脚时应查阅器件的手册,能够快速的查阅PDF资料找到正确的答案是一个程序员的基本素质。

3.程序设计思路根据测频的原理,需要2次捕获才能测量一次输入信号的频率。

因此要定义2个变量保存2次捕获结果。

变量是无符号的整数型变量(与捕获寄存器的字长匹配)。

输入信号与CPU的工作是异步的,所以设计程序的时候是不知道什么时候才有捕获输入。

程序处理何时发生了捕获的方法有2种一是查询的方法,定时器硬件在发生捕获事件后会置捕获中断表示CCIF为1,程序在主循环里不断的查询这个标志即可判断是否有捕获事件发生。

二是定时器中断法,当发生捕获事件时必产生定时器中断,在中断中读取捕获寄存器即可。

查询的方法不是好的程序设计方法,因为查询时要占用CPU,使得CPU不能再做其他任务。

中断的方法对初学者有一定的困难。

即中断程序如何与主程序通信(交换信息)。

理解中断及设计中断服务程序要困难一些。

捕获模式捕获外部输入的信号的上升沿或下降沿或上升沿下降沿都捕捉,当捕捉发生时,把TAR 的值装载到TACCRx中,同时也可以进入中断,执行相应的操作。

这样利用捕捉上升沿或。

基于MSP430G2553便携式脉搏测试仪的设计

基于MSP430G2553便携式脉搏测试仪的设计

·97·
图1
三、系统软件设计 ( 一) 程序流程图。( 见图 2) ( 二) 软件系统设计图。本源代码是基于 TI 的 16 超低 功耗 位 单 片 机 MSP430G2553 而 开 发 的,采 用 片 内 时 钟 1MHZ,显 示 部 分 采 用 市 面 上 常 见 的 液 晶 QC12864, MSP430G2553 与 QC12864 通过串口通讯,我们采用锂电池供 电,程序上电后,立即进入系统初始化,初始化代码主要包含 端口初始化,有 些 口 线 用 着 输 入,有 的 用 着 输 出。 有 些 输 出 高电平,有些输 入 低 电 平。 然 后 是 定 时 器 初 始 化,因 为 在 脉 搏测试仪工作的时候,我们总是测试一分钟后才给出测试结 果,而且在测试开 始 后 的 第 十 秒,我 们 会 对 初 步 的 测 试 结 果 做一个判断,如果这 10 秒内的测试结果是合理的,我们则继
图2ቤተ መጻሕፍቲ ባይዱ
·98·
四、评测与结论 ( 一) 系统测量原理。随着心脏的跳动手指尖的微 血 管 发 生 相 应 的 脉 搏 的 容 积 变 化 ,光 发 射 电 路 发 出 的 特 定 波 长 的 光 透 过 手 指 到 光 电 器 件 ,此 过 程 被 检 测 生 理 量 ( 人 体 的 脉 搏 ) 转 换 成 光 信 号 ,通 过 光 电 器 件 转 换 为 电 信 号 ,送 入 前 级 放 大 电 路 将 信 号 适 当 放 大 ,经 过 滤 波 电 路 除 去 其 中 的 噪 声 得 到 需 要 频 率 范 围 内 的 信 号 ,再 将 脉 搏 信 号 进 行 放 大 和 后 级 的 处 理 ,通 过 示 波 器 显 示 出 来 ,进 一步进行观测。 ( 二) 测试方案及条件。 1. 测试仪器。数字万用表、数字示波器、秒表。 2. 测试主要方案。目前脉搏波检测系统有以下几种检 测方法: 光电容积脉搏波法、液体耦合腔脉搏传感器、压阻式 脉搏传感器以及应变式脉搏传感器。近年来,光电检测技术 在临床医学应用中发展很快,这主要是由于光能避开强烈的 电磁干扰,具有很高的绝缘性,且可非侵入地检测病人各种 症状信息。用光电法提取指尖脉搏光信息受到了从事生物 医学仪器工作的专家和学者的重视。本系统设计了指套式 的透射型光电传感器,实现了光电隔离,减少了对后级模拟 电路的干扰,结构如图 3 所示。

MSP430G2553学习笔记(数据手册)

MSP430G2553学习笔记(数据手册)

MSP430G2553学习笔记(数据手册)MSP430G2553性能参数(DIP—20) 工作电压范围:1.8~3。

6V。

5种低功耗模式。

16位的RISC结构,62。

5ns指令周期.超低功耗:运行模式—230µA;待机模式—0.5µA;关闭模式—0.1µA;可以在不到1µs的时间里超快速地从待机模式唤醒.基本时钟模块配置:具有四种校准频率并高达16MHz的内部频率;内部超低功耗LF振荡器;32。

768KHz晶体;外部数字时钟源。

两个16 位Timer_A,分别具有三个捕获/比较寄存器。

用于模拟信号比较功能或者斜率模数(A/D)转换的片载比较器。

带内部基准、采样与保持以及自动扫描功能的10位200—ksps 模数(A/D)转换器。

16KB闪存,512B的RAM。

16个I/O口。

注意:MSP430G2553无P3口!MSP430G2553的时钟基本时钟系统的寄存器DCOCTL—DCO控制寄存器DCOxDCO频率选择控制1MODxDCO频率校正选择,通常令MODx=0注意:在MSP430G2553上电复位后,默认RSEL=7,DCO=3,通过数据手册查得DCO频率大概在0.8~1。

5MHz之间。

BCSCTL1—基本时钟控制寄存器1XT2OFF不用管,因为MSP430G2553内部没有XT2提供的HF时钟XTS不用管,默认复位后的0值即可DIV Ax设置ACLK的分频数00 /101 /210 /411 /8RSELxDCO频率选择控制2BCSCTL2-基本时钟控制寄存器2SELMxMCLK的选择控制位00 DCOCLK01 DCOCLK10 LFXT1CLK或者VLOCLK11 LFXT1CLK或者VLOCLK DIVMx设置MCLK的分频数00 /101 /210 /411 /8SELSSMCLK的选择控制位0 DCOCLK1 LFXT1CLK或者VLOCLK DIVSx设置SMCLK的分频数00 /101 /210 /411 /8DCORDCO直流发生电阻选择,此位一般设00 内部电阻1 外部电阻BCSCTL3—基本时钟控制寄存器3XT2Sx不用管LFXT1Sx00 LFXT1选为32。

电设工作小结之——MSP430G2553学习笔记—2

电设工作小结之——MSP430G2553学习笔记—2

电设工作小结之——MSP430G2553学习笔记——2接上一篇:(四),ADC101,ADC10是十位的AD,在g2553上有A0~A7八个可以外接的AD通道,A10接到片上的温度传感器上,其他的通道都接在内部的VCC或GND上。

因为是10为的AD所以计算公式如下:2 ,ADC参考电压的选择:ADC的参考电压可以为:由ADC控制寄存器0 ADC10CTL0控制。

但是要提高ADC的精度的话,尽量不要用内部的参考电压,最好外接一个比较稳定的电压作为参考电压,因为内部的产生的参考电压不是特别稳定或精度不是特别的高。

例如我在使用时遇到的情况如下:Vref设为2.5V 但实际的值大概为2.475V,选择VCC VSS作为参考,用电压表测得大概为3.58V 还是不小的偏差的。

另外,在有可能的情况下,尽量采用较大的VR+和VR-,以减小纹波对采样结果的影响。

3,ADC10的采样方式有:单通道单次采样,单通道多次采样,多通道单次采样,多通道多次采样。

4,DTC:因为ADC10只有一个采样结果存储寄存器ADC10MEM,所以除了在单通道单次采样的模式下,其他的三个模式都必须使用DCT,否则转换结果会不停地被新的结果给覆盖。

DTC是转换结果传送控制,也就是转换结果可以不用CPU的干预,就可以自动地存储在指定的存储空间内。

使用这种方式转换速度快,访问方便,适用于高速采样模式中。

DTC的使用可以从下面的例子中很容易看明白:#include <msp430g2553.h>#include "ser_12864.h"uchar s1[]={"DTC:"};uchar s2[]={"2_cha_2_time_DTC"};void ADC_init(){ADC10CTL1 = CONSEQ_3 + INCH_1; // 2通道多次转换, 最大转换通道为A1ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE; // ADC10ON, interrupt enabl 参考电压选默认值VCC和VSS//采样保持时间为16 x ADC10CLKs,ADC内核开,中断使能 MSC多次转换选择开//如果MSC置位,则第一次开始转换时需要触发源触发一次,以后的转换会自动进行中断使能//使用DTC时,当一个块传送结束,产生中断//数据传送控制寄存器0 ADC10DTC0设置为默认模式:单传送块模式,单块传送完停止 ADC10DTC1 = 0x04; //数据传送控制寄存器1 4 conversions 定义在每块的传送数目一共采样4次所以单块传送4次//以后就停止了传送因为是两通道的,所以是每个通道采样数据传送2次ADC10AE0 |= BIT0+BIT1; // P1.0 P1.1 ADC option select 使能模拟输入脚A0 A1//不知道为什么,当P10 P11都悬空时,采样值不同,用电压表测得悬空电压不同,但是当都接上采样源的时候,//采样是相同的}void main(void){uint adc_sample[8]={0}; //存储ADC序列采样结果WDTCTL = WDTPW+WDTHOLD;BCSCTL1 = CALBC1_12MHZ; //设定cpu时钟DCO频率为12MHzDCOCTL = CALDCO_12MHZ;P2DIR |=BIT3+BIT4; //液晶的两条线init_lcd();ADC_init();wr_string(0,0,s1);wr_string(0,3,s2);for (;;){ADC10CTL0 &= ~ENC; //ADC不使能其实这句话可以放在紧接着CPU唤醒之后的,因为CPU唤醒了,说明我们想要的//转换数据传送完成了,如果ADC继续转换,那么转换结果也不再传输,是无用的。

基于MSP430G2553的电压表设计

基于MSP430G2553的电压表设计

数字式直流电压表一、整体说明在电子技术中,往往离不开对电压的测量,作为一种测量电压的仪器——电压表是近代电子技术领域的常用工具之一,在许多领域得到广泛应用。

本设计是基于TI单片机设计的数字式直流电压表,它主要由MSP430G2553、LCD12864和分压电路三部分组成。

分压电路先将输入的电压信号衰减一定的倍数,后通过控制双路选择开关设定测量的量程,分别有0~3V和0~15V两个档,以便实现精确读数;分压处理后的电压信号由MSP430G2553内部的ADC10模块转换成数字信号;再通过LCD12864液晶屏进行串行显示。

经多次测量实验得出误差范围在2%以内。

二、原理图基于MSP430G2553单片机设计的数字式直流电压表的电路图如图1所示。

由于MSP430开发板已具备单片机最小系统结构,只需添加显示电路和分压电路。

LCD12864通过串口方式显示,只需占用单片机2个I/O口;分压电路可以通过开关S1选择量程档位,只占用1个I/O口。

图1 直流电压表电路图三、接口定义MSP430G2553的接口说明如表1所示。

图1中的复位和晶振部分是MSP430开发板固有的部分,故不再说明。

P1.0接液晶屏的SID脚,作为串行的数据口用;P1.1则接液晶屏的SCLK脚,控制串行的同步时钟;P1.4接分压电路的输出端。

LCD12864的接口说明如表2所示。

当PSB脚接低电平时,串口模式被选择。

在该模式下,只用2根线(SID与SCLK)来完成数据传输。

RS接高电平,不使用片选功能。

注意:信号源与单片机之间要共地。

表1 MSP430G2553的接口说明表2 LCD12864的接口说明四、程序流程图(一)主函数主函数的流程框图如图1所示。

主函数主要是调用系统初始化函数和循环开启ADC 转换,这是由于ADC10采用单通道单次转换模式,每次采样后需要重新开启ADC ,才会进行下一次信号采样转换。

另外,信号的采样与处理以及电压值的显示都是通过中断来完成。

基于MSP430G2553的数字频率计设计

基于MSP430G2553的数字频率计设计

基于MSP430G2553的数字频率计设计这是经过改进后的程序源码,较上次的设计相比,测频范围提高到3MHz,是因为将上次采用的IO口中断计数,改为两人TIMERB计数,通过TIMERA定时,TIMERB捕获计数,最终实现测频。

相关经验总结1、测频有两种方法:侧频法和测周法;本次设计是采用的timerA定时1S,P1.0口作为被测信号输入口,上升沿捕捉,每来一个上升沿进入IO中断,在中断服务函数里变量i 计数一次,当定时1S到时,读取变量i的值,则为被测频率;然后将数据传送到LCD和PC机显示;G2553有两个定时模块timerA和timerB,要特别注意它的寄存器的区别格式,默认的是TIMER A的。

中断向量也有两个,有优先级之分,timer0_A0 (应用于CCR0 优先级最高)timer0_A1(用于CCR1,CCR2和其他寄存器)。

2、串口通信有UART的异步通信与SPI的同步通信,也有两个通信模块,接收中断和发送中断,对应口位P1.1和P1.2。

3、MAX232在焊接时,外围的电容可以在0.1UF到10UF,没有影响,9阵的串口接线时也需要特别注意(见单片机书上179页)4、在最后的串口通信中会出现串口调试窗口中不仅显示需要的频率还会有其他的数据,这就需要传进BUFF(8位)中的数据长度不能有其他的,因此比如传一个字符串型的DA TA 进入BUFF,用到stringlen(),包含头文件sring.h。

5、重点是波特率的配置,特别是当分频系数为小数时:/***msp430g2553_LCD1602_Frequency_Detect*****grade:2010*date:2012.7.16*函数功能:测频率*管脚:P1.0作为外部频率的入口*LCD显示:P1.3 P1.5 --> RS EN P2.0--> RW P2.4->2.7 数据端口*/#include <msp430g2553.h>#include "lcd1602_4.h"unsigned long data;int i,j,h,m=0,n=0;char a[15]=" ";char *pa=a;double Freq=0; //频率测量结果存放变量double TA_OverflowCnt=0;//TA溢出次数存放变量void main(void){WDTCTL = WDTPW + WDTHOLD; // Stop WDT//端口设置P1SEL |=BIT0; //允许其第二功能,作为TACLK输入,即待测输入<<----设为1外围模块接口P2SEL=0x00; //设置P2为通用I/OP1DIR &=~BIT0; //P1.0(TACLK)作为输入引脚P2DIR |= 0xf1; // Set P2 to output direction 1111 0001P1DIR |= 0x28; //0111 1000 p1.3 1.5 作为LCD使能复位控制端0010 1000//initial_lcd(); //LCD初始化initLCD();TA1CCR0=65535; //A1定时1sTA1CTL = TASSEL_2 + ID_3 + TACLR + MC_1 + TAIE; // TA1信号作为基准时钟选择SMCLK作为时钟选ACLK会不会稳定点?TA0CTL = TASSEL_0 + TACLR + TAIE + MC_2; //外部信号作为A0时钟,捕获模式TACCTL0 = CCIE; //打开A0中断捕获(该句和下一句为中断必要语句)TA1CCTL0 = CCIE; //打开A1中断捕获_EINT(); //打开全局中断for (;;){_enable_interrupts();data=(int)data;a[0]=data/100000+0x30;a[1]=data/10000%10+0x30;a[2]=data/1000%10+0x30;a[3]=data/100%10+0x30;a[4]=data/10%10+0x30;a[5]=data%10+0x30;a[6]='H';a[7]='z';a[8]='\0';for(h=5000;h>0;h--){//LCD_Disp(0,0,"f=");onLcd(0,0,"f=");//delay(100);//LCD_Disp(1,0,pa);onLcd(1,0,pa);}_disable_interrupts();}}// TA interrupt service routine计数器A0溢出中断#pragma vector=TIMER0_A0_VECTOR__interrupt void Timer_R0(void){_disable_interrupts();TA_OverflowCnt++; //TA每次溢出,溢出次数变量+1TA0CTL = TASSEL_0 + TACLR + TAIE + MC_2;//连续计数模式,选择外部时钟_enable_interrupts();}//定时器A1中断#pragma vector=TIMER1_A0_VECTOR__interrupt void Timer_R1(void){_disable_interrupts();data = (TA_OverflowCnt*65535 + TAR)*2.30012328;//读取上次TA计数值及溢出次数,计算频率TA_OverflowCnt=0; //将溢出次数置零TA1CTL = TASSEL_2 + ID_3 + TACLR + MC_1 + TAIE; //选择子系统时钟SMCLK 四分频增计数模式TA0CTL = TASSEL_0 + TACLR + TAIE + MC_2; //选用外部时钟连续计数模式_enable_interrupts();}。

MSP430G2553的UART与SPI应用

MSP430G2553的UART与SPI应用
新被允许。而接收和发送允许标志URXE和
UTXE不会因SWRST 而更改。
ME1 |= UTXE0 + URXE0 //使能 USART0 TXD/RXD模块USART中特有的
使能配置。
IE1 |= URXIE0 //使能USART0 接收中断
10 P2.2
通用I/O 口、Timer1_A捕获CCI1B输入比较Out1输出
11 P2.3
通用I/O 口、Timer1_A捕获CCI0B输入比较Out0输出
12 P2.4
通用I/O 口、Timer1_A捕获CCI2A输入比较Out2输出
U0CTL |= CHAR; // 配置控制寄存器数据类型为8位。
U0TCTL |= SSEL0 // 选择时钟UCLK= ACLK。
U0BR0 = 0x45 // 分频系数的高8位8MHz 时钟下波特率为115200
(CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保
证交换(Data Exchanges)
SPI 设备间的数据传输之所以又被称为数据交换, 是因为 SPI 协议规定一个 SPI
SPI 物理模块最终失效. 因此, 在程序中一般都会在 SPI 传输完数据后, 去读取 SPI 设
备里的数据, 即使这些数据(Dummy Data)在我们的程序里是无用的.
3、 工作机制
3.1. 概述
上图只是对 SPI 设备间通信的一个简单的描述, 下面就来解释一下图中所示的几个
测试数据输入或测试时钟输入
15 P1.7
通用I/O 口、ADC10模拟输入A7、Comparator_A+CA7输入、图

MSP430G2553中比较器测电阻的程序

MSP430G2553中比较器测电阻的程序
//BCSCTL1=CALBC1_12MHZ;//设置DCO为12M
DCOCTL =CALDCO_12MHZ;//具体代码没看到
IFG1=0x00; //清除中断标志 中断标志寄存器1 主要控制系统的中断
while(IFG1&OFIFG!=0)//OFIG在头文件中定义为0X20
//比较器设置
CACTL1 = CAEX + CAREF0 +CAON + CAIES + CAIE; //打开比较器 比较器中断 下降沿触发中断
CACTL2 = P2CA3 + CAF; // 一个选择CA1 P1.1 正输入端 一个选择CA2 P1.2 负输入端
else
start_data=0xfa;//写数据
Hdata=data&0xf0;//取高四位
Ldata=(data<<4)&0xf0;//取第四位
Send_Data(start_data);
Delay(1);
Send_Data(Hdata);
Delay(1);
// P1OUT ^= BIT6;
_BIC_SR_IRQ(LPM0_bits+GIE);
}
for(i=0;i<=15;i++)
{
Write_data(1,*P); P++;
Delay(move_timer);
num++;
}
}
if(hang==2)
{
Write_data(0,0x90+num);
}
}
void u32tostr(uint dat,char *str) //将一个32位的变量dat转为字符串

msp430g2553串口通信

msp430g2553串口通信

MSP430g2553串口通信MSP430的不同型号,其串行通讯工作模式是一样的。

以MSP430G2553为例进行说明。

MSP430G2553是20个引脚的16位单片机。

具有内置的16位定时器、16k 的FLASH 和512B 的RAM ,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。

此外还具有一个10位的模数(A/D)转换器。

其引脚排布如图1.1所示。

其功能表如表1.1所示。

串行通讯模块主要由三个部分组成:波特率生成部分、发送控制器以及接收控制器。

如图1.2所示。

一、UART 模式在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟。

波特率的产生是在本地完成的。

异步帧格式由1个起始位、7或8个数据位、校验位(奇/偶/无)、1个地址位、和1或2个停止位。

一般最小帧为9个位,最大为13位。

图1.2 串行通讯模块内部结构图图1.1 MSP430G2553引脚图(一)UART的初始化单片机工作的时钟源来自内部三个时钟或者外部输入时钟,由SSEL1、SSEL0,以决定最终进入模块的时钟信号BRCLK的频率。

所以配置串行通讯的第一步就是选择时钟。

通过选择时钟源和波特率寄存器的数据来确定位周期。

所以波特率的配置是串行通讯中最重要的一部分。

波特率设置用三个寄存器实现:UxBR0(选择控制器0):波特率发生器分频系数低8位。

UxBR1(选择控制器1):波特率发生器分频系数高8位。

UxMCTL 数据传输的格式,以及数据传输的模式是通过配置控制寄存器UCTL来进行设置。

接收控制部分和发送控制部分。

首先需要串行口进行配置、使能以及开启中断。

串口接收数据一般采用中断方式,发送数据采用主动发送。

当接收到一个完整的数据,产生一个信号:URXIFG0=1(类似于51单片机的接收中断标志位),表示接收完整的数据。

当数据正在发送中,UTXIFG0=1,此时不能再发送数据,必须等当前数据发送完毕(UTXIFG0=0)才能进行发送。

我们所用的MSP430G2553...

我们所用的MSP430G2553...

电设工作小结之——MSP430G2553学习笔记——1一,MSP430G2553单片机的各个功能模块(一),IO口模块,1,我们所用的MSP430G2553有两组IO口,P1和P2。

2,IO口的寄存器有:方向选择寄存器PxDIR,输出寄存器PxOUT,输入寄存器PxIN,IO口内部上拉或下拉电阻使能寄存器PxREN,IO口功能选择寄存器PxSEL和PxSEL2,IO口中断使能寄存器PxIE,中断沿选择寄存器PxIES,IO口中断标志寄存器PxIFG。

3,所有的IO都带有中断,其中所有的P1口公用一个中断向量,所有的P2口公用一个中断向量。

所以在使用中断时,当进入中断后,还要判断到底是哪一个IO口产生的中断,判断方法可以是判断各个IO口的电平。

4,中断标志PxIFG需要软件清除,也可以用软件置位,从而用软件触发一个中断。

注意:在设置PxIESx时根据PxINx有可能会引起相应的PxIFGx置位(具体的情况见用户指南),所以在初始化完IO口中断以后,正式使用IO中断前要先将对应的PxIFGx清零。

程序如下:void IO_interrupt_init() //IO中断初始化函数{P1REN |= BIT4+BIT5+BIT6+BIT7; // pull up 内部上拉电阻使能//使用中断时,使能内部的上拉电阻这样当该脚悬空是,电平不会跳变,防止悬空时电平跳变不停的触发中断P1OUT = BIT4+BIT5+BIT6+BIT7; // 当引脚上的上拉或下拉电阻使能时,PxOUT选择是上拉还是下来//0:下拉,1:上拉P1IE |= BIT4+BIT5+BIT6+BIT7; // interrupt enabled P13中断使能P1IES |= BIT4+BIT5+BIT6+BIT7; // Hi/lo edge 下降沿中断//P1IES &= ~BIT3; //上升沿触发中断P1IFG &= ~(BIT4+BIT5+BIT6+BIT7); //中断标志位清零}5,PxOUT:如果引脚选择了内部的上拉或下拉电阻使能,则PxOUT设定电阻是上拉还是下拉,0:下拉,1:上拉6,当IO口不用时,最好不要设为输入,且为浮动状态(这是IO口的默认状态),因为当输入为浮动时,输入电压有可能会在VIL和VIH之间,这样会产生击穿电流。

基于MSP430G2553的简易信号发生器

基于MSP430G2553的简易信号发生器

基于MSP430G2553的简易信号发生器浙江工业大学摘要:本作品基于TI的LaunchPad设计了一款简易信号发生器,选用TI的MSP430G2553单片机。

通过单片机加外围LCD12864、DAC0832及TL082放大电路,实现了可产生正弦波、锯齿波、三角波、方波的简易信号发生器,且频率可调。

关键词:MSP430G2553 DAC0832 正弦波锯齿波三角波一、作品基本功能介绍表1.1 技术参数2 在信号产生和处理方面。

通过MSP430G2553内部的TA 定时器,外加DAC0832产生四种波形,在DA 输出后,通过一个由运算放大器TL082和精密可调电位器组成的运算放大电路,以实现信号的增益控制。

最后在 50负载电阻上输出电压。

系统总体框图如图1.1所示。

图1.1系统总体框图表1.2 按键功能说明二、系统硬件和软件说明1 硬件构成本作品使用LCD12864作为人机交互模块,由于MSP430G2553的I/O 口很少,所以通过对LCD 的进行串行数据输入,以节约I/O 口。

其连接如图1.2所示。

+5V图1.2 LCD12864硬件连接由于是通过MSP430G2553输出数字量的信号来产生波形,因此需要用到DA 将数字量转换为模拟量。

考虑到单片机的I/O 口数量,选用8位的DA 来进行数模转换。

硬件如图1.3所示,DAC0832采用直通工作方式,节省I/O 口控制引脚。

+5V+5VI OUTP1.0-P1.3P1.4-P1.7图1.3 DAC0832 直通方式硬件连接由DAC 输出模拟量后,由于波形的幅值太小,因此还需要进行幅值的放大。

其中R3是精密可调电位器,方便用户对信号的幅度进行调节。

50Ω的电阻可以保证整个信号发生器的输出阻抗为50Ω。

信号幅度调节和输出部分电路如图1.4所示。

图1.4 幅值放大的硬件电路2 软件系统整个系统的软件主要有主函数、定时器TA 中断函数、按键中断函数三个大的模块组成。

MSP430G2553手册解读

MSP430G2553手册解读

MSP430G2XX外设
• 欠压复位
– 可在上电和断电期间提供正确的复位信号 – 功耗包含于MCU最低功耗时(LPM4)所消耗电流之中
• 串行通信
– 支持 I2C 和 SPI 的 USI – 支持 I2C、SPI 以及 UART 的 USCI
• Comparator_A+
– – – – 可设定反相和同相输入 可选的 RC 输出滤波器 可直接输出至 Timer_A2 捕获输入 具有中断能力
LaunchPad 开发板上各部分介绍
USB 仿真器接口
片上仿真器模块 6针 eZ430 连接器 外置晶体接口 芯片引出脚 MSP430器件和插座
P1.3 按钮
LED和跳线 P1.0 & P1.6
电源连接器 复位按钮
MSP430系列功能框图
MSP430G2XX 无Port3
低压、 电源复 位保护
VLO Min. Puls Filter ACLK Peripherals
32768Hz
OSC_Fault
辅助时钟
MCLK CPU
主系统时钟
16MHz Biblioteka CO SMCLK Peripherals
子系统时钟
上电后: MCLK 和 SMCLK 由DCOCLK 提 供(约1.1 MHz) ACLK 由 LFXT1CLK 提供(LF 模式,6pF内部负载电容)
• 。此外,其还可提供板上Flash 仿真工具, 以直接连接至PC 轻松进行编程、调试和评 估。 • MSP-EXP430G2 采用IAR Embedded Workbench 集成开发环境(IDE) 或Code Composer Studio (CCS)编写、下载和调试 应用。 • 可提供板上Flash 仿真工具,以直接连接至 PC 轻松进行编程、调试和评估。

54MSP430 G2553 4(通用串口与比较器A)

54MSP430 G2553 4(通用串口与比较器A)

54MSP430 G2553 学习笔记4通用串行通信接口(USCI)1,USCI_A:支持UART, IrDA, SPIUSCI_B:支持I2C, SPI2,UART 这个模块没什么好说的,和其他的一写处理器如S12,ARM 等差不多。

只要设置好几个控制寄存器,波特率,写几个收发函数就可以了。

下面就给出msp430g2553于PC用UART通信的基本程序:#include "msp430g2553.h"unsigned char rev;char *string1="Helloworld!";char string2[]="Get it!\n"; //\n是换行符void putchar(unsigned char c) //发送字符函数{while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready? 等待TX buffer为空UCA0TXBUF = c; // TX -> RXed character 发送字符c}void putstr(char *s) //发送字符串函数{IE2 &= ~UCA0RXIE; //发送时先关闭接收中断,不接收while((*s)!='\0') //如果没有发完,就继续循环发送{putchar(*s);// putchar('\n'); //发送换行符s++;}IE2 |= UCA0RXIE; //发送完了打开接收中断}void main(void){WDTCTL = WDTPW + WDTHOLD; // Stop WDTP1DIR=BIT0;BCSCTL1 = CALBC1_1MHZ; // Set DCO 为1MHzDCOCTL = CALDCO_1MHZ;P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXDP1SEL2 = BIT1 + BIT2; //第二外围模式选择// UCA0CTL1 |= UCSSEL_2; // SMCLK 其他默认:软件复位使能 USCI 逻辑保持在复位状态,用于设置串口//UCA0CTL0全部为默认状态:无奇偶校验,LSB first,8bit_data,一位停止位,UART模式,异步模式// UCA0BR0 = 8; // SMCLK 1MHz 115200 8// UCA0BR1 = 0; // 1MHz 115200// UCA0MCTL = UCBRS2 + UCBRS0; // Modulation UCBRSx = 5//下面是选择ACLK,波特率设置为固定的UCA0CTL1 |= UCSSEL_1; //ACLKUCA0BR0 = 3; // ACLK 32768Hz 9600 32768Hz/9600 = 3.41UCA0BR1 = 0; // 32768Hz 9600UCA0MCTL = UCBRS1 + UCBRS0; // Modulation UCBRSx = 3UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** 初始化释放,可以操作 IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt 接收中断使能__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled// Echo back RXed character, confirm TX buffer is ready first#pragma vector=USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready? 等待TX buffer为空UCA0TXBUF = UCA0RXBUF; // TX -> RXed character 发送接收到是数据rev=UCA0RXBUF;if(rev&0x01){P1OUT |= BIT0;putstr(string1);putstr(string2);}elseP1OUT &= ~BIT0;}注意:关于波特率的设置这一块还没有看懂,但上面的例子总的设置是对的值得说明的是:可以用定时器来实现串口通信功能,例子还没有看。

MSP430G2553用户手册中文

MSP430G2553用户手册中文

• 通用串行通信接口 (USCI) – 支持自动波特率检测的增强型通用异步收发器 (UART) – IrDA 编码器和解码器 – 同步 SPI – I2C™
• 用于模拟信号比较功能或者斜率模数 (A/D) 转换的 片载比较器
• 带内部基准、采样与保持以及自动扫描功能的 10 位 200-ksps 模数 (A/D) 转换器(见 表 1)
3
MSP430G2x53 MSP430G2x13
ZHCS178E – APRIL 2011 – REVISED JANUARY 2012

器件引出脚配置、MSP430G2x13 和 MSP430G2x53、20 引脚器件、 TSSOP 和 PDIP 封装
DVCC 1 P1.0/TA0CLK/ACLK/A0/CA0 2 P1.1/TA0.0/UCA0RXD/UCA0SOMI/A1/CA1 3 P1.2/TA0.1/UCA0TXD/PUCA0SIMO/A2/CA2 4 P1.3/ADC10CLK/CAOUT/VREF-/VEREF-/A3/CA3 5 P1.4/SMCLK/UCB0STE/UCA0CLK/VREF+/VEREF+/A4/CA4/TCK 6 P1.5/TA0.0/UCB0CLK/UCA0STE/A5/CA5/TMS 7
28 引脚
24 TSSOP 封
LF,

-
1
DCO,
VLO
20 引脚
16 TSSOP 封

16
20 引脚 PDIP 封装
24
32 引脚 QFN 封装
28 引脚
24 TSSOP 封
LF,

-
1
DCO,
VLO
20 引脚

李江基于MSP430G2553单片机的直流电机PWM调速系统设计

李江基于MSP430G2553单片机的直流电机PWM调速系统设计

李江基于MSP430G2553单片机的直流电机PWM调速系统设计1 引言 (1)2 MSP430 简介 (2)3 脉宽调制(PWM)基本原理 (2)4 硬件设计 (3)4.1 电源模块设计 (3)4.2电机控制系统方案设计 (4)4.2 调速系统硬件电路设计 (4)5 软件设计 (6)5. 1 MSP430 指令集和编译软件的特点 (6)5. 2 整个系统的软件设计思想 (7)5.3 整个系统的程序设计流程图 (7)6 硬件调试 (8)7 性能评估 (12)8 总结思考 (13)参考文献 (13)附录 (14)电机控制系统是数控火焰切割机自动调高器中的关键部件。

提出了自动调高器中电机控制系统的方案,设计了基于单片机的PWM 直流电机控制硬件电路,指出了本系统软件设计需解决的关键问题,并设计了相应的控制软件。

该系统设计了一种实用新型的切割机自动调高系统,较好地解决了电机转动惯性对调高精度的影响。

关键词:自动调高器;直流电机;单片机;PWM1 引言数控切割机是对金属板材下料的机电设备,作为型材加工的关键设备之一,它是集数控技术、计算机软、硬件等技术为一体的高科技产品,在工业生产中发挥着重要的作用。

数控切割机在切割钢板的过程中,由于钢板高低不平或者倾斜等其它原因会影响加工质量,为提高加工的精度和质量,切割过程中需要高性能的自动调高器来保证割嘴到钢板之间高度的恒定。

电机控制系统用于实时调整割炬高度,是自动调高器中的关键部件。

直流电机由于具有速度控制容易,启、制动性能良好,且在宽范围内平滑调速等特点而在冶金、机械制造、轻工等工业部门中得到广泛应用。

直流电动机转速的控制方法可分为两类,即励磁控制法与电枢电压控制法。

励磁控制法控制磁通,其控制功率虽然小,但低速时受到磁饱和的限制,高速时受到换向火花和换向器结构强度的限制;而且由于励磁线圈电感较大,动态响应较差。

所以常用的控制方法是改变电枢端电压调速的电枢电压控制法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档