《毕业设计(论文)基于AT89S51单片机的超声波测距系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89S51单片机的超声波测距系统设计.doc(28页珍藏版)》请在三一办公上搜索。
1、摘 要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测,日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多中接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。 本设计主要应用AT89S51作为控制核心,显示器,驱动电路等相结合的系统。充分发挥了单片机的性能。其优点硬件电路简单,软件功能完善,控制系统可靠,具有一定的使用和参考价值。关键词:单片机;AT89S51;AbstractIn rec
2、ent years with the rapid development of technology, SCM applications are continually deepening, led the traditional control of the Crescent benefit update. In real-time detection and control of the MCU application systems, SCM is often as a core component to use, SCM is the main function of the comp
3、uter components are integrated in a chip micro-computer. It is a set of interfaces and multiple counts integrates microcontrollers, are widely used in industrial automation products and smart, and 51 is a microcontroller, the most typical and the most representative one. The main application AT89S51
4、 design as the core control, monitor, drive circuit and system integration. Give full play to the MCU performance. The advantage of simple circuit hardware, software, functional and reliable control system, the use and have some reference value.Keywords: SCM;AT89S51目 录引言 41 课题目标任务52 AT89S51芯片超声波简介62
5、.1 AT89S51芯片引脚结构 62.2 超声波简介 73 硬件设计 83.1 硬件电路 83.2 复位电路 83.3 显示电路 93.4 驱动电路 93.5硬件电路设计 94软件设计 104.1延时程序 104.2 74LS04反相器 104.3 中断系统 11 4.4 程序流程图135 系统调试 155.1输出扩展电路设计 155.2硬件调试165.3软件调试16设计的体会17致 谢18参考文献 19附图(1)超声波原理图附图(2)超声波单面PCB板图附录附录(3)AT89S51芯片主程序引 言随着大规模集成电路技术的发展,可以将CPU、RAM、ROM、定时器/计数器及输入/输出(I/O
6、)接口电路等主要计算机部件,集成在一块电路芯片上。这样所组成的芯片级的微型计算机称为单片微型计算机,简称为单片机。虽然单片机只是一个芯片,但从组成和功能上,它已具有了微机系统的含义。 由于单片机从功能和形态来说都是应控制领域应用的要求而诞生的,并且发展到新一代80s51、M68HC11、AT89S51、AT89S52,其中着力扩展了各种控制功能,更准确的反映单片机本质的叫法。 AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该
7、器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 89S51相对于89C51增加的新功能包括:新增加很多功能, 性能有了较大提升; ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能;工作频率为33MHz,大家都知道89S51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度;具有双工UART串行通道; 双
8、数据指示器;电源关闭标识;全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯;兼容性方面:向下完全兼容51全部字系列产品。比如8051、89S51等等早期MCS-51兼容产品。在89S51上一样可以照常运行,这就是所谓的向下兼容。 1 课题目标任务 (1)论文的主要内容11、本课题的总体介绍对水塔智能水位控制系统进行方案设计,相应的硬件电路和系统软件设计,并做出控制系统。12、工作内容1)完成水塔智能水位控制系统总体方案设计、电路设计。2)连接完整的硬件电路并能调试出正确的结果。13、课题的具体任务1)水塔智能水位控制系统基于单片机
9、控制,系统设计电路由输入脉冲电路、单片机、晶振和复位电路和控制电路等部分组成2)设计水塔水位的测试及显示系统,还有水位的控制系统.(2)论文的要求与数据1)、完成该课题必须重点研究单片机控制、脉冲电路、晶振和复位电路和键盘的使用等关键问题和理论;2)、研究方案的设计、研究方法和手段要合理,符合理论与实践的要求; 3)、水塔智能水位的控制系统首先要能正确检测水位并能正确显示,并有及时调整水位的功能.(3) 设计目的1)、进一步熟悉和掌握单片机的工作原理和结构功能,熟悉其基本的振荡和复位电路原理。2)、熟悉单片机I/O口的基本输入输出功能以及I/O口的扩展使用。3)、掌握单片机内部功能模块的应用:
10、如定时器、计数器、中断系统等。4)、掌握按键与单片机连接的使用以及数码管接口电路设计。5)、熟悉PCB板的布线、腐蚀和元器件的焊接的流程和方法,进一步掌握电路板的检测顺序和方法2 AT89S51芯片超声波简介AT89S51控制超声波信号的发送和接收,串行数据发送 ,及温度校正 采样频率的输入,并通过运算转换成温度数据,校正不同温度下,距离误差后,在LED上显示所测距的离厘米数据并和已输入的预置数进行比较, 如达到预置值则进行开或关的开关量信号输出.LED显示为动态循环显示,共阳极接法. DS18B20 在本电路中取得外界温度值, 以利于AT89S51的运算并校正不同温度下测距的回波数值以及在L
11、ED上显示实时环境的温度值.接收电路接收物体反射超声波回波信号,该芯片内部包括了前置放大,限幅放大,整形,输出数据信号以便MCU检测, 判断回波的数据正确与否及时差, 并计算出测距的距离数值.该板接收可预置超声波控制器,发送的1200BIT串行数据信号,直接用导线和超声波控制器 串口连接时,可传送几十米,如通过485串口发送可传送2千米以上。 2.1 AT89S51芯片的引脚结构 本次设计采用了常见的AT89S51单片机为核心处理器。AT89S51是一个低功耗,高性能CMOS 8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80S51引脚结构,
12、AT89S51具有40个引脚,4k Bytes Flash片内程序存储器,128 Bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。AT89S51单片机共有40个引脚,其引脚图如下: 图12.2 超声波简介由于超声波所具有的能量很大,就有可能使物质分子产生显著的声压作用、例如当水中通过一般强度的超声波时超声波流量计的基本原理及类型超声波在流动的流体中传播时就载上流体流速的信息。因此通过接收到的超声波就可以检测出流体的流速,从而换算成流量。根据检测
13、的方式,可分为传播速度差法、多普勒法、波束偏移法、噪声法及相关法等不同类型的超声波流量计。起声波流量计是近十几年来随着集成电路技术迅速发展才开始应用的一种 非接触式仪表,适于测量不易接触和观察的流体以及大管径流量。它与水位计联动可进行敞开水流的流量测量。使用超声波流量比不用在流体中安装测量元件故不会改变流体的流动状态,不产生附加阻力,仪表的安装及检修均可不影响生产管线运行因而是一种理想的节能型流量计。 众所周知,目前的工业流量测量普遍存在着大管径、大流量测量困难的问题,这是因为一般流量计随着测量管径的增大会带来制造和运输上的困难,造价提高、能损加大、安装不仅这些缺点,超声波流量计均可避免。因为
14、各类超声波流量计均可管外安装、非接触测流,仪表造价基本上与被测管道口径大小无关,而其它类型的流量计随着口径增加,造价大幅度增加,故口径越大超声波流量计比相同功能,其它类型流量计的功能价格比越优越。被认为是较好的大管流量测量仪表,多普勒法超声波流量计可测双相介质的流量,故可用于下水道及排污水等脏污流的测量。在发电厂中,用便携式超声波流量计测量水轮机进水量、汽轮机循环水量等大管径流量,比过去的皮脱管流速计方便得多。超声被流量汁也可用于气体测量。管径的适用范围从2cm到5m,从几米宽的明渠、暗渠到500m宽的河流都可适用。 另外,超声测量仪表的流量测量准确度几乎不受被测流体温度、压力、粘度、密度等参
15、数的影响,又可制成非接触及便携式测量仪表,故可解决其它类型仪表所难以测量的强腐蚀性、非导电性、放射性及易燃易爆介质的流量测量问题。超声波具有较好的指向性频率越高,指向性越强。这在诸如探伤和水下声通讯等应用场合是主要的考虑因素。频率高时,相应地波长将变短,因而波长可与传播超声波的试样材料的尺寸相比拟,甚至波长可远小于试样材料的尺寸这在厚度尺寸很小的测量应用中以及在高分辨率的探伤应用中是非常重要的。超声波用起来很安静,人们听不到它。这一点在高强度工作场合尤为重要。这些高强度的工作用可闻频率的声波来完成时往往更有效,然而遗憾的是,可闻声波工作时所产生的噪声令人难以忍受,有时甚至是对人体有害的。3 硬
16、件设计3.1 硬件电路该设计的硬件电路由主控部分(单片机AT89S51)、计时部分(实时时钟芯片DS1302)、显示部分(八段数码管)、电源部分(三端稳压器7805)4个部分组成。各部分之间相互协作,构成一个统一的有机整体,实现功能。各部分的硬件电路设计如下。3.2复位电路(1)单片机AT89S51作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有电阻的复位电路,复位电路可以有效的解决
17、电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。复位电路的设计图如图2示: 复位电路图2 (2)复位是单片机的初始化操作,使CPU及各专用存储器处于一个确定的初始状态,其中把PC的内容初始化为0000H,使单片机从0000H单元开始执行程序,除了系统的正常开机(上电)复位外,当程序运行出错或操作错误使系统处于死循环状态时,为摆脱困境,可按复位键进行复位,复位电路由片外和片内两部分电路组成。AT89S51的RST引脚为复位引脚,只要在RST引脚上出现两个机器周期以上的高电平,即可实现复位。复位通常有上电复位和按键复
18、位两种方法。本设计采用的是按键复位,当按下按键后,电容被短路,RST引脚就处于高电平,就可以达到复位的目的。电路如图3所示。图3复位电路3.3显示电路四段数码显示管有两种,一种是共阳极数码管,其内部是由八个阳极相连接的发光二极管组成;另一种是共阳极数码管,其内部是由四个阳极相连接的发光二极管组成。二者原理不同但功能相同。本设计的时间显示选用四个共阴极四段数码管LED,其外形和内部结构如图4所示: 显示电路 图43.4驱动电路而LED显示电路就像单片机系统的眼睛,实时地向人们传递着系统工作的各种状态信息和处理结果。因此,高效、方便的LED显示驱动电路是构成完善的单片机系统必不可少的元素。常用的L
19、ED显示驱动电路有并行译码方式、串行并行转换方式、显示驱动接口芯片方式等。 驱动电路图53.5硬件电路设计MCS-51系列单片机的并行I/O口:接口电路是微机必不可少的组成部分,并行输入确出接口是CPU和外部进行信息交换的主要通道。MSC51系列单片有4个8位并行双向I/O口P0P3,共32根I/O线。每一根线能独立用作输入或输出。单片机可以外接键盘、显示器等外围设备还可以进行系统扩展,以解决硬件资源不足问题。4个并行口都是双向口,既可以输入又可以输出。P0、P2口经常作外部扩展存储器时的数据、地址线,P3口除作I/O口外,每一根都有第二功能。这4个I/O口结构基本相同,但仍存在差别。P1口:
20、通道1,双向I/O口,本次设计连接按键,用语按键信号的输入4软件设计4.1延时程序延时程序延与 MCS - 51 执行指令的时间有关, 如果使用 6 MHz晶振, 一个机器周期为 2 s, 计算出一条指令以至一个循环所需要的执行时间, 给出相应的循环次数, 便能达到延时的目的。10 秒延时程序如下: DELAY: MOV R5, 100 DEL0: MOV R6, 200 DEL1: MOV R7, 248 DEL2: DJNZ R7, DEL2 DJNZ R6, DEL1 DJNZ R5, DEL0 RET 上例程序中采用了多重循环程序, 即在一个循环体中又包含了其它的循环程序, 这种方式是
21、实现延时程序的常用方法。 使用多重循环时, 必须注意: (1) 循环嵌套, 必须层次分明, 不允许产生内外层循环交叉。 (2) 外循环可以层层向内循环进入, 结束时由里往外层层退出。 (3) 内循环可以直接转入外循环, 实现一个循环由多个条件控制的循环结构方式。4.2 74LS04反相器,管脚图如附图所示。74LS04管脚图4.3 中断系统 4.3.1中断的概述程序执行过程中,容许外部或内部事件通过硬件打断程序的执行,使其转向为处理外部或内部事件的中断服务程序中去;完成中断服务程序后,CPU继续原来被打断的程序,这样的过程称为中断过程,4.3.2 中断响应的一般过程 (1) 在每条指令结束后,
22、 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。 (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。 4.3.3 80S51中有五个中断源 MCS - 51单片机有 5个(8052有 6个)中断源, 为了使每个中断源都能独立地被允许或禁止, 以便用户能灵活使用, CPU内部在每个中断信号的通道中设置了一个中断允许触发器, 它控制CPU能否响应中断。只有对应的中断允许触发器被使能(置“1”),相应的中断才能得到相应4.3.4 MCS51中断系统 MCS51中断系统结构框图4.3.5
23、中断系统的应用 例 1 单步操作的中断实现。 把一个外部中断(设为INT0)设置为电平激活方式。其中断服务程序的末尾写上如下几条指令: JNB P3.2, $ ; 在INT0变高前,原地等待(死循环) JB P3.2, $; 在 INT0变低前,原地等待(死循环) RETI ; 返回并执行一条指令现在,若INT0保持低电平, 且允许INT0中断, 则CPU就进入外部中断 0 服务程序, 由于有上述几条指令, 它就会停在 JNB处, 原地等待。当INT0 端出现一个正脉冲(由低到高, 再到低)时, 程序就会往下执行, 执行RETI后, 将返回主程序, 往下执行一条指令, 然后又立即响应中断,以等
24、待INT0端,出现的下一个正脉冲。 这样在INT0端每出现一个正脉冲, 主程序就执行一条指令, 实现了单步执行的目的, 要注意的是, 这个正脉冲的高电平持续时间不小于 2 个周期, 以确保 CPU能采集到高电平值。 4.4程序流程图 开始初始化单片机机设置中断检测按键数码管显示结束是否显示完? N 图4.1主程序流程图 是否有功能键按下? N关中断T0,开T1执行修改修改完毕开始 N开T0,关T1,正常计时结束图4.2 按键中断处理流程图N读该键状态有键按下否调用延时程序按键有效否键值处理键释放否?调用延时程序确定键释放键释放有效否一次按键完成按键功能处理开 始结 束、NYY确定键是否按下YN
25、NY4.3 软件去抖动流程图5系统调试5.1硬件电路设计MCS-51系列单片机的并行I/O口:接口电路是微机必不可少的组成部分,并行输入确出接口是CPU和外部进行信息交换的主要通道。MSC51系列单片有4个8位并行双向I/O口P0P3,共32根I/O线。每一根线能独立用作输入或输出。单片机可以外接键盘、显示器等外围设备还可以进行系统扩展,以解决硬件资源不足问题。4个并行口都是双向口,既可以输入又可以输出。P0、P2口经常作外部扩展存储器时的数据、地址线,P3口除作I/O口外,每一根都有第二功能。这4个I/O口结构基本相同,但仍存在差别。P1口:通道1,双向I/O口,本次设计连接按键,用语按键信
26、号的输入 5.2硬件调试基本电路板检查:根据前面的研究完成各个电路模块的原理设计并生成PCB图,制作电路板,进行实验调试。(1)检查印制板的印制线是否有断路,是否有毛刺,是否与其它线或是焊盘粘连,焊盘是否有脱落,过孔是否有未金属化现象等等。(2) 先用万用表复核目测中认为可疑的连接或是接点,检查它们的通短状态是否与设计规定相符。再检查各种电源线与地线之间是否有短路现象,如有再仔细检查出并排除。短路现象一定要在器件安装及加电前检查出。(3)路接通电源后,用手摸一下芯片是否发热,如果发热,立即关掉电源,稍后再进行再次检测;如果没有发热,再测试芯片的VCC端电压是否达到设计要求,接地端是否都接地。主
27、控模块调试:在本次设计中,主控模块是非常重要的部分,它不仅是本次设计的核心,在本次硬件调试中也遇到了问题,接上电源的时候,数码管不亮,没有任何显示,于是我做了如下的工作:(1)检查电源是否通电,发现指示灯亮着;(2)编程使P1为低电平,检查到P1输出为低;(3)检查P0口未接上拉电阻,接上数码管发亮了。5.3软件调试当硬件制作完成后,软件制作也是不可轻视的部分,是实现电路的功能的关键部分,通过本次毕业设计,总结经验如下:(1)先进行人工检查。写好程序后,不要立刻烧入单片机,先对纸面上的程序进行人工检查。由于采用C语言编程,所以要特别小心地检查语法错误,如括号不配对,漏写分号等,通过仔细的检查,
28、发现并排除这些错误。(2)人工检查无误后,上机调试。在编译时给出的语法错误的信息,根据提示的信息具体找出程序中错误之处并改之,从上至下逐一改正。应当注意的是:有的提示出错行并不是真正出错的行,如果在提示出错的行上找不到错误的话,则应该到上行再找。(3) 当确认程序无语法错误和逻辑错误时,通过直接下载到单片机来调试。采用的是自下到上的调试方法,即单独调好每一个模块,然后再连接成一个完整的系统调试。(4) 程序烧入单片机后,观察各个部件的工作是否正常,功能是否实现。如不能正常工作,则继续检查程序中的相应模块,必要时从上到下重新检查程序。设计的体会课程设计是培养学生综合运用所学知识,发现,提出,分析
29、和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。这次的毕业设计通过搜集单片机的相关资料和撰写论文对我来说是一次非常难得的锻炼机会,可以说已经囊括了大学期间大部分的知识,从选题到定稿,从理论到实践可以把所学的专业认识充分运用起来解决具体的问题,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,能够使所学知识融会贯通。对于我来说这不仅仅是一次毕业设计,更重要的是在学习的过程中提高了我学习的能力、解决问题的能力和实际工作的能力,这些技能和方
30、法都会对将来的工作有很大的帮助。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,至今我仍感慨颇多,可以说得是苦多于甜,但是可以学到很多很多的东西,通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的
31、正负极,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。超声波原理图:AT89S51芯片主程序:继电器控制为P3.0;水位高低控制为P3.7,P3.6 VOUT EQU P1.0 ; 红外脉冲输出端口;*;* 中断入口程序 *;*; ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH reti ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI ;*;* 主 程 序 *;*; START: MOV SP,#4FH MOV R0,#4
32、0H ;40H-43H为显示数据存放单元(40H为最高位) MOV R7,#0BH CLEARDISP: MOV R0,#00H INC R0 DJNZ R7,CLEARDISP MOV 20H,#00H MOV TMOD,#11H ;T1为 T0为16位定时器 MOV TH0,#00H ;65毫秒初值 MOV TL0,#00H MOV TH1,#00H MOV TL1,#00H MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH MOV R4,#04H ;超声波肪冲个数控制(为赋值的一半) SETB PX0 SETB ET1 SETB EA
33、 SETB TR1 ;开启测距定时器 start1: LCALL DISPLAY JNB 00H,START1 ;收到反射信号时标志位为1 CLR EA LCALL WORK ;计算距离子程序 lcall baojing clr EA MOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS) LOOP: LCALL DISPLAY DJNZ R2,LOOP CLR 00H setb et0 mov th0,00h mov tl0,00h SETB TR1 ;重新开启测距定时器 SETB EA SJMP Start1;*;* 中断程序* *;* ;T1中断,发超声波用 ;T1
34、中断,65毫秒中断一次INTT1: CLR EA CLR TR0 clr ex0 MOV TH0,#00H MOV TL0,#00H MOV TH1,#00H MOV TL1,#00H SETB ET0 SETB EA SETB TR0 ;启动计数器T0,用以计intt11: CPL VOUT ;40KHZ nop nop ; nop ; nop ; nop ; nop ; nop ; nop ; nop DJNZ R4,intt11 ;超声波发送完毕, MOV R4,#04H lcall delay_250 ;延时,避开发射的直达声波信号 SETB EX0 ;开启接收回波中断 RETIOUT: RETI;外中断0,收到回波时进入PINT0: nop jb p3.2,pint0_exit CLR TR0 ;关计数器 CLR EA ; CLR EX0 ; MOV 44H,TL0 ;将计数值移入处理单元 MOV 45H,TH0 ; mov th0,#00h mov tl0,#00h jnb p3.2,$ SETB 00H ;接收成功标志pint0_exit: RETI;*;* 显示程序 *;* DISPLAY: MOV