【《基于单片机的测距导盲杖控制系统设计及仿真调试分析案例》3900字】_第1页
【《基于单片机的测距导盲杖控制系统设计及仿真调试分析案例》3900字】_第2页
【《基于单片机的测距导盲杖控制系统设计及仿真调试分析案例》3900字】_第3页
【《基于单片机的测距导盲杖控制系统设计及仿真调试分析案例》3900字】_第4页
【《基于单片机的测距导盲杖控制系统设计及仿真调试分析案例》3900字】_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的测距导盲杖控制系统设计及仿真调试分析案例目录TOC\o"1-3"\h\u30309基于单片机的测距导盲杖控制系统设计及仿真调试分析案例 。图1.6超声波传感器流程超声波模块启动后,将Trig引脚置1,使传感器发射超声波,延时一段时间后,将Trig引脚置0。voidStartModule() //启动模块{Trig=1;//启动一次模块 _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); Trig=0;}1.3.3光感元件与ADC0832函数(感光警示)该函数部分,定义了与ADC0832三个功能端参数以及参数I的局部变量供我们使用,通过0832的时序图进行参数设置,选择光感元件的数据输入端口为CH1。因为光感元件所有的端口引脚未与单片机相连,所以函数暂未定义光感元件的各个引脚参数。当0832的函数得出光感元件检测到的环境光参数后,将其赋予主函数中预先定义的V中。通过对V的值进行函数中公式的运算,将参数值转化为环境光光亮程度。并将其输出到LCD液晶显示屏当中,并通过光亮值的比较选择是否点亮LED黄灯灯组。图1.7感光警示流程ADC元件根据时序进行选择数据输入端口,输入端口为CH1。unsignedcharadc_Conv(){uchar i;unsignedcharad_result1=0;adc_cs=0;//片选使能adc_di=1;_nop_();adc_clk=1;//第一个时钟脉冲_nop_();adc_clk=0;//选择通道DI输入10选择单通道,通道0adc_di=1;//第二个脉冲输入1,单端输入_nop_();adc_clk=1;_nop_();adc_clk=0;adc_di=0;//第三个脉冲输入0,单端通道0_nop_();adc_clk=1;_nop_();adc_clk=0;adc_di=1;//数据拉高,接受数据for(i=0;i<8;i++){adc_clk=1;_nop_();adc_clk=0;if(adc_do==1) ad_result1|=0x80>>i;}adc_cs=1;adc_clk=1;adc_di=1;return(ad_result1);}1.3.4声光警报流程声光警报函数将经单片机系统处理过的特定参数与预先设定好的阈值范围进行比较,并对实际情况进行报警。其中不同的阈值范围带有不同的报警参数。图1.8声光警报流程距离计算函数如下:voidConut(void){ time=TH0*256+TL0; TH0=0; TH0=0;//S=(time*1.7)/100; s=(time/58.0/100.0)*1000;//计算单位CM}

2.仿真调试与实物模拟2.1系统仿真2.1.1HEX文件的建立我们采用KEIL5软件来通过C语言来编写程序,不过输出的是.C后缀的文件。因为我们仿真采用的是PROTEUS,.C后缀的文件不能被PROTEUS软件所使用,此时我们需要点击一些选项来输出生成HEX文件。(1)先点击标题栏中的Project,选中OptionsforTarget。如图2.1图2.1生成HEX文件1(2)点击Output,勾选中CreateHEXFile,点击SelectFolderforObjects选择输出HEX文件的文件夹。如下图2.2图2.2生成HEX文件2(3)编译所写程序点击编译下载按键,等待程序编译完成。当BuildOutput窗口出现0Error(s),0Warning(s)。则表示程序编译成功,没有错误。图2.3编译下载图2.4编译完成2.1.2PROTEUS加载HEX文件PROTEUS通过双击单片机打开EditComponent界面,并在ProgramFile选项中选择之前KEIL输出的HEX文件,点击OK完成HEX文件的输入。之后,我们便可以通过PROTEUS进行程序的仿真运行,来验证程序的可行性,查看是否能对程序做出反应,完成所希望完成的目标。图2.5加载HEX文件2.1.3PROTEUS与KEIL4远程联调(1)将KEIL软件与PROTEUS软件经过上述要求设定好。因为KEIL软件无法与PROTEUS软件直接联调,所以我们在网上下载VDM51.dill插件。将文件移植到KEIL与PROTEUS软件的根目录下,并修改KEIL软件根目录下的TOOLS.INI文件。右键点击打开方式,选择TXT打开TOOLS.INI,在文件中添加TDRV10=BIN\VDM51.DLL("PROTEUSVSMMonitor-51Driver")。之后就可以完成联调设置了图2.6修改TOOLS.INI文件(2)KEIL软件选择打开OptionsforTarget界面,选定debug,点击Use并下拉选项选择PROTEUSVSMMonitor-51Driver单击settings。默认参数,单点OK退出。图2.7选择PROTEUSVSMMonitor-51Driver图2.8确定联调参数(3)选择PROTEUS的标题栏,点击debug选项,下拉选项菜单,勾选EnableRemoteDebugMonitor。返回KEIL软件界面,选择debug选项菜单,单击Start/StopdebugSession便可以进行KEIL与PROTEUS软件远程联调。图2.9PROTEUS软件设置图2.10KEIL软件设置图2.11KEIL联调成功图2.12PROTEUS联调成功2.1.4仿真结果演示联调完成之后点击Run运行程序,便可以看到PROTEUS软件做出反应。通过点击PROTEUS电路图传感器的按键中改变输入单片机中的环境参数,观察单片机是否符合设计要求。以下是仿真结果的展示:图2.13是测量距离大于距离预警的阈值,周围环境光的亮度低于2时,程序点亮LED黄色照明灯组;图2.14是测量距离大于距离预警的阈值,周围环境光的亮度高于2时,程序熄灭LED黄色灯组;图2.15是测量距离小于1M,环境光亮度小于2时,程序启动声光报警电路,蜂鸣器与LED警示红灯间歇启动,LED黄色照明灯组点亮;图2.16是测量距离小于1M,环境光亮度大于2时,程序启动声光报警电路,蜂鸣器与LED警示红灯间歇启动,LED黄色照明灯组熄灭。因为当测量距离大于0.5M小于1M时,系统反应现象与之前大致一样,只是蜂鸣器和LED红色示警灯鸣响与点亮的频率不一样,所以暂不展示。其中,液晶显示屏上半部分显示的是“测量距离”的拼音,下半部分左半边显示的是距离数值+单位(CM),右半边显示的是“光”的拼音加上光感元件实时检测的环境光的亮度。图2.13距离大于1M,,亮度小于2图2.14距离大于1M,亮度大于2图2.15距离小于0.5M,亮度小于2图2.16距离小于0.5M,亮度大于22.2系统仿真调试2.2.1程序烧录我们选用STC-ISP程序来进行单片机程序的烧录。首先我们先将单片机接入电脑的USB端口,然后打开STC-ISP程序,选择单片机型号为STC89C52RC/LE52RC,其余选项均是默认,其中串口号是电脑自动识别自动填入。在硬件选型中,我们勾选内部扩展RAM可用选项。随后点击打开程序文件,选择“超声波测距.HEX”文件,最后点击下载。其中单片机需要在点击下载之后立刻开启。图2.17STC-ISP程序烧录2.2.2实物调试单片机的烧录线连接在电脑的USB接口,作为电源线为单片机提供5V的直流电。图2.18距离为122CM,光亮度为2按照程序设定,当距离小于1M时蜂鸣器与LED模块中D2灯间歇启动;当距离小于0.5M时,蜂鸣器与D2灯以更快的频率闪烁。在实物中光亮度分为0-3一共四个阶段。0阶段是光亮度最亮的时候,1阶段比0阶段暗一点,以此

温馨提示

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

评论

0/150

提交评论