工程测试技术实验报告-飞机舱门启闭信号实验系统_第1页
工程测试技术实验报告-飞机舱门启闭信号实验系统_第2页
工程测试技术实验报告-飞机舱门启闭信号实验系统_第3页
工程测试技术实验报告-飞机舱门启闭信号实验系统_第4页
工程测试技术实验报告-飞机舱门启闭信号实验系统_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

《工程测试技术》实验指导书及实验报告学号:173417030316姓名:滕仁翔院系:民用航空学院专业:飞行器质量与可靠性实验一:飞机舱门启闭信号实验系统一、实验目的(1)掌握飞机舱门,起落架和空地开关启闭的逻辑关系,通过单片机,接近开关及按键模拟出舱门间的相互关系。(2)掌握光耦的工作原理与使用方法,利用单片机对光耦进行控制;(3)掌握液晶显示器的驱动原理;(5)掌握C8051F310的组成结构、工作原理、程序编写。(6)掌握Keil、siliconlaboratories单片机的软件仿真、动态调试以及程序下载等操作。二、实验设备及仪器(1)飞机舱门启闭信号实验系统一套。(2)双踪示波器一台,型号DS2022;(3)数字万用表一块及组合工具一套;工作原理飞机舱门启闭信号实验板如图1所示,是以单片机为MCU、配以红外传感器模拟舱门的启闭状态,并配以灯光指示等。利用空地开关、起落架收放开关等,模拟飞机在地面或空中舱门的状态。图1飞机舱门启闭信号实验板实验板上配有舱门检测感应器接口,共模拟了前舱门、后舱门、货舱门1、货舱门2、轮舱门及应急出口,另外还有2个备用舱门口。传感器常用红外传感器、磁敏感传感器等原理,这里采用红外传感器为例进行实验,板上主要资源有:1、C8051F310单片机如图2所示是C8051F310片上资源分布图。图3是管脚排列图,主要有下列部分组成。图2C8051F310片上资源分布图图3C8051F310/2/4芯片管脚图①高速微内核70%的指令可以在1~2个系统周期内执行完成,在25MHZ的时钟下指令执行时间可以达到25MIPS,中断处理可以进行拓展。②10位ADC:转换速率为200KSPS,外部转换启动控制输入,VREF从VDD或者外部断口引入。比较器的滞后时间和响应时间都是可编程的,比较器COMPRARATOR0可以配置成中断信号和复位信号。③片上调试:支持断点、单步执行、内存检查和寄存器检查。④存储单元:RAM:128KB;FLASH:16KB。⑤数字外设:29/25/21个IO端口、UART、SMBUS、SPI总线接口、4个16位可编程定时器/计数器、支持5路捕捉/比较调制器的16位可编程计数器阵列。⑥时钟源内部振荡器:24.5MHz,精度2%。外部振荡器:晶振,RC。能够切换时钟源。2、液晶显示器的简介12864液晶一共有128*64个像素,12864液晶支持三种显示模式,字符模式、图形模式和混合模式,通过设置相关寄存器位可以选定某种显示模式。12864的读写时序如表1所示,图4是内部组成结构图。(有关详细内容请查阅产品手册)表112864的读写时序参数符号最小值最大值单位C/D设置时间100_C/D保持时间10_CE、RD、WR脉冲宽度、、80_数据设置时间80_数据保持时间40捕捉时间__输出保持时间10_图412864内部组成结构方框图液晶显示器用于显示各舱门的状态,通过实验可以模拟舱门是否关闭,并在液晶显示器上显示各舱门的状态。应用软件基于单片机MCU测试系统微处理系统由单片机、传感器、显示器及其他辅助元件组成,用于监测各传感器的工作状态、进行数据处理和运算,其处理结果可以在液晶显示器上显示。单片机软件环境由于SiliconlaboratoriesIDE是集成开发环境,必须由相关的工具链TOOLCHAIN支持才能编译,调试程序。SiliconlaboratoriesIDE需要Keil的C51编译器,还包括连接器BL51,汇编语言编译器A51等等一系列工具。先安装SiliconLaboratoriesIDE,然后安装Keil,利用注册机进行软件破解:破解方法如下:①打开Keil,点击FileLicenseManagement...,打开LicenseManagement窗口,复制右上角的CID;②打开注册机,在CID窗口里填上刚刚复制的CID,其它设置不变;③击Generate生成许可号,复制许可号到LicenseManagement窗口下部的NewLicenseIDCode,点击右侧的AddLIC.若上方的Product显示的是PK51Prof.DevelopersKit即注册成功,SupportPeriod为有效期,一般可以到30年左右,若有效期较短,可多次生成许可号重新注册。Keil当作工具添加到SiliconlabsIDE:在SiliconIDE的Project下面ToolChainIntegration打开,出现一个定义界面。在这个界面选择,tool为keil;选择Assembler指向你安装keil安装子目录里的A51.exe;Compiler指向C51.exe;Linker指向BL51.exe.(2)程序下载在PC机中编译运行通过的程序,必须下载到目标板中,将与飞机舱门启闭信号实验板有关的实验程序,可以利用标准的JTAG仿真器进行下载,仿真器外形图如图5所示。程序下载时的PC机、仿真器及实验板等连接图如图6所示。图5仿真器图6程序下载连接示意图(3)实验装置与上位机PC机通讯实验装置与上位机PC机通讯需要采用RS232转USB通讯接线,该通讯线是Z-TEK公司生产的总线,并需要在PC机上安装相关的驱动。驱动的软件程序可以在ZTEK公司官网上下载(一般下载转USB2.0的)。下载成功后打开CDMv2.12.10WHQLCertified.exe进行安装,如图7所示。图7驱动程序安装界面点击Extract,进入下一步,往下每一步都点击“下一步”,当出现如图8界面时表示安装成功。图8程序安装成功将上位机通讯接口与PC机相连,首次连接电脑会显示安装硬件。右击“我的电脑”,选择“管理”,打开“设备管理器”,连接成功,则会出现“端口”选项,打开“端口”扩展项,查看连接到电脑的通讯端口编号,如图9所示,如在图示中为COM5。图9计算机设备管理信息打开上位机界面执行文件图标,得到如图10所示的飞机舱门启闭信号实验系统的上位机界面。图10飞机舱门启闭信号实验系统上位机界面可在左上角选择串口编号(必须与端口中标号“COM-X”一致),按照图9中的COM5。即可开始进行相关实验。五、实验验证1、熟悉单片机与PC机操作的基本知识和技能熟悉单片机C8051F310的组成、结构和工作原理。熟悉集成开发环境SiliconlaboratoriesIDE及KEIL的C51编译器(C15),当然还包括连接器BL51,汇编语言编译器A51等一系列工具。把提供的样机程序输入拷入PC机,并打开开发环境,调用样机的应用程序。了解飞机的舱门特点舱门没有关闭会使座舱失密、失压,严重时直接影响人的生命安全。飞机上通常有驾驶舱、货舱、轮舱等。3、舱门关闭状态在中央告警系统中指示。舱门没有关闭,直接会导致座舱失密,通常要在驾驶舱的中央告警系统中进行提示。这里利用上位机PC模拟中央告警系统,监视舱门的关闭情况。①正常飞行状态飞机正常飞行模式时起落架处于收起状态,将实验板上的起落架按钮和空地开关按钮同时“按下”,此时飞机处于正常飞行状态,实验板显示情况如图11所示,上位机显示界面如图12所示,红色表示舱门关闭,绿色表示舱门没有关好。图11正常模式下的实验板显示图12正常模式下的上位机显示界面②舱门没有关闭,必须报警无论是空中,或是地面准备起飞前,舱门都应该关闭。如果没有关闭必须发出报警信号。同时上位机PC机监视到某个舱门没有关闭。为验证飞机舱门启闭信号的工作原理,采用“纸片”将舱门传感器阻断,用于模拟舱门未关闭的状态。例如用纸片将前舱门和后舱门挡住,表示舱门没有关闭,如图13所示,上位机显示界面如图14所示,绿色表示舱门没有关闭。此时蜂鸣器报警。实验结果表明:能在飞机飞行状态舱门未关闭时及时报警。。图13舱门未关闭时的实验板显示图14舱门未关闭时上位机显示界面③非正常工作模式当起落架按钮和空地开关按钮未同时按下,用以表示停在地面,即使舱门没有关闭,蜂鸣器也不报警,如图15所示是起落架放下,空地开关按钮未按下的情况,此时前舱门未关闭,不报警,图16为该情况下的上位机显示界面。图15起落架放下,空地开关按钮未按下图16非正常模式下的上位机显示界面利用单片机实现所有舱门的关闭状况的自动测量和显示报警。自动测量,并指出没有关闭舱门的名称、未知。接通电源,打开PC机,拷入相关应用程序,逐步运行,验证工作过程。六、熟悉仪器设备的使用熟悉示波器的使用,参考产品手册。七、实验步骤按图1连接系统,主要连接内容为:(1)电源适配器与系统连接(2)依次用纸片将舱门传感器阻断,观察LCD上面显示内容的变化。八、记录整理实验数据(1)根据实验中遇见现象分析(2)提交报告一份,报告按规定格式书写,图表规范。包含芯片使用方法;软件流程图,测试代码以及电路原理图的解释与分析。分析实验中产生故障的原因,分析影响性能指标的与测试精度的参数;九、实验完成后需要完成下列工作(1)整理实验仪器设备;(2)归还仪器设备及工具,损坏照价赔偿;(3)打扫实验室,关闭门窗、水电气等。

附录一:飞机舱门启闭信号实验系统主程序清单#include"C8051F310.h" //SFRdeclarations11.09.26forPNDT#include"compiler_defs.h"//#include"C8051f310_defs.h"#include"pndt_pm_global.h"#include"12864.h"#include"BMP.h"#include<intrins.h>#include<stdio.h>#include<math.h>#include<absacc.h>#include<stdlib.h>#include<stddef.h>#include<string.h>unsignedchardataTag1s,Tag500ms,Tag200ms,Tag100ms,Tag50ms,Tag10ms,Tag1ms;unsignedintdataTime_count;//,Time0_count,Time3_count; //定时控制参数BOOLdoor[8]={FALSE};BOOLTrans_Flag0;#defineHW_RECEI_SIZE0 24 //接受数据长度 #defineHW_TRANS_SIZE0 40 //发送数据长度unsignedcharxdataTransData_UART0[HW_TRANS_SIZE0]={'\0'},SendSize;unsignedcharxdataReceiveData_UART0[HW_RECEI_SIZE0]={'\0'};BOOLb_BootOK=FALSE;unsignedcharTaskPt;BOOLWait5S;unsignedcharCount5S;//externucharSW_Flag;//externucharPowerOff_Flag;voidTimer2_ISR(void)interrupt5{TF2H=0;//clearTimer2interruptflag Tag1ms=TRUE; Time_count+=1; Time_count%=1000; if(!(Time_count%1000))Tag1s=TRUE; if(!(Time_count%500))Tag500ms=TRUE; if(!(Time_count%200))Tag200ms=TRUE; if(!(Time_count%100))Tag100ms=TRUE; if(!(Time_count%50))Tag50ms=TRUE; if(!(Time_count%10))Tag10ms=TRUE;}voidInit_Parameter(){ TaskPt=0;// COM_LED=1;// KEY_LED=1; ALM=1; Wait5S=FALSE; Count5S=0;// POWER_SW=1;// POWER_TRIGER=1;// TXH1=1;//@sunjie2011.10.15/* for(i=0;i<HW_TRANS_SIZE0;i++) { TransData_UART0[i]=i; } for(i=0;i<HW_TRANS_SIZE1;i++) { TransData_UART1[i]=0; }*/}//串口发送一个字节voidPutChar(unsignedcharc){SBUF0=c;//发送一个字节//while(TI0==0)while(SCON0&0x02==0);//等待发完一个字节SCON0&=0xfd;//TI0=0;//清除发送中断标志}//串口发送一个字符串voidPutSting(unsignedchar*ptr,unsignedcharsize){uchari=0;while(i<size)//判断是否发完一个字符串 { PutChar(*(ptr+i)); i++;//ptr++; }}voidreceive0(void){ staticunsignedcharbRecv=0;ReceiveData_UART0[bRecv]=SBUF0; bRecv++; if(bRecv>=HW_RECEI_SIZE0) bRecv=0;} voidtransmit0(/*unsigned*/charxdata*AddPtr,unsignedcharT_size){ staticunsignedcharbInc=0;if(bInc>=T_size){ SCON0=SCON0&0xfd;//TI0=0; Trans_Flag0=0; bInc=0;RI0=0;} else{SBUF0=*(AddPtr+bInc); bInc+=1;}}voidCommInt0(void)interrupt4{ if(SCON0&0x02){ SCON0&=0xfd;//TI0=0; if(Trans_Flag0) transmit0(TransData_UART0,SendSize);}if(SCON0&0x01){ SCON0&=0xFE; receive0();}}voidStartGraph(){uchar*p;p=&PLANE;img_disp(p);}voidTask(){ TaskPt++; switch(TaskPt) { case1:ShowStr(Line4,2,"Loading.");break; case2:ShowStr(Line4,2,"Loading..");break; case3:ShowStr(Line4,2,"Loading...");break; case4://ClearRam();ShowHZ(Line1,1,"飞机火警探测实验");break; ClearRam(); ShowHZ(Line1,1,"飞机舱门启闭实验"); ShowHZ(Line2,1,"◎◎◎◎◎◎◎◎"); ShowHZ(Line3,1,"空地"); ShowHZ(Line3,4,"起落架"); printf("\nPE2Test:"); PutSting("@Sunjie2013.5",14);break; default:break; } if(TaskPt>5) { TaskPt=5; b_BootOK=TRUE;}}voidmain(void){ uchari=1,j=0,buf[16];/* buf[0]=DcmToAsc(1); buf[1]=DcmToAsc(2); buf[2]=DcmToAsc(3); buf[3]=DcmToAsc(4); buf[4]=DcmToAsc(5); buf[5]=DcmToAsc(6); buf[6]='\0';*/ALM=1; //ENL=1; PCA0MD&=~0x40;//WDTE=0(clearwatchdogtimer) Init_Device(); Init_Parameter(); Init_Lcd(); StartGraph(); ALM=0; do { if(Tag1ms) { Tag1ms=FALSE; PCA0CPH4=0; } if(Tag10ms) { Tag10ms=FALSE;// PowerOff_Scan();//@sunjie2011.10.15 ENL=~ENL; } if(Tag50ms) { Tag50ms=FALSE;//for(i=1;i<9;i++)if(b_BootOK) { if(SW_Scan(i)) {ShowHZ(Line2,i,"●"); door[i-1]=TRUE;//2013.9.30TRUE; }else {ShowHZ(Line2,i,"◎"); door[i-1]=FALSE;//2013.9.30FALSE; } i++; if(i==9) i=1;} } if(Tag100ms) { Tag100ms=FALSE; } if(Tag200ms) { Tag200ms=FALSE;// COM_LED=~COM_LED;if(b_BootOK) {if(KEY1) ShowHZ(Line3,3,"\30");elseShowHZ(Line3,3,"\31");if(KEY2) ShowHZ(Line3,7,"\30");elseShowHZ(Line3,7,"\31");if((!KEY1)&&(!KEY2))GREEN=0;else GREEN=1;if((KEY1)&&(KEY2)) {RED=0; for(j=0;j<6;j++) { if(!door[j]) break; } if(j<6) { if(Wait5S) {Count5S++; if(Count5S>=28) {Count5S=0; ALM=1; ShowHZ(Line4,2,"舱门未关好!"); } } else { ALM=1; ShowHZ(Line4,2,"舱门未关好!"); } }else { ALM=0;ShowStr(Line4,2,"Normal"); Wait5S=TRUE;} }else { if((!KEY1)||(!KEY2)) { ShowHZ(Line4,2,"Error!"); } else { RED=1; ALM=0; Wait5S=FALSE;//2013.9.30 ShowStr(Line4,2,""); } }}//ifb_BootOK } if(Tag500ms) { Tag500ms=FALSE; DRE=~DRE; //PutChar('J'); //PutSting("Sunjie2013.5",14); } if(Tag1s) { Tag1s=FALSE; //j=SBUF0;//buf[0]=SBUF0;//DcmToAsc(j); //RI0=0;Task(); if(b_BootOK) { ShowStr(Line4,1,ReceiveData_UART0); for(j=0;j<8;j++) { if(door[j]==TRUE) TransData_UART0[j]='G';//'S'; elseTransData_UART0[j]='K';}TransData_UART0[8]='_'; if(KEY1)TransData_UART0[9]='0'; elseTransData_UART0[9]='1'; if(KEY2)TransData_UART0[10]='0'; elseTransData_UART0[10]='1';TransData_UART0[11]=''; TransData_UART0[12]=''; SendSize=13; TI0=1; Trans_Flag0=1; }//b_BootOK }// if(SW_Flag)// {// PowerManagement();// }// if(PowerOff_Flag)// {// PowerOffManagement();// } } while(1); }

附录二:飞机舱门启闭信号实验系统原理电路图图17飞机舱门启闭信号实验系统原理电路图实验报告实验名称:飞机舱门启闭信号实验系统一、实验目的(1)掌握飞机舱门,起落架和空地开关启闭的逻辑关系,通过单片机,接近开关及按键模拟出舱门间的相互关系。(2)掌握光耦的工作原理与使用方法,利用单片机对光耦进行控制;(3)掌握液晶显示器的驱动原理;(5)掌握C8051F310的组成结构、工作原理、程序编写。(6)掌握Keil、siliconlaboratories单片机的软件仿真、动态调试以及程序下载等操作。二、实验仪器(设备)(1)飞机舱门启闭信号实验系统一套。(2)双踪示波器一台,型号DS2022;(3)数字万用表一块及组合工具一套;实验原理和内容飞机舱门启闭信号实验板如图1所示,是以单片机为MCU、配以红外传感器模拟舱门的启闭状态,并配以灯光指示等。利用空地开关、起落架收放开关等,模拟飞机在地面或空中舱门的状态。图1飞机舱门启闭信号实验板实验板上配有舱门检测感应器接口,共模拟了前舱门、后舱门、货舱门1、货舱门2、轮舱门及应急出口,另外还有2个备用舱门口。传感器常用红外传感器、磁敏感传感器等原理,这里采用红外传感器为例进行实验,板上主要资源有:1、C8051F310单片机如图2所示是C8051F310片上资源分布图。图3是管脚排列图,主要有下列部分组成。图2C8051F310片上资源分布图

温馨提示

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

评论

0/150

提交评论