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