基于MSP430G2231实现的多路数据采集器_第1页
基于MSP430G2231实现的多路数据采集器_第2页
基于MSP430G2231实现的多路数据采集器_第3页
基于MSP430G2231实现的多路数据采集器_第4页
基于MSP430G2231实现的多路数据采集器_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MSP430G2系列Launchpad开发板应用实例作品基于MSP430G2231实现的多路数据采集器李萌美国德州仪器半导体技术上海(有限)公司西安电子科技大学MSP430单片机联合实验室2011年12月目 录第一章 作品概述3 第一节 作品功能和单片机介绍3第二节 设计方案3第二章 硬件系统设计4第一节 MSP430G2系列Launchpad开发板介绍4第二节 信号调理电路介绍5第三节 显示部分电路7第四节 硬件装配调试说明8第三章 软件系统设计6 第一节 程序概述6第二节 子程序介绍9第三节 主程序介绍12 第四节 软件注意事项13第四章 总结与思考13附录 元器件清单第一章 作品概述第一

2、节 作品功能和单片机介绍运用MSP430G2231型单片机对外部输入的8路电流信号进行顺序采样,并通过12864进行显示。本作品选用MSP430G2231单片机,该单片机超低功耗,具有5种节电模式,1us内便可从待机模式唤醒,并具有一个强大的16位RISC CPU、16位寄存器和常数发生器,有助于最大限度的发挥代码效率。此单片机还具有丰富的时钟源,包括LF、OSC和VLO。它可通过串行口系统编程,无需外部编程电压,具有可编程的保密熔丝代码保护,它具有Spy-Bi-Wire仿真逻辑接口。另外它还有10位IO口、8个比较器通道和16位的Timer_A定时器,带2路捕获和比较寄存器。此单片机的IO口

3、和Timer_A定时器都具有强大的中断能力。第二节 设计方案Laungch PAD模拟信号调理128 64点阵液晶图1.1 系统组成结构框图如图1.1所示:外部信号通过模拟信号调理电路将外界输入的420mA电流转换成01.5V的电压信号用ADC10模块进行采集通过单片机的内部运算将电压信号转换成需要显示的电流信号。模拟信号调理版由采样电阻,低通滤波以及射极跟随器组成。采样电阻将输入的电流信号转换成电压信号,低通滤波减少存在于输入端的共模干扰,射极跟随器起到减小输出阻抗以及保护后级电路的作用。模拟信号调理版将输入的420mA电流信号转换成0.31.5V的电压信号通过单片机进行采集。采集完成后送往

4、点阵液晶进行显示。该应用充分发挥了MSP430G2231的IO资源:14(总管脚数)=2(电源和地)+2(JTAG)+2(串行点阵)+8(ADC输入)。第二章 硬件系统设计第一节 MSP430G2系列Launchpad开发板介绍基于LaunchPad的MSP-EXP430G2低成本实验板是一款适用于TI最新MSP430G2xx系列产品的完整开发解决方案。其基于USB的集成型仿真器可提供为全系列MSP430G2xx器件开发应用所必需的所有软、硬件。LaunchPad具有集成的DIP目标插座,可支持多达20个引脚,从而使MSP430ValueLine器件能够简便地插入LaunchPad电路板中。此

5、外,还可提供板上Flash仿真工具,以直接连接至PC轻松进行编程、调试和评估。LaunchPad实验板还能够对eZ430-RF2500T目标板、eZ430-Chronos手表模块或eZ430-F2012T/F2013T目标板进行编程。此外,它还提供了从MSP430G2xx器件到主机PC或相连目标板的9600波特UART串行连接。其实物图如图2.1所示。图2.1 MSP430G2系列Launchpad开发板实物图MSP-EXP430G2采用IAR EmbeddedWorkbench集成开发环境(IDE)或CodeComposerStudio(CCS)编写、下载和调试应用。调试器是非侵入式的,这使

6、用户能够借助可用的硬件断点和单步操作全速运行应用,而不耗用任何其他硬件资源。MSP-EXP430G2LaunchPad特性: USB调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART串行通信速度 支持所有采用PDIP14或PDIP20封装的MSP430G2xx和MSP430F20xx器件 分别连接至绿光和红光LED的两个通用数字I/O 引脚可提供视觉反馈 两个按钮可实现用户反馈和芯片复位 器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板 高质量的20引脚DIP插座,可轻松简便地插入目标器件或将其移除第二节 信号调理及电源供电电路介绍2.1:电源供电电路图

7、2.2 电源供电原理如图2.2所示,采用9V适配器供电,11175V可产生5V电压。1117-3.3V可产生3V电压。5V供液晶使用,3.3V供单片机以及信号调理电路使用。2.2:信号调理电路图2.3 信号调理电路原理图如图2.3所示,420mA电流信号经75欧姆采样电阻转换成0.3V1.5V电压信号,经过低通滤波器后进入运放,通过射极跟随器连接到单片机IO口。在输入运放之前采用一阶低通滤波来减小高频的共模干扰,射极跟随器起的作用是,保护后级电路和实现阻抗匹配。2.3系统原理图图2.4 系统原理图第三节 显示部分电路本作品选用12864液晶显示器进行显示,器件实物如图2.3所示。图3.1 12

8、864液晶显示器实物图12864液晶显示器是一种具有 4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 128×64, 内置 8192 个 16*16 点汉字,和128个16*8点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 8×4 行 16×16 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也

9、略低于相同点阵的图形液晶模块。本作品选用12864液晶显示器的串行接口方式,仅需2根IO口即可完成。电路如图3.2所示图3.2 12864液晶显示器的串行接口电路连接图第四节 硬件装配图电流采集板图4.1 模拟信号调理板LaunchPad图4.2 LaunchPad底板图4.3 底板整体装配图图4.4 整体装配图装配方法:1.将模拟信号调理版上焊上插针(共16个连接底板),以及两排排座每排10个(连接LaunchPad),20孔的插座(连接LCD)(如图4.1所示) 2在Launch上焊上两排插针(如图4.2所示)。 3.在万用版上焊上8个2端子,插上16个插针并用排线接出,并打上固定孔(如图

10、4.3所示)。 4.将信号调理版插在LaunchPad上。 5.将LCD插在信号调理版上 6.将点阵液晶用长铜柱固定在万用版上,接上59V的电源适配器即可(如图4.4)第五节 模拟信号调理版PCB图图5.1 PCB板正面 图5.2 PCB板反面第三章 软件系统设计第一节 程序概述程序通过AD10模块的采样模式1:顺序采样方式轮询的对八路电流输入信号进行采样,采样间隔通过主循环中的延时设置。通过IO口串行控制液晶,每次计算完成后,将结果送串行液晶予以显示。 第二节 子程序介绍AD初始化程序:入口参数:无出口参数:无void AD_Init(void) ADC10CTL0 |= SREF_1+RE

11、FON+ADC10IE;/将AD10基准设置为1.5V 开启AD允许中断 ADC10CTL0 |= ADC10SHT_3+MSC;/打开AD转换,过采样率设置为64个采样周期 ADC10CTL1 |= ADC10SSEL_3+SHS_0;/选择250K的采样时钟,用ADC10SC触发采集 ADC10CTL1 |= CONSEQ_1+INCH_7;/连续采样模式,从通道07 ADC10CTL0 |= ADC10ON; ADC10AE0 |= 0xFF; ADC10CTL0 |= ADC10SC+ENC;时钟初始化程序:入口参数:无出口参数:无void clk_init(void)BCSCTL1

12、|= CALBC1_1MHZ;DCOCTL |= CALDCO_1MHZ;/上面两句将内部DCO校准至1MHz/while(IFG1&OFIFG)/IFG1 &= OFIFG;/delay_ms(100);/BCSCTL2 |= SELM_0;/MCLK采用1M的内部DCOBCSCTL2 |= DIVS_2;/SMCLK采用250K的时钟 IO初始化程序:入口参数:无出口参数:无void io_init(void) P2SEL &= (BIT6+BIT7);/ 2231将其初始化为晶振输入端,所以要关掉第二功能选择 P2DIR |= BIT6+BIT7;/将其置为输出方

13、向 /P1OUT =0; P1SEL = 0xFF;/将IO选择为AD输入 /P1SEL|=BIT6; P1DIR = 0;液晶初始化:入口参数:无出口参数:无void lcd_init (void) wr_lcd (comm,0x30); /30-基本指令动作 wr_lcd (comm,0x01); /清屏,地址指针指向00H delay_ms(100); wr_lcd (comm,0x06); /光标的移动方向 wr_lcd (comm,0x0c); /开显示,关游标串行液晶底层驱动:入口参数:func:功能数据 data:数据出口参数:无void wr_lcd(uchr func,uch

14、r data) uchr i,i1,i3,i2,CF; SID_H; for(i=0;i<5;i+) SCK_H; SCK_L; /5起始位 SID_L; SCK_H; SCK_L;/写使能 if(func=1) SID_H; else SID_L; SCK_H; SCK_L;/功能位 SID_L; SCK_H; SCK_L;/写0 for(i3=0;i3<2;i3+) for(i1=0;i1<4;i1+) CF=data&0x80; if(CF=0x80) SID_H; else SID_L; SCK_H; SCK_L; data=data<<1; fo

15、r(i2=0;i2<4;i2+) SID_L; SCK_H; SCK_L; 液晶显示入口参数:无出口参数:无void chn_disp1 (uchr const *chn) uchr i,j; /wr_lcd (comm,0x30); wr_lcd (comm,0x80); for(j=0;j<4;j+) for (i=0;i<16;i+) wr_lcd (dat,chnj*16+i); void Write_Num(int addr,int val1,int val2) wr_lcd (comm,addr); if(val1!=0x2E) val1=val1+0x30; v

16、al2=val2+0x30; wr_lcd (dat,val1); wr_lcd (dat,val2);将采样值转换成电流值入口参数:无出口参数:无void Calculate(void) /_DINT(); int i; for(i=0;i<8;i+) Disp_Tabi=AD_Resulti*0.195503; /_EINT();第三节 主程序介绍首先关闭看门狗,将10个IO口配置成8路AD输入,两个IO输出(控制液晶)。运用DCO将校准至1M的时钟供系统使用。进行LCD初始化,显示液晶上的“常量数字”。并对AD10进行初始化,1.5V基准源,250K采样时钟,从通道7至0进行轮询顺

17、序采样。每当有ADC10SC触发式进行采集。采集间隔通过主循环中的delay_ms()控制(这里设置的为50ms)。采样值计算完成后送液晶显示。void main() WDTCTL = WDTPW+WDTHOLD; io_init(); clk_init(); lcd_init(); chn_disp1(tab); AD_Init(); _EINT(); while(1) delay_ms(50); ADC10CTL0 |= ENC+ADC10SC; Calculate(); /Write_Num(0x81,Disp_Tab0/100,(Disp_Tab0%100)/10); /Write_N

18、um(0x82,0x2E,(Disp_Tab0%100)%10); Write_Num(0x85,Disp_Tab1/100,(Disp_Tab1%100)/10); Write_Num(0x86,0x2E,(Disp_Tab1%100)%10); Write_Num(0x91,Disp_Tab2/100,(Disp_Tab2%100)/10); Write_Num(0x86,0x2E,(Disp_Tab2%100)%10); Write_Num(0x95,Disp_Tab3/100,(Disp_Tab3%100)/10); Write_Num(0x86,0x2E,(Disp_Tab3%100

19、)%10); Write_Num(0x89,Disp_Tab4/100,(Disp_Tab4%100)/10); Write_Num(0x86,0x2E,(Disp_Tab4%100)%10); Write_Num(0x8D,Disp_Tab5/100,(Disp_Tab5%100)/10); Write_Num(0x86,0x2E,(Disp_Tab5%100)%10); Write_Num(0x95,Disp_Tab6/100,(Disp_Tab6%100)/10); Write_Num(0x86,0x2E,(Disp_Tab6%100)%10); Write_Num(0x9D,Disp_

20、Tab7/100,(Disp_Tab7%100)/10); Write_Num(0x86,0x2E,(Disp_Tab7%100)%10); 第四节 调试注意事项1:开启ENC之后任何的初始化语句都无效,也就是说想要成功的完成初始化必须要在关闭ENC的情况下完成。2:DCO可以较为精准的时钟频率只要用两句语句即可完成:BCSCTL1 |= CALBC1_1MHZ;DCOCTL |= CALDCO_1MHZ;/上面两句将内部DCO校准至1MHz3:不要重复的进行液晶的刷新,要加延时。4:设置ADC10的IO口时只需设置ADC10AE即可,别的不用管。5:对于ADC10来说,250K的采样时钟以及64的过采样率能够采集到最为稳定的值。6:对于G2231有限的内存来说,尽量多使用Static

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论