还剩56页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
超声波测距电路设计摘要随着单片机技术的发展,各种控制系统都趋向于自动化以单片机为核心的控制系统体积小、功能强、价格低,因而在众多领域得到广泛应用,并显示出广阔前景论文介绍了一种运用单片机和CX20106A组成的超声波测距系统本设计主要以STC89C51作为控制核心,包括键盘输入模块,超声波发射模块,超声波接收模块(CX20106A),数码管显示模块,报警模块主要实现超声波测距并显示功能,依据实际的测量精度要求还可以添加温度补偿电路本系统成本低廉,功能实用硬件系统具有良好的性能,且由于构成系统的器件应用普遍,便于维护因此,本设计具有较强的性价比及实用性关键词 STC89C51;CX20106A;超声波发射模块;超声波接收模块;LED显示电路AbstractAlongwiththemonolithicintegratedcircuittechnologydevelopmenteachkindofcontrolsystemalltendstotheautomation.Bythemonolithicintegratedcircuitforthecorecontrolsystemvolumesmallthefunctionstrongthepriceislowthusobtainsthewidespreadapplicationinthemultitudinousdomainanddemonstratesthebroadprospect.ThisdesignisbasedmainlyonSTC89C51chipcoreultrasonicrangefinderandaultrasonicprocessingmoduleCX20106ACD4069composedofultrasonictransmitterdigitaldisplaydevicessuchascompositionincludingtheSCMsystemultrasonictransmitterandultrasonicreceivercircuitMCUResetcircuitLEDdisplaycircuit.UltrasonicDistanceanddirectiontoachievethemainfunctionality.Basedontheactualmeasurementaccuracycanalsoaddtemperaturecompensationcircuit.Thesystemcostfunctionalandpractical.Hardwaresystemhasgoodperformanceandconstituteasystemofdeviceapplicationsasuniversaleasymaintenance.Thereforethisdesignhasastrongcost-effectiveandpractical.Keywords:stc89c51;CX20106A;ultrasonicemissionofultrasonicreceiver;LEDdisplaycircuit;目录TOC\o1-3\h\z\u摘要IAbstractII目录III1绪论
11.1课题意义
11.2单片机发展历史12超声波测距仪系统的硬件和软件的功能分析
32.1超声波测距的设计原理论证
32.
1.1超声波测距仪的设计思路
32.
1.2超声波测距原理
32.
1.3超声波测距仪原理框图
42.2电超声波测距仪系统的软件方案论证53超声波测距仪系统的硬件设计
63.1STC89C51简介
63.2数码管显示的设计
123.
2.1八位7段数码管工作原理
123.3超声波发射电路模块设计
133.4超声波接收电路模块设计
143.
4.1超声波接收电路设计原理
143.
4.2CX20106A154超声波测距系统的软件设计
174.1程序的总体设计
174.
1.1主程序设计
174.240KHZ脉冲的产生与超声波发射
184.3显示子程序和蜂鸣报警子程序设计205超声波测距仪调试与测试
215.1调试
215.
1.1硬件调试
215.
1.2软件调试23结论25结束语26致谢27参考文献28附录I——程序源码29附录II——电路原理图481绪论
1.1课题意义随着科学技术的快速发展,超声波在测距仪中的应用越来越广但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境无庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力在新的世纪里,面貌一新的测距仪将发挥更大的作用因此,设计好的超声波测距仪就显得非常重要了这就是我设计超声波测距仪的意义
1.2单片机发展历史目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展下面是单片机的主要发展趋势由于CHMOS技术的进入,大大地促进了单片机的CMOS化CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态这也是今后以80C51取代8051为标准MCU芯片的原因因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产CMOS电路的特点是低功耗、高密度、低速度、低价格采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MOS)和CHMOS工艺CHMOS和HMOS工艺的结合目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路因而,在单片机领域CMOS正在逐渐取代TTL电路低功耗化,单片机的功耗已从Ma级,甚至1uA以下;使用电压在3~6V之间,完全适应电池工作低功耗化的效应不仅是功耗低,而且带来了产品的高可靠性、高抗干扰能力以及产品的便携化低电压化,几乎所有的单片机都有WAIT、STOP等省电运行方式允许使用的电压范围越来越宽,一般在3~6V范围内工作低电压供电的单片机电源下限已可达1~2V目前
0.8V供电的单片机已经问世低噪声与高可靠性为提高单片机的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片厂家在单片机内部电路中都采用了新的技术措施大容量化,以往单片机内的ROM为1KB~4KB,RAM为64~128B但在需要复杂控制的场合,该存储容量是不够的,必须进行外接扩充为了适应这种领域的要求,须运用新的工艺,使片内存储器大容量化目前,单片机内ROM最大可达64KB,RAM最大为2KB高性能化,主要是指进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性采用精简指令集(RISC)结构和流水线技术,可以大幅度提高运行速度现指令速度最高者已达100MIPS(MillionInstructionPerSeconds,即兆指令每秒),并加强了位处理功能、中断和定时控制功能这类单片机的运算速度比标准的单片机高出10倍以上由于这类单片机有极高的指令速度,就可以用软件模拟其I/O功能,由此引入了虚拟外设的新概念随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS–51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列80C51单片机已成为单片机发展的主流专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU2超声波测距仪系统的硬件和软件的功能分析
2.1超声波测距的设计原理论证
2.
1.1超声波测距仪的设计思路超声波是指频率高于20KHz的机械波为了以超声波作为检测手段,必须产生超生波和接收超声波完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号超声波测距的原理一般采用渡越时间法TOF(timeofflight)首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量因为超声波在标准空气中的传播速度为
331.45米/秒,由单片机负责计时,单片机使用
12.0MHZ晶振,所以此系统的测量精度理论上可以达到毫米级由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求超声波发生器可以分为两类一类是用电气方式产生超声波,一类是用机械方式产生超声波本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现
2.
1.2超声波测距原理发射器发出的超声波以速度υ在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下的声速在使用时,如果温度变化不大,则可认为声速是基本不变的如果测距精度要求很高,则应通过温度补偿的方法加以校正表1超声波波速与温度的关系表温度(℃)-30-20-100102030100声速(m/s)
3133193253233383443493862.
1.3超声波测距仪原理框图根据设计要求并综合各方面因素,可以采用STC89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如图
2.
1.�STC89C51LED显示超声波接收�超声波发送扫描驱动�图
2.1超声波测距仪原理框图
2.2电超声波测距仪系统的软件方案论证根据超声波测距仪系统的功能要求,设计要分为5个模块键盘输入模块,超声波发射模块,超声波接收模块,数码管显示模块,报警模块超声波测距仪系统模块键盘输入模块超声波接收模块超声波发射模块显示模块报警模块图
2.2超声波测距仪系统模块
1.键盘输入模块系统出现错误时,需要手按下键盘将其复位,从而使的程序重新开始运作
2.报警模块当电路所测的距离小于设计的安全距离时,报警模块会发出声光报警信号
3.显示模块显示模块能时刻显示电路所测的距离,从而起直观的观察所测的距离
4.超声波发射模块根据系统的设置,超声波发射模块会按照预定的时间间隔进行超声波的发射
5.超声波接收模块当超声波被所测的物体遮挡,超声波会被反射回来时,超声波接收模块会将其接收,用发射与接收的时间差进行计算所测距离3超声波测距仪系统的硬件设计硬件设计部分是超声波测距仪系统设计的基础,硬件的电路设计及相关硬件的知识是本章叙述的重点除此之外,以下部分还会分别阐述本设计运用到的各个模块的特性和原理,以及所能实现的功能
3.1STC89C51简介STC89C51是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C51单片机可为您提供许多较复杂系统控制应用场合STC89C51有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C51可以按照常规方法进行编程,但不可以在线编程S系列的才支持在线编程其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本STC89C51有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求主要功能特性 ·兼容MCS51指令系统·8k可反复擦写1000次)FlashROM ·32个双向I/O口·256x8bit内部RAM ·3个16位可编程定时/计数器中断·时钟频率0-24MHz ·2个串行中断·可编程UART串行通道 ·2个外部中断源·共6个中断源 ·2个读写中断口线·3级加密位 ·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能STC89C51各引脚功能及管脚电压概述STC89C51为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等主要管脚有XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻P1口P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流与AT89C51不同之处是,P
1.0和P
1.1还可分别作为定时/计数器2的外部计数输入(P
1.0/T2)和输入(P
1.1/T2EX),参见表2Flash编程和程序校验期间,P1接收低8位地址表2为P
1.0和P
1.1的第二功能 表2引脚及功能特性引脚号功能特性P
1.0T2,时钟输出P
1.1T2EX(定时/计数器2)P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流IIL在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容Flash编程或校验时,P2亦接收高位地址和一些控制信号P3口P3口是一组带有内部上拉电阻的8位双向I/O口P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口此时,被外部拉低的P3口将用上拉电阻输出电流P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号RST复位输入当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作该位置位后,只有一条MOVX和MOVC指令才能将ALE激活此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲在此期间,当访问外部数据存储器,将跳过两次PSEN信号EA/VPP外部访问允许欲使CPU仅访问外部程序存储器,EA端必须保持低电平(接地)需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压VppXTAL1振荡器反相放大器的及内部时钟发生器的输入端XTAL2振荡器反相放大器的输出端定时器0和定时器1STC89C52的定时器0和定时器1的工作方式与AT89C51相同定时器2定时器2是一个16位定时/计数器它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON(如表3)的C/T2位选择定时器2有三种工作方式捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进行采样若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1期间寄存器加1由于识别1至0的跳变需要2个机器周期(24个振荡周期),因此,最高计数速率为振荡频率的1/24为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次捕获方式在捕获方式下,通过T2CON控制位EXEN2来选择两种方式如果EXEN2=0,定时器2是一个16位定时器或计数器,计数溢出时,对T2CON的溢出标志TF2置位,同时激活中断如果EXEN2=1,定时器2完成相同的操作,而当T2EX引脚外部输入信号发生1至0负跳变时,也出现TH2和TL2中的值分别被捕获到RCAP2H和RCAP2L中另外,T2EX引脚信号的跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2也会激活中断捕获方式如图4所示自动重装载(向上或向下计数器)方式当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON的DCEN位(允许向下计数)来选择的复位时,DCEN位置“0”,定时器2默认设置为向上计数当DCEN置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,当DCEN=0时,定时器2自动设置为向上计数,在这种方式下,T2CON中的EXEN2控制位有两种选择,若EXEN2=0,定时器2为向上计数至0FFFFH溢出,置位TF2激活中断,同时把16位计数寄存器RCAP2H和RCAP2L重装载,RCAP2H和RCAP2L的值可由软件预置若EXEN2=1,定时器2的16位重装载由溢出或外部输入端T2EX从1至0的下降沿触发这个脉冲使EXF2置位,如果中断允许,同样产生中断定时器2的中断入口地址是002BH——0032H当DCEN=1时,允许定时器2向上或向下计数这种方式下,T2EX引脚控制计数器方向T2EX引脚为逻辑“1”时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把16位计数寄存器RCAP2H和RCAP2L重装载到TH2和TL2中T2EX引脚为逻辑“0”时,定时器2向下计数,当TH2和TL2中的数值等于RCAP2H和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFFFH数值重新装入定时寄存器中当定时/计数器2向上溢出或向下溢出时,置位EXF2位根据主机系统的芯片选择和引脚说明,可以画出主机系统的电路图,如图
3.1所示图
3.1主机系统电路图 其作用主要是为了保证单片机系统能正常工作如图3-1所示,单片机最小系统主要由STC89C51单片机、外部振荡电路、复位电路和+5V电源http://tech.ddvip.com/machine/power/index.html组成在外部振荡电路中,单片机的XTAL1和XTAL2管脚分别接至由12MHZ晶振和两个30PF电容http://tech.ddvip.com/machine/interface/capacitance.html构成的振荡电路两侧,为电路提供正常的时钟脉冲在复位电路中,单片机RESET管脚一方面经20F的电容接至电源正极,实现上电自动复位,另一方面经开关s接电源其主要功能是把PC初始化为0000H,是单片机从0000H单元开始执行程序,除了进入系统的初始化之外,当由于程序出错或者操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键重新启动,因此,复位电路是单片机系统中不可缺少的一部分
3.2数码管显示的设计
3.
2.1八位7段数码管工作原理八位7段数码管属于LED发光器件的一种,它由8个发光二极管LED组成,这8个二极管LED又包括7个细长型的LED和1个小数点型的LED8个LED分别为abcdefgdp每一个LED称之为一个字段,dp为小数点7段数码管分为共阴极和共阳极两种显示方式如果把7段数码管的每一字段都等效成发光二极管的正负两个极,共阴极把abcdefg的7个发光二极管的负极连接在一起并接地,正极接到7段译码驱动电路相对应的驱动上共阳极是把abcdefg的7个发光二极管的正极连接在一起并接到5V的电源上,其余的7个负极接到相应的输出端上7段显示数码管电路限流限阻计算公式限流电阻=5V电源电压—发光二极管的工作电压/10~15MA发光二极管的工作电压一般在
1.8~
2.2V之间,为了计算方便,通常选取2V发光二极管的工作电流选取10~25MA之间即可,电流过小,7段数码管不亮,过大数码管容易烧坏数码管显示方式
(1)静态显示就是单片机将显示的数据送出去后就不在控制数码管,直到下一次数据送出后才会改变,所以显示驱动电路具有输出锁存功能静态显示占用CPU时间少,数据显示稳定,但每个显示模块都要单独显示驱动电路,所以硬件的开销和电源的功耗很大
(2)动态显示用接口电路把所有的显示器的8个字段——abcdefg和dp同名端连接起来,而每个显示器的公共极各自独立的接受I/O线控制CPU向字段器输出端输出字型码,所有的显示器都接受相同的字型码,I/O控制的COM段决定哪一个显示进行显示动态显示占用CPU时间多,显示数据有闪烁感,但是硬件开销小,可以降低成本和功耗图
3.27段数码管原理图
3.3超声波发射电路模块设计压电超声波转换器的功能利用压电晶体谐振工作它有两个压电晶片和一个共振板当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一超声波发生器;如没加电压,当共振板接受到超声波时,将压迫压电振荡器作振动,将机械能转换为电信号,这时它就成为超声波接受转换器超声波发射转换器与接受转换器其结构稍有不同压电式超声波换能器是利用压电晶体的谐振来工作的超声波换能器内部有两个压电晶片和一个换能板当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志本设计中发射器电路采用集成电路模块不需考虑这些问题,主要是采用74CH04反相器在换能器两端提供脉冲信号其原理图如图
3.3所示图
3.3超声波发射电路
3.4超声波接收电路模块设计
3.
4.1超声波接收电路设计原理集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路如图3-4实验证明用CX20106A接收超声波无信号时输出高电平,具有很好的灵敏度和较强的抗干扰能力适当更改电容CS的大小,可以改变接收电路的灵敏度和抗干扰能力此部分电路在集成芯片上图
3.4超声波接收电路
3.
4.2CX20106ACX20106A作为超声波接收处理的典型电路(当CX20106A接收到40KHz的信号时,会在第7脚产生一个低电平下降脉冲,这个信号可以接到单片机的外部中断引脚作为中断信号输入)使用CX20106A集成电路对接收探头收到的信号进行放大、滤波其总放大增益80db以下是CX20106A的引脚注释1脚超声信号输入端,该脚的输入阻抗约为40kΩ2脚该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性增大电阻http://search.china.alibaba.com/selloffer/k-_n-y.htmlR1或减小C1将使负反馈量增大,放大倍数下降,反之则放大倍数增大但C1的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R1=
4.7Ω,C1=1μF3脚该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为
3.3μf4脚接地端5脚该脚与电源间接入一个电阻,用以设置带通滤波器http://search.china.alibaba.com/selloffer/k-_n-y.html的中心频率f0,阻值越大,中心频率越低例如,取R=200kΩ时,f0≈42kHz,若取R=220kΩ,则中心频率f0≈38kHz6脚该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短7脚遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22kΩ,没有接受信号是该端输出为高电平,有信号时则产生下降8脚电源正极,
4.5~5V超声波http://search.china.alibaba.com/selloffer/k-_n-y.html传感器接收部电路采用集成电路CX20106A这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器考虑到红外遥控常用的载波频率38kHz与测距超声波频率40kHz较为接近,可以利用它作为超声波检测电路实验证明,其具有很高的灵敏度和较强的抗干扰能力适当改变C1的大小,可改变接收电路的灵敏度和抗干扰能力R1和C1控制CX20106A内部的放大增益,R2控制带通滤波器的中心频率一般取R1=
4.7Ω,C1=1μFUS_R1为超声波接收头http://search.china.alibaba.com/selloffer/k-_n-y.html,当收到超声波时产生一个下降沿,接到单片机的外部中断INT0上当超声波接收头接收到40kHz方波信号时,将会将此信号通过CX20106A驱动放大送入单片机的外部中断0口单片机在得到外部中断0的中断请求后,会转入外部中断0的中断服务程序进行处理,在移动机器人的避障工作中,可以在中断服务程序设定需要单片机处理的最短距离,比如
0.5m4超声波测距系统的软件设计
4.1程序的总体设计在系统架构超声波测距的基本功能之后,系统软件所实现的功能主要针对系统功能的实现及数据的处理和应用系统的软件需要实现以下功能
1.信号控制在系统硬件中,已经完成发射电路、接收电路、检测电路、现实电路、报警电路在软件主要完成信号的控制,门控信号,发射脉冲信号
2.信号处理RAM中存储的计数值并不能作为距离直接显实出来,应为计数值和实际的距离之间的转换公式为S=
0.5*V*T=
0.5*V*TR*N,T为发射信号到接受信号的时间,TR为方波信号作为计数脉冲计数器的时间分辨率,N为计数值,在这个部分中信号处理包括计数值与距离值转换的,二进制和十进制的转换
3.数据传输与显示经软件处理得到的距离送显示输出,用四位LED表示由于采用了单片机STC89C51并考虑了整个系统的控制流程,整个系统软件都由STC89C51系列单片机汇编语言实现由于距离的值得出及显示是在中断程序中完成,因此在初始化发射程序后进入中断响应的等待在中断响应之后,原始数据经计数值与距离值换算子程序、二进制与十进制转换子程序后显示输出,整个软件系统程序分为主程序、中断程序、显示程序、限值报警程序
4.
1.1主程序设计主程序是单片机程序的主体,整个单片机系统软件功能的实现都是在其中完成的,在此过程中主程序调用了子程序及中断服务程序程序首先完成初始化过程,然后是重复一个控制一个发射信号的过程,即调用发射子程序几遍,而且每次发射周期结束都会判断在发射信号后延时等待的过程中是否发生了中断,即是否有回波产生来判断程序的流程流程图如下图
4.1所示���单片机初始化�定时子程序�开始�定时程序入口�定时程序初始化�发射超声波�发射是否完成?停止发射�返回�YN图
4.1主系统流程图
4.240KHZ脉冲的产生与超声波发射在脉冲产生前先对定时器/计数器进行初始化,在这里选择的工作方式定时器1工作方式2定时器0工作方式1模式,所以TMOD应该设定为21H指令开启T0,在开启T0同时开发发射超声波脉冲测距系统中的超声波传感器,它产生40KHZ的脉冲信号,这由单片机执行下面程序实现的CLRTJ4;清报警开启标志MOVTMOD#21H;定时器1工作方式2定时器0工作方式1MOVTH0#00H;定时开始时的值MOVTL0#00HMOVTH1#0F6H;定时器1中断的计数值MOVTL1#0F6H;定时器1中断的计数值计数值重装MOVR4#04H;延时值SETBET1;开外部定时器1中断SETBET0;开外部0中断SETBPX0;外部0中断为优先级
4.3显示子程序和蜂鸣报警子程序设计考虑到提高系统的资源利用率,本设计采用动态显示法显示实现P0口作为数据口,采用共阳显示技法将计算好的距离数据设置显示缓冲区起始地址,显示缓冲区中被现实的字符码的字形码的地址偏移量预先制表放入,蜂鸣器报警部分,当测试的距离小于50CM的时候就发生报警流程图及部分电源如下���外部中断入口�关闭外部中断�开外部中断�结果送显示报警提示�计算距离�返回�显示报警子程序�LED显示�取测量值�距离小于50CM�返回�电路报警�图
4.2显示子程序图
4.3蜂鸣报警子程序5超声波测距仪调试与测试
5.1调试超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用模块直接实现硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要根据所设计的电路参数和程序,测距仪的稳定测量范围为
0.20~4m,测距仪在2m内最大误差不超过1cm超过2m误差进一步增大,但最大误差不超过2cm由于发射功率不够,所以最大的稳定测量距离为4m系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求
5.
1.1硬件调试由于个人经验不足的原因,此次设计做出的实物焊接方面较为粗糙与预计目标有一定的差距,但是对以后的设计打下很好的理论与实践基础设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离以数字的形式显示测量距离超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪此次设计采用反射波方式超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分单片机采用AT89S51或其兼容系列采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差单片机用P
1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号显示电路采用简单实用的4个七段共阳数码管组成动态扫描电路超声波发射电路主要由反相器和超声波发射换能器FQS构成,单片机P
1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度输出端采两个反向器并联,用以提高驱动能力在元件及调制方面,由于采用的电路使用了很多集成电路外围元件不是很多,所以调试不会太难一般只要电路焊接无误,稍加调试应该会正常工作电路中除集成电路外,对各电子元件也无特别要求若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力
5.
1.2软件调试图
5.1新建与编译单片机程序项目选择Debug下面的Start/StopDebugSession,这个选项可以打开调试也可以关闭调试图
5.2打开关闭调试如果没有发现错误说明软件没有问题可以正常运行,如果出现错误时,将鼠标放到出错提示地方点击左键,就可以跳到程序里错误的地方结论自动控制系统在微处理器的影响下有了新的活力,取得了新的进步电子计算机从过去的庞然大物已经可以缩小到可以置于控制系统核心之中,作为系统的控制器、存储器及运算器,并使其具有智能的作用自动控制系统已成为自动化过程控制发展的主要方向课题研究的时间定时控制系统即是一种典型的微机控制系统,它以单片机作为系统的核心,利用其功能强、外部线路简单等特点,在软件控制下,与其它硬件电路相结合,实现温度的自动控制过程经过此次毕业设计,我对单片机的应用不再感到陌生,对过程控制有了较为深刻的认识,增强了动手能力、开阔了思路、懂得了很多道理,受益匪浅然而,由于专业水平有限,此时间定时控制系统在很多环节还很粗糙,有待改进几十年来过程控制虽然有了很大的发展,但总的看来,人们最初还是较习惯于从硬件的角度做工作,这是由于一些设计者的(硬件)技术背景,以及单片机技术不断迅速更新等因素所造成的近年来,情况有了很大的变化从过程控制自动化程度来看,软件发挥的作用将越来越大,这里还有很多领域等待着去开发结束语为期半年的毕业设计终于顺利完成,在这期间付出汗水,辛劳可是一言难尽在做毕设之前老师告诉我们多看看有硬件设计方面的书籍,多练习编程,设计硬件电路肯定对自己有好处但是我觉得看不看,做不做都一样,但是事实上是我错了刚开始完全自己设计确实有点难,因为单片机掌握的还不算很熟悉,平常练的少,所以刚拿到题目感到无从下手,并且遇到了不少麻烦在网络上查询,询问同学,询问老师,查询书籍,基本上能用的方法都用了之后,我才正式开始做起毕设来但想象与动手还是有很大的区别,一开始就各种错误连连攻击我,使得我寸步难行,好像自己已经掉入了大海深渊,找不到方向,白天下午我们都在实验室,而上午我基本上都是一挣开眼睛就开始打开笔记本开始设计我的硬件电路,晚上也一样甚至就连在睡觉的时候,脑子里都全是程序,还有怎么改怎么做能成功,心血真的付出了很多,但我并没有感觉到不快乐,反之,在一个个错误,一个个疑难杂症被我解决之后,我那种无比快乐的心情,真的是用语言所表达不出来的,我还记得在我攻破一个非常麻烦的报警蜂鸣器工作的问题时,我那种喜悦使得我旁边的所有人都惊讶了,其实当时那种投入,就感觉自己就自己在做毕业设计,完全忘记了周围的一切高兴完全已经冲破了头脑困难和成绩都是并肩存在的,困难之后一定会有着光明,我成功了,我喜悦了,在经历了本次超声波测距电路设计,我真正的学会了很多知识,也锻炼了自己动手和动脑的能力,这在我今后生活、学习和工作上有很大的帮助,也是开启我即将步入社会的一把钥匙,在这里我也非常感谢帮助过我的同学和老师,没有你们的一把钥匙我也不会这么快的成功致谢本设计能够顺利完成,还承蒙许老师以及身边的很多同学的指导和帮助在设计过程中,老师给予了悉心的指导,最重要的是给了我解决问题的思路和方法,在此,我对许老师表示最真挚的感谢!本论文是在导师许谨的悉心指导下完成的,导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血在此,谨向导师表示崇高的敬意和衷心的感谢!本论文的顺利完成,离不开各位老师、同学和朋友的关心和帮助在此感谢所有老师的指导和帮助;感谢所有帮助过我的同学的关心、支持和帮助在四年的学习期间,曾得到老师和同学们的关心和帮助,在此表示深深的感谢没有他们的帮助和支持是没有办法完成我的毕业论文的,同窗之间的友谊永远长存感谢评阅老师百忙之中抽出时间对本论文进行了评阅!参考文献
[1]刘复华.单片机及其应用系统.北京:清华大学出版社1992
[2]王炳锡屈丹彭煊.实用语音识别基础.北京:国防工业出版社2005
[3]杜刚.十六位单片机原理及应用.中国电力出版社2007
[4]罗亚非.凌阳十六位单片机应用基础.北京航空航天大学出版社2005
[5]张培仁.十六位单片机微处理器原理及应用.清华大学出版社2005
[6]黎明.语音信号及单片机处理.北京:科学出版社2007
[7]基于MCS-51系列单片机的通用控制模块的研究.山东科技大学学报自然科学版2005:12-18
[8]湖汉才.单片机原理及其接口技术清华大学出版社1996
[9]张友德.单片机微型机原理及应用复旦大学出版社1991
[10]黄贤武,郑筱霞.传感器原理与应用电子科技大学出版社1999
[11]陈明荧.8051单片机课程设计实训叫教材清华大学出版社2004
[12]徐淑华程退安姚万生单片机微型原理及应用哈尔滨工业大学出版社1994
[13]赵德安等.单片机原理与应用机械工业出版社2004附录Ⅰ程序源码TJ1EQU60H;TJ1是有没有收到超声波回传信号的标志TJ2EQU61H;超声波发射信号后发射信号的第N次的标志TJ3EQU62H;接收的信号第N次的的标志!TJ4EQU63H;报警系统是否开户的标志为0不开为1开启TJ5EQU64H;调节时显示的个数的标志A1EQU65H;显示要调节的的第一位A2EQU66H;显示要调节的的第2位A3EQU67H;显示要调节的的第3位A4EQU68H;显示要调节的的第4位VOUTEQUP
2.4;超声波发射器所接的引脚BELLEQUP
1.1;蜂鸣器ORG0000H;定义开始单元AJMPSTARTORG0003H;跳到外部0中断AJMPINT0ORG000BH;跳到定时器0中断AJMPDST0ORG001BH;定时器1中断AJMPDST1ORG002BH;定时器2中断暂不用RETISTART:SETBEA;开总中断CLRTJ4;清报警开启标志MOVTMOD#21H;定时器1工作方式2定时器0工作方式1MOVTH0#00H;定时开始时的值MOVTL0#00H;定时开始时的值MOVTH1#0F6H;定时器1中断的计数值MOVTL1#0F6H;定时器1中断的计数值计数值重装MOVR4#04H;延时值SETBET1;开外部定时器1中断SETBET0;开外部0中断SETBPX0;外部0中断为优先级MAIN1:SETBTR0;定时器0启动定时MAIN2:LCALLDISPLAY;显示当前探测到的距离JNBTJ1MAIN2;查看有没有回波CLREA;关中断SETBEA;开中断CLRTJ1;清除成功标志JBP
3.4ZY2;查看调节报警按钮1有无按下ACALLDELAY10JBP
3.4ZY2AJMPZY1ZY2:AJMPMAIN12;没有按下的话直接跳到测距程序ZY1:CLRBELL;开蜂鸣器响一声作提示ACALLDELAY125SETBBELLACALLDELAY1SMAIN3:MOVATJ4;查看标志CJNEA#0MAIN3_1ACALLDISPLAY2;如果标志为0则显示0FFAJMPMAIN3_2MAIN3_1:LCALLDISPLAY1;如果标志为1则显示0NMAIN3_2:JBP
3.5MAIN4;看按钮2有无按下ACALLDELAY10JBP
3.5MAIN4;开蜂鸣器响一声作提示CLRBELL;开蜂鸣器响一声作提示ACALLDELAY125SETBBELLMOVATJ4CJNEA#0MAIN3_3MOVTJ4#1;如果按下按钮2的话报警开关标志改变如果以前为1则按下为0如果为0则按下为1AJMPMAIN4MAIN3_3:MOVTJ4#00HMAIN4:JBP
3.4MAIN3;查看按钮1有无按下!ACALLDELAY10JBP
3.4MAIN3CLRBELL;开蜂鸣器响一声作提示ACALLDELAY125SETBBELLACALLDELAY125CLRBELL;开蜂鸣器响一声作提示JNBP
3.4$;如果不松手则一直响SETBBELL;关蜂鸣器MOVTJ5#0;显示调志的位数先置0显示第一位AJMPMAIN5MAIN5:MOVATJ5CJNEA#0MAIN5_1;查看TJ5标志为0显示第1位为1显示第2位依此类推ACALLDISPLAY3;显示第一位AJMPMAIN6MAIN5_1:CJNEA#1MAIN5_2ACALLDISPLAY4;显示第2位AJMPMAIN7MAIN5_2:CJNEA#2MAIN5_3ACALLDISPLAY5;显示第3位AJMPMAIN8MAIN5_3:CJNEA#3MAIN5_4ACALLDISPLAY7;显示第4位AJMPMAIN9MAIN5_4:AJMPMAIN5MAIN6:JBP
3.5MAIN10;第一位调节程序ACALLDELAY10JBP
3.5MAIN10CLRBELLACALLDELAY125SETBBELLINCA1;第一位加1MOVAA1CJNEA#10MAIN10;如果超过10的话那么置0不让超过100-9转换MOVA1#0AJMPMAIN10MAIN7:JBP
3.5MAIN10;第2位调节程序ACALLDELAY10JBP
3.5MAIN10CLRBELLACALLDELAY125SETBBELLINCA2MOVAA2CJNEA#10MAIN10MOVA2#0AJMPMAIN10MAIN8:JBP
3.5MAIN10;第3位调节程序ACALLDELAY10JBP
3.5MAIN10CLRBELLACALLDELAY125SETBBELLINCA3MOVAA3CJNEA#10MAIN10MOVA3#0AJMPMAIN10MAIN9:JBP
3.5MAIN10;第4位调节程序ACALLDELAY10JBP
3.5MAIN10CLRBELLACALLDELAY125SETBBELLINCA4MOVAA4CJNEA#10MAIN10MOVA4#0AJMPMAIN10ZY3:AJMPMAIN5MAIN10:JBP
3.4ZY3ACALLDELAY10JBP
3.4ZY3CLRBELLACALLDELAY125SETBBELLACALLDELAY1SJBP
3.4MAIN11;按下按钮1如果时间不长则跳到另外一位0-4CLRBELL;如果按下时间超过一秒则结束调节保存结果JNBP
3.4$SETBBELLMOVR4#64HMAIN10_1:ACALLDISPLAY6;显示刚才输入的4位设定值DJNZR4MAIN10_1;显示一段时间AJMPMAIN12MAIN11:INCTJ5;跳至设定下一位MOVATJ5CJNEA#04HMAIN11_1MOVTJ5#0MAIN11_1:AJMPMAIN5;返回调节MAIN12:SETBTR0;重新开启测距定时器MOVR2#64H;测量间隔控制(约4*100=400MS)LOOP:LCALLDISPLAY;显示当前测得的数值DJNZR2LOOP;显示一定时间AJMPMAIN2;显示完后返回测距主程序DST1:CPLVOUT;定时中断1中断程序发出声波DJNZR4RETIOUTCLRTR1;超声波发送完毕关T1CLRET1;关定时1中断MOVTH1#0F6H;
0.1S的定时值MOVTL1#0F6H;/////////////////////////以前是0F6现在我改成0F0H也就是间隔稍为大点!MOVR4#04H;/////////////////////////////原来是04H我现在改成12HACALLDISPLAY;显示距离////////////////////////////这里以前只有一个显示距离我加了3个要注意;ACALLDISPLAY;显示距离;ACALLDISPLAY;显示距离;ACALLDISPLAY;显示距离SETBEX0;开启接收回波中断RETIOUT:RETI;中断返回DST0:CLREA;定时中断0中断程序CLRTR0;关定时器MOVTH0#00H;定时值复位MOVL0#00HSETBET1;开定时器1中断SETBEA;开总中断SETBTR0;启动定时器0OUT:SETBTR1;开启发超声波用定时器T1INCTJ2;写标志位RETIINT0:CLRTR0;关计数器CLRTR1CLRET1CLREACLREX0INCTJ3MOVATJ2CJNEATJ3INT02SETBTJ1;接收成功标志CPLP
1.0;闪灯表示工作正常MOV44HTL0MOV45HTH0LCALLWORKMOVATJ4CJNEA#0INT0_1SETBBELLAJMPINT0_ENDINT0_1:MOVA40HCLRCCJNEAA1INT0_1_2AJMPINT0_1_4INT0_1_2:JCINT0_1_3;如果当前距离小于设定距离的话则报警SETBBELL;如果大于的话就不报RETIINT0_1_3:CPLBELL;报警AJMPINT0_ENDINT0_1_4:MOVA41HCLRCCJNEAA2INT0_2AJMPINT0_4INT0_2:JCINT0_3;如果当前距离小于设定距离的话则报警SETBBELL;如果大于的话就不报INT0_END:RETIINT0_3:CPLBELL;报警AJMPINT0_ENDINT0_4:MOVA42HCLRCCJNEAA3INT0_5AJMPINT0_7INT0_5:JCINT0_6;如果当前距离小于设定距离的话则报警SETBBELLAJMPINT0_ENDINT0_6:CPLBELLAJMPINT0_ENDINT0_7:MOVA43HCLRCCJNEAA4INT0_8AJMPINT0_10INT0_8:JCINT0_9;如果当前距离小于设定距离的话则报警SETBBELLAJMPINT0_ENDINT0_9:CPLBELLINT0_10:AJMPINT0_ENDINT02:MOVR2#12H;测量间隔控制(约4*100=400MS)LOOP3:LCALLDISPLAYDJNZR2LOOP3CLRTJ2CLRTJ3MOVTH0#00HMOVTL0#00HMOVTH1#0F6HMOVTL1#0F6HSETBEASETBET0SETBET1SETBTR0SETBTR1RETIDISPLAY:MOVDPTR#NUMTAB;指定查表启始地址显示输入的四位密码程序MOVR0#1;4次DPL:MOVR1#2;显示1000次DPLOP:MOVA40H;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.0;开个位显示ACALLD1MS;显示1MSSETBP
2.0MOVA41H;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.1;开个位显示ACALLD1MS;显示1MSSETBP
2.1MOVA42H;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.2;开个位显示ACALLD1MS;显示1MSSETBP
2.2MOVA43H;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.3;开个位显示ACALLD1MS;显示1MSSETBP
2.3DJNZR1DPLOP;100次没完循环DJNZR0DPL;4个100次没完循环RETDISPLAY1:SETBP
2.0;此程序显示ONSETBBELLMOVR0#2DPL1:MOVR1#25;显示1000次DPLOP1:MOVP0#0C0H;查个位数的7段代码即ON的第一个字母CLRP
2.1;开个位显示ACALLD1MS;显示1MSSETBP
2.1MOVP0#0C8H;送出十位的7段代码即ON的第二个字母CLRP
2.2;开十位显示ACALLD1MS;显示1MSSETBP
2.2DJNZR1DPLOP1;100次没完循环DJNZR0DPL1;4个100次没完循环RETDISPLAY2:SETBP
2.0;此程序显示OFFMOVDPTR#NUMTABMOVR0#2DPL2:MOVR1#25;显示1000次DPLOP2:MOVP0#0C0H;查个位数的7段代码即ON的第一个字母CLRP
2.1;开个位显示ACALLD1MS;显示1MSSETBP
2.1MOVA#8EHMOVP0A;送出十位的7段代码即ON的第二个字母CLRP
2.2;开十位显示ACALLD1MS;显示1MSSETBP
2.2MOVA#8EHMOVP0A;送出十位的7段代码即ON的第二个字母CLRP
2.3;开十位显示ACALLD1MS;显示1MSSETBP
2.3DJNZR1DPLOP2;100次没完循环DJNZR0DPL2;4个100次没完循环RETDISPLAY3:MOVDPTR#NUMTAB;指定查表启始地址SETBP
2.2;关掉第二位输出此程序显示第一位密码SETBP
2.1SETBP
2.3MOVR0#4DPL3:MOVR1#25;显示1000次DPLOP3:MOVAA1;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.0;开个位显示ACALLD1MS;显示1MSSETBP
2.0DJNZR1DPLOP3;100次没完循环DJNZR0DPL3;4个100次没完循环RETDISPLAY4:MOVDPTR#NUMTAB;指定查表启始地址此程序显示第2位密码SETBP
2.0;此程序显示第2位密码SETBP
2.2SETBP
2.3MOVR0#4DPL4:MOVR1#25;显示1000次DPLOP4:MOVAA2;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.1;开个位显示ACALLD1MS;显示1MSSETBP
2.1DJNZR1DPLOP4;100次没完循环DJNZR0DPL4;4个100次没完循环RETDISPLAY5:MOVDPTR#NUMTAB;指定查表启始地址SETBP
2.0;此程序显示第3位密码SETBP
2.1SETBP
2.3MOVR0#4DPL5:MOVR1#25;显示1000次DPLOP5:MOVAA3;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.2;开个位显示ACALLD1MS;显示1MSSETBP
2.2DJNZR1DPLOP5;100次没完循环DJNZR0DPL5;4个100次没完循环RETDISPLAY7:MOVDPTR#NUMTAB;指定查表启始地址SETBP
2.0;此程序显示第3位密码SETBP
2.1SETBP
2.2MOVR0#4DPL7:MOVR1#25;显示1000次DPLOP7:MOVAA4;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.3;开个位显示ACALLD1MS;显示1MSSETBP
2.3DJNZR1DPLOP7;100次没完循环DJNZR0DPL7;4个100次没完循环RETDISPLAY6:MOVDPTR#NUMTAB;指定查表启始地址显示输入的四位密码程序SETBP
2.0MOVR0#4;4次DPL6:MOVR1#5;显示1000次DPLOP6:MOVAA1;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.0;开个位显示ACALLD1MS;显示1MSSETBP
2.0MOVAA2;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.1;开个位显示ACALLD1MS;显示1MSSETBP
2.1MOVAA3;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.2;开个位显示ACALLD1MS;显示1MSSETBP
2.2MOVAA4;取个位数MOVCA@A+DPTR;查个位数的7段代码MOVP0A;送出个位的7段代码CLRP
2.3;开个位显示ACALLD1MS;显示1MSSETBP
2.3DJNZR1DPLOP6;100次没完循环DJNZR0DPL6;4个100次没完循环RETD1MS:MOVR6#2;1MS延时D4:MOVR5#40;///这里原来是40我调成50试试看/////////////////////////////////////////////////////////////DJNZR5$DJNZR6D4RETD01MS:MOVR6#2D5:MOVR5#250DJNZR5$DJNZR6D5RETIDELAY10:MOVR6#20;10MS延时D3:MOVR5#255DJNZR5$DJNZR6D3RETDELAY125:MOVR6#255;125MS延时D1:MOVR5#255DJNZR5$DJNZR6D1RETDELAY1S:MOVR7#8;1S延时D2:LCALLDELAY125DJNZR7D2RETWORK:PUSHACCPUSHPSWPUSHBMOVPSW#18HMOVR345HMOVR244HMOVR1#0MOVR0#17;45H以及44H的数与17相乘得出结果然后除以1000LCALLMUL2BY2MOVR3#03HMOVR2#0E8HLCALLDIV4BY2LCALLDIV4BY2MOV40HR4MOVA40HJNZJJ0AJMPJJ0MOV40H#0AH;最高位为0不点亮JJ0:MOVAR0MOVR4AMOVAR1MOVR5AMOVR3#0MOVR2#100LCALLDIV4BY2MOV41HR4MOVA41HJNZJJ1MOVA40H;此高位为0先看最高位是否为不亮SUBBA#0AHJNZJJ1AJMPJJ1MOV41H#0AH;最高位不亮次高位也不亮JJ1:MOVAR0MOVR4AMOVAR1MOVR5AMOVR3#0MOVR2#10LCALLDIV4BY2MOV42HR4MOVA42HJNZJJ2MOVA41H;次高位为0先看次高位是否为不亮SUBBA#0AHJNZJJ2AJMPJJ2MOV42H#0AH;次高位不亮次高位也不亮JJ2:MOV43HR0POPBPOPPSWPOPACCRETMUL2BY2:CLRA;*两字节无符号数乘法程序MOVR7AMOVR6AMOVR5AMOVR4AMOV46H#10HMULLOOP1:CLRCMOVAR4RLCAMOVR4AMOVAR5RLCAMOVR5AMOVAR6RLCAMOVR6AMOVAR7RLCAMOVR7AMOVAR0RLCAMOVR0AMOVAR1RLCAMOVR1AJNCMULLOOP2MOVAR4ADDAR2MOVR4AMOVAR5ADDCAR3MOVR5AMOVAR6ADDCA#00HMOVR6AMOVAR7ADDCA#00HMOVR7AMULLOOP2:DJNZ46HMULLOOP1RETDIV4BY2:MOV46H#20H;*四字节/两字节无符号数除法程序*MOVR0#00HMOVR1#00HDIVLOOP1:MOVAR4RLCAMOVR4AMOVAR5RLCAMOVR5AMOVAR6RLCAMOVR6AMOVAR7RLCAMOVR7AMOVAR0RLCAMOVR0AMOVAR1RLCAMOVR1ACLRCMOVAR0SUBBAR2MOVBAMOVAR1SUBBAR3JCDIVLOOP2MOVR0BMOVR1ADIVLOOP2:CPLCDJNZ46HDIVLOOP1MOVAR4RLCAMOVR4AMOVAR5RLCAMOVR5AMOVAR6RLCAMOVR6AMOVAR7RLCAMOVR7ARETNUMTAB:DB0C0H0F9H0A4H0B0H99H92H82H0F8H80H90H0FFH88H0BFH;共阳数码管0123456789不亮A-END附录Ⅱ电路原理图毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意作者签名 日 期 指导教师签名 日 期 使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容作者签名 日 期 学位论文原创性声明本人郑重声明所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明本人完全意识到本声明的法律后果由本人承担作者签名日期年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文涉密论文按学校规定处理作者签名日期年月日导师签名日期年月日注意事项
1.设计(论文)的内容包括1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)
2.论文字数要求理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于
1.2万字
3.附件包括任务书、开题报告、外文译文、译文原文(复印件)
4.文字、图表要求1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序1)设计(论文)2)附件按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它。