基于MSP430G2231实现的温度测试仪(程江)_第1页
基于MSP430G2231实现的温度测试仪(程江)_第2页
基于MSP430G2231实现的温度测试仪(程江)_第3页
基于MSP430G2231实现的温度测试仪(程江)_第4页
基于MSP430G2231实现的温度测试仪(程江)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、温度测试仪设计报告学号14122115 班级141222 姓名 罗流洋一、摘要本设计完成了对Pt100温度传感器信号进行检测并显示检测结果,显示间隔时间可设定,充分利用了MSP430的TA中断,IO中断,AD等资源。本作品能实时跟踪当前环境温度,但灵敏度不很理想,其测温范围为20-50摄氏度,操作简单,方便实用。 二、 硬件系统设计电源电路1)产生5.0V电路。如图所示。 图 产生5.0V电路图输入为直流电压为6.5V-12V输出为5.0V2)产生3.3V电路。如图所示。 图 产生3.3V电路图输入为图的输出5.0V输出为3.3V其中D2为电源指示灯2.信号调理电路本调理电路有两部分组成:产生

2、恒流源和放大信号。C5为滤波电容,用来稳定输入的工作电压。D3为2.5V稳压管,U3为低功耗运放,其工作电压为3.3V,其输入端3.4两端的电压相等为0.8V。R4为千分之五的精密电阻,由于 R4两端的电压为恒压,故流出R4的电流为恒流。Q1为PNP三极管,其e极和c极的电流相等。这样P5的输入为一恒流,其中P5为Pt100,以三线制方式接入电路中. C9为Pt100两端的滤波电容,有助于输出的稳定。第二个运放所组成的电路起信号放大作用,其放大倍数为3的负反馈。C6为滤波电容,对电路的稳定性起到关键作用。如图所示。图 信号调理电路3.发光二极管电路用于指示时间间隔的快慢。如图所示。图 发光二极

3、管电路图4.按键电路。如图所示。 此电路用来设置时间间隔的快慢5.显示电路。如图所示。图 液晶显示连接图 各管脚说明:VSS 电源地VDD 电源正(3.0V-5.5V)Vo 对比度(亮度)调整CS 模组片选端(高电平有效)SID 串行数据输入端CLK 串行同步时钟PSB L:串口方式A 背光源电压+5VK 背光源负端0V本作品选用12864液晶显示器进行显示, 12864液晶显示器是一种具有 4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 内置 8192 个 16*16 点汉字,和128个16*8点 A

4、SCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 84 行 1616 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。系统组成原理图本系统由5大部分组成:电源,信号调理,显示,指示灯,按键,母板。本电路系统的关键是产生3.3V的电路。用它作为一恒压源,其电压的稳定性决定实验结果的准确性。信号调理部分中D3是一稳压二极管,其性能指标对实验采样电压的准确性起着关键性的作用。温度传感器

5、是通过一个三线端口以三线制接入电路的。显示部分的滑动变阻器是用来调节液晶的显示亮度的,这功能在12864液晶模块上已具备,但不便于调节。指示灯和按键部分的电路在本实验中不是必需的,只是为了以后拓展性实验的需要。程序总体流程图 本作品通过对输入的电压模拟量进行A/D采样,再对采样值进行软件滤波即累加求平均。然后根据Pt100温度和阻值的关系算出结果并对照Pt100分度表进行修正。最后将结果进行显示,其显示的时间间隔可由定时器确定,其时间间隔可通过按键调整。1)在系统运行以后要关闭看门狗,以免造成造成系统复位。然后配置合适的时钟,配置IO口的输入输出以及中断方式、TA模块的计数方式、时钟选择等。最

6、后要对LCD进行初始化,否则无法进行正常显示。系统初始化程序流程图如图所示。关闭看门狗配置时钟配置IO口配置TA模块LCD初始化AD初始化处理器上电初始化完毕系统初始化程序流程图 2)当MSP430ADC模块启动后,ADC开始采样并转换出数字信号,每次转换完毕后触发一次ADC中断,进入中断后关闭AD中断,然后将转换的数据累加再进入主循环并开启AD中断,这样一次次循环。当累加次数到达指定次数时再求平均。最后对结果进行计算处理并送至送入显示缓存,清空平均值,清除中断标志位,退出中断,等待下一次中断。AD中断程序流程图如图所示。进入AD中断 10位AD结果转存至缓存清除标志位中断返回AD中断程序流程

7、图当计数器计时满时(设计为1000即为2ms),进入定时器中断服务子程序。TA中断程序流程图如图所示。进入TA溢出中断显示结果,发光二极管工作中断返回图 TA中断程序流程图4)进入中断先延时判断是否是毛刺,若是毛刺则直接返回;若不是毛刺对number变量进行设置。IO中断程序流程图如图所示。NY设置number变量是否是毛刺IO口中断中断返回图IO中断程序流程图第二节 子程序API介绍1.函数介绍1)函数名:void clk_init(void) 输入输出变量:无 功能:时钟配置2)函数名:void IO_init(void) 输入输出变量:无功能:IO口初始化3)函数名:void Confi

8、gTimerA2(void 输入输出变量:无功能:TA模块初始化4)函数名:void lcd_init (void) 输入输出变量:无功能:LCD模块初始化5)函数名:void wr_lcd(uchr func,uchr data) 输入输出变量:uchr func,uchr data功能:写入液晶显示地址或显示内容6)函数名:void Write_Num(int addr,int Num,int point) 输入输出变量:int addr,int Num,int point功能:显示地址addr,显示数字Num,显示数字小数点以后int point位数字主要子程序介绍下面介绍的是AD中断服

9、务程序,这是整个程序的关键程序。其功能是每进入一次中断首先关中断并储存采样值,于此同时采样次数变量加1,然后相继累加,当采样次数等于8是,对累加和求平均,最后对累加值清零并处理平均值。继而进入下一次中断。#pragma vector=ADC10_VECTOR_interrupt void ADC10_ISR (void) ADC10CTL0 &= ENC; / Disable ADC conversion ADC10CTL0 &= ADC10SC; m+; /计数变量加一,记录进入AD中断的次数 AD_Result+=ADC10MEM; /累加每次采样值 if(m=8) /判断采样的次数,若采

10、样次数等于8 ,作下面处理 m=0; ave=AD_Result3; /对累加和求平均 AD_Result=0; DegC=(long int )ave*2300)/264-100;/将平均值进行换算成待显示的温度值 总结与思考本设计完成了对Pt100温度传感器信号进行检测并显示检测结果,显示间隔时间可设定,充分利用了MSP430的TA中断,IO中断,AD等资源。本作品能实时跟踪当前环境温度,但灵敏度不很理想,其测温范围为20-50摄氏度,操作简单,方便实用。附件:(主程序部分)#include #include LCD12864.hint DegC; /待显示的温度值 unsigned in

11、t number=1000; /计数变量long int AD_Result; /Ad的采样值char m=0;int n=0;int i=0;long int ave;char Flag=0;unsigned char const tab= 温度 C ;unsigned char const tab1= 1 2 C 5 6 C 3 4 C 7 8 C ;void ConfigTimerA2(void) CCTL0 = CCIE; / CCR0 interrupt enabled This bit enables the interrupt request of the correspondi

12、ng CCIFG flag. CCR0 = number;/ 时间间隔设置部分 TACTL = TASSEL_2 + MC_2+ID_0; / SMCLK, continuous mode,无分频 void AD_Init(void) ADC10CTL0 |= SREF_1+REFON+ADC10IE;/将AD10基准设置为1.5V 开启AD允许中断 ADC10CTL0 |= ADC10SHT_3+MSC;/打开AD转换,过采样率设置为64个采样周期 ADC10CTL1 |= ADC10SSEL_3+SHS_0;/选择250K的采样时钟,用ADC10SC触发采集 ADC10CTL1 |= CO

13、NSEQ_0+INCH_0;/连续采样模式, ADC10CTL0 |= ADC10ON;void clk_init(void) /配置时钟 BCSCTL1 |= CALBC1_1MHZ; DCOCTL |= CALDCO_1MHZ;/上面两句将内部DCO校准至1MHz/while(IFG1&OFIFG) IFG1 &= OFIFG; delay_ms(100); BCSCTL2 |= SELM_0;/MCLK采用1M的内部DCO BCSCTL2 |= DIVS_0;/SMCLK采用内部的时钟void IO_init(void) P1DIR&=(BIT0+BIT3+BIT4+BIT5); /按键

14、P1.3,p1.4,p1.5 P1IES |=BIT3+BIT4+BIT5; /灯p1.6,P1.7,P2.7 P1IE |=BIT3+BIT4+BIT5; /允许中断 P1SEL &= (BIT1+BIT2); P1DIR |= BIT2+BIT1+BIT6+BIT7; /设置输出方向 P2DIR |=BIT7; P2OUT &=BIT7; P1OUT &=(BIT6+BIT7);void main(void) /主函数部分 WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timer clk_init(); IO_init(); lcd_init(); C

15、onfigTimerA2(); AD_Init(); for(n=0;n500;n+); chn_disp1(tab); _EINT(); while(1) for(i=0;i=8) m=0; ave=AD_Result3; AD_Result=0; DegC=(long int )ave*2300)/264-100; #pragma vector=TIMERA0_VECTOR /主计数器独占一个中断源_interrupt void Timer_A (void) Flag+; switch(Flag) case 1:Write_Num(0 x83,DegC,2); break; case 2:

16、P1OUT|=BIT6; break; case 3: P1OUT&=BIT6;Flag=0; break; #pragma vector= PORT1_VECTOR /IO口中断_interrupt void PORT1_ISR (void) unsigned char PushKey; PushKey=P1IFG&(BIT4+BIT5+BIT3); _delay_cycles(5000); if(P1IN&PushKey=PushKey) P1IFG=0; return; if(PushKey&BIT3) P1OUT=BIT7; number=100+number; if ( number

17、=2000) number=1000; if(PushKey&BIT4) P1OUT&=BIT7; P1IFG=0; 液晶显示部分#include msp430G2231.h#include LCD12864.hunsigned int Disp_Tab8;void wr_lcd(uchr func,uchr data) uchr i,i1,i3,i2,CF; SID_H; for(i=0;i5;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

18、_L; SCK_H; SCK_L;/写0 for(i3=0;i32;i3+) for(i1=0;i14;i1+) CF=data&0 x80; if(CF=0 x80) SID_H; else SID_L; SCK_H; SCK_L; data=data1; for(i2=0;i24;i2+) SID_L; SCK_H; SCK_L; void lcd_init (void) /LCD初始化 wr_lcd (comm,0 x30); /30-基本指令动作 wr_lcd (comm,0 x01); /清屏,地址指针指向00H delay_ms(100); wr_lcd (comm,0 x06); /光标的移动

温馨提示

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

评论

0/150

提交评论