ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:187.94KB ,
资源ID:5734737      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5734737.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(传感器原理课程设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

传感器原理课程设计报告.docx

1、传感器原理课程设计报告郑州轻工业学院课程设计报告书课题名称 多点温度监测仪姓 名 *学 号 54*院、系、部 计算机与通信工程学院专 业 物联网工程*班指导教师*2*年 * 月 *日 郑州轻工业学院课 程 设 计 任 务 书题目 多点温度监测仪 专业、班级 物联网工程*班 学号54*姓名 * 主要内容、基本要求、主要参考文献等:1、主要内容(1)掌握传感器采集数据处理的方法。(2) 学习LCD的显示原理和控制办法,了解汉仪器仪表系统的软件组织方式,操作界面切换的原理,。(3) 完成多点温度监测仪程序设计,多点温度数值显示,报警提示。2、基本要求(1) 编写图形界面显示函数,在LCD上显示仪表各

2、操作界面。(2) 编写警报设定函数,对各路信号进行警报设定。(3) 菜单程序设计,实现菜单的选择操作。3、主要参考文献【1】吴建平. 传感器原理及应用. 成都.电子工业出版社,2010【2】田泽. 嵌入式系统开发与应用实验教程. 北京航空航天大学出版社,2004【3】周立功. ARM微控制器基础与实战M. 北京航天航空大学出版社,2003完 成 期 限: 指导教师签名: * * * 课程负责人签名: * * * 目 录一、 设计目的二、 设计思路三、 设计过程四、 程序及其显示五、 设计体会与建议多点温度监测仪一、 设计目的1 巩固传感器信号采集与处理方法。2 巩固并进一步加强仪器仪表系统的理

3、解与应用。3 综合运用C及汇编编程知识(基础知识及高级应用)4 掌握开发仪器仪表系统的开发方法二、设计思路三、设计过程1、按照设计要求,分别编写五个函数,每个函数就是一个界面,五个函数及界面分别如下所示:(1)、第一个界面如图-01所示, (2)、第二个界面如图-02所示,函数名为MainTask( ) 函数名为MainInterface( ) 图-01 图-02(3)、第三个界面如图-03所示, (4)、第四个界面如图-04所示,函数名为switchover( )。 函数名为setting( )。图-03 图-04(5)、第五个界面如图-05所示,函数名为 name( )。 图-052、编写

4、温度函数,具体办法就是用随机函数生成随机数,然后把随机数放到一个数组里面,并让数组里面的值不断向前平移,再对数组里面的值求均值,把均值放到另外一个数组里面,记录下来,作为函数的返回值。编写设置函数,调用编辑框控件,把编辑框中值赋值给变量,当做设定值。3、把五个函数封装好,放到一个工程里面,先执行第一个函数,然后进入主页面,并不断捕获鼠标状态,按照设计要求进行调转。当进入其它页面时,也不断捕获鼠标状态,按照设计要求进行调转。四、 程序及其显示(1)、第一个页面设计的代码如下所示:void MainTask(void) GUI_Init(); GUI_SetColor(GUI_WHITE);/设置

5、前景色为白色,背景色为蓝色 GUI_SetBkColor(GUI_BLUE); GUI_Clear(); /把两个存储随机数的数组初进行赋值 for(i=0;i200;i+) datai=(rand()%6000)*0.01; for(i=0;i10;i+) sum=0; for(k=0;k199;k+) datak=datak+1; data199=(rand()%6000)*0.01; for(k=0;k200;k+) sum+=datak; numi=sum/200; /在屏幕上显示多点温度监测仪和Loading GUI_SetFont(&GUI_FontHZ24); GUI_DispS

6、tringHCenterAt(多点温度监测仪, 160, 90); GUI_DispStringHCenterAt(Loading, 140, 140); GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_BLUE); /显示Loading后的小圆点for(i=0;i10;i+) GUI_FillCircle(150+10*i, 157,5-0.2*i); GUI_Delay(250); GUI_Clear();/清空窗口 while(1) MainInterface();/进入主界面 显示效果和设计效果一致。(2)第二个界面设计的代码如下所示:void

7、MainInterface(void) GUI_PID_STATE TouchState; GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_BLUE); GUI_Clear(); GUI_SetFont(&GUI_FontHZ24); /画三个矩形框里面分别是设置,切换,姓名。 for(i=0;i3;i+) GUI_DrawRect(15+100*i,195,105+100*i,230); GUI_DispStringHCenterAt(设置, 60, 200); GUI_DispStringHCenterAt(切换, 160, 200); GUI_Di

8、spStringHCenterAt(姓名, 260, 200); /在主界面画出4个小矩形,4个大矩形和4个C。 for(i=0;i=c1)/如果节点1的温度大于设定值则显示红色小圆 GUI_SetColor(GUI_RED); GUI_SetBkColor(GUI_WHITE); GUI_FillCircle(280, 30,15); else /如果节点1的温度不大于设定值则显示绿色小圆 GUI_SetColor(GUI_GREEN); GUI_SetBkColor(GUI_WHITE); GUI_FillCircle(280, 30,15); GUI_Delay(20);/延迟0.02秒

9、 else /flag1!=1表示Ch1节点开关为关,如果开关为关,则显示灰色小圆。 GUI_SetColor(GUI_GRAY); GUI_SetBkColor(GUI_BLUE); GUI_FillCircle(280, 30,15); if(flag2=1) /flag2=1表示Ch2节点开关为开,如果开关为开,则显示温度。 t2=temperature(60); GUI_SetColor(GUI_GRAY); GUI_SetBkColor(GUI_WHITE); GUI_GotoXY(110,65); GUI_DispFloatFix(t2, 6,3); if(t2=c2) /如果节点

10、2的温度大于设定值则显示红色小圆 GUI_SetColor(GUI_RED); GUI_SetBkColor(GUI_WHITE); GUI_FillCircle(280, 75,15); else /如果节点2的温度不大于设定值则显示绿色小圆 GUI_SetColor(GUI_GREEN); GUI_SetBkColor(GUI_WHITE); GUI_FillCircle(280, 75,15); GUI_Delay(20); else /flag2!=1表示Ch2节点开关为关,如果开关为关,则显示灰色小圆。 GUI_SetColor(GUI_GRAY); GUI_SetBkColor(G

11、UI_BLUE); GUI_FillCircle(280, 75,15); if(flag3=1) /flag3=1表示Ch3节点开关为开,如果开关为开,则显示温度。 t3=temperature(120); GUI_SetColor(GUI_GRAY); GUI_SetBkColor(GUI_WHITE); GUI_GotoXY(110,110); GUI_DispFloatFix(t3, 6,3); if(t3=c3) /如果节点3的温度大于设定值则显示红色小圆 GUI_SetColor(GUI_RED); GUI_SetBkColor(GUI_WHITE); GUI_FillCircle

12、(280, 120,15); else /如果节点3的温度不大于设定值则显示绿色小圆 GUI_SetColor(GUI_GREEN); GUI_SetBkColor(GUI_WHITE); GUI_FillCircle(280, 120,15); GUI_Delay(20); else /flag3!=1表示Ch3节点开关为关,如果开关为关,则显示灰色小圆。 GUI_SetColor(GUI_GRAY); GUI_SetBkColor(GUI_BLUE); GUI_FillCircle(280, 120,15); if(flag4=1) /flag4=1表示Ch4节点开关为开,如果开关为开,则

13、显示温度。 t4=temperature(180); GUI_SetColor(GUI_GRAY); GUI_SetBkColor(GUI_WHITE); GUI_GotoXY(110,155); GUI_DispFloatFix(t4, 6,3); if(t4=c4) /如果节点4的温度大于设定值则显示红色小圆 GUI_SetColor(GUI_RED); GUI_SetBkColor(GUI_WHITE); GUI_FillCircle(280, 165,15); else /如果节点4的温度不大于设定值则显示绿色小圆 GUI_SetColor(GUI_GREEN); GUI_SetBkC

14、olor(GUI_WHITE); GUI_FillCircle(280, 165,15); GUI_Delay(20); else /flag4!=1表示Ch1节点开关为关,如果开关为关,则显示灰色小圆。 GUI_SetColor(GUI_GRAY); GUI_SetBkColor(GUI_BLUE); GUI_FillCircle(280, 165,15); /捕获鼠标状态 if(GUI_TOUCH_GetState(&TouchState) if(TouchState.x15)&(TouchState.x195)&(TouchState.y115)&(TouchState.x195)&(T

15、ouchState.y215)&(TouchState.x195)&(TouchState.y230)/姓名 GUI_SetBkColor(GUI_WHITE);/ while (GUI_TOUCH_GetState(&TouchState);name();/如果点击姓名按钮,则执行name()函数 初始状态开关全部为开,进入界面后,和设计效果一样,当关闭其中几个节点后,例如:节点1和节点3关闭后,显示效果如图-06所示,可见数字显示没有了,显示状态的小圆点变为灰色,而其它节点显示没有变化。图-06(3)第三个界面设计代码如下:void switchover(void) GUI_PID_STA

16、TE TouchState; GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_BLUE); GUI_Clear(); GUI_SetFont(&GUI_FontHZ24); /显示三个矩形框当按钮 for(i=0;i3;i+) GUI_DrawRect(15+100*i,195,105+100*i,230); /显示 设置,切换,姓名三个词在三个矩形框中 GUI_DispStringHCenterAt(设置, 60, 200); GUI_DispStringHCenterAt(切换, 160, 200); GUI_DispStringHCenterAt(

17、姓名, 260, 200); GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_BLUE); LCD_L0_FillRect(30, 20, 290, 170); GUI_SetColor(GUI_BLACK); GUI_SetBkColor(GUI_WHITE); /显示传感器节点编号 GUI_DispDecAt( 1, 50,30,1); GUI_DispDecAt( 2, 210,60,1); GUI_DispDecAt( 3, 50,110,1); GUI_DispDecAt( 4, 170,120,1); while (1) /显示节点的状态 i

18、nt r; for(r=0;r=c1) GUI_FillCircle(80, 60,10); if(r=1)&(t2=c2) GUI_FillCircle(250, 75,10); if(r=2)&(t3=c3) GUI_FillCircle(80, 120,10); if(r=3)&(t4=c4) GUI_FillCircle(200, 140,10); /如果温度小于设定值,则显示绿色小圆 GUI_SetColor(GUI_GREEN); GUI_SetBkColor(GUI_WHITE); if(r=0)&(t1c1) GUI_FillCircle(80, 60,10); if(r=1)

19、&(t2c2) GUI_FillCircle(250, 75,10); if(r=2)&(t3c3) GUI_FillCircle(80, 120,10); if(r=3)&(t415)&(TouchState.x195)&(TouchState.y115)&(TouchState.x195)&(TouchState.y215)&(TouchState.x195)&(TouchState.y230)/姓名 GUI_SetBkColor(GUI_WHITE); while (GUI_TOUCH_GetState(&TouchState);name();/如果点击姓名按钮,则进入name()界面

20、/设置温度输入框void Edit(void) GUI_PID_STATE TouchState; int Key; EDIT_Handle hEdit; float aBuffer10; GUI_SetFont(&GUI_Font8x16); for(i=0;i90)&(TouchState.x15+45*i)&(TouchState.y45+45*i) hEdit = EDIT_Create(90,15+45*i,90,30, , sizeof (aBuffer),0);/在相应位置创建编辑框 EDIT_SetTextColor(hEdit, 0, GUI_RED); /设置编辑框文本为红色 do Key = GUI_WaitKey(); /捕获键盘的输入 while(Key != GUI_ID_ESCAPE) &(Key != GU

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1