毕业设计(论文)-超声波液位控制系统.doc_第1页
毕业设计(论文)-超声波液位控制系统.doc_第2页
毕业设计(论文)-超声波液位控制系统.doc_第3页
毕业设计(论文)-超声波液位控制系统.doc_第4页
毕业设计(论文)-超声波液位控制系统.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

目 录1绪论2硬件结构 2.1 核心元件单片机2.2超声波探头结构与测距原理3.课题设计过程3.1课题分析3.2方法论证 3.2.1 键盘模块论证3.2.2 发射、接受模块论证 3.2.3 驱动和动态显示模块论证 3.2.4 驱动水泵模块论证 3.2.5 单片机模块论证3.3方案实现 3.3.1 键盘模块设计 3.3.2 发射、接受模块设计 3.3.3 驱动和动态显示模块设计 3.3.4 驱动水泵模块设计 3.4调式 3.4.1硬件电路调试 3.4.2系统软件调试 3.4.3系统综合调试4.总结4.1提出常遇到的问题4.2如何解决问题结论谢辞参考文献附录 附录附录c超声波液位控制系统摘要:本设计利用超声波指向性强,能力消耗缓慢,在介质中传播距离较远,利用超声波检测往往速度比较快,方便、计算简单、精度高、性能强、易于做到实时控制。本超声波液位控制系统采用了89c51单片机为核心,利用它直接产生40khz的超声波振荡,经三极管放大,驱动超声波发射器,由接收放大电路放大,送89c51检测回波,计算收发的时间差,算出距离,处理后送显示电路显示液位高度,同时控制继电器驱动泵电路,从而驱动水泵,使液位得到合适的位置。本超声波液位控制系统还有个最大的特点,能可以用键盘来设置你所要的高度,而且体积小、重量轻、拆装方便,可以适应各种各样的场合。关键词:单片机;超声波;液位控制1.绪 论在这个高科技、高信息的时代里,科技是主流,信息是源泉。为了能适宜这个社会,高科技的产品就不断诞生。因此要大量的人才,去开发和创造高科技产品。随着时代的不断进步,液位控制系统也迅速地得到应用和提高,在目前也基本完善,大到工业、农业,小到小区、家庭。超声波液位控制系统解决了以往做不到的事,节省了大量的时间,节约了宝贵资源,保证了国家财产,如水库、水塔、炼油等应用领域。为了让更多的人掌握和应用该系统,本课题提出以基础为准,单片机为核心内容,掌握超声波的测距原理和超声波内部结构,通过超声波测距原理,在深入掌握液位控制系统,最后综合整个液位控制系统,熟练掌握超声波液位控制系统的调节与设置。2.硬件结构2.1核心元件单片机整个的电路都由单片机来控制实现。 所谓单片机就是单片微型计算机,是将微机的主要组成部分(包括中央处理器cpu、一定容量的存储器ram和rom,以及输入输出i/o接口电路等)集成在一块芯片上的计算机 at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。at89c51具有下列主要性能:。4kb可改编程序flash存储器(可经受1,000次的写入/擦除周期)。全静态工作:0hz24mhz。三级程序存储保密。128*8字节内部ram。32条可编程i/o线。2个16位定时器/计时器。6个中断源。可编程串行通道。片内时钟振荡器另外,at89c51是用静态逻辑来设计的其工作频率可下降到0hz,并提供两种可用软件来先择的省电方式空闲方式(idle mode)和掉电方式(power down mode)。在空闲方式中,cpu停止工作,而ram、定时器/计数器、串行口和中断系统都继续工作,在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内ram中的内容,真到下次硬件复位为止。引脚说明 如图2.1vcc:供电电压。 gnd:接地。 p0口:分时复用的地址/数据总线 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口。 p2口:地址总线。p3口:双功能总线即地址总线和控制总线。在at89c51中,p3端口还用于一些专门功能,这些兼用功能见表一。表2.1端口引脚兼用功能p3.0p3.1p3.2p3.3p3.4p3.5p3.6p3.7rxd(串行输入口)txd(串行输出口)int0(外部中断0)int1(外部中断1)t0(定时器0的外部输入)t1(定时器1的外部输入)wr(外部数据存储器写选项)rd(外部数据存储器读选通) 在对flash编程或程序验证时,p3还接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。2.2 超声波探头结构与测距原理2.2.1 超声波发生器为了研究和利用超声波,人们已经设计和制造了许多超声波发生器。总体上讲,超声波发生器可以分两类:一类是用电气方式和产生超声波,另一类是用机械产生超声波。电气方式包括压电型、磁致伸缩型和电动型;机械方式有加尔统笛、液哨和气流旋笛等。他们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常见的是压电式超声波发生器。2.2.2 压电式超声波发生器原理 压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图1所示,它有两个压电晶体片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶体片的固有振动频率时,压电晶体片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶体片作振动,将机械能转化为电信号,这时它就成为超声波接收器了 2.2.3 超声波测距原理 超声波发生器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中传播速度为340m/s,根据计时器记录的时间t,就可以算出发射点的距障碍物的距离(s),即s=340t/2,这就是所谓的时间测距法。(渡越时间法) 3.系统设计3.1 课题分析本课题主要的核心是单片机,根据超声波测距的原理,再加上一些外部元件和相应的程序即可实现。见框图4.1和原理图4.2键盘单片机驱动显示发射 接收驱动水泵 图4.1 超声波液位控制系统框图 图 4.2 超声波液位控制系统原理图 3.2 方案论证通过图4.1所示分析该电路有键盘、发射、接受、单片机、驱动显示、驱动水泵等6个模块组成超声波液位控制系统,各部分的功能分析如下。3.2.1 键盘模块论证 键盘的任务是用来设定液位的最高点和最低点的值。如果不用键盘设置固定参数,那么就谈不上是液位控制了。所以说键盘设置绝定整个系统好坏的关键。设高了,那就等于没设,等液体到最高的时候就漏出了;设低了,当液体排泄完了还不能准确的给容器罐水。那如何准确的设定呢?其实要看容器高低了,还要看你所需的高度,不能超过容器的高度。用16个按键组成来实现键盘。见图4.3所示3.2.2 发射、接受模块论证它们是整个系统中的眼睛,能准确无误的看出液位的高度。发射模块任务是发出40khz频率的超声波;接收模块任务是接收发来的超声波,一般采用压电式超声波发生器。可以选一对ucm40t ucm40r配对超声波发生器在加上非门来实现。接收模块还采用了三级放大电路,能够放大1000倍,使微弱的信号得到放大,来符合单片机要求的信号。见图4.4所示3.2.3驱动和动态显示论证 它可是一个不普通的镜子,可以照出最后的结果,能让人直接醒目的看到他的结果,这就是它的任务。它采用了驱动集成块74hc54和3个数码管来实现。他显示的最大值、最小值不会超过键盘设置的最大值、最小值。这里还要要特别主要数码管是共阴,还是共阳。见图4.5所示3.2.4 驱动水泵论证他的任务是驱动水泵开关,是容器里的液体得到平衡状态。它可是整个系统中的手足,采用一个继电器和一个三级管来实现,这里的续流二级管要特别注意,它是来保护继电器,消除浪涌电流。如图4.6所示。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极com是各自独立地受i/o线控制。cpu向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于com端,而这一端是由i/o控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的com端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。3.2.5 单片机模块论证它是整个系统中的核心,也是整个系统的大脑。他是处理整个系统的所以问题,前面的什么眼睛、手足等都是受它支配的,它用储存和运算、控制功能。采用一块mcs-51单片机来实现。见图2.1所示3.3 方案实现 3.3.1 键盘程序设计 键盘的结构有行列式、独立式两种。见图4.3键盘电路采用的是行列式。键盘怎样去键值的呢?键值=列值*行值 如0=111011101=11011110 2=10111110程序如下: mov p1,#0fohmov a,p1 mov 50h,a mov p1,#0fh mov a,p1 orl a,50h mov r0,#16 mov r1,#00 mov 50h,a mov a,#0 mov dptr,#l1l2: movc a,a+dptr cjne a,50h,l1 mov a,r1 retl1: inc r1 mov a,r1 djnz r0,l2ret 3.3.2 发射、接受程序设计 超声波频率为40khz左右的超声波在空气中传播的效率最佳;同时,为了方便处理,发射的超声波被调制成40khz左右、具有一定间隔的调制脉冲波信号。该测距系统见图4.3所示。由图可见,测距系统由超声波发送、接收、时间计测三个部分组成。 超声波发送脉冲如图2所示。40khz的超声波发送脉冲信号由单片机mcs-51的p2.5口送出,其脉冲宽度及脉冲间隔均由软件控制。脉冲宽度约为125s200s,即在一个调制脉冲内包58个40khz的方波。 超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即s=340t/2。图4.4 就是超声波测距电路,设l为容器的高,z为容器底到液位的高度,也就是z=l-s 超声波接收有三级管和非门组的放大电路,因为声的回波很弱,因而转换为电信号的幅值也较小,为此要求将信号放大1000倍左右。采有三级放大,将放大的信号转化为电信号给单片机p2.7口,在这时候,单片机停止计时,这样不断的循环,当液位到达最高或最低时,停止工作。见图.所示 超过波从发射到接收的间隔时间的测定是由单片机内部的计数器t1来完成的。在调试过程中出现的发送部分与接收部分的直接串扰问题是由于换能器之间的距离不大,有部分声波未经被测物就直接绕射到接收换能器上。从发射开始一直到“虚假反射波”结束这段时间,通过控制触发器(74ls74)不能触发,从而不会发中断申请,可有效躲避干扰,但也会形成所谓的“盲区”。本系统的盲区约为20cm左右。系统最大测距误差在8cm左右,测距的盲区为20cm。测距误差主要来源于以下几个方面。 超声波波束对探测目标的入射角的影响; 超声波回波声强与待测距离的远近有直接关系,所以实际测量时,不一定是第一回波的过零点触发; 超声波传播速度对测距的影响。稳定准确的超声波传播速度是保证测量精度的必要条件,波的传播速度取决于传播媒质的特性。传播媒质的温度、压力、密度对声速都将产生直接的影响。因此需对声速加以修正。对于测距而言,引起声速变化的主要原因是媒质温度的变化。本文采用声速预置和媒质温度测量结合的方法对声速进行修正,可有效地消除温度变化对精度的影响。 影响测量误差的因素很多,还包括现场环境干扰、时基脉冲频率等。本系统硬件简单、容易实现、测距范围比较大、测量误差可以控制在4cm左右。超声测距系统向上位机发送数据和下位机的数据采集相互独立,可以同时进行,保证了测距数据的实时性。 本系统软件分两部分:主程序和中断服务程序 发射超声波程序 : setb p2.6 nop acall csb nop clr p2.6 nop csb: nop nop nop nop l1: nop nop nop nop nop nop nop nop nop nop nop cpl tx nop djnz r0,l1 nop ret nop nop nop nop超声波接受信号是由以下程序执行的: receive:clr tr1 mov 36h,th1 mov 37h,tl1 mov a,37h subb a,0f0h jc ll ll: mov 3eh,99h ret3.3.3 驱动和动态显示设计 驱动有74hc54集成块实现,d1d8跟单片机p0口连,每个脚加上一个上拉电阻,q1q7通过电阻100分别接到每个数码管相应的脚上。见图4.5所示。显示数字采用查表方式。本设计采用的是动态显示采用3个数码管,可以存放3个bcd码,bcd码显示存放在30h。程序如下: org 30h mov a,30h disp: mov dptr,#tab movc a,a+dptr mov p0,a setb p2.4 acall d0.2s clr p2.4 movc a,a+dptr mov p0,a setb p2.3 acall d0.2s clr p2.3 movc a,a+dptr mov p0,a setb p2.2 acall d0.2s clr p2.2d0.2s: pus mov r0,#200 l1: mov r1,125 l2: djnz r1,l2 djnz r0,l1 pop ret tab: db coh,f9h,a4h,b0h,99h,92h,82h,f8h,80h db 90h,88h,83h,c6h,a1h,86h,8eh,89h,ffh 3.3.4 驱动水泵设计如图.所示,使继电器触顶导通,必须三级管的基极为高电平,所以p3.7口输出高电平,水泵就打开;当 p3.7口输出为低电平,三级管截止,继电器触点断开,水泵关闭。要打开和关闭水泵的前提,p2.6口必须有动作,还要看p1口,如果当显示到达设定的最大值,水泵要关闭,当显示到达设定的最小值,水泵要打开了 。30h是显示内容程序如下:org 000h loor: setb p2.6 mov p1,30h mov 30h,max cjne 30h,p1,loop clr p3.7 loop: jc loop1 clr p3.7 loop1: setb p3.7 mov p1,30h clr p3.7 mov 30h,min cjnz 30h,p1,loop2 sjmp loop1 loop2: jnc loop1 clr p3.7 clr p2.6 clr p3.7 sjmp loor 3.4调试在单片机应用系统的硬件和软件初步设计完成的基础上,我们这次亲手焊制了电动机转速的微机测量系统的电路实物,及编制系统控制程序,并进行了此次调试。在调试的时候我们把功能互相独立的的模块一部分一部分调试成功之后再将它们组合起来调试。下面就将硬件调试和软件调试分别进行介绍。3.4.1 硬件电路调式 对于系统硬件电路的焊接是有所复杂的,在电路板的焊接过程中让我们学会了很多新的东西,虽然焊接电路板的过程是十分艰难的,但终于完成了硬件电路的焊接,开始了对硬件调试。硬件调试是利用各种测试器件,检查系统硬件中存在的故障。对硬件电路的调试过程及其基本步骤如下: 检查系统原理图连接是否正确。 检查焊接板图与原理图是否一致。 在安装元器件的时候对元器件是否损坏以及性能是不是符合系统的要求,检查电解电容、二极管及其它芯片的极性是否有极性反接的情况。 检查原理图与器件的datasheet上引脚是否一致。 对焊接好的电路板先进行目测,然后进行仔细的检查,看焊接电路板的时候是否存在连线错误、开路 、短路现象,尤其对电路板是否存在短路问题进行了认真的检查。在设计电路板的时候我们还考虑到可靠性问题如器件的负载问题、电源电压的滤波问题、走线和布局是否合理。 完成检测后,先空载上电,检测电路板各引脚及插件上的电位是否正常,特别是单片机引脚上的各点电位,若一切正常将芯片插入各管座,再通电检查各点电压是否达到要求,逻辑电平是否符合电路或器件的逻辑关系。3.4.2系统软件调试 系统软件调试是在伟福6000软件模拟器上先通过单步调试然后进行连续调试完成的,通过单步调试了解被调试程序中每条指令的执行情况,通过分析指令的运行结果判断该指令执行的正确性,并进一步确定是由于硬件电路错误、数据错误还是程序设计错误等引起的指令的执行错误,从而发现排除错误。 最后当系统软件调试完成后,将程序固化到芯片中。3.4.3系统综合调试综合调试就是让用户系统的软件在其硬件上实际运行,软件与硬件进行联合调试,从中发现硬件故障或软硬件错误。系统综合调试组要解决的问题:软硬件是否按预定要求正常工作。系统运行中是否有潜在的设计时难以预料的错误,例如硬件延时过长,布线不合理、时序不符合要求等。系统的动态性能指标是否满足设计要求。led显示部分调试及性能分析:经调试,我们此系统中所用的led显示屏硬件电路硬件质量可靠,引脚焊接正确,工作正常。软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。显示屏刷新频率由定时器t0的溢出率和单片机的晶振频率决定。从理论上来说,50hz以上的刷新率就能看到连续稳定的显示,刷新率越高,显示越稳定,同时刷新率越高,显示驱动程序占用的cpu时间也越多。试验证明,在目测条件下刷新率40hz以下的画面看起来闪烁较严重,刷新率50hz以上的已基本觉察不出画面闪烁,刷新率达到85hz以上时再增加画面闪烁没有明显改善。显示效果处理程序的内容及方法非常广泛,其调试过程在此不作具体讨论,读者可对照源程序自行分析。在此次调试中,可能由于焊制的系统实物图是用手工焊制,所以在焊制过程中可能出现焊点的接触不良,或短路现象的出现,以及编制程序的经验的不足,调试经验的不足。导致了不少可以避免的问题而出现了。不过经努力分析让我们解决了这道问题。4总 结4.1 提出常遇到的问题 在本次课题设计中遇到一些问题,比如元器件的误差,受环境的影响,温度的影响,人为操作不良导致的误差,软件导致的误差,布线造成的误差,总体起来分为三类。下面我来具体分析: 元器件本身误差,最容易造成误差的是超声波发生器,选一个精确高的超声波发生器也不是一个容易的事。当本身参数不准时,发射出超声波频率在受外界干扰,接收来频率远远不准。 环境、温度造成误差,任何一个元件都有自己的技术指标和最大限制参数,如果当温度升高时,在加上元件本身工作温度,两者相加的温度远远超过最大限制温度,元件就很容易偏离正常的要求,甚至损害。所以一般耐温差的都要配个散热片。 人为造成的误差,往往是我们的经验不足和知识的缺乏。因为超声波是高频信号,很容易引起自激现象,所以在布线时,高频元件之间的连线越短越好,重量太大的元件应要支架 固定,不宜安装在电路上,还要注意发热的元件不能跟热敏元件放在一起 ;铜膜线应该尽量短,拐弯处应圆脚或斜脚,避免两线相互平行,以减少寄生偶合。还有整个系统是靠软件 来发挥的,编写软件直接影响了精确度,因为我们的能力还有限,但愿以后的努力。4.2 如何解决问题 元件本身的误差是解决不了的,也只能找一个性能好的;环境、温度造成的误差也是一个比较难的解决问题,我们只能加散热片或者加风扇来降温;主要我们要解决的问题是人物造成误差,上面也说了我们经验的不足和知识的缺乏,解决这类问题不是一件很难的事,大家都知道万事接头难,只要有恒心,有报复,一切都有希望。结论 通过本次课题设计,我对超声波有了一定的掌握,运用了单片机的技术,两着结合得到很好的效果,更深入的掌握单片机编程,在这里老师的帮助也是很大的。总提上来讲这次设计很成功,效果也不错,但是还有很多不足之处,这是没办法的,毕竟经验和知识的缺乏,我今后还会更加努力,来完成今日的不足,让这次课程有个完美的结局。谢 辞 能成功的完成本次课题设计,多亏指导老师的帮助和指导。你的严谨学风和渊博知识使本人受益匪浅,在此表示诚挚的敬意和由衷的感谢,同时要感谢系领导和老师给我们提供了良好的环境和热心指导。 在一次感谢各位领导和系老师在百忙中评阅我的论文,希望老师多多赐教。 最后感谢母校能给我这样一次机会。参 考 文 献、沈德金、 陈粤初等. mcs-51单片机接口电路与应用程序实例.北京航空航天大学出版社.1990.4、超声波探头原理及应用. 机械工业出版社. 1995.6、付晓光单片机原理与实用技术北方交通大学出版社2004.10、石宗义电路原理图与电路板设计教程北京北京希望电子出版社2002.6附录a:元 件 清 单序号元 件 名 称元 件 编 号型号规格数 量备注超 声 波k2,k3ucm40t,ucm40r2电 阻r1r810k8r9r151007r162001r17,r21,r221k3r186801r19,r20100k2r2320k1r2410k1电 容c1,c233p2c310u1c41000u1c5,c60.1 u2c7100 u1c8,c9,c1047 u3三 极 管q1,q290132按 键s1s17sw-pb17单 片 机 u1 mcs-511六相输入输出非门u274f041显示驱动u374ls5411集成稳压块u4 78l051数 码 管ds1ds3 redca3晶体振荡器y124m1继 电 器k1relay-spdt1二 极 管d1d51n40015附录b电 路 原 理 图附录c电 路 印 刷 板单片机液位测量程序 org 0000h ajmp start org 0003h;定义70h-7dh为缓冲寄存区;/主程序/start:clr st; 关水泵mov sp,#40hmov setup1,#00h; 预设高水位为450mmmov setup2,#05hmov setup3,#04hmov setup1_1,#00h; 预设高水位为450mmmov setup1_2,#00hmov setup1_3,#05hmov setdw1,#00h; 预设低水位为50mmmov setdw2,#05hmov setdw3,#00hmov flag,#00hmov count2,#00hmov tmod,#01h; 设置定时模式及时间mov th0,#3chmov tl0,#0b0hmov r7,#00h ;控制定时时间mov r5,#00hmov dptr,#0bfffhmov p2,#0fhmov a,#00hbegin:movx dptr,a;初始化显示0-9,延时时间根据需要调整lcall dl1slcall dl1slcall dl1slcall dl1sadd a,#01hmovx dptr,alcall dl1slcall dl1slcall dl1slcall dl1sadd a,#01hcjne a,#0ah,beginmov p2,#0f0hmov a,#0ffhmovx dptr,amov ie,#02h;开定时中断0setb tr0; 启动定时器0setb ea;开总中断start1:mov r3,#8ehlcall adcnext1:cjne r3,#8fh,next2clr led3clr led4mov r5,#00hlcall disp1;显示水位高度next2:jnb flag.0,next2_1;flag.0=1,水位超高clr st;关水泵setb led1;高水位灯亮jmp next2_3next2_1:jnb flag.1,next2_2;flag.1=1,水位超低setb st;开水泵 setb led2;低水位灯亮jmp next2_3next2_2:;正常水位处理clr led1;关高水位灯亮clr led2;关低水位灯亮next2_3:lcall dl1slcall keycjne r3,#8fh,next3jmp next1next3:inc r3mov a,r5jz next1lcall disp2ljmp next1time:push accpush pswmov th0,#4fhmov tl0,#70hinc r7cjne r7,#10h,time1mov r7,#00hlcall adctime1:pop pswpop accsetb tr0reti;/初始化/clr p3.4 ; 关闭水泵clr p3.5; 清除报警clr p2.0clr p2.1clr p2.3mov a,#00hmov dptr, #7fffhmovx dptr,amov setup1,#00h;预置上下限初值(450,050)mov setup2,#05hmov setup3,#04hmov setdo1,#00hmov setdo2,#05hmov setdo3,#00hmov qq1,#00hmov qq,#00hmov ie,#01h;中断设置mov tcon,#04hmov sp,#30h;mov p1,#07h;初始化键盘口setb ea;开中断sjmp $mov dptr,#0bfffhmovx dptr,a;启动adc转换nopnopmov r0,#70h;70为水位高度首址lcall disp1;显示水位高度;/显示程序/disp: mov a,37h ;按键内容给a mov dptr,#tab ;给表地址 movc a,a+dptr ;查表达 mov p2,a ret;/键盘处理/xch a,keycode;暂存键码xrl a,keycode;与上次相比是否相同?;相同转key1jz key1key01:mov a,#0ffhmov keyt,#00h;键码变化,键龄清零 clr keyok ;响应标志清零retkey1:mov b,#0ffh;定义键龄(02h)jnb keyok,key2;未响应过转key2mov b,#0d7h;定义连击速度控制(19h)key2:mov a,keytadd a,bjc key3;键龄到转key3retkey3:mov a,keycode;解释执行mov keyt,#00hsetb keyoklcall keywkretkeyin:;键盘读mov p1,#1fhmov a,p1anl a,#1fhmov b,amov p1,#0e0hmov a,p1anl a,#0e0horl a,bcjne a,#0ffh,keyin1retkeyin1:mov b,amov dptr,#keycodmov keybuf,#0ffhkeyin2:inc keybufmov a,keybufmovc a,a+dptrcjne a,b,keyin3mov a,keybufretkeyin3:cjne a,#0ffh,keyin2retkeycod: db 0beh,0bdh,0bbh,0b7h,0afh,0deh db 0ddh,0dbh,0d7h,0cfh,7eh,7dh,7bh db 77h,6fh,0ffhdisp2:mov r0,#keybuf1lcall dispretdisp1:mov r0,#adcbuf1disp:mov a,p2orl a,#0f0hclr acc.6mov dph,amov a,r0orl a,#0f0hclr acc.4movx dptr,amov a,#0ffhmovxdptr,ainc r0mov a,r0orl a,

温馨提示

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

评论

0/150

提交评论