您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 温度的采集与显示资料
课程设计报告课程名称综合电子设计题目温度的采集与显示______________________指导教师设计起止日期2015年4月-5月系别自动化专业自控学生姓名班级/学号成绩___________________题目1摘要本系统由单片机控制模块MSP430f5529,AY-SEBKit模块组成,运用模块MSP430f5529的温度传感器与AY-SEBKit模块的显示屏,通过编程实现对温度的采集与显示,并且超过一个预定值可以闪红灯报警。一、功能介绍1.单片机控制模块MSP430f5529中的温度传感器采集当前温度2.AY-SEBKit中的LED驱动模块显示采集的摄氏温度3.AY-SEBKit中的LED驱动模块显示采集的华氏温度,华氏温度由公式计算出4.AY-SEBKit中的LED驱动模块显示制作者姓名拼音5.超过设定报警温度可以闪烁单片机上的红灯报警二、方案论证与比较对采集来的温度进行显示的方法有两种:方案一用1602显示屏显示。1602采用并口传输,速度较快。内部集成有显示芯片,可以识别英文字母、阿拉伯数字和日语片假名。1602总共有两行每行十格,可以符合本次显示要求。价格带背光的蓝底白字12元一块,不带光和绿光黑字会便宜一些。方案二用老师提供的口袋电子系统实验套件AY-SEBKit中的LED显示模块显示。LED采用恒流驱动,BUCK斩波电路反馈端的不同接法可以实现恒压输出或恒流输出。FB所接位置不同,输出情况不同。TPS62260内部Vref为0.6V,所以无论何种接法,反馈的最终效果都是VFB=Vref=0.6V。实验平台采用集成BUCK斩波芯片TPS62260的恒流输出来实现LED驱动。比较:方案二中的模块显示效果更好,但是由于老师提供的数量有限不能满足每位同学都能用到。而方案一的1602显示屏更容易获得,但显示效果欠佳。题目2三、系统设计整个系统可以分为三个部分:温度采集、LCD液晶显示、LED报警灯。系统总体的设计图如下:温度采集MSP430F5529内置温度传感器,经过A/D模块采样,量化,将得到的数据送到MSP430F5529控制器处理。经过一定的算法,得到温度的正常值。12864LCD液晶显示该部分主要是通过程序控制,按照12864LCD液晶模块的时序,将要显示的字符数据送到12864LCD中,经过驱动程序处理,可以使字符显示出来。LED报警灯该部分结果最为简单,直接使用MSP430F5529单片机的P1.0口控制的LED灯。若温度超上限,则灯亮报警,否则灯灭,不报警。MSP430单片机A/D温度传感器LED报警灯LCD液晶显示题目3四、单元电路设计12864LCD液晶显示部分电路RST为复位端,与P36引脚相连;SDA为片选端,与P12引脚相连;SCLK为数据/命令选择端,与P40引脚相连;A0为时钟信号端,与P37相连;CS为数据端,与P82引脚相连。五、软件设计题目412864LCD液晶显示时序图(串口模式)SPI是串行外设接口,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。其中SDO为主设备数据输入,从设备数据输出端口;SDI为主设备数据输出,从设备数据输入端口;SCLK为时钟信号端口,由主设备产生;CS为从设备使能信号,由主设备控制。CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时,对此芯片的操作才有效。通讯是通过数据交换完成的,数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过SDO线,数据在时钟上升沿时改变,在紧接着的下降沿被读取,完成一位数据传输。这样,在至少8次时钟信号的改变,就可以完成8位数据的传输。此外它的传输是一位一位的,但不同于普通的串行通信(一次连续传输至少8位),SPI是允许中断的。控制流程图初始化数字转字符判忙写命令、数据得到数据题目5首先进行初始化,通过A/D转换采集到温度传感器的温度,经过一定算法之后可以得到温度值,但是此时的是一个数值型的值,需要将其转换成字符。接下来判忙,等空闲时传递命令和数据,最后在显示屏上显示。表1.清单六、结束语基本功能(1)通过单片机内部的温度传感器获得当前温度;(2)显示所获温度(3)可以预设标准温度;(4)如果温度大于预设值或小于预设值,用LED通知。能通过串口与上位机通信,传输并显示当前温度。七、附录附录中主要包含有主要元器件清单,程序清单(要求有中文注释),印制板图和系统使用说明1.印制板图PC机一台CCSEdit软件单片机MSP430f5529一片AY-SEBKit开发板一片题目6如图所示,显示板第一行显示Celsius29.85,表示当前摄氏温度为29.85度;第二行显示姓名拼音,第三行显示Fahrenheit85.7,表示当前华氏温度为85.7。而当摄氏温度超过30度时,红色LED灯会闪烁。2.程序清单:#includedriverlib.h#includeDAC.h#includeTemplate_Driver.h#includegrlib.h#includeadc12_a.h#includetimer_a.h#defineCALADC12_15V_30C*((unsignedint*)0x1A1A)//TemperatureSensorCalibration-30C//SeedevicedatasheetforTLV题目7tablememorymapping#defineCALADC12_15V_85C*((unsignedint*)0x1A1C)//TemperatureSensorCalibration-85Cunsignedinttemp;volatilefloattemperatureDegC;volatilefloattemperatureDegF;#defineMAX_DAC_DIV8(40963)tContextg_sContext;externuint16_tADC12_SingleSample(void);externvoidGrStringNumberCentered(consttContext*pContext,int16_tNumber,uint8_tui8Dot,uint8_tui8X,uint8_tui8Y);unsignedintdCnt[4];voidmain(void){WDTCTL=WDTPW|WDTHOLD;REFCTL0&=~REFMSTR;//ResetREFMSTRtohandovercontrolto//ADC12_ArefcontrolregistersADC12CTL0=ADC12SHT0_8+ADC12REFON+ADC12ON;//Internalref=1.5VADC12CTL1=ADC12SHP;//enablesampletimerADC12MCTL0=ADC12SREF_1+ADC12INCH_10;//ADCi/pchA10=tempsensei/pADC12IE=0x001;//ADC_IFGuponconvresult-ADCMEMO__delay_cycles(100);//delaytoallowReftosettleADC12CTL0|=ADC12ENC;P2DIR|=BIT0;//关闭白光LED灯P2OUT|=BIT0;P3DIR|=BIT4;//打开背光LEDP3OUT|=BIT4;P3OUT&=~BIT4;Template_DriverInit();GrContextInit(&g_sContext,&g_sTemplate_Driver);GrContextForegroundSet(&g_sContext,ClrWhite);GrContextBackgroundSet(&g_sContext,ClrBlack);题目8GrContextFontSet(&g_sContext,&g_sFontCm16b);GrClearDisplay(&g_sContext);GrStringDraw(&g_sContext,Celsius,AUTO_STRING_LENGTH,0,0,OPAQUE_TEXT);GrStringDraw(&g_sContext,Fanmengran,AUTO_STRING_LENGTH,0,20,OPAQUE_TEXT);GrStringDraw(&g_sContext,Fahrenheit,AUTO_STRING_LENGTH,0,40,OPAQUE_TEXT);GrFlush(&g_sContext);_EINT();P1DIR|=BIT0;P1OUT&=~BIT0;while(1){ADC12CTL0&=~ADC12SC;ADC12CTL0|=ADC12SC;//Samplingandconversionstart__bis_SR_register(LPM4_bits+GIE);//LPM0withinterruptsenabled__no_operation();temperatureDegC=(float)(((long)temp-CALADC12_15V_30C)*(85-30))/(CALADC12_15V_85C-CALADC12_15V_30C)+30.0f;//TemperatureinFahrenheitTf=(9/5)*Tc+32temperatureDegF=temperatureDegC*9.0f/5.0f+32.0f;GrStringNumberCentered(&g_sContext,temperatureDegC*100,2,80,5);GrStringNumberCentered(&g_sContext,temperatureDegF*10,1,100,45);GrFlush(&g_sContext);__no_operation();//SETBREAKPOINTHEREif(temperatureDegC30)P1OUT|=BIT0;elseP1OUT&=~BIT0;}}#pragmavector=ADC12_VECTOR;__interruptvoidADC12ISR(void){题目9switch(__even_in_range(ADC12IV,34)){case0:break;//Vector0:Nointerruptcase2:break;//Vector2:ADCoverflowcase4:break;//Vector4:ADCtimingoverflowcase6://Vector6:ADC12IFG0temp=ADC12MEM0;//Moveresults,IFGiscleared__bic_SR_register_on_exit(LPM4_bits);//ExitactiveCPUbreak;case8:break;//Vector8:ADC12IFG1case10:break;//Vector10:ADC12IFG2case12:break;//Vector12:ADC12IFG3case14:break;//Vector14:ADC12IFG4case16:break;//Vector16:ADC12IFG5case18:break;//Vector18:ADC12IFG6case20:break;//Vector20:ADC12IFG7case22:break;//Vector22:ADC12IFG8case24:break;//Vector24:ADC12IFG9case26:break;//Vector26:ADC12IFG10case28:break;//Vector28:ADC12IFG11case30:break;//Vector30:ADC12IFG12case32:break;//Vector32:ADC12IFG13case34:break;//
本文标题:温度的采集与显示资料
链接地址:https://www.777doc.com/doc-4872522 .html