基于ARM的多通道仪表数据采集实验_第1页
基于ARM的多通道仪表数据采集实验_第2页
基于ARM的多通道仪表数据采集实验_第3页
基于ARM的多通道仪表数据采集实验_第4页
基于ARM的多通道仪表数据采集实验_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物理与电子工程学院嵌入式系统设计性实验报告题目基于ARM的多通道仪表数据采集实验系别物理与电子工程学院年级12专业电子信息工程班级电信12学号160412107学生姓名何剑指导教师浦炜实验时间2015年12月10日目录课题要求31本课题的目的32运行环境3正文3一课题分析3二系统设计421新建工程422打开MAINC文件,编辑MAIN_TASK任务中的代码423编写ONKEY函数,响应键盘消息424编写绘图显示任务DISPLAY_TASK525编写4路AD采集任务ADX_TASK626用ARMSDT25或ADS12编译、下载并调试上述程序,检查运行结果627生成发行版本的BIN文件,通过USB下载到嵌入式开发平台中,运行并检查输出结6果。6三技术实现问题631数码管显示及闪烁显示的代码632在LCD屏条形图中超出部分闪烁原理833条形图顶端显示具体电压值的代码如下934实现条形图闪烁显示及文本框显示相应数值935按键实现单通道图形显示1036双击切换电压值显示14四总结与体会15设计性实验报告成绩指导教师签名31课题要求1本课题的目的采用多任务编程方法,每个任务监视一路AD转换,每一路AD的转换结果在液晶屏上用一个条形图的长短来表示,直观地显示每路模拟输入电压的大小。可以通过文本框给每路AD设置警戒值,某路输入超出警戒线之后条形图中超出的部分会以闪动的方式显示。在此基础上,利用实验箱中的数码管显示每一路的电压采样值,并能在超出警戒值的情况下闪烁显示。或在LCD屏上对应条形图的顶部显示具体的电压值。通过对触摸屏的双击切换电压值的显示。按键03仅显示对应的通道柱状图,其余按键全部显示。2运行环境硬件ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机PENTIUM100以上。软件PC机操作系统WIN98、WIN2000或WINXP、ARMSDT251或ADS1集成开发环境、仿真器驱动程序、超级终端通讯程序。正文一课题分析数据采集系统置于被监控的设备处,通过传感器对设备的电压或者电流信号进行采样、保持,并送入A/D转换器变成数字信号,然后将该信号送到FIFO中。当FIFO中存放的数据到了一定数目时,由ARM7从FIFO中读出,然后通过ARM7的以太网接口送给上位机。多路采集通道经过模拟开关后再进入A/D转换器。CPLD是整个系统的控制核心,它控制采集通道的切换、A/D转换器的启/停、转换后的数据在FIFO中的存放地址发生器、产生中断请求以通知ARM7读取存放在FIFO中的数据等。二系统设计21新建工程将“EXP23多通道仪表数据采集实验”中的文件加入工程。22打开MAINC文件,编辑MAIN_TASK任务中的代码用INIT_ADDEVICE函数初始化处理器的AD转换硬件,启动消息循环。23编写ONKEY函数,响应键盘消息流程图如图54所示。提示1)这里设置了两个文本框,用来输入通道编号和该通道的警戒值,在键盘消息响应函数里针对两个文本框分别作出处理,只处理回车键和取消键,其他键由控件本身处理。程序里用变量EDITNUMBER指示当前要编辑的文本框控件;用变量INPUT指示该文本框控件是否处于输入编辑状态。以此决定回车键应该执行的功能。2)当文本框控件不是编辑状态时,回车将使其进入编辑状态,在程序里用SETWNDCTRLFOCUS函数将焦点转移到该控件并用SETTEXTCTRLEDIT函数设置为编辑状态;当文本框正处于编辑状态时,回车将使其退出编辑状态,并将要编辑的文本框切换到另一个文本框控件,取消键的处理和这种情况类似。3)如果当前要编辑的文本框是警戒值输入框,在编辑状态中回车确定后,所输入的通道编号以及警戒值就会保存在数组WARNNINGDATA中,代码如下WARNNINGDATAUNICODE2INTPCHANNELTEXTCTRLTEXTUNICODE2INTPVALUETEXTCTRLTEXT图54流程图24编写绘图显示任务DISPLAY_TASK绘制文本框和条形图等,并实现文本框编辑过程中和超过警戒值后的动画显示。流程图如图55所示。提示1)程序中用TEXTOUT函数显示文本框的提示信息,用数组EDIT记录两个文本框是否处于编辑状态,用变量ISEDIT指示提示信息是否显示。实际上,ISEDIT这个变量在显示任务循环一次就改变一次状态,当ISEDIT1时将提示信息擦掉,否则保持显示不变。这就是闪烁显示的原理,表示AD转换结果的条形图超出警戒值的部分的闪烁也是这样实现的,随着任务的循环隔次的改变状态。2)和变量ISEDIT的作用类似,WARNNINGX是条形图闪烁的指示变量。当某路AD转换的结果RESULT_ADX大于对应通道的警戒值WARNNINGDATAX时,根据WARNNINGX的值决定条形图的长度是和RESULT_ADX对应还是和WARNNINGDATAX对应,这样看起来条形图的长度是变化的,效果就是超过警戒线的那部分在闪烁。3)这里条形图实际上是一个实心矩形,用FILLRECT函数填充。图55DISPLAY_TASK流程图25编写4路AD采集任务ADX_TASK提示1)使用GETADRESULT函数即可得到某路AD输出的二进制代码。由于处理器的8路10位AD转换单元的最大输入电压是250V,所以实际电压值就是RESULT_ADXGETADRESULTX250/102426用ARMSDT25或ADS12编译、下载并调试上述程序,检查运行结果。27生成发行版本的BIN文件,通过USB下载到嵌入式开发平台中,运行并检查输出结果。三技术实现问题31数码管显示及闪烁显示的代码/0通道显示ZLG7289_ENABLE/使ZLG7289占有同步串口DELAY5/延时WRITESDIOZLG7289_CMD_DATA1|6/数码管以方式1译码,第一个数码管亮WRITESDIOINTRESULT_AD010/显示个位DELAY1/延时IFINTRESULT_AD09/键值大于9显示十位WRITESDIOZLG7289_CMD_DATA1|7/发送十位数据WRITESDIOINTRESULT_AD0/10DELAY1WRITESDIOZLG7289_CMD_HIDE/使一、二、三这三位数码管显示WRITESDIO0XFFELSE/键值小于10不显示十位WRITESDIOZLG7289_CMD_HIDE/使个位数码管显示WRITESDIO0X7FA0XFFIFRESULT_AD0WARNNINGDATA0A0X3FDELAY1WRITESDIOZLG7289_CMD_FLASH/闪烁WRITESDIOA通道1、2、3和通道0一样只需将通道0中的输入值和警戒值改成对应通道的值就可以实现,当然要选择不同数码管来显示,具体哪个数码管可由自己选择。32在LCD屏条形图中超出部分闪烁原理利用FILLRECT函数画出条形图,如果采样值小于警戒值则正常画图,如果超过警戒值,则先画采样值所对应的条形图,后画出警戒值所对应的条形图,两者无限循环这样现实的现象就是超出部分闪烁。闪烁显示的代码如下IFRESULT_AD0LPARAMCASETCHSCR_ACTION_CLICKXPMSGWPARAMYPMSGWPARAM16BREAKCASETCHSCR_ACTION_DBCLICKFLAGFLAGBREAK在VOIDDISPLAY_TASKVOIDID中添加代码IFFLAGINT2UNICODEINTRESULT_AD0,RESULT_AD0_16TEXTOUTPDC,114,INT198RESULT_AD020/33,RESULT_AD0_16,TRUE,FONTSIZE_SMALLINT2UNICODEINTRESULT_AD1,RESULT_AD1_16TEXTOUTPDC,164,INT198RESULT_AD120/33,RESULT_AD1_16,TRUE,FONTSIZE_SMALLINT2UNICODEINTRESULT_AD2,RESULT_AD2_16TEXTOUTPDC,214,INT198RESULT_AD220/33,RESULT_AD2_16,TRUE,FONTSIZE_SMALLINT2UNICODEINTRESULT_AD3,RESULT_AD3_16TEXTOUTPDC,264,INT198RESULT_AD320/33,RESULT_AD3_16,TRUE,FONTSIZE_SMALL4总结与体会虽然有做了几个ARM实验的基础,不过我在做这个课题的时候依然遇到了不少问题。要想完成这个设计,我们必须要将前面所掌握的知识融会贯通,并灵活运用,这样才能得到我盟需要的结果。首先按照的实验要求,将以前的实验拿出来巩固,将有关函数的用法弄清楚,不懂的请教他人,和同学讨论,最终有了一个比较的明确的方向,可是真正做的时候并不是那么简单的,总是遇到这样或那样的问题,在同学的帮助下,终于把程序中的错误都改正过来了。这次实验验收的时候也出现了一些问题,在老师的指导下也改正了这些错误。这次实验使我学到了很多,只有把理论知识和实践结合起来,才能够真正理解。这样才能发挥理论知识的用途。做实验的时候不能太急躁,要慢慢来,凡事都不能一气呵成的,只有静下心来,认真思考,找出问题所在,勇敢面对,努力解决,这样我们才能从中有所收获。附录INCLUDE“UCOSIIINCLUDESH“/UC/OSINTERFACE/INCLUDE“UCOSIIADDOSADDITIONH“INCLUDE“INCDRVH“INCLUDEINCLUDE“INCDRVADH“INCLUDE“UHALH“INCLUDE“TCHSCRH“INCLUDE“ZLG7289H“INCLUDE“44BH“PRAGMAIMPORT_USE_NO_SEMIHOSTING_SWI/ENSURENOFUNCTIONSTHATUSESEMIHOSTINGDEFINEID_CHANNELTEXTCTRL101DEFINEID_VALUETEXTCTRL102DEFINEDRAW_WND_ID104PTEXTCTRLPCHANNELTEXTCTRL,PVALUETEXTCTRLFLOATRESULT_AD0,RESULT_AD1,RESULT_AD2,RESULT_AD3INTWARNNINGDATA426,26,26,26INTEDIT20,0BOOLEANFLAGFALSEEXTERNINTZLG7289SIOBANDEXTERNINTZLG7289SIOCTRLSTATICINTKEY_VAL/OS_STKMAIN_STACKSTACKSIZE80,/MAIN_TEST_TASKVOIDMAIN_TASKVOIDID/MAIN_TEST_TASKDEFINEMAIN_TASK_PRIO12OS_STKDISPLAY_TASK_STACKSTACKSIZE80,/MAIN_TEST_TASKVOIDDISPLAY_TASKVOIDID/MAIN_TEST_TASKDEFINEDISPLAY_TASK_PRIO20OS_STKAD0_TASK_STACKSTACKSIZE80,/MAIN_TEST_TASKVOIDAD0_TASKVOIDID/MAIN_TEST_TASKDEFINEAD0_TASK_PRIO21OS_STKAD1_TASK_STACKSTACKSIZE80,/MAIN_TEST_TASKVOIDAD1_TASKVOIDID/MAIN_TEST_TASKDEFINEAD1_TASK_PRIO22OS_STKAD2_TASK_STACKSTACKSIZE80,/MAIN_TEST_TASKVOIDAD2_TASKVOIDID/MAIN_TEST_TASKDEFINEAD2_TASK_PRIO23OS_STKAD3_TASK_STACKSTACKSIZE80,/MAIN_TEST_TASKVOIDAD3_TASKVOIDID/MAIN_TEST_TASKDEFINEAD3_TASK_PRIO24/OSTCP118910LCD591/OS_EVENTNAND_RW_SEM/NAND_FLASH/ANDYOUCANUSEITASFOLLOEING/NAND_RW_SEMOSSEMCREATE1/NANDFLASH,1/OSSEMPENDNAND_RW_SEM,0,/OSSEMPOSTNAND_RW_SEMOS_EVENTUART_RW_SEM/UART/ANDYOUCANUSEITASFOLLOEING/UART_RW_SEMOSSEMCREATE1/UART,1/OSSEMPENDUART_RW_SEM,0,/OSSEMPOSTUART_RW_SEM/VOIDINITOSGUI/INITOSMESSAGEINITOSLISTINITOSDCINITOSCTRLINITOSFILE/MAINFUNCTION/INTMAINVOIDUART_PRINTF“NARMTARGETINITOK“ZLG7289_RESET/ZLG7289ARMTARGETINIT/OSINIT/UHALR_RESETMMU/MMULCD_INIT/LCDLCD_PRINTF“LCDINITIALIZATIONISOKN“/LCD_PRINTF“320X240TEXTMODEN“INITOSGUI/LOADFONT/UNICODELOADCONFIGSYS/CONFIGSYSLCD_PRINTF“CREATETASKONUCOSIIN“OSTASKCREATEMAIN_TASK,VOID0,OS_STK/OSTASKCREATEDISPLAY_TASK,VOID0,OS_STK/20OSTASKCREATEAD0_TASK,VOID0,OS_STKOSTASKCREATEAD1_TASK,VOID0,OS_STKOSTASKCREATEAD2_TASK,VOID0,OS_STKOSTASKCREATEAD3_TASK,VOID0,OS_STKOSADDTASK_INIT/LCD_PRINTF“STARTINGUCOSIIN“LCD_PRINTF“ENTERINGGRAPHMODEN“LCD_CHANGEMODEDSPGRAMODE/LCDINITRTC/NAND_RW_SEMOSSEMCREATE1/NANDFLASH,1/OSSTART/RETURN0/VOIDINIT_ADDEVICE/RADCPSR20/RADCCONADCCON_SLEEP/U8ONKEYINTNKEY,INTFNKEYSTATICBOOLEANINPUTFALSESTATICINTEDITNUMBER1SWITCHNKEYCASE15KEY_VAL0BREAKCASE11KEY_VAL1BREAKCASE12KEY_VAL2BREAKCASE13KEY_VAL3BREAKCASE8KEY_VAL4BREAKIFEDITNUMBER1SWITCHNKEYCASE14/OKIFINPUTSETWNDCTRLFOCUSNULL,ID_CHANNELTEXTCTRLPCHANNELTEXTCTRLTEXT00/SETTEXTCTRLEDITPCHANNELTEXTCTRL,TRUEDRAWTEXTCTRLPCHANNELTEXTCTRLINPUTTRUEEDIT01ELSESETTEXTCTRLEDITPCHANNELTEXTCTRL,FALSEDRAWTEXTCTRLPCHANNELTEXTCTRLINPUTFALSEEDIT00EDITNUMBER2RETURNTRUECASE16/CANCELSETTEXTCTRLEDITPCHANNELTEXTCTRL,FALSEINPUTFALSEEDIT00EDITNUMBER2RETURNTRUEELSEIFEDITNUMBER2SWITCHNKEYCASE14/OKIFINPUTSETWNDCTRLFOCUSNULL,ID_VALUETEXTCTRLPVALUETEXTCTRLTEXT00/SETTEXTCTRLEDITPVALUETEXTCTRL,TRUEDRAWTEXTCTRLPVALUETEXTCTRLINPUTTRUEEDIT11ELSESETTEXTCTRLEDITPVALUETEXTCTRL,FALSEDRAWTEXTCTRLPVALUETEXTCTRLINPUTFALSEEDIT10EDITNUMBER1WARNNINGDATAUNICODE2INTPCHANNELTEXTCTRLTEXTUNICODE2INTPVALUETEXTCTRLTEXTRETURNTRUECASE17/CANCELSETTEXTCTRLEDITPVALUETEXTCTRL,FALSEDRAWTEXTCTRLPVALUETEXTCTRLINPUTFALSEEDIT10EDITNUMBER1RETURNTRUERETURNFALSEVOIDMAIN_TASKVOIDID/MAIN_TEST_TASKPOSMSGPMSGINIT_ADDEVICE20,ADCCON_SLEEPFORPOS_CTRLPCTRLPMSGWAITMESSAGE0IFPMSGPOSCTRLIFPMSGPOSCTRLCTRLMSGCALLBKPMSGPOSCTRLCTRLMSGCALLBKPMSGELSESWITCHPMSGMESSAGECASEOSM_KEYPCTRLGETCTRLFROMIDNULL,GETWNDCTRLFOCUSNULLIFPCTRLCTRLTYPECTRLTYPE_WINDOWIFPWNDPCTRLSTYLEBREAKIFONKEYPMSGWPARAM,PMSGLPARAMBREAKDEFAULTOSONSYSMESSAGEPMSGBREAKCASEOSM_TOUCH_SCREENSWITCHPMSGLPARAMCASETCHSCR_ACTION_CLICKXPMSGWPARAMYPMSGWPARAM16BREAKCASETCHSCR_ACTION_DBCLICKFLAGFLAGBREAKDELETEMESSAGEPMSGOSTIMEDLY200VOIDDISPLAY_TASKVOIDID/MAIN_TEST_TASKPDCPDCSTRUCTRECTCHANNELTEXTCTRL_RECT,VALUETEXTCTRL_RECT,DRAW_WND_RECTCHARCHANNEL_CAPTION_810“CHANNEL“CHARVALUE_CAPTION_810“VALUE“CHARDRAW_WND_CAPTION_8“DRAWWINDOW“CHARVOL_8“VOL“CHARCHN_8“CHN“CHARCHN0_8“0“CHARCHN1_8“1“CHARCHN2_8“2“CHARCHN3_8“3“CHARVOL_10_8“10“CHARVOL_20_8“20“CHARVOL_30_8“30“U16CHANNEL_CAPTION_1610U16VALUE_CAPTION_1610U16DRAW_WND_CAPTION_1620U16VOL_165U16CHN_165U16CHN0_162U16CHN1_162U16CHN2_162U16CHN3_162U16RESULT_AD0_165U16RESULT_AD1_165U16RESULT_AD2_165U16RESULT_AD3_165U16VOL_10_163U16VOL_20_163U16VOL_30_163WNDDRAW_WNDPWNDPDRAW_WNDINTWARNNING41,1,1,1BOOLEANISEDIT0INTAPDCCREATEDCPDRAW_WNDSTRCHAR2UNICODEDRAW_WND_CAPTION_16,DRAW_WND_CAPTION_8STRCHAR2UNICODECHANNEL_CAPTION_16,CHANNEL_CAPTION_8STRCHAR2UNICODEVALUE_CAPTION_16,VALUE_CAPTION_8STRCHAR2UNICODECHN_16,CHN_8STRCHAR2UNICODEVOL_16,VOL_8STRCHAR2UNICODECHN0_16,CHN0_8STRCHAR2UNICODECHN1_16,CHN1_8STRCHAR2UNICODECHN2_16,CHN2_8STRCHAR2UNICODECHN3_16,CHN3_8STRCHAR2UNICODEVOL_10_16,VOL_10_8STRCHAR2UNICODEVOL_20_16,VOL_20_8STRCHAR2UNICODEVOL_30_16,VOL_30_8SETRECTSETRECTSETRECTPCHANNELTEXTCTRLCREATETEXTCTRLID_CHANNELTEXTCTRL,PVALUETEXTCTRLCREATETEXTCTRLID_VALUETEXTCTRL,PDRAW_WNDCREATEWINDOWDRAW_WND_ID,CLEARSCREENTEXTOUTPDC,55,10,VOL_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,290,215,CHN_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,116,215,CHN0_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,166,215,CHN1_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,216,215,CHN2_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,266,215,CHN3_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,60,INT2051200/33,VOL_10_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,60,INT2052200/33,VOL_20_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,60,INT2053200/33,VOL_30_16,TRUE,FONTSIZE_SMALLDRAWTEXTCTRLPCHANNELTEXTCTRLDRAWTEXTCTRLPVALUETEXTCTRLFORTEXTOUTPDC,10,35,CHANNEL_CAPTION_16,TRUE,FONTSIZE_SMALLTEXTOUTPDC,10,110,VALUE_CAPTION_16,TRUE,FONTSIZE_SMALLIFEDIT01IFISEDIT1FILLRECTPDC,10,35,60,45,GRAPH_MODE_NORMAL,COLOR_WHITEISEDIT0ELSEISEDIT1IFEDIT11IFISEDIT1FILLRECTPDC,10,110,60,120,GRAPH_MODE_NORMAL,COLOR_WHITEISEDIT0ELSEISEDIT1DRAWWINDOWPDRAW_WNDMOVETOPDC,75,15LINETOPDC,80,10LINETOPDC,85,15MOVETOPDC,80,10LINETOPDC,80,210LINETOPDC,300,210MOVETOPDC,295,205LINETOPDC,300,210LINETOPDC,295,215MOVETOPDC,80,INT2101200/33LINETOPDC,300,INT2101200/33MOVETOPDC,80,INT2102200/33LINETOPDC,300,INT2102200/33MOVETOPDC,80,INT2103200/33LINETOPDC,300,INT2103200/33IFKEY_VAL0IFRESULT_AD09/9WRITESDIOZLG7289_CMD_DATA1|7/WRITESDIOINTRESULT_AD0/10DELAY1WRITESDIOZLG7289_CMD_HIDE/WRITESDIO0XFFELSE/10WRITESDIOZLG7289_CMD_HIDE/WRITESDIO0X7FA0XFFIFRESULT_AD0WARNNINGDATA0A0X3FDELAY1WRITESDIOZLG7289_CMD_FLASH/WRITESDIOA/1ZLG7289_ENABLE/ZLG7289DELAY5/WRITESDIOZLG7289_CMD_DATA1|4/1,WRITESDIOINTRESULT_AD110/DELAY1/IFINTRESULT_AD09/9WRITESDIOZLG7289_CMD_DATA1|5/WRITESDIOINTRESULT_AD1/10DELAY1WRITESDIOZLG7289_CMD_HIDE/WRITESDIO0XFFELSE/10WRITESDIOZLG7289_CMD_HIDE/WRITESDIO0XDFIFRESULT_AD1WARNNINGDATA1AADELAY1WRITESDIOZLG7289_CMD_FLASH/WRITES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论