《基于uCOS-II的数据采集系统设计》由会员分享,可在线阅读,更多相关《基于uCOS-II的数据采集系统设计(27页珍藏版)》请在金锄头文库上搜索。
1、嵌入式驱动程序设计嵌入式驱动程序设计实验报告实验报告基于基于 uC/OS-IIuC/OS-II 的数据采集系统设计的数据采集系统设计班班 级:级:_计应计应 092_092_姓姓 名:名:_朱艾丽朱艾丽_学学 号:号:_ _0908143229_0908143229_常州信息职业技术学院常州信息职业技术学院2一、实验目的一、实验目的1、掌握图形液晶的绘点函数的使用。2、掌握 C/GUI 的编程方法。3、掌握基于 C/GUI 的图片加载、文字显示、菜单显示、按键操作等常用功能的编程实现方法。4、通过串口接收波形数据,并在液晶屏上进行动态波形绘制。二、实验设备二、实验设备1、硬件PC 机一台Mag
2、icARM2410 教学实验开发平台一台2、软件WindowsXP/2000 系统,ADS1.2 集成开发环境,串口调试助手 2.2。三、实验内容三、实验内容系统启动,先显示一个图片,并在图片上方打印一句话“欢迎使用 XX 系统”,在图片的下方显示一个进度条,进度条逐渐填充满,同时进度条下面一个字符串“Loading”不停闪烁,示意图如下:欢迎使用欢迎使用 XX 系统系统Loading3等进度条填充满了之后,图片上方的文字、图片、图片下方的进度条、文字都消失,显示以下系统主画面:选择“曲线” ,并回车,则显示以下波形:XX 系统系统正在运行中正在运行中2010-12-148:20:58温度压力
3、65.210.2曲线帮助XX 系统系统正在运行中正在运行中2010-12-148:20:58返回温度压力4波形根据串口接收到的数据进行动态更新。四、设计思路(不少于四、设计思路(不少于 20002000 字)字)一,界面一,界面 1 11 1 图片显示先找寻一张合适的图片,图片不宜过大,且图片要是.bmp格式,不是的要 进行转换。安装好Image2Lcd软件,在Image2Lcd界面中打开选择的图片将图片 转换为一个数组,选项要为16位真彩色或是单色。得到图片数组放入 lcddriver-resource-bliss.c里,在主函数中加入extern声明下。利用 GUI_DispPic()函数
4、,让图片显示出来,再依据显示位置,算出其显示坐标。 在主程序中添加显示图片的程序,也可以设置图片的高度和宽度,使之能显示 合适大小的图片。 。当程序运行时,在液晶屏上正中央会显示你所选择的图片。2 2 文字显示附件:附件: 字模软件概括字模软件概括uC/ GU I 中字体的显示是通过查找字模的方式实现的 。字体库中的每一 个字母都有其对应的字模,所有的字母的字模由 GU I_ FON T 和 GU I_ FON T_ PRO P 这两个结构体来进行统一管理 。GU I_ FON T 结构体中定义了该字 母的点阵大小 (比如 1616 或者 8 8) 和GU I_ FON _PROP 结构体 的
5、入口地址 。GU I_ FON T_ PRO P 这个结构体建立了字库中字母编码 (比如 字母 A 在 ASCII 中的字母编码为 33) 和字模数据存放地址的映像 。 在工程中出于节省程序存储空间的需要 , GB231280 (国标字符集也就是常5说的国标码) 中的 3755 个一级常用汉字足以满足实际需求 。如果通过单字手 工取模的方式 ,工作量是不可想象的 ,所幸有了电脑 ,又有了汉字库 ,可以编 程解决 。 汉字在程序中的实现汉字在程序中的实现在界面中上方显示“欢迎使用XX系统” ,利用字模软件把“欢迎使用XX系统” 根据字模选项以32*32、C51格式、顺向、逐行式、阳码的格式生成字
6、模。界面 长640,宽480,根据欢迎使用XX系统显示位置,算出坐标,汉字一个一个输出。 利用GUI_PutHZ(x, y, *dat, hno, lno)函数,其中x、y表示显示位置,dat表 示要输出显示的汉字点阵数据,hno表示要显示此行的点个数,lno表示要显示 此列的点个数。同时注意一下前景、背景色的设置,用GUI_SetColor() ;如: GUI_SetColor(BLUE, YELLOW)。 进度条进度条首先在显示进度条的地方,算出其坐标,利用GUI_Rectangle(x0, y0, x1, y1, color)函数,画出一个矩形,其中x0、y0表示矩形左上角的坐标,x1、
7、y1 表示矩形右下角的坐标,color表示矩形边框显示颜色。然后再填充矩形,利用 GUI_RectangleFill()函数,让进度条能够动起来。 LoadingLoading显示显示我们利用矩形右下角横坐标的循环程序,使其从矩形的左边到右边的填充, 进度条的填充速度的快慢,可以根据时间函数OSTimeDlyHMSM()调整。在进度 条的下方需显示“Loading” ,根据字模软件,将这些字母的字模,根据 8*16的格式生成字模。 把属于“Loading”字符的程序添加到程序中,试 着运行,若正确,则会在进度条下面出现“Loading” ,并在程序运行过程中 不停闪烁 。 二,界面二,界面 2
8、 2等进度条填充满了之后,图片上方的文字、图片、图片下方的进度条、文字都消失,显示第二个系统主画面。6 黄色外边框黄色外边框第二个界面面首先会出现一个黄色的外边框,首先沿界面边沿画一个大方 框,以函数GUI_Rectangle()显示一个大矩形,在界面上方显示以矩形长度为长, 宽度为矩形宽的1/4的矩形,填充颜色为黄色,根据GUI_RectangleFill()函 数为其填充颜色。在黄色矩形中显示“XX系统 正在运行中”和时间显示。根据 字模软件,以32*32、C51格式、顺向、逐行式、阳码的格式生成字模。 黄色边框里的文字黄色边框里的文字“XX“XX 系统正在运行中系统正在运行中”在黄色边框
9、中的左上方显示“XX 系统正在运行中” ,利用字模软件把“XX 系统正在运行中”根据字模选项以 32*32、C51 格式、顺向、逐行式、阳码的格 式生成字模。界面长 640,宽 480,根据欢迎使用 XX 系统显示位置,算出坐标, 汉字一个一个输出。利用 GUI_PutHZ(x, y, *dat, hno, lno)函数,其中 x、y 表示显示位置,dat 表示要输出显示的汉字点阵数据,hno 表示要显示此行的点 个数,lno 表示要显示此列的点个数。 日期年月日显示日期年月日显示这里要专业新新建一个任务,来对时间做处理。本项目中任务为 TimeDispla() 。要实现时间的准备计时,首先要
10、定义秒、分、时处理的变量。 本项目中采用5个变量分别是t、t1、t2、t3、t4,分别表示为秒的个位、十位, 分的个位、十位以及时。然后秒的个位在一定时间内不断加1,当个位为9时这7里要向秒的十位进位,再对十位进行判断,十位为5时,向分的个位进行进位最 后当时为23时全部清0。最后将时间显示出来。 在显示时间的时候要定义一个时间字模0-9的二维数组,然后分别对秒个位、 十位等进行显示,如GUI_PutHZ(554, 80, timet,12, 24)。在时的显示上也 分成两部分,一个是t4/10,t4%10。 温度、压力文字的字体颜色温度、压力文字的字体颜色此字体颜色可在主程序中用 GUI_S
11、etColor 来生成,如白字蓝底:GUI_SetColor(WHITE, BLUE); 温度、压力文字显示温度、压力文字显示先利用字模软件生成温度、压力的程序代码的文档,将此代码添加到程序 中,并用 GUI_PutHZ 在主程序中显示,此理同上。 温度压力下面的方框温度压力下面的方框用 GUI_Rectangle()来画两个矩形,如两个白色边框蓝底的矩形 GUI_Rectangle(100, 230,210, 290, WHITE);/温度压力下面的方框 GUI_Rectangle(330, 230,440, 290, WHITE); 按钮边框按钮边框这是“曲线“与“帮助“外边的两个边框,利
12、用GUI_Rectangle来作一个外 边框线,即用用GUI_Rectangle()来画两个矩形,如两个白色边框的矩形 GUI_Rectangle(330, 410,440, 470, WHITE);/按钮方框 GUI_Rectangle(440, 410,550, 470, WHITE); 曲线帮助曲线帮助先用字模软件得出曲线帮助两个文字的程序文档,代入程序中,并用 GUI_PutHZ()在程序中来显示汉字,文字显示同上。三,界面三,界面3 38黄色外边框黄色外边框第二个界面面首先会出现一个黄色的外边框,首先沿界面边沿画一个大方 框,以函数 GUI_Rectangle()显示一个大矩形,在界
13、面上方显示以矩形长度为 长,宽度为矩形宽的 1/4 的矩形,填充颜色为黄色,根据 GUI_RectangleFill()函数为其填充颜色。在黄色矩形中显示“XX 系统 正在 运行中”和时间显示。根据字模软件,以 32*32、C51 格式、顺向、逐行式、阳 码的格式生成字模。如 GUI_Rectangle(10, 19,630, 470, WHITE);/外边框线, 并用 GUI_RectangleFill 来填充边框,如黄色边框则是 GUI_RectangleFill(10, 19,630, 130, YELLOW);/黄色 黄色边框里的文字黄色边框里的文字“XX“XX 系统正在运行中系统正在
14、运行中”在黄色边框中的左上方显示“XX 系统正在运行中” ,利用字模软件把“XX 系统正在运行中”根据字模选项以 32*32、C51 格式、顺向、逐行式、阳码的格 式生成字模。界面长 640,宽 480,根据欢迎使用 XX 系统显示位置,算出坐标, 汉字一个一个输出。利用 GUI_PutHZ(x, y, *dat, hno, lno)函数,其中 x、y 表示显示位置,dat 表示要输出显示的汉字点阵数据,hno 表示要显示此行的点 个数,lno 表示要显示此列的点个数。 日期年月日显示日期年月日显示先利用字模软件生成此文字的程序代码的文档,并利用 GUI_PutHZ 来作此 文字代码, 此理同
15、上。9 压力温度返回压力温度返回 在液晶屏右下角会出现三个边框,俱属蓝底白色边框,用 GUI_Rectangle()来 画三个矩形, 三个方框里的文字先用字模软件生成程序代码文档,并用 GUI_PutHZ 在主程序中显示。 键盘扫描任务键盘扫描任务这项任务主要是用左右选择、回车键来实现画面、按钮的切换。通过按键来 选择各个按钮,得用按键之前要先扫描键盘得到相应键的键值,这里利用 ZLG7290_GetKey()和 UART_SendStr()函数,再利用超级终端得出各个键值。在 得出键值后分别对各个按键赋予一定的意义,然后在些基础上实现按键的判断。 再有就是对各个画面、按钮进行编号,便于以后的判断。 判断过程:先定义 int curpic=2;int curbtn=1;int key;,然后对三个左 右选择键、回车键进行判断。在每个键的判断过程中再分别对四个画面进行判 断,在每个画面的判断过程中再对每个按钮进行判断,根据相应的情况把 curpic、 curbtn 的值进行相应的赋值。 画曲线画曲线画曲线任务最基本的模型其实是单个生产者单个消费者任务,并采用同步 信号量的控制。在最基础的模型基础之上再用固定的数值即产生的固定的