嵌入式系统实验

上传人:m**** 文档编号:511636126 上传时间:2023-12-14 格式:DOCX 页数:13 大小:128.19KB
返回 下载 相关 举报
嵌入式系统实验_第1页
第1页 / 共13页
嵌入式系统实验_第2页
第2页 / 共13页
嵌入式系统实验_第3页
第3页 / 共13页
嵌入式系统实验_第4页
第4页 / 共13页
嵌入式系统实验_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《嵌入式系统实验》由会员分享,可在线阅读,更多相关《嵌入式系统实验(13页珍藏版)》请在金锄头文库上搜索。

1、物理与电子工程学院嵌入式系统与应用设计性实验报告题目基于ARM7的多通道仪表数据采集实验系别物理与电子工程学院年级电子科学与技术班级 学号学生姓名指导教师实验时间目录引言2课题要求21. 本课题的目的22. 运行环境3正文3一. 课题分析3二. 系统设计32.1新建工程32.2打开main.c文件,编辑Main_Task任务中的代码32.3编写OnKey()函数,响应键盘消息32.4 编写绘图显示任务 Display_Task42.5编写4路AD 采集任务ADx_Task52.7生成发行版本的.bin文件,通过USB下载到嵌入式开发平台中,运行并检查输出结.5果。5三. 技术实现问题53.1数

2、码管显示及闪烁显示的代码53.2在LCD屏条形图中超出部分闪烁原理63.3条形图顶端显示具体电压值的代码如下:73.4实现条形图闪烁显示及文本框显示相应数值73.5按键实现单通道图形显示8四. 总结与体会11设计性实验报告成绩:指导教师签名:12引言随着工业自动化与信息化的不断发展,数据采集已经成为了计算机与外部物理世界连接的桥梁。数 据采集系统广泛地应用于工业生产中设备工作状况的监测、控制领域中的闭环控制系统及仿真领域的半 实物仿真系统。传统的数据采集装置通常由单片机及采集卡组成,其采集通道数较少、单任务的软件 结构及实时性差等不足之处已无法满足人们的需求。ARM ( Advanced RI

3、SC Machines)是 基于RSIC架构的数据宽为32位可嵌入操作系统的微处理器。由于其体积小、价格低、 可靠性高、低功耗等特点在工业自动化、国防、运输等领域得到了广泛的应用。本次设计是基于ARM的多通道实时数据采集系统;该系统由下位机系统及上位机软件 组成,下位机硬件主要基于ARM工控开发平台、数据采集板及模拟量输出板,采用pC/OS II实时多任务操作系统,实现多通道数据的采集、数据存储及模拟量的输出,并将采集数据 实时传送至上位计算机;上位机软件接收数据进行监控,图形化显示数据变化曲线,并控制下 位机的模拟量输出功能;通过实验验证,下位机系统能够实现多通道数据的采集、存储及模 拟量的

4、输出巾C/OS II操作系统完成多任务的实时调度,上位机软件成功进行模拟量数据的 采集监控及数据变化的图形显示,整个系统具有良好的实时性。课题要求1. 本课题的目的摘要:采用多任务编程方法,每个任务监视一路AD转换,每一路AD的转换结果在液晶屏上用一个 条形图的长短来表示,直观地显示每路模拟输入电压的大小。可以通过文本框给每路人。设置警戒值, 某路输入超出警戒线之后条形图中超出的部分会以闪动的方式显示。在此基础上,利用实验箱中的数码管显示每一路的电压采样值,并能在超出警戒值的情况下闪烁 显示。或在LCD屏上对应条形图的顶部显示具体的电压值。2. 运行环境硬件:ARM嵌入式开发平台、用于ARM7

5、TDMI的JTAG仿真器、PC机Pentium100以上。软件:PC机操作系统Win98、Win2000或WinXP、ARM SDT2.51或ADS1集成开发环境、仿真器驱动 程序、超级终端通讯程序。正文一. 课题分析数据采集系统置于被监控的设备处,通过传感器对设备的电压或者电流信号进行采样、保持,并送 入A/D转换器变成数字信号,然后将该信号送到FIFO中。当FIFO中存放的数据到了一定数目时,由 ARM7从FIFO中读出,然后通过ARM7的以太网接口送给上位机。多路采集通道经过模拟开关后再进 入A/D转换器。CPLD是整个系统的控制核心,它控制采集通道的切换、A/D转换器的启/停、转换后

6、的数据在FIFO中的存放地址发生器、产生中断请求以通知ARM7读取存放在FIFO中的数据等。二. 系统设计2.1新建工程将“Exp23多通道仪表数据采集实验”中的文件加入工程。2.2打开main.c文件,编辑Main_Task任务中的代码用init_ADdevice()函数初始化处理器的AD转换硬件,启动消息循环。2.3编写OnKey()函数,响应键盘消息流程图如图5-4所示。提示:1) 这里设置了两个文本框,用来输入通道编号和该通道的警戒值,在键盘消息响应函数里针对两个文 本框分别作出处理,只处理回车键和取消键,其他键由控件本身处理。程序里用变量EditNumber指示 当前要编辑的文本框控

7、件;用变量input指示该文本框控件是否处于输入编辑状态。以此决定回车键应 该执行的功能。2) 当文本框控件不是编辑状态时,回车将使其进入编辑状态,在程序里用SetWndCtrlFocus()函数将焦 点转移到该控件并用SetTextCtrlEdit()函数设置为编辑状态;当文本框正处于编辑状态时,回车将使其 退出编辑状态,并将要编辑的文本框切换到另一个文本框控件,取消键的处理和这种情况类似。3) 如果当前要编辑的文本框是警戒值输入框,在编辑状态中回车确定后,所输入的通道编号以及警戒值就会保存在数组WarnningData中,代码如下:WarnningData Unicode2Int(pCha

8、nnelTextCtrl-text)=Unicode2Int(pValueTe xtCtrl-text);图5-4流程图2.4编写绘图显示任务Display_Task绘制文本框和条形图等,并实现文本框编辑过程中和超过警戒值后的动画显示。流程图如图5-5所示。 提示:1) 程序中用TextOut()函数显示文本框的提示信息,用数组edit记录两个文本框是否处于编辑状态,用 变量IsEdit指示提示信息是否显示。实际上,IsEdit这个变量在显示任务循环一次就改变一次状态,当 IsEdit= 1时将提示信息擦掉,否则保持显示不变。这就是闪烁显示的原理,表示AD转换结果的条形 图超出警戒值的部分的闪

9、烁也是这样实现的,随着任务的循环隔次的改变状态。2) 和变量IsEdit的作用类似,warnningx是条形图闪烁的指示变量。当某路AD转换的结果result_ADx 大于对应通道的警戒值Warnni ngDatax时,根据warnningx的值决定条形图的长度是和result_ADx 对应还是和W arnningDatax对应,这样看起来条形图的长度是变化的,效果就是超过警戒线的那部分在闪烁。3)这里条形图实际上是一个实心矩形,用FillRect()函数填充。图 5-5 Display_Task 流程图2.5编写4路AD采集任务ADx_Task提示:1)使用GetADresult()函数即可

10、得到某路AD输出的二进制代码。由于处理器的8路10位AD转换单元的最大输入电压是2.50V,所以实际电压值就是result_ADx=GetADresult(x)*2.50/1024;2.6用ARM SDT 2.5或ADS1.2编译、下载并调试上述程序,检查运行结果。2.7生成发行版本的.bin文件,通过USB下载到嵌入式开发平台中,运行并检查输出结果。三技术实现问题3.1数码管显示及闪烁显示的代码/ 0通道显示ZLG7289_ENABLE();/使 zlg7289 占有同步串口Delay(5);/ 延时WriteSDIO(ZLG7289_CMD_DATA1l6);/数码管以方式1译码,第一个数

11、码管亮WriteSDIO(int)(result_AD0)%10);/显 示个位Delay (1);/ 延时if(int)(result_AD0)9)/键值大于9显示十位WriteSDIO(ZLG7289_CMD_DATA1|7);/发 送十位数据WriteSDIO(int)(result_AD0)/10);Delay(1);WriteSDIO(ZLG7289_CMD_HIDE);/使一、二、三这三位数码管显示WriteSDIO( 0xff);else/键值小于10不显示十位WriteSDIO(ZLG7289_CMD_HIDE);/使 个位数码管显示WriteSDIO(0x7f);a=0xff

12、;if(result_AD0WarnningData0)a=0x3f;Delay(1);WriteSDIO(ZLG7289_CMD_FLASH);/ 闪烁WriteSDIO(a);通道1、2、3和通道0 一样只需将通道0中的输入值和警戒值改成对应通道的值就可以实 现,当然要选择不同数码管来显示,具体哪个数码管可由自己选择。3.2在LCD屏条形图中超出部分闪烁原理利用FillRect()函数画出条形图,如果采样值小于警戒值则正常画图,如果超过警戒值, 则先画采样值所对应的条形图,后画出警戒值所对应的条形图,两者无限循环这样现实的 现象就是超出部分闪烁。闪烁显示的代码如下:if(result_AD

13、0=WarnningData0)FillRect(pdc, 110, (int)(210-result_AD0*20/3.3), 130, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);elseif(warnning0=1)FillRect(pdc, 110, (int)(210-result_AD0*20/3.3), 130, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);warnning0=0;elsewarnning0=1;FillRect(pdc, 110, (int)(210-WarnningData0*20/3.3), 130,2

14、10, GRAPH_MODE_NORMAL,COLOR_BLACK);这是通道0的代码,通道1、2、3的代码同上,只要改变相应的输入值和警戒值即可。3.3条形图顶端显示具体电压值的代码如下:Int2Unicode(int)(result_AD0),result_AD0_16);TextOut(pdc,114,(int)(198-result_AD0*20/3.3),result_AD0_16,TRUE, FONTSIZE_SMALL); 相应的也只需改变对应通道的输入值和警戒值即可实现其他通道电压值显示。3.4实现条形图闪烁显示及文本框显示相应数值完整代码如下:/0通道if(result_AD

15、0=WarnningData0)FillRect(pdc, 110, (int)(210-result_AD0*20/3.3), 130, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);elseif(warnning0=1)FillRect(pdc, 110, (int)(210-result_AD0*20/3.3), 130, 210,GRAPH_MODE_NORMAL,COLOR_BLACK);warnning0=0;elsewarnning0=1;FillRect(pdc, 110, (int)(210-WarnningData0*20/3.3), 130, 210,GRAPH_MODE_NORMAL,COLOR_BLACK);Int2Unicode(int)(result_AD0),result_AD0_1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号