课程设计(论文)_基于AT89C51单片机的转速测量系统的制作.doc
转速测量系统的制作摘 要:本设计主要介绍了一种由单片机89C51 构成的高精度多功能转速测量系统的工作原理, 软硬件配置及应用方法。该测速器是通过采集旋转编码器发出的脉冲信号由单片机计数, 数据经内部程序计算、分析、处理后, 由p1口输出。它的实时速度值通过LED 显示非常方便直观, 还可以通过按键锁定瞬时速度值。具有硬件结构简单, 测量速度快, 精度高, 运行可靠等优点。关键词:速度测量;单片机;LED显示模块;实时数据处理The Design of Measuring Speed Based on Single-chipAbstract: The paper presents operating principle of high-accuracy and multifunctional speed tachometer consisting of a monolithic processor 89C51, software and hardware configurations and their application method. The tachometer is based on pulse signal sent out collecting photoelectric coder with the monolithic processor counting. After data are analyzed and treated by interior program calculation, it gives p1 output. Its real-time speed values are directly displayed by LED, and instantaneous speed values are also displayed by the push-buttons and prior setting speed values. It has advantages of the hardware in structure being simple, fast measuring speed, high accuracy and reliable operation.Key Words: speed measurement; Single-chip; LED display modules;real-time data processing引言当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。为使我国尽快实现经济信息化,赶上发达国家水平,必须加速发展我国的信息技术和信息产业。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都重视新型单片机的研制、生产和推广。单片机的应用已深入到国民经济各个领域,由单片机控制的微电脑产品比比皆是。单片机正朝着多层次用户的多品种多规格方向发展,哪一个应用领域前景广阔,就有这个领域单片机的出现1。单片机突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好。外围电路更少,因而得到了广泛的应用。另外其较少的指令及较强的实用功能更为许多单片机初学者之首选。单片机指令少,PIC中低档系列单片机共有35条指令,非常有利于易记忆和掌握,指令为单字节,占用程序存储器的空间小,而且中档系列单片机每一条指令为14位,前6位存操作指令,后8位存操作数.大部分芯片有其兼容的FLASH程序存储器的芯片,支持低电压擦写,擦写速度快,允许多次擦写,程序修改方便。传感器产业是国内外公认的具有发展前途的高技术产业,它以技术含量高、经济效益好、渗透能力强、市场前景广等特点为世人瞩目。其应用领域涉及机械制造、工业过程控制、汽车电子产品、通信电子产品、消费电子产品和专用设备等。世界上传感器品种达到3万余种,美、日、英、法、德和独联体等国都把传感器技术列为国家重点开发的关键技术之一。本文从小处入手主要是利用小工程采用E6B2-CWZ6C传感器通过软件和硬件的结合进行速度的测量,不仅简单方便,并且能够实现实时速度的测量,不会受温度、环境等一些因素的影响,具有硬件成本低,制作简单,维护方便,显示功能丰富的特点。科技的进步以及人们生活水平的逐步提高,以单片机为核心的智能控制系统进入人们的生活,在显示控制,数据采集等方面得到广泛应用,开发前景十分广阔。本文就是利用单片机采集传感器的信号并控制其显示的,具有很好的设计效果。本系统采用了以AT89C51单片机为核心的控制系统,其系统包括单片机最小系统、按键控制部分和显示部分。旋转编码器发出的脉冲经74LS06整形后由T0口输入并进行计数,T1定时,经内部程序运算、分析后将速度由P1口送给四联LED数码管动态显示,P0.0和P0.1分别接开始和锁定按键,实现了对速度的实时测量和瞬时速度值的锁定,这就形成了单片机测速器。1.2总体框图及组成传感器工作产生脉冲数码速度显示单片机采集脉冲并进行数据处理 图1 速度测量的整体框图本设计采用传感器对具体事物的瞬时速度进行测量,而传感器在工作过程中产生脉冲,每秒钟产生的脉冲数通过T0采集到单片机内进行脉冲计数,然后通过单片机进行数据处理并显示速度。本设计采用的传感器是旋转编码器E6B2-CWZ6C型见图2,这种传感器具有宽电压范围(对应电源电压DC524V集电极开路输出型)、外径40备有2000P/R的分辨率、具备使Z相对简单化的原点位置显示功能、实现轴负重、径向30N、推力向20N、附有逆接、负荷短路保护回路,改善了其可靠性,也备有线性驱动输出、最大可延长长度的特点。图2 传感器E6B2-CWZ6C传感器E6B2-CWZ6C输出的脉冲有3种输出脉冲方式:一种是旋转编码器每旋转一周输出1024个方波脉冲,第二种是旋转编码器每旋转一周输出200个方波脉冲,第三种是旋转编码器每旋转一周输出1个方波脉冲。由于本设计欲进行精密速度的测量,因此采用第一种方式。单片机AT89C51采集从传感器输出的脉冲并进行数据处理,测试结果由 P1口送给数码管显示。AT89C51控制电路包括晶振电路、复位电路,分别使AT89C51获得稳定的时序、上电复位部分获取足够幅度驱动电压。显示部分采用共阳极四联七段数码管。经过布线、焊接、调试等工作后精密速度测量器成型后具有广泛的实用价值2。1.3 主要技术及性能指标本设计采用单片机的定时计数功能,对传感器的输出脉冲进行计数处理,通过数码管显示出来,整个电路由AT89C51控制, 主要的技术及性能指标如下:(1) 实现速度的实时测量;(2) 要求系统反应灵敏,性能稳定;(3) 成本低,应用广泛;(4) 抗干扰性能强。 本方案采用传感器在外部的旋转圈数,输出脉冲数,利用单片机的定时计数功能实现单位时间内的脉冲计数,然后送往数码管显示。优点是:功能齐全、操作方便、性价比较高、灵敏可靠。用单片机控制时,功能也可根据需要自行扩展。同时利用89C51的两个定时/计数器,一个计脉冲一个定时,可方便的实现对速度的测量。利用单片机进行控制不但电路图简单,而且适用于多种条件,还可方便扩展3。缺点是:由于89C51的输出灌电流:1.64,驱动能力很弱,不能直接作为执行部分、数码显示等外围设备的驱动,且硬件结构较复杂。因此,我们采用共阳极数码管,并利用PNP型晶体管对四个数码管进行选择输出,实现动态显示。2.2 原理图及原理传感器E6B2-CWZ6C输出的脉冲有3种输出脉冲方式,一种是旋转编码器每旋转一周输出1024个方波脉冲,第二种是旋转编码器每旋转一周输出200个方波脉冲,第三种是旋转编码器每旋转一周输出1个方波脉冲。由于本设计进行精密测量,所以采用第一种方式,其传感器转一周的周长为cm,所以每前进1dm传感器发出的脉冲数为407个。利用单片机AT89C51的定时计数功能和单片机的内部的存储器7AH、7BH、7CH、7DH对每秒钟前进的距离既速度进行数据记录,送往单片机的P1口通过数码管显示出来。其工作过程为:当接通电源时,单片机开始工作,传感器输出的方波脉冲经过74LS04反相器对波形放大整形,T0口对传感器采集脉冲,T1口定时,而采集到的脉冲数经过单片机内部定时计数,经过数据处理,将数据送往P1口,使测量的速度经数码管显示,以达到可示化效果。原理图见附录二速度测量器的设计目的主要是实现对速度的实时测量,其硬件电路主要有单片机AT89C51控制电路来实现。电路的AT89C51芯片工作时,通过采集到的传感器工作中输出的脉冲数,进行数据处理送往LED显示出来。电路包括两大部分:显示部分、AT89C51的控制采集部分。电路电源直接使用外部+5V直流电压,本设计不作对电源的设计要求。通过AT89C51芯片、数码显示电路和旋转编码器实现实时测速和显示功能。 单片机控制部分AT89C51是一款应用极为广泛的80C51单片机,此单片机芯片由ATMEL公司生产的,有突出的电可擦(FLASH)特性,一般情况下可重复烧写1000次。AT89C51单片机必须供应电压,电源接脚为VCC(pin40),地为GND(pin20),工作电压在4V6.6V之间,我们使用5V电源供应电压,以保持单片机的使用寿命5。单片机是本电路的核心器件,担负整个电路的管理与控制,其内部包括:一个8位CPU;一个片内时钟振荡电路;4KB ROM;128 B 片内RAM;可寻址64KB的外ROM和RAM控制电路;2个16位定时器;21个特殊功能寄存器;一个可编程全双工串行口;4个8位并行I/O接口,共32条可编程I/O线:P0P3;5个中断源,可设置2个优先级。电路中使用P0、P1口共16个I/O口分别通过74LS48译码及驱动器驱动四位数码管的7个笔划。由于译码及驱动器74LS48的接入,也减少了CPU译码的负担。单片机的复位脚使用C1、R1组成复位电路,C2、C3与晶振Y1组成晶振电路,其中C2、C3均采用30pF的瓷片电容,Y1采用6MHz的晶振器件。(1) 晶振电路部分AT89C51单片机的时钟信号通常有两种产生方式:一是内部时钟方式,二是外部时钟方式。本设计采用的是内部时钟方式,在AT89C51单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容器C2和C3的作用是稳定频率和快速起振6。晶振电路图如图3所示。 图3 晶振电路原理图(2) 复位电路部分单片机所有的工作都是从复位开始的,当在AT89C51单片机的REST引脚引入高电平并保持两个机器周期以上时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。在应用中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位。设计采用的是上电与按键均有效的复位的方式,当接通电源后,单片机自动实现复位操作;当单片机运行期间,可以利用按键来完成复位操作7。复位电路图如图4所示:图4 复位电路原理图显示电路显示部分主要是单片机AT89C51对采集到的传感器的脉冲数处理后对实时速度的数码显示,由四片74LS164分别与四个数码管连接并配合单片机AT89C51组成显示控制驱动电路。显示码由单片机P1口送出,控制数码显示。给出串行口扩展的4 位L ED 显示接口电路。该电路只使用2051 的3 个端口,配接4 片串入并出移位寄存器74LS164 与1 片三端可调稳压器。本串行口扩展的LED 显示接口电路已被笔者成功地应用到以AT89C51 单片机为核心的智能仪表中,如单片机湿度测量仪、单片机温度测量仪等。现场运行表明,LED 显示清晰稳定不闪烁,特别是在现场环境如光照强弱不同的情况下, 可以在线调整LED 发光的亮度,获得视觉与功耗的最佳效果。单片机P3口输出的模拟信号通过此连接通过74LS164转换成数字信号,通过A/D转换后送到数码管,这样能在数码管上看到即稳定又准确的数字,显示该系统的瞬时速度。如有脉冲计数时,将在数码管上显示对应的数字显示。若通电显示正常,而调节显示不正常,则说明单片机与显示部分均正常工作,需仔细检查调节设计的软硬件,及时调节电路。74LS164与数码管和单片机AT89C51的连接电路如下图5,构成串行口扩展的4 位LED显示电路。显示电路部分如下:图5 显示电路原理图4制作与调试根据需求选择电路的设计单元进行组合,完成系统的原理图设计与 PCB 设计,对制作好的PCB板,或准备好的面包板,按照装配图或原理图进行器件装配,装配好之后再进行电路的调试9。4.1 PCB板制作本设计的PCB电路板通过Protel99来完成。首先创建扩展名为DDB的设计文件,打开Document文挡新建Schematic document文件,在此文件里面画出本设计的各模块电路图,添好元器件的封装,生成网络表。然后在Document文挡新建PCB document文件,装载网络表。装载网络表完成后将各元器件重新布局,让图中的交叉线尽可能的少,以免布线时出现过多的交叉线。重新布置元件位置后,根据需要修改布线参数。主要修改的参数有两个:一个是板层的选择,板层的选择主要是从制作的难易程度上考虑的10, 一般在元器件少的情况下选择单面PCB板,因为元器件少时单面板布线的成功率高,易于腐蚀和焊接。双面PCB板的制作要复杂一些,且需要双面焊接,元器件一旦发现损坏很难卸下。在一般情况下都选择单面PCB板,但是元器件较多,单面PCB板布线出现交叉线很多时只有选用双面PCB板。本设计的电路图不是很复杂,且采用了分模块设计,故均采用单面PCB板。另一个需要修改的参数是PCB板的线宽。线宽的选择很重要,线宽太细在腐蚀时易出断线,线宽太宽需要的板子面积就大,这样浪费材料,不经济。线宽一般选择在m2mm之间。本设计的线宽除地线和电源线以外,均采用线宽,最终效果很好11。PCB板本身的基板是由绝缘隔热、且不易弯曲的材料所制作成。在表面可以看到的细小线路材料是铜箔,原本铜箔是覆盖在整个PCB板上的,而在制造过程中部分被腐蚀处理掉,留下来的部分就变成网状的细小线路了。这些线路被称作导线或称布线,并用来提供PCB板上零件的电路连接。通常PCB板的颜色都是绿色或是棕色,这是阻焊漆的颜色。是绝缘的防护层,可以保护铜线,也可以防止零件被焊到不正确的地方。在布局时首先要考虑的一个因素就是电性能,把连线关系密切的元器件尽量的放在一起,尤其对一些高速线,布局时就要使它尽可能地短,功率信号和小信号器件要分开。在满足电路性能的前提下,还要考虑元器件摆放整齐、美观,便于测试,板子的机械尺寸,插座的位置等也需认真考虑。所有平行信号线之间要尽量留有较大的间隔,以减少串扰。如果有两条相距较近的信号线,最好在两线之间走一条接地线,这样可以起到屏蔽作用。设计信号传输线时要避免急拐弯,以防传输线特性阻抗的突变而产生反射,要尽量设计成具有一定尺寸的均匀的圆弧线。对于双面板(或六层板中走四层线),电路板两面的线要互相垂直,以防止互相感应产主串扰12。PCB板布线完成后即用转印纸将所有的板层打印出来。将选好的PCB板除污后用转印机将转印纸上的碳迹转印到PCB板上。转印完成后检查转印的碳迹是否有断线,若有则用油漆或碳笔将断线连接起来,然后把PCB板放到三氯化铁的水溶液中进行腐蚀13。腐蚀的温度在37度为宜,在三氯化铁溶液浓度足够,PCB板面积不大的情况下半小时就可腐蚀完成。需要注意在腐蚀过程中不断搅拌三氯化铁溶液,可以使PCB板的腐蚀速度加快。4.2 元器件的焊接 腐蚀好的PCB板除去残留的三氯化铁残液和碳迹后,在有导线的一面刷一层松香。刷松香的作用有两个:一是防止PCB板上的铜线被空气中的氧所氧化;二是在以后的焊接中更容易焊接并提高焊点的可靠性。刷过松香后把板子上有焊盘的地方打孔,打孔需要根据焊盘的大小更换钻头以免焊盘太小,影响焊接的可靠性。4.3 注意事项(1) 在做PCB板装载网络表时发生丢元件错误。例:Component R1 not found;这种错误多为封装错误,应该在Schematic document文档电路图中修改对应的元件封装14。还有一种情况是删除了元件的Designator属性,还有就是两个元件封装是名称一样,只能显示一个元器件。(2) 在做PCB板装载网络表时发生找不到接点的错误。例:NodeR1-2 not found;这种错误为元件引脚标识与元件封装引脚标识不一致,这种情况多发生在自己制作的封装上。在制作封装时需注意引脚标识的一致性。(3) 在元器件布局过程中发现元器件的引脚之间实际该有导线连接上的而布线时却没有连上,这多为画图问题。画图时元器件与元器件之间要用导线相连,而不要把元器件与元器件的引脚放在一起,这样虽然也可以把元器件对应的引脚连接起来,但容易发生此类错误15。4.4 电路调试 通电准备打开电源之前,先按照系统原理图检查制作好的电路板的通断情况,并取下 PCB上的集成块,然后接通电源,用万用表检查板上的各点的电源电压值,完好之后再关掉电源,插上集成块。 单元电路检测 (1) 显示电路接通电源后,数码管显示应为“00”,如有脉冲计数时,将在数码管上显示对应的数字显示。若通电显示正常,而调节显示不正常,则说明单片机与显示部分均正常工作,需仔细检查度调节设计的软硬件,及时解决问题16 。(2) 采集电路 在显示电路正常的情况下,若运行状态下显示不正常,则说明传感器工作状态有问题,需及时对传感器的软硬件和通电情况仔细检查,最终达到正常工作。 软件调试程序写好后,用KEILC编译软件进行编译检查,没有语法错误。在用KEILC调试软件中再对程序进行单步运行,通过各窗口观察程序每一步的执行结果,程序工作正常,调试程序结束。把调试好的程序用TOP51编程器写入单片机AT89C51,然后运行整个系统,并修改程序参数使系统工作在所需的状态。本设计源程序见附录。 整机调试 (1) 开始后,数码管显示“0000”;(2) 接通电源,数码管采集的采集单片机的送出的数据,采集电路和显示电路正常工作,单片机对采集电路进行脉冲采集,采集到的脉冲数单片机内进行数据处理,并有数码管显示出来; (3) 电源断电,整个电路恢复初始状态。5软件编制本电路中的硬件比较简单,其功能的实现主要由软件完成。本软件采用MCS-51汇编语言。根据上述原理的要求,软件中包括以下几个部分:即初始化程序,中断定时程序,中断计数程序,数据处理程序和显示程序。系统时钟采用6MHz,采用内部时钟方式。 单片机80C51同时完成定时计数两个功能,分别由T0定时和T1来计数,如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。设置为定时模式时,加1计数器是对内部机器周期计数。计数值乘以机器周期就是定时时间。设置为计数器模式时,外部事件计数脉冲由T0(P3.4)或T1(P3.5)引脚输入到计数器。本设计中传感器E6B2-CWZ6C输出的脉冲有三种输出脉冲方式,一种是旋转编码器每旋转一周输出1024个方波脉冲,第二种是旋转编码器每旋转一周输出200个方波脉冲,第三种是旋转编码器每旋转一周输出1个方波脉冲。由于本设计欲进行精密测量,采用第一种方式,其传感器转一周的周长为cm, 所以每前进1dm传感器发出的脉冲数为407个。利用单片机AT89C51的定时计数功能,再利用单片机的内部的存储器7AH、7BH、7CH、7DH对脉冲进行数据处理,单片机每计数满407个脉冲T0中断一次,同时单片机内部存储器7A H加1,而当存储器7AH计数满10时,7BH加1,7AH清零循环计数,而当存储器7BH计数满10时,7CH加1,7BH清零循环计数,依此类推。同时T1定时125ms,T1中断8次既1s时则清零TR0使T0停止计数,并将7AH、7BH、7CH、7DH 中的数据由P1口送出显示。软件流程图如图6所示。开始 始始设置初值采集脉冲数存储器加1定时125msRNF=1显示速度结束NN图6 程序流程图速度测量在国民经济的各个领域,都是必不可少的,特别是转速的测量。采用单片机技术来实现速度的测量,可以提高测量的准确度,并且加快了采样的速度,具有较好的实时性。本设计的测量方法适用于高、低速度的测量,具有较宽的应用范围和广阔的应用前景。此外,加入少量接口,还可实现与PC机的联机,可实现PC机对速度的监视和调整。结论本文采用单片机AT89C51为核心控制系统,对采集的脉冲进行计数处理,具有精度高反应快,功能多,实时性强的特点。本设计用Protel 99se生成PCB板,经过转印、腐蚀、焊接等过程做成硬件实物,再将经Keil C编译过的正确程序烧录到单片机,接上电源和地,按相应的键既可开始测速,和锁定瞬时速度。 参考文献:1 梁超,肖静,邱志诚一款基于单片机技术的电子抢答器M河南:机电工技术,2005:10142 PCLeave LandNew moves in PLC TechnologyJNew York:I&CS,1988:2182203 Mark Rose Programming Logic MLondon:Cambridge Press,2002:90100.4 陈富安主编单片机与可编程控制器应用技术M西安:电子工业出版社,2002:565 编写组实用电子电路手册(模拟电路分册) M北京:高等教育出版社,1999:44556 M.北京:清华大学出版社,2006:17257 M.北京:北京航空航天大学出版社,2001:3435.M.北京:高等教育出版社,2000:247-248,2822839 John ReederUsing MultiusmMWashington:Washington University Press US,2001:4548M.北京:高等教育出版社,2002:243111 A K Mackworth, A. Basu ,X Li, editors. Computer Vision:Systems Theory and Plight MWorld Scientific ress,Singapore,1993:9313712 魏立君,韩华琦CMOS 4000系列60种常用集成电路的应用M北京:人民邮电出版社,1993:20022113 Intel.MCS-51 Family of single chip Microcomputers Users ManualM 1990:13213514 李全利,迟荣强单片机原理及接口技术M北京:高等教育出版社,2002:1622,828315 阎石主编数字电子技术基础M北京:高等教育出版社,2002:15015716 陈大钦电子技术基础实验-电子电路实验·设计·仿真M北京:高等教育出版社,2002:24525017 沈美明,温冬婵IBM-PC汇编语言程序设计M北京:清华大学出版社,2001 附录一: 源程序 RNF BIT 30H ORG 0000H LJMP MAIN ORG 0008H LJMP PIT0 ORG 000FH LJMP PIT1 ORG 8100HMAIN: MOV SP, #60H MOV R0, #7AH MOV R7, #04H ML1: MOV R0, #00H INC R0 DJNZ R7 , ML1PSTART: JNB P0.0 , CESU JNB P0.1 , SUDING AJMP PSTARTCESU: AJMP CESU1SUDING: CLR TR0 AJMP SMXS AJMP PSTARTCESU1: MOV TMOD,#16H MOV TL0, #69H MOV TH0, #0FEH MOV TH1, #0BH MOV TL1, #0CDH SETB EA CLR EX0 CLR EX1 SETB ET0 SETB ET1 SETB TR0 SETB TR1 MOV 31H, #08H ML0: JNB P0.1, FAN JNB RNF , ML0 CLR TR0XIAN: LCALL SMXS LCALL DEL CLR RNF SETB TR0 SJMP ML0FAN: AJMP SUDING PIT0: PUSH PSW PUSH ACC CLR PSW.3 MOV TL0, #69H MOV TH0, #0FEH MOV R0, #7AH INC R0 MOV A, R0 XRL A, #10 JNZ RET0 CLR A MOV R0, A MOV R0, #7BH INC R0 MOV A, R0 XRL A, #10 JNZ RET0 CLR A MOV R0, A MOV R0, #7CH INC R0 MOV A, R0 XRL A, #10 JNZ RET0 CLR A MOV R0, A MOV R0, #7DH INC R0 MOV A, R0 XRL A, #10 JNZ RET0 CLR A MOV R0, A RET0: POP ACC POP PSW RETI PIT1: PUSH PSW PUSH ACC SETB PSW.3 MOV TL0, #0CDH MOV TH0, #0BH MOV A, 31H DEC A MOV 31H, A JNZ RET1 MOV 31H, #08H SETB RNFRET1: POP ACC POP PSW RETI SMXS: MOV DPTR,#TABLE MOV A,7AH MOVC A,A+DPTR MOV P1,A ACALL DEL MOV A,7BH MOVC A,A+DPTR MOV P1,A ACALL DEL MOV A,7CH MOVC A,A+DPTR MOV P1,A ACALL DEL MOV A,7DH MOVC A,A+DPTR MOV P1,A ACALL DELTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,83H,0F1H,80H,90H RETDEL: MOV R5,#5DEL1: MOV R7,#200DEL2: MOV R6,#123 NOPDEL3: DJNZ R6,DEL3 DJNZ R7,DEL2 DJNZ R5,DEL1 RET END 附录二:原理图