网站大量收购独家精品文档,联系QQ:2885784924

《嵌入式系统与应用》设计性实验报告-基于ARM的多通道仪表数据采集实验汇.doc

《嵌入式系统与应用》设计性实验报告-基于ARM的多通道仪表数据采集实验汇.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《嵌入式系统与应用》设计性实验报告-基于ARM的多通道仪表数据采集实验汇

物理与电子工程学院 《嵌入式系统与应用》 设计性实验报告 题目 基于ARM的多通道仪表数据采集实验 系 别 物理与电子工程学院 年 级 专 业 班 级 学 号 学生姓名 指导教师 实验时间 2011.12 目录 一.摘要 3 二.引言 4 2.1本课题的目的: 4 2.2运行环境: 4 三.课题研究 5 3.1主函数模块 5 3.2 AD数据采集模块 6 3.3响应键盘消息模块 7 3.4绘图显示模块 8 四.总结与体会 11 参考文献 12 附 录 13 设计性实验报告成绩: 指导教师签名: 28 一.摘要 在实际应用中,常常需要对现场的设备进行监测,通过采集设备的运行参数随时了解、跟踪设备运行状态,进而对设备进行分析和诊断。传统的数据采集系统一般采用PC 加数据采集卡,主要做法是将一块基于IAS 或PCI的板卡插入工业计算机或商用机上,将外部信号通过导线引至计算机,然后接入数据采集卡,通过定制的软件进行采集。但是采用数据采集卡的缺点是安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和位置、中断资源的限制,不可能挂接很多设备。从未来的发展方向上看,数据采集系统的数据采集部分应朝着强实时、多参数、高精度方向发展;数据存储部分朝着大容量、微型化、便携式方向发展;数据传输部分朝着多通讯方式、远距离数据传输方向发展。一般的基于单任务顺序机制的单片机数据采集系统又很难胜任对于稳定性、实时性要求很高的场合。基于此,本设计了一种基于ARM7 处理器,采用了串口、USB、以太网3 种与PC 机的通讯方式,以适应不同场合的需要。采用多任务编程方法,每个任务监视一路AD 转换, 每一路AD 的转换结果在液晶屏上用一个条形图的长短来表示,直观地显示每路模拟输入电压的大小。可以通过文本框给每路AD 设置警戒值,某路输入超出警戒线之后条形图中超出的部分会以闪动的方式显示。 二.引言 2.1本课题的目的: 采用多任务编程方法,每个任务监视一路AD 转换, 每一路AD 的转换结果在液晶屏上用一个条形图的长短来表示,直观地显示每路模拟输入电压的大小。可以通过文本框给每路AD 设置警戒值,某路输入超出警戒线之后条形图中超出的部分会以闪动的方式显示。 在此基础上,利用实验箱中的数码管显示每一路的电压采样值,并能在超出警戒值的情况下闪烁显示。或在LCD屏上对应条形图的顶部显示具体的电压值。 2.2运行环境: 嵌入式开发平台(ARM7)和PC机 三.课题研究 3.1主函数模块 在 main()函数中调用 OSStart()函数之前用下列语句创建任务: OSTaskCreate(TaskName,(void*)0,(OS_STK*)TaskName_Stack[STACKSIZE-1],TaskName_Prio); OSTaskCreate()函数的原型是: INT8U OSTaskCreate (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio); 需要将任务函数 TaskName,任务堆栈 TaskName_Stack,任务优先级 TaskName_Prio 三个参数传给 OSTaskCreate()函数。根据任务函数的内容决定堆栈大小,宏 STACKSIZE 定义为4KB,可以在此基数上乘倍。任务优先级越高,TaskName_Prio 值越小;uCOS-II 可以管理 64个任务,由 OSInit()创建的空闲任务的优先级最低为 63;uCOS-II 保留 4 个最高和 4 个最低 优先级,用户任务可以使用其余 56 个优先级值。 int main(void) { Uart_Printf(\nArm Target Init OK.); Zlg7289_Reset();//zlg7289复位 ARMTargetInit(); //开发板初始化 OSInit(); //操作系统初始化 uHALr_ResetMMU();//复位MMU LCD_Init(); //初始化LCD模块 LCD_printf(LCD initialization is OK\n);//向液晶屏输出

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档