基于单片机的汽车倒车测距仪的设计---本科毕业论文.doc_第1页
基于单片机的汽车倒车测距仪的设计---本科毕业论文.doc_第2页
基于单片机的汽车倒车测距仪的设计---本科毕业论文.doc_第3页
基于单片机的汽车倒车测距仪的设计---本科毕业论文.doc_第4页
基于单片机的汽车倒车测距仪的设计---本科毕业论文.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文(设计) 题目:基于单片机的汽车倒车测距仪的设计 姓 名: 何 颖 学 号: 1242057115 专 业:电子信息科学与技术院 系: 电子通信工程 指导老师: 陈 业 慧 职称学位: 讲师/硕士 完成时间: 2016年5月 教务处制安徽新华学院2016届本科毕业论文(设计)安徽新华学院本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。 毕业论文(设计)作者签名: 日期: 基于单片机的汽车倒车测距仪的设计摘 要随着现在社会的科技水平与经济水平在不断发展,汽车基本上已经普及到家家户户,所以在汽车行驶过程中的倒车停车安全问题就被人们日渐重视起来。科技水平与人们生活水平的不断提高使得汽车的普及率逐年升高,汽车倒车测距仪的研究有着非常重要的意义。所以本设计主要研究辅助司机进行安全的倒车停车所使用的测距辅助仪器。由于在狭窄或者较为复杂的环境下倒车停车具有一定的危险性,所以本设计就这一问题进行研究与解决。本设计以STC89C52为主控芯片,使用超声波传感器来进行检测,当超声波传感器探测出与前方或者后方阻碍物体的距离后,传感器会反馈探测值给芯片,芯片会将传感器反馈的测量值与之前提前设定的预警值进行比较,当测量值小于设定值时,芯片会发出信号使蜂鸣器发出警报,同时在数码管显示出测量的具体距离。当测量值大于设定值,程序继续循环,蜂鸣器不发出警报,仅在数码管显示器上显示测量距离。本文主要是基于单片机就超声波辅助倒车测距仪进行设计,通过超声波探测,单片机控制报警系统进行实时预警,达到辅助司机倒车的作用。关键词:倒车测距;超声波传感器;STC89C52Reverse Range Finder Design Based on MCUAbstractWith the science and technology level and economic level of now society in constant development, auto basically has spread to every family, so in the process of car parking reversing safety problem is increasingly attention by people. With the constant improvement of the level of science and technology and peoples living standard, car penetration increases year by year, reverse range finder research has very important significance.So this design is mainly research assist drivers safe range used by reverse parking auxiliary equipment.Due to the narrow or more complex environment reverse parking has certain risk, so this design is to research and solve the issues. This design with STC89C52 as main control chip, using ultrasonic sensors to detect, when the ultrasonic sensors detect and front or rear obstacles to the distance of the object, the sensor will feedback detection values for chip, chip will be set in advance prior to the measured value of the sensor and the early warning value comparison, when the measured values is less than the set value, chip can make the buzzer sounded the alarm signal, at the same time in the digital tube display a specific distance measurement. When the measured value is greater than the set value, the program continues to cycle, buzzer alarm, not only displayed on the digital tube display distance measurement.This paper is based on single chip microcomputer the ultrasonic assisted astern rangefinder design, by ultrasonic detection, single-chip microcomputer control alarm system for real-time warning, to assist the driver astern. Keywords: Reverse Range;Ultrasonic Sensor;STC89C52I目 录1 绪 论12 设计方案确定22.1 设计原理32.2 设计任务和功能要求33 硬件设计43.1 单片机最小系统电路43.1.1 STC89C52单片机53.1.2 复位电路63.1.3 时钟电路63.2 电源设计73.3 超声波测试模块73.3.1 超声波传感器原理83.3.2 测距分析103.4 声音报警电路的设计113.5 显示模块124 倒车测距仪的软件设计134.1 软件工具介绍134.2 程序流程图144.2.1 主流程图程序设计144.2.2 超声波探测程序流程图155 调 试175.1 软件调试175.2 实物186 结 论21致 谢22参考文献23附 录241 绪 论由于当今社会的科技水平与经济水平不断发展,汽车基本上已经普及到家家户户,但是在某些特殊环境与情景下,汽车行驶会有一定的危险性,例如通过狭窄地区、在黑暗条件下倒车等,所以汽车行驶中的倒车停车等安全问题就日渐被重视起来。本设计就是为了满足那些开车司机安全方便的倒车停车需求而设计的倒车辅助测距仪器。虽然最终设计成果相对于市面上所购买的倒车测距仪器在精准度上面有所不足,但是使用成本更为低廉,而且操作十分方便,仪器小巧玲珑,便于携带,耗能低。当测量距离低于警报值时,立刻发出警报信号,并且在数码管上实时显示测量距离,一目了然。目前市面上能购买的倒车测距仪主要有:激光检测、红外线检测和超声波检测。但是因为超声波检测有着比其余检测方式有着以下优点:(一)更加迅速、便利和易于做到实时管理等优点,并且在测量精度方面也比较高。(二)超声波检测是一种非接触检测性技术,不需要接触检测物体,这样就不会遭到光线、被测对象形状色彩等其他因素的影响。(三)超声波检测比其余检测仪器更加环保,更耐恶劣天气环境,具备少维护、无污染、较牢靠、长寿命等特点。(四)超声波检测的指向性强,检测时能量耗费较为缓慢,并且在介质中传播的距离较远,所以超声波经常用于距离的测量。同时因为单片机有着高集成度、系统简单、实现模块化和高可靠性等优点,所以本设计就是采用基于单片机的超声波传感器倒车测距仪1。2 设计方案确定现在使用最为广泛的几种测距方式主要有三种:激光测距,红外线测距和超声波测距。所以本设计对三种测距方案分别进行了分析:方案一:激光测距是利用激光对与目标距离进行测量,测距仪发射激光,然后接受反射光,计时器记录所需时间,然后得出距离。激光测距目前最为普遍,但是由于成本高,较复杂,所以本设计并不考虑。方案二:红外线测距是利用红外线传播的不扩散原理,一般适用于远距离测距,所以本设计也不考虑。方案三:超声波测距是根据超声波遇到障碍物反射回来的特性进行测距,超声波发射器发出超声波,同时计时器开始计时,超声波遇到障碍物体反射,接收器接收到反射波,计时器停止计时,由计时器记录时间可以算出距离。因为超声波测距在短距离测距的精度能达到一定标准,成本较低,设计难度适中,所以本设计决定采用超声波测距。本设计采用较为主流的单片机STC89C52作为主控芯片,去控制超声波模块2。其系统组成框图如图2.1所示。图2.1 系统组成框图系统中主要由STC89C52单片机、超声波传感器模块、数码管显示模块、电源模块、蜂鸣器报警模块等模块所构成的一个倒车测距系统。2.1 设计原理倒车测距仪是一种司机广泛使用的安全辅助装置,它通过发出声音或视觉信息告知驾驶员周围障碍物,使司机发现停车和起动车辆时的安全问题,提高驾驶的安全性。如今市场上的倒车测距仪大部分都是利用超声波测距原理,在控制器的控制下,通过超声波传感器发射超声波信号,当遇到障碍物体时,超声波发生反射,然后传感器接受到反射回来的超声波,控制器进行数据处理,确定与障碍物之间的距离,并且通过数码管实时显示,当距离小于预警值时,报警电路发出声音或者其他警告信号,使得司机在倒车、行驶时做到心中有数,出行更加安全、方便。 本设计成品主要在以下场景使用:当司机因为环境等其他因素干扰下进行倒车停车时,因为存在一定风险,这时候可以通过倒车测距仪获得与障碍物之间的距离,从而做到安全的行驶。2.2 设计任务和功能要求基于单片机的汽车倒车测距仪的设计要求如下: (1)利用超声波传感器进行报警信号的采集; (2)当距离值小于预警值,声音报警电路发出声音预警; (3)通过显示模块实时在数码管上显示与障碍物的距离; (4)可以通过按键模块对预警值进行调整。3 硬件设计本系统硬件主要包括:STC89C52单片机最小系统、超声波传感器模块、数码管显示模块、电源模块、蜂鸣器报警模块等模块所构成的一个倒车测距系统,整体电路图如图3.1所示。图3.1 总设计电路图3.1 单片机最小系统电路在目前市场上,51系列单片机使用十分广泛,因为其内部资源和接口较少,价格低廉,其功能基本上可以完成设计需求,所以本设计采用了STC89C52单片机作为设计的主控制芯片3。单片机最小系统包括单片机、时钟电路、复位电路构成。图3.2是单片机最小系统电路图。图3.2 单片机最小系统3.1.1 STC89C52单片机STC89C52是8位微控制器,内部集成了8K字节的Flash存储器,优点是高性能、低功耗。其处理器是由STC公司推出,与之前的Intel公司推出的8051微处理器的指令和引脚完全兼容,因此单片机的可移植性也非常好4。其单片机的内部资源主要有:(1) 8位CPU; (2) 8KB程序存储器(ROM);(3) 256字节的数据存储器(RAM);(4)32条I/O口线;(5) 111条指令,大部分为单字节指令; (6) 21个专用寄存器;(7) 3个可编程定时/计数器;(8) 6个中断源,2个优先级;(9) 1个全双工串行通信口;(10) 外部数据存储器寻址空间为64KB。图3.3 STC89C52单片机引脚图3.1.2 复位电路本设计使用人工按键复位。复位电路是用一个电容与一个电阻串联,在电容两端并联一个按键组成,电容接VCC,电阻接地,RESET脚接在它们中间,当按下按键时,电路自动复位。如图3.4为复位电路。图3.4 复位电路图3.1.3 时钟电路本设计采用内部时钟方式,单片机内部有一个用于构成振荡器的高增益反相放大器,输出端为XTAL1,输入端为XTAL2。在两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器5。晶体振荡器频率选择12MHz的石英晶体。如图3.5为时钟电路。图3.5 时钟电路图3.2 电源设计电源采用了6脚自锁开关。P2为电源盒接口或者USB输入接口。在本设计中同时采用了两种供电方式,使得实物使用更加方便。图3.6为电源接口电路。图3.6 电源接口电路3.3 超声波测试模块超声波模块包含超声波发射器、超声波接收器与控制电路。它的基本工作原理:采用I/O 口TRIG 触发测距,控制电路给超声波发射器发信号,发射器发出超声波探测,然后系统自动检测接收器是否接收到返回信号,当有信号返回,通过输出端口输出信号,信号显示就是超声波从发射到返回的时间。通过公式 测试距离=(时间*声速)/2,声速为340m/s.单片机运算得到与障碍物间距离6。如图3.7(a)是超声波传感器实物,振动器被固定在金属底座上,谐振器的外观呈喇叭形,喇叭形可以有效地辐射产生的超声波,让超声波聚集在振动器的中央部位,减少传播的消耗等,使得测量结果更加精确。图3.7(b)是超声波接口电路图,其中1脚接VCC供5V电源,4脚接地,TRIG接单片机P3.2引脚触发控制信号输入,ECHO接单片机P3.3引脚回响信号输出。 (a) 超声波实物 (b) 超声波接口电路图3.7 超声波模块3.3.1 超声波传感器原理超声波的定义:人耳听觉的频率极限是20000赫兹,当声音的频率高到超过这个极限时,人耳就接收不到这种声音,这种高频率的声音就是“超”声。图3.8是人的听觉范围。图3.8 人的听觉范围 超声波传感器的工作原理是当电压作用于压电陶瓷时,就会随电压和频率的变化产生机械变形。相反,当振动压电陶瓷时,就会产生一个电荷。所以当给由两片压电陶瓷或一片压电陶瓷和一个金属片构成的振动器,施加一个电信号时,就会因弯曲振动发射出超声波。相反,当向双压电晶片元件施加超声振动时,就会产生一个电信号7。超声波有以下基本特性:(1)波长表示波的传播速度用频率乘以波长。电磁波的传播速度是3108m/s,声波在空气中的传播速度约为344m/s (20时)。因为声波传播速度比较低,而且波长很短,所以可以获得较高的距离和方向分辨率。因为这种较高的分辨率特性,所以我们一般进行测量时都会获得较高的精确度。(2)反射超声波能够通过在物体上得到反射来探测物体是否存在。我们可以很容易地发现木材、金属,混凝土、橡胶等物体,因为它们可以反射近乎100的超声波。而像布、棉花、绒毛等物体,很难利用超声波探测到它们,因为它们会吸收超声波。同时,很难探测到凹凸表面以及斜坡表面的物体,这是由于不规则反射。以上因素决定了超声波检测的局限性是空旷场地,并且测试物体要能够反射超声波8。(3) 温度效应温度对声音传播速度会有很大影响,c=331.5+0.607t (m/s),t是检测温度 (),这是反应声波传播速度与温度之间关系的数学公式。所以,要准确的测量出与某个物体之间的距离时,同时也要检测当时的温度,当检测时温度变化非常大的情况下,会使这次超声波测距的结果产生很大的误差。但是因为本设计的测试环境是在室内进行,并且要求的测距结果并不是非常精确,所以在本设计中,忽略温度对测距结果的影响。(4) 衰减 由于衍射现象与空气等介质的影响,所以传播在空气中的超声波强度会随着传播的距离成比例地不停减弱。如图3.9所示,超声波的频率越高,衰减率也就越高,所以超声波的传播距离也就越短,对测试精度有一定影响。图3.9 声压在不同距离下的衰减特性通过对超声波传感器的研究学习,超声波传感器工作在40KHz范围内具有最大的声压级和最高的灵敏度。3.3.2 测距分析超声波测距的原理是:超声波发射器发出超声波,同时开始计时,超声波遇到障碍物体产生反射波,超声波接收器接收到反射波,同时计时停止。因为超声波在空气中的传播速度是340m/s,由计时器上面的时间t,就可以由公式s=340t/2计算出超声波发射器距离障碍物体之间的距离9。 由于在本设计中,测试主要在室内进行,所以忽视温度对超声波在空气中传播速度的影响,默认超声波的传播速度不变。而在某些高精度测量中也能够使用温度补偿的办法对测量结果进行数值校正,减小误差。如图3.10所示。图3.10 超声波的测距原理 (3-1) (3-2)式中:L:两探头之间中心距离的一半。又知道超声波传播的距离为: (3-3)式中:v:超声波的传播速度; T:从反射超声波到收到反射波的时间。将(3-2)式、(3-3)式代入(3-1)式中得: (3-4)其中,因为本设计中忽视温度对超声波的传播速度的影响,所以默认v是定值。因为我们需要测量的距离H肯定是远远大于L的,则(3-4)式变为: (3-5) 所以,在实际测量中,我们只需要测量出发出超声波到接收反射波的时间t,就可以得出超声波传感器到障碍物体的距离H10。3.4 声音报警电路的设计将蜂鸣器B1、电阻R13和三极管Q5接到单片机的P2.0引脚上,构成了本设计的声音报警电路。因为三极管Q5是PNP型,发射极接VCC,集电极接蜂鸣器,单片机P2.0口接三极管Q5的基级,只有当它为低电平时,三极管Q5导通,此时集电极为高电平,蜂鸣器报警。声音报警电路图如图3.11所示。图3.11 声音报警电路图3.5 显示模块数码管是常用的显示器件。为了准确表示实际测量距离,本设计显示模块采用了共阳四位七段数码管显示接口电路11。因为本设计显示位数较多,而静态显示占用的I/O口多,所以本设计采用了数码管动态显示。在电路中,将所有显示器的段码线的相应段并联在一起,由一个8位I/O端口控制,各显示位的公共端经电阻、三极管接到单片机的其他I/O端口进行单独控制9。因为数码管为共阳极,当单片机引脚为低电平时,三极管为导通状态,数码管内部相应的二极管被点亮,相应的段显示。所以要在数码管显示不同的字符,只需将该字符的二进制代码加到各段上即可12。图3.12为数码管电路。图3.12 数码管电路4 倒车测距仪的软件设计本节将介绍在本系统设计中所涉及的软件工具和程序流程图的原理及编程思路。使用的软件工具有Keil Vision4编程工具和Protel 99SE绘制原理图工具。程序流程图主要介绍主程序流程图和部分流程图。4.1 软件工具介绍(1) Keil Vision4编程工具介绍Keil开发软件工具是由ARM公司创建,是用来开发微控制器的嵌入式应用程序。它适合不同层次的开发者使用。其中MDK系列包含了工业标准的KeilC编译器、调试器、宏汇编器等组件,基本上可以支持所有基于ARM的控制器,能帮助设计者完成相应的项目。使用Keil软件开发工具也可以创建XC16x、C16x、ST10、251以及8051等微处理器的嵌入式应用13。Keil软件页面如图4.1所示。图4.1 keil软件页面在使用KeilVision 4作为单片机开发工具,其开发的流程与其他开发软件工具基本一样,一般分为以下几步: 新建一个工程,从设备库中选择目标芯片,配置工程编译器环境; 用C或汇编编写源文件; 编译目标应用程序; 修改源程序中的错误; 测试链接应用程序。(2) Protel 99SE绘制原理图工具绘制原理图软件有很多种类型, 但在这么多的类型中最经典的依然是Protel 99SE的绘图工具。无论在各大小公司,还是在学校,大部分用的还是以Protel 99SE为主。其使用简单、易于学习、功能强大14。Protel 99SE软件界面如图4.2所示。图4.2 Protel 99SE软件用Protel 99SE绘制原理图步骤如下: 设计图纸大小; 设置Protel 99SE/Schematic设计环境; 旋转零件或制作元件、原理图布线; 调整线路和加以注释; 报表输出和保存。4.2 程序流程图4.2.1 主流程图程序设计当系统启动时,首先系统开始初始化,然后单片机将超声波传感器测得的与障碍物距离和设置的预警值进行比较,当测量值小于预警值,单片机控制报警电路发出警报,然后系统通过实时测距和将测量值与预警值的比较决定是否停止报警。通过对本设计的硬件结构分析和工作原理,可以画出系统主程序工作流程图,主程序工作流程图如图4.3所示。图4.3 主程序工作流程图4.2.2 超声波探测程序流程图当系统启动时,关闭定时器,并将计时器清零,然后超声波传感器发出超声波,ECHO端口低电平,同时使计时器启动,系统开始计时。当超声波遇到障碍物时产生反射波,此时超声波接收器接收到反射波,使ECHO端口产生低电平,同时计时器关闭。为了消除误差,计时器时间必须大于1470us时此次探测过程才有效。图4.4为超声波探测程序流程图。图4.4 超声波探测程序流程图5 调 试系统调试包括硬件调试和软件调试。硬件调试主要是通过身边的万用表对焊接的电路进行各参数测试。对于软件调试,主要是通过Keil软件进行调试,观察变量在寄存器里值的变化。当软件编写完成(即没有编译的警告和错误的提示为止)时,可以将编写好的目标程序烧写到单片机里,然后将单片机放到所焊接的电路板上,通过观察硬件的实验现象,将烧写的程序从头分析一遍,看看是否符合硬件的现象,这样以软硬件结合的调试方法,其调试的效率最高15。5.1 软件调试Keil调试界面:在编写程序时,经常用到Keil的调试。当在程序中想查看程序的执行情况以及某个变量值的变化,都可以进行调试,在这里用到的调试界面如图5.1所示。图5.1 Keil调试页面然后用Protel 99SE软件绘制原理图,其PCB图如图5.2所示。图5.2 PCB仿真图5.2 实物焊接与调试软件编译并调试成功后,可完成实物焊接与调试。表5-1是本设计的元器件清单,图5.3是本设计使用的元器件实物。表5-1 元器件清单注释类型指示器数量10K电阻R14110uF电容C1112M晶振Y11D指示灯发光二极管D11DS04数码管DS11sw-灰色 开关SW11U1单片机U11蜂鸣器蜂鸣器B119012三极管Q5120电容C2, C32Header 4超声波接口P11SW-PB按键S1, S2, S3, S449012三极管Q1, Q2, Q3, Q442K电阻R4, R5, R6, R7, R13, R1561K电阻R1, R2, R3, R8, R9, R10, R11, R128图5.3 元器件实物拿到元件之后,本设计进入焊接阶段。已经做好的实物图如图5.4所示。图5.4 实物图当实物调试时,进行距离测量时效果图如图5.5所示。图5.5 测量时效果图6 结 论 本设计的题目是基于单片机的倒车测距仪,通过在网上等各种渠道查询相关的资料,已及前人的设计,从三套不同的方案里面确定了设计的最终方案,使用超声波传感器为测距方式,STC89C52为单片机芯片。设计方案使用我们较为熟悉的STC89C52单片机为工作处理器核心,超声波传感器进行检测。从仿真、焊接,到最终的实物调试中,遇到的困难问题很多。首先在方案选择上,因为平时对超声波的接触比较少,对它工作的原理都比较陌生。然后是在硬件软件仿真上,本来想增加一些其他功能,但是也由于时间等要素也没有完成。所以最终完成的设计成品功能较少,比较单一。最后在实物焊接中,由于较长时间没有进行过实物焊接,在元器件的排版与模块的位置选择上面并不合理,对完成焊接造成了许多不必要的困难。面包板的背面跳线过多,容易短路,出现问题了也不方便进行排查与修改。看起来不也是十分雅观。由于总体设计的时间比较紧张,有着实物焊接与论文的撰写,任务也比较重,本设计其实还有着很大的改进空间。比如可以增加很多其他功能,例如万年历功能、温度显示功能等。还可以提高测量精度,减小温度等其他因素对测量结果的影响。还有就是美观,在焊接前先想好思路,进行合理的排版。随着科技水平的不断发展,人们的追求也越来越多,越来越高,所以在设计时也要同时考虑人们的其他需求,让设计成果更具实用性。致 谢首先,我要感谢我的指导老师陈业慧老师,陈老师耐心的给我讲解所遇到的问题,帮助我修改毕业论文,在身体不适的情况下依旧坚持给我们帮助。然后我要感谢我的授课老师们,他们在大学四年教会了我很多很多,让我从刚刚进入大学生活走到了如今即将进入社会。老师们的细心教导和倾囊相授让我感受到了如同家人的关怀,在这里,我想对老师们说:您辛苦了!其次,我要感谢帮助过我的同学与朋友。他们在我遇到困难时给了我很多非常有用的建议与方案,对我完成毕业设计提供了非常大的帮助。最后,我要感谢我的父母,他们养育了我,给我良好的生活与学习环境,让我有机会学习到这么多知识。虽然毕业设计的制作与论文的书写十分的繁琐与困难,但是这是我四年大学生活完美的句号。就像烟火在灿烂中谢幕,我的大学生活也在轰轰烈烈的论文与毕设中走向了终点。在这次毕设的过程中,将我大学生涯的所学进行了一个回顾与温习,同时学以致用,加强了动手能力么,让我受益匪浅。参考文献1 张毅刚.单片机原理及应用 M. 北京:高等教育出版社,20122 肖看,李群芳.单片机原理、接口及应用M.北京:清华大学出版社,2010.3 杨居义.单片机课程设计指导M.北京:清华大学出版社,2010.4 郭天祥. 新概念51单片机C语言教程 M. 北京:电子工业出版社,20095 王东峰.单片机C语言应用100例M.北京:电子工业出版社,20096 祝敏.超声波测距误差分析及修正方法M.北京:电子工业出版社,20097 刘爱华,满宝元. 传感器原理与应用技术M. 北京:人民邮电出版社,20108 戴佳,戴卫恒,刘博文. 51单片机C语言程序设计与实例精讲(第二版) M北京:电子工业出版社,20089 唐桃波, 陈玉林. 基于AT89C51的智能无线安防报警器 J. 电子设计应用, 2003.5(6): 4951.10 李全利. 单片机原理及接口技术M. 北京: 北京航空航天大学出版社, 2008.11 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用M. 西安: 西安交通大学出版社, 2005.12 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计M. 北京: 北京航空航天大学出版社, 2006.13 康华光. 电子技术基础(模拟部分)M. 北京: 高等教育出版社, 2014.14 郭勇,董志刚. Protel 99 SE印制电路板设计教程M. 北京:机械工业出版社,201115 王国明,单片机应用与调试(C语言版)M北京:机械工业出版社,2013附 录附件1:原理图附件2:源程序#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include #include eeprom52.h/数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0, 0x60,0x25,0x39,0x26,0x31,0x71,0xff; /断码uchar dis_smg8 =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;/数码管位选定义sbit smg_we1 = P34; /数码管位选定义sbit smg_we2 = P35;sbit smg_we3 = P36;sbit smg_we4 = P37;sbit c_send = P32;/超声波发射sbit c_recive = P33;/超声波接收sbit beep = P23; /蜂鸣器IO口定义uchar smg_i = 3; /显示数码管的个位数bit flag_300ms ;long distance; /距离uint set_d; /距离uchar flag_csb_juli; /超声波超出量程uint flag_time0; /用来保存定时器0的时候的uchar menu_1; /菜单设计的变量/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*处理距离函数*/void smg_display()dis_smg0 = smg_dudistance % 10;dis_smg1 = smg_dudistance / 10 % 10;dis_smg2 = smg_dudistance / 100 % 10 & 0xdf; ;/*把数据保存到单片机内部eeprom中*/void write_eeprom()SectorErase(0x2000);byte_write(0x2000, set_d % 256);byte_write(0x2001, set_d / 256);byte_write(0x2058, a_a);/*把数据从单片机内部eeprom中读出来*/void read_eeprom()set_d = byte_read(0x2001);set_d = 2)menu_1 = 0;smg_i = 3;/只显示3位数码管 if(menu_1 = 1)smg_i = 4; /只显示4位数码管 if(menu_1 = 1)/设置报警if(key_can = 2)set_d + ;/加1if(set_d 400)set_d = 400;if(key_can = 3)set_d - ;/减1if(set_d = 1)set_d = 1;dis_smg0 = smg_duset_d % 10; /取小数显示dis_smg1 = smg_duset_d / 10 % 10 ; /取个位显示dis_smg2 = smg_duset_d / 100 % 10 & 0xdf ; /取十位显示dis_smg3 = 0x60; /awrite_eeprom(); /保存数据 /*报警函数*/void clock_h_l()static uchar value;if(distance = 2)beep = beep; /蜂鸣器报警else value = 0; beep = 1;/取消报警/*数码位选函数*/void smg_we_switch(uchar i)switch(i)case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break;case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; brea

温馨提示

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

评论

0/150

提交评论