欢迎来到天天文库
浏览记录
ID:30903864
大小:90.17 KB
页数:11页
时间:2019-01-04
《【精品】430实习报告-常亚》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、{华东)CHINAUNIVERSITYOFPETROLEUM2010—2011学年第二学期MSP430单片机实习报告专业班级测控07-2班姓名常亚学号07054205一、实习任务以设计智能仪表为设计目的开展本次课程设计,要求先熟悉开发系统;学习MSP430F5438单片机的工作基本原理、各模块工作原理;熟悉C51编程;针对开发电路板上的资源对各个试验进一步学习验证;根据设计内容要求进行任务设计开发。要求实际任务能达到运行的目的。设计内容在熟悉MSP430F5438单片机工作原理及内部各模块工作原理的基础上进行“芯片温度及工作电压智能监测仪表“开发,对该仪表
2、的几点要求:采用ADC模块的内部采集通道采集芯片温度及工作电压,要求采用适当的数字滤波器进行采样数据处理,数据刷新显示周期应为2秒;采样结果转换成实际的工程参数,应按工程单位在LCD显示屏上显示,包括单位显示,要求把芯片温度和工作电压分页显示,采用按键切换或选择显示画面,应尽量做到操作清晰、界面美观;串口调试软件应该可以发送相应指令实现LCD显示内容的切换和相应数据上传,实际的芯片温度、工作电压应能通过UART接口上送至计算机相应的串口调试软件中。二、课程设计程序#include#include#include3、0x54x.h>#inc1ude"1cdoperate.h〃voidInitClk(void);voidsysteminit(void);voidTAinit(void);voidADinit();voidhalUsbTnit();voidUARTsend(void);uchar*TransDataToDisp(uchar*strptr,floatdata,uchard);〃全局变量的定义/****************************************************************fl()dtVtef二2.5;//定义参4、考电压的值’unsignedintresult1[32],result2[32];//转换值存取变量staticucharflag_set=0,Flag_time=O;staticuinta=0;uintnum=0,k=0;floatvotage,Vtemp,T;uchartmp_bufl[10]={0};//存放字符转化后的结果电压uchartmp_buf2[10]={0};〃温度#defineSTREXD' ,**函数名称:mainOvoidmain()!systeminit();//系统初始化initLCDM();TA_init();AD_init5、();halUsbInit();ClearRAM(O,0,128,8);//清屏EINT();while(l){LPMO;Trans_Data_To_Disp(tmp_buf1,votage,2);TransDataToDisp(tmpbuf2,T,2);if(flag_set==l)//电压页{Display_String(l,2,电压:“);Display_String(ll,2,"V");if(Flag_time~l){Flagtime=0;DisplayString(7,2,tmpbufl);}}else{Display_String(l,2,"温6、度:");Display_String(11,2,"C");if(Flagtime=l){Flagtime=0;DisplayString(6,2,tmpbuf2);}tf♦卜吟、♦卜*T**7、*打J*T*打j*7*"卜吟、"卜*T**v*打j*T*"卜*T*"卜*T*"卜*T*"卜^Tw^r**T^^r*^T%^7%吓・^7**T^xT^**功能:Timer_A定时器中断服务程序^pragmavector=TIMER1_A1_VECTORinterruptvoidTA(void){uintSum_votage=0,Sum_Temp=0;TA1CTL&二"8、TATFG;//清中断标志位for(k二0;k〈16;k++)//连续进行16次转换,提高精度滤波{ADinit();SumTemp+=result1[k];//求和Sum_votage+=result2[k];num++;if(num~16){num=0;}}Sum_Temp»=4;//右移4位,相当于除以16.得到平均的结果;Sumvotage>>=4;votage=(2^Vref*Sum_votage)/4095;//完成转换,得到电压值Vtemp=(Vref*Sum_Temp)/4095;//得到温度相应的电压值T=(Vtemp-0.986)/0.9、00335;〃测出温度if(++a>1)//2s刷新一次数据{a=
3、0x54x.h>#inc1ude"1cdoperate.h〃voidInitClk(void);voidsysteminit(void);voidTAinit(void);voidADinit();voidhalUsbTnit();voidUARTsend(void);uchar*TransDataToDisp(uchar*strptr,floatdata,uchard);〃全局变量的定义/****************************************************************fl()dtVtef二2.5;//定义参
4、考电压的值’unsignedintresult1[32],result2[32];//转换值存取变量staticucharflag_set=0,Flag_time=O;staticuinta=0;uintnum=0,k=0;floatvotage,Vtemp,T;uchartmp_bufl[10]={0};//存放字符转化后的结果电压uchartmp_buf2[10]={0};〃温度#defineSTREXD' ,**函数名称:mainOvoidmain()!systeminit();//系统初始化initLCDM();TA_init();AD_init
5、();halUsbInit();ClearRAM(O,0,128,8);//清屏EINT();while(l){LPMO;Trans_Data_To_Disp(tmp_buf1,votage,2);TransDataToDisp(tmpbuf2,T,2);if(flag_set==l)//电压页{Display_String(l,2,电压:“);Display_String(ll,2,"V");if(Flag_time~l){Flagtime=0;DisplayString(7,2,tmpbufl);}}else{Display_String(l,2,"温
6、度:");Display_String(11,2,"C");if(Flagtime=l){Flagtime=0;DisplayString(6,2,tmpbuf2);}tf♦卜吟、♦卜*T**
7、*打J*T*打j*7*"卜吟、"卜*T**v*打j*T*"卜*T*"卜*T*"卜*T*"卜^Tw^r**T^^r*^T%^7%吓・^7**T^xT^**功能:Timer_A定时器中断服务程序^pragmavector=TIMER1_A1_VECTORinterruptvoidTA(void){uintSum_votage=0,Sum_Temp=0;TA1CTL&二"
8、TATFG;//清中断标志位for(k二0;k〈16;k++)//连续进行16次转换,提高精度滤波{ADinit();SumTemp+=result1[k];//求和Sum_votage+=result2[k];num++;if(num~16){num=0;}}Sum_Temp»=4;//右移4位,相当于除以16.得到平均的结果;Sumvotage>>=4;votage=(2^Vref*Sum_votage)/4095;//完成转换,得到电压值Vtemp=(Vref*Sum_Temp)/4095;//得到温度相应的电压值T=(Vtemp-0.986)/0.
9、00335;〃测出温度if(++a>1)//2s刷新一次数据{a=
此文档下载收益归作者所有