课程设计基于51单片机对电动机的测速

上传人:无*** 文档编号:90545771 上传时间:2022-05-15 格式:DOC 页数:18 大小:93KB
返回 下载 相关 举报
课程设计基于51单片机对电动机的测速_第1页
第1页 / 共18页
课程设计基于51单片机对电动机的测速_第2页
第2页 / 共18页
课程设计基于51单片机对电动机的测速_第3页
第3页 / 共18页
点击查看更多>>
资源描述
-目 录摘要2一 、设计题目与要求 31 、选择实现转速测量的方法31根据测量方法分类32根据工作原理分类43几种具体的测量方法54光电开关具体的类型52 、测量系统的构成61信号拾取62整形倍频73单片机模块8三 、硬件电路设计 91 .原理分析 91显示局部92复位电路103信号104单片机时钟11四 、系统程序设置与调试 121、单片机控制局部硬件调试 122、数码管LED电路调试123、发送局部硬件电路调试 121秒信号的产生142数码管的显示144、系统流程 16五 、程序调试 161 .基于Keil的程序调试16实验总结21原理图22附录23摘要直流电机转速作为直流电机的一项重要技术指标,在各个应用场合都有重要的研究价值,是其他大局部技术参数的计算来源,因此,准确测量直流电动机的转速具有重要的研究意义和理论价值。目前,在工程实践中,经常会遇到各种需要测量转速的场合。对于工业测试,水利,机械等方面,转速是重要的控制参数之一。尤机在工业测试系统中,大局部旋转仪器需要测定目前的转速,对机械设备进展故障预防。因此,如何利用先进的数字技术和计算机技术改造传统的工业技术,提高监控系统的准确性,平安性,方便性是当前工业测控系统必须解决的一个问题。转速测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方法,这种测量方技术已不能适应现代科技开展的要求,在测量围和测量精度上,已不能满足大多数系统的使用。随着大规模及超大规模集成电路技术的开展,数字系统测量得到普遍应用,特别是单片机对脉冲数字信号的强大处理能力,使得全数字量系统越来越普及,其转速测量系统也可以用全数字化处理。在测量围和测量精度方面都有极大的提高。 模拟检测:即利用测速电机作为发电机,通过检测反电势E的大小和极性可得到转速N和电机转向,采用这种方法直接可以得到转速N和输出电压的特性曲线,直观,但也有很多缺乏,比方在高速和低速情况下实际输出偏离理想特性。数字检测技术:即通过分析数字信号产生的一系列脉冲间接获取电机转速。如光电旋转编码器是将检测圆盘划分为等距的三个同心圆,最外环和次外环分别用等距的黑白条纹分开,且最外环和次外环的缝隙位置相位差为90度,用于判断电机的转速,最环只有一个黑条纹,用作定位脉冲或者是复位脉冲,利用光电编码器输出的脉冲可以计算转速,具体的又可分为M法,T法和MT法。一 、设计题目与要求电动机转速测量1. 实现对电动机转速的测量。2. 实时显示直流电动机转速的实际测量值。设计任务:利用光电接近传感器和单片机技术设计、制作一个显示电动机转速的速度测定系统。测量围约为7503000r/s,尽可能地提高测量误差,用4位LED数码管显示速度。二 、方案选定1 、选择实现转速测量的方法1根据测量方法分类测速方法数字测速方法目前有比拟常用的三种:M法、T法和M/T法。测周期法T法在给定的角位移距离,通过测量这一角位移的时间来进展测速的方法,称测周法,即T法假设使用霍尔传感器时,可累计传感器输出的脉冲数,测量到达给定的脉冲数所需的时间。那么转速n可由下式表示:n=X/t (r/min)其中x为给定的脉冲数;t为到达给定的脉冲数所需的时间,单位min由 T法脉宽测量可知T法测量精度的误差主要有两个方面,一是两脉冲的上升沿触发时间不一致而产生的;二是计数和定时起始和关闭不一致而产生的。因此要求脉冲的上升沿或下降沿陡峭和计数和定时严格同步。测周法在低转速时精度较高,但随着转速的增加,精度变差,有小于一个脉冲的误差存在5。高速时M小,量化误差大,随着转速的降低误差减小,所以T法测速适用于低速段与M法恰好相反。测频法M法在一定测量时间T,测量霍尔传感器产生的脉冲数m1来测量转速,这种以测量频率来实现测量转速的方法,称测频法,即M法。转速n可由下式表示:n=X/t (r/min)其中t为给定的测量时间,单位min; x为测量的脉冲数;在该方法中,测量精度是由于定时时间T和脉冲不能保证严格同步,以及在T能否正好测量外部脉冲的完整的周期,可能产生的1个脉冲的量化误差。设置的时间过短,测量精度会受到一定的影响6。因此,为了提高测量精度,T要有足够长的时间。在上式中,Z和T均为常值,因此转速n正比于脉冲个数M。高速时M大,量化误差小,随着转速的降低误差增大,转速过低时M将小于1,测速装置便不能正常工作。所以M法测速只适用于高速段。测频测周法M/T法所谓测频测周法,即是综合了T法和M法,一方面象M法那样在对传感器发出的脉冲计数的同时,也象T法那样计取脉冲的时间,通过计算即可得出转速值。测频测周法分别对高、低转速具有的不同精度,利用各自的优点而产生的方法,精度位于两者之间。设高频时钟脉冲的频率为f,那么准确的测速时间T=M/f,而电动机转速为n=60M1f/(ZM2)。本设计中采用了M法进展测速。有如下测速方案:方案:利用单片机外部中断引脚计数。即通过单片机外部中断信号,在中断程序对电机转速脉冲信号进展计数,测量电机转速。将传感器电路的输出端CKMOT与单片机外部中断引脚相连,用于输入计数脉冲,设定单片机T0为定时器,定时器时间为1秒,并定义一个外部中断变量作软件计数器。电机每转一周CKMOT输出一个脉冲信号中断信号产生一次中断请求,CPU响应中断后在中断程序中对软件计数器作加1运算。当定时器T0计时1秒到时,停顿中断计数,软件计数器计数值为电机当前的转速。通过误差和精度分析可知,M法适合于高速测量,当转速越低,产生的误差会越大。T法适合于低速测量,转速增高,误差增大。M/T这种转速测量方法的相对误差与转速n无关,只与晶体振荡产生的脉冲有关,故可适合各种转速下的测量。因此,在实际操作时往往采用一种称变M/T的测量方法,即所谓变M/T法,在M/T法的根底上,让测量时间Tc始终等于转速输入脉冲信号的周期之和。基于M法测量速度,电路和程序均较为简单,且可以在一定的条件下满足精度的要求采用M/T法测速时,应保证高频时钟脉冲计数器与旋转编码器输出脉冲计数器同时开启与关闭,以减小误差,只有等到编码器输出脉冲前沿到达时,两个计数器才同时允许开场或停顿计数。由于M/T法的计数值M1和M2都随着转速的变化而变化,高速时,相当于M法测速,最低速时,M1=1,自动进入T法测速,因此,M/T法测速能适用的转速围明显大于前两种,是目前广泛应用的一种测速方法。测量方法比拟方法工程错误!未指定书签。M法T法M/T法单位被测速度60m1/PTg60fc/Pm260fcm1/Pm2rpm检测时间TgTtach60/nP(60/nP)(nPTg/601)s分辨率60/PTgnP/(60fcnP)n/(m21)精度e1/m1e(1/m2)(e/m1(1/m2)m1、m2:检测时间间隔的脉冲计数值分别对应M、T法;T为规定的检测时间间隔;P为圆光栅编码器每转一圈发出的转速脉冲信号的个数;fc为法中频率值填充被测频率相邻两个脉冲的间隔;n是电机每分钟的转速;Ttach为圆光栅测速脉冲周期;e是圆光栅编码器的制造误差。 2根据工作原理分类转速测量方法可以主要分为3类:u 机械rpm转速测量通过机械测量传感器采集数据,是最古老的rpm转速测量方法。传感器采集到的转速资料,还要通过仪器部的电子分析。这种测量方法仍被应用,但大多数用于20至10000rpm的低转速测量。这种测量方法在测量过程中依赖于接触压力,其最大的缺点是加载运动不连续。另外,机械转频闪法测量rpm转速不可应用于细微物体,如果转动率过高,易发生滑走情况。u 采用反射原理的电力转速测量法光学rpm转速测量法测量仪器发射出的红外线经固定在待测目标上的反射条反射后,即携带上有关转速信息。测量仪器接收反射波后,经过处理即可得到转速。这种测量方法虽然要比机械rpm测量法先进,但是并非所有持待测目标上都可以安装反射条。u 频闪rpm转速测量法按照频闪原理,当高速闪光的频率和目标的rpm转速移动同步时,在观察者的眼中,目标是静静止的。同其它的测量方法如机械法或光学传感器法直比,频闪原理的优点显而易见:这种方法可以用于测量小型目标或不便触及部位的rpm,而不需要在待测目标上固定反射条。例如,如用于生产过程测量时,便不需中止。测量围:100至20000rpm。除了测量rpm转速外,频闪测量法还可用于振动分析和动作监控。对于不同形式的测量方法其测量围如图3-10所示:图3-10 不同形式的测量围3几种具体的测量方法基于霍尔传感器的直流电机转速测量霍尔传感器具有许多优点,它们的构造结实,体积小,重量轻,寿命长,安装方便,功耗小,频率高可达1MHz,耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀。霍尔线性传感器的精度高、线性度好;霍尔开关传感器无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高可达m级。其中取用了各种补偿和保护措施的霍尔器件的工作温度围可以很宽,可达55150。基于上述优点霍尔传感器产业开展应用大致分为:直接应用和间接应用。前者是直接检测出受检测对象本身的磁场或磁特性,其中最具特色的当推是霍尔电流、电压类传感器/变送器,它们已成为当今电子测量领域中应用最多的传感器件之一,是测量控制电流、电压的新一代工业用电量传感器,是一种新型的高性能电气隔离检测元件,被广泛用于电力、电子、交流变频调速、逆变装置、电子测量和开关电源等诸多领域以及逆变焊机,发电及输变电设备,电气传动,数控机床等工业产品上,它正在逐步替代传统的互感器和分流器,并具有精度高、线性好、频带宽、响应快、过载能力强和不损失测量电路能量等优点。于光电传感器的电机转速测量目前,光电开关已被用作物位检测、液位控制、产品计数、宽度判别、速度检测、定长剪切、孔洞识别、信号延时、自动门传感、色标检出、冲床和剪切机以及平安防护等诸多领域。此外,利用红外线的隐蔽性,还可在银行、仓库、商店、办公室以及其它需要的场合作为防盗戒备之用。4光电开关具体的类型l 漫反射式光电开关:它是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的外表光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式l 镜反射式光电开关:它亦集发射器与接收器于一体,光电开关发射器发出的光线经过反射镜反射回接收器,当被检测物体经过且完全阻断光线时,光电开关就产生了检测开关信号。l 对射式光电开关:它包含了在构造上相互别离且光轴相对放置的发射器和接收器,发射器发出的光线直接进入接收器,当被检测物体经过发射器和接收器之间且阻断光线时,光电开关就产生了开关信号。当检测物体为不透明时,对射式光电开关是最适宜的检测装置。l 槽式光电开关:它通常采用标准的U字型构造,其发射器和接收器分别位于U型槽的两边,并形成一光轴,当被检测物体经过U型槽且阻断光轴时,光电开关就产生了开关量信号。槽式光电开关比拟适合检测高速运动的物体,并且它能分辨透明与半透明物体,使用平安可靠。l 光纤式光电开关:它采用塑料或玻璃光纤传感器来引导光线,可以对距离远的被检测物体进展检测。通常光纤传感器分为对射式和漫反射式。光电开关把发射端和接收端之间光的强弱变化转化为电流的变化以到达探测的目的。由于光电开关输出回路和输入回路是电隔离的即电缘绝,所以它可以在许多场合得到应用。光电传感器具有线性度好、分辨率高、噪音小和精度高、无触点、无机械碰撞、响应快、控制精度高,而且能识别色标等优点,在此我们选择光电转速传感器来进展转速的检测。其原理就是一个小型发电机。转轴旋转时产生电压,电压的大小与转速成正比非线性,可用一个具有与转速对应刻度的电压表测量这个电压。本课题中使用的光电开关是根据光敏二极管工作原理制造的一种感应接收光强度变化的器件,当它发出的光被目标反射或阻断时,那么接收器感应出相应的电信号。它包含调制光源,由光敏元件等组成的光学系统、放大器、开关或模拟量输出装置,其工作原理如图5所示。光电式传感器由独立且相对放置的光发射器和收光器组成。当目标通过光发射器和收光器之间并阻断光线时,传感器输出信号。它是效率最高、最可靠的检测装置。槽形U形光电开关是对射式的变形,其优点是无须调整光轴。图5 光电传感器原理图以上两种是常用的转速测量装置。此外还有傅立叶变换用于电机转速的测量、基于单片机无线电机转速测量系统、基于光电码盘的的高精度电机转速测量等方法。综合以上所述,本次课程设计选用计数式,光电传感器,M/T法频率/周期法测量电动机转速,适用于中、高速测量。2 、测量系统的构成转 速 信 号 拾 取整 形 倍 频单 片 机显 示 接 口 芯 片驱 动 电 路显 示图1 转速测量框图1信号拾取转速信号拾取是整个系统的前端通道,目的是将外界的非电参量,通过一定方式转换成电量,这一环节可以通过敏感元件、传感器或测量仪表等来实现。方法如下:l 通过敏感元件拾取被测信号敏感元件体积小,可以根据用户及环境要求做成各矛中形状的探头,它能将被测的物理量变换成电流、电压,只要选择适宜的元件参数。如R、L、c设计相应的电路,便能完成这种对应关系。这种方法设计难度大,信号稳定度差,在模拟处理系统中不宜采用。l 通过传感器拾取信号由专业人员将敏感元件和相应的测量电路、传递机构以适当的形式制成不同类型、不同用蔓堕查兰堡主堂篁堡三处的传感器,根据原理输出电量。该电量可以是模拟量或数字量,现代传感器还可以输出开关量,用于数字逻辑电路。l 通过测量仪表拾取被测信号目前有许多测量仪表用于各种测量中,有大信号输出、有BcD码输出等,但价格昂贵,专业性强,一般不适合通用系统。通用的转速测量系统大都采用一种俗称码盘的传感装置,将圆形的码盘固定在转轴上,码盘上有假设干规那么排列的小孔,用光电偶来输出电信号,以反映转速对应关系,即是将转轴的速度以脉冲形式反映出来,通常有两种形式:1)模拟量量化后经A仍转换,由数字量反映角度,供单片机计算处理,得出转速。2)直接由脉冲来反响转轴的角度,用每转产生的脉冲经单片机处理得出转速。此处使用74HC1474HC14是一款高速CMOS器件,74HC14引脚兼容低功耗肖特基TTLLSTTL系列。74HC14遵循JEDEC标准no.7A。74HC14实现了6路施密特触发反相器,可将缓慢变化的输入信号转换成清晰、无抖动的输出信号。应用: 波形、脉冲整形器非稳态多谐振荡器单稳多谐振荡器兼容JEDEC标准no.8-1AESD保护:HBM EIA/JESD22-A114-A超过2000 VMM EIA/JESD22-A115-A超过200 V温度围 -40+85 -40+125 主要参数:典型电源电压:5.0V正向输入阀值电压:VT+=1.6V负向输入阀值电压:VT-=0.8V驱动电流: +/-5.2mA传输延迟:12ns 5V逻辑电平:CMOS引脚:14封装类型:DIP2整形倍频前向通道中,从传感器输出的信号必须转换成计算机输入要求的信号,由于信号调节电路与传感器的选择,现场干扰程度等,都会影响信号的质量。而脉冲信号的上升沿和下降沿对数字电路的触发尤为重要,假设要将转速脉冲信号直接加到计数器或外部中断的输入端,并利用其上升沿来触发进展计数,那么必须要求输入的信号有陡峭的上升沿或下降沿。处理方法上可以用触发器电路来整形。而倍频电路主要用于解决低转速时测量精度问题。及码盘的刻度误差而造成的精度下降问题。方法是在每转中增加脉冲的个数码盘的线程数来提高精度。但在高转速时,由于脉冲个数的增加,限制了最高转速测量量程,这个问题可用单片机控制来动态处理解决,兼顾上下转速的测量精度。3单片机模块根据系统功能要求以及单片机硬件电路设计思路对单片机模块进展设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机局部分为传感器电路、时钟电路、复位电路、执行元件以及显示电路五个局部。l 处理执行元件:单片机我们采用AT89C51(其引脚图如图4-1),AT89S51单片机最小系统由AT89S51单片机及其外围电路组成是整个磁电式转速表系统的核心。 AT89S51单片机在高温环境中稳定性好,支持在线编程ISp,无需专用的编程器,方便调试.AT89S51单片机对很多嵌入式控制应用提供了一个高灵活有效的解决方案。它的作用使形成用于产生超声波的40KHZ信号、形成必要的时序、控制LCD字符的显示。P3.2为承受霍尔传感器脉冲信号输入端P18和P19为单片机自身的11.0592MHZ晶振P9是复位信号有一个电阻和一个电容构成。P0.0P0.7输出转速数码管显示信号控制液晶屏的写入字符。P2.0-P2.3引脚对应液晶显示屏的位选通信号通知四个LED数码管的选通与否。 将霍尔元件采集到的信号传输给单片机P3.2每发送一次脉冲单片机的计数器就自动加1根据脉冲的次数计算出齿轮的转速然后单片机将转速传输给四连排LED数码管显示电路通过数码管将转速显示出来。图4-1 AT89C51引脚图l 显示方式:方案一:静态显示方式所谓静态显示就是指无论是多少位数码管,同时处于显示状态。当数码管处于静态显示方式时,所有位选线数码管的公共端连接在一起,而各个数码管的段选线数码管上各笔段的引出线是相互别离的。静态显示的优点是:数码管显示无闪烁,亮度高,软件控制比拟容易;缺点是:需要的硬件电路较多每一个数码管都需要一个锁存器,如果在全国大学生电子设计竞赛中使用,将造成很大的不便,同时由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时,对电源的要求也就随之增高。所以,在大局部的硬件电路设计中,很少采用静态显示方式。方案二:动态显示方式所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。当数码管处于动态显示时,所有位选线别离,而每个数码管的各条段选线相连。当需要显示数字或字符时,需要将所有数码管轮流点亮,这时对每个数码管的点亮周期有了一个较严格的要求:由于发光体从通入电流开场点亮到完全发光需要一定的时间,叫做响应时间,这个时间对于不同的发光材质是不同的,通常情况下为几百微秒,所以数码管的刷新周期所有数码管被轮流点亮一次的时间不要过短,这也与数码管的数量有关,一般的数码管的刷新周期应控制在5ms10ms,即刷新率为200Hz100Hz,这样既保证了数码管每一次刷新都被完全点亮,同时又不会产生闪烁现象。动态显示的优点是:硬件电路简单数码管越多,这个优势越明显,由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;如果数码管直接与单片机连接,软件控制上会比拟麻烦等。由于本课题需要需要数码管个数较多,为节约i/o端口综合比拟采用动态显示更适宜。所谓动态显示,就一位一位地轮流点亮各位显示器扫描,对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。假设显示器的位数不大于8位,那么控制显示器公共极电位只需8位口称为扫描口,控制各位显示器所显示的字形也需一个8位口称为段数据口。本次设计要求的转速测量围60r/min-36000r/min,所以只需要5位数码管即可。5位共阴极显示器和AT89C51的接口逻辑如图4-7所示。AT89C51的P0口作为段数据口,接上拉电阻到显示器的各个段;P2口作为扫描口,经同相驱动器7407接显示器公共极。三 、硬件电路设计1 .原理分析信号脉冲整形89C51 P2.0 P2.3T0 P0.0 P0.7驱 动图2 单片机系统测量转速原理图1显示局部4位显示器,在AT89C41RAM存贮器中设置四个显示缓冲器单元30H34H,分别存放4位显示器的显示数据,AT89C41的P2口扫描输出总是只在一位为低电平,即4位显示器中仅有一位公共阴极为低电平,其它位为高电平,AT89C41的P0口相应位阴极为低的显示数据的段数据,使该位显示出一个字符,其它们为暗,依次地改变P2口输出为高的位,P0口输出对应的段数据,4位显示器就显示出由缓冲器中显示数据所确定的字符。LED显示显示显示显示管管管管 数码管中有8个发光二极管,其中7个发光二极管长条段状,可组成数字字形,1个发光二极管为点状,形成小数点,所以有时称为七段码。七段数码管引脚编码从左下脚开场,分别为第1引脚、第2引脚。 七段数码管的8个发光二极管分别命名为a、b、c、d、e、f、g、dp;为8个LED的公共引脚。按照公共引脚的接法,七段数码管分共阳极和共阴极两种。 共阳极的七段数码管将所有LED的正极连接在公共引脚,接到电源线。当某一个LED负极为低电平时,发亮;为高电平时,变暗。共阴极的七段数码管将所有LED的负极连接在公共引脚,接到地线。当某一个LED正极为高电平时,发亮;为低电平时,变暗。2复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开场工作。MCS-51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的部有一个拉低电阻),当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都 输出高电平。RST变为低电平后,退出复位,CPU从初始状态开场工作。单片机采用的复位方式是自动复位方式。对于MOS(AT89C51)单片机只要接一个电容至VCC即可(见图43)。在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效的复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间假设为10ms,振荡器起振的时间和频率有关。10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电应保持20ms以上的高电平。RC时间常数越大,上电RST端保持高电平的时间越长。假设复位电路失效,加电后CPU从一个随机的状态开场工作,系统就不能正常运转。图4-3 上电复位电路3信号光电传感器承受到的信号。本设计中采用对射式光电传感器测量电机转速。当不透光的物体挡住发射与接收之间的间隙时,开关管关断,反之翻开。测装置按照发动机上传感器的实际安装位置进展安装。将信号盘固定在电动机转轴上,光电转速传感器正对着信号盘。测量头由光电转速传感器组成,而且测量头两端的距离与信号盘的距离相等。测量用器件封装后,固定装在贴近信号盘的位置,当信号盘转动时,光电元件即可输出正负交替的周期性脉冲信号。信号盘旋转一周产生的脉冲数,等于其上的齿数。因此,脉冲信号的频率大小就反映了信号盘转速的上下。该装置的优点是输出信号的幅值与转速无关,而且可测转速围大,一般为1r/s104 r/s以上,准确度高。所谓计数是对外部事件进展计数。外部事件的发生以输入脉冲表示,因此,计数功能的本质就是对外来脉冲进展计数。T0(P3.4)和T1(P3.5)两个信号引脚,分别是这两个计数器计数输入端,外部输入的脉冲在负跳变时有效,进展计数器加一加法计数操作。前一个机器周期S5P2拍节对外部计数脉冲进展采样,如果采样为高电平,那么后一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一个机器周期S3P1进展计数。可见,采样计数脉冲是在两个机器周期进展的。因此,计数脉冲的频率不能高于振荡脉冲频率的1/24。当然,传感器的信号变化的频率400Hz远远小于这个值。因此,测量方法可以这样:用T0做测量脉冲数的计数器;用T1定一段时间,在这段时间测量的脉冲数为N,那么转速为N*60/(4*T1)。因为N个脉冲在(N-1)(N+1)个周期里出现,所以最大误差为60/(4*T1),最大相对误差为1/N*100%。显然,N越大相对误差越小,即转速越快,这种方式测量相对误差就越小。图3 光电传感器原理4单片机时钟时钟电路是计算机的心脏,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZMCS-51部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反响元件以后就组成振荡器,产生时钟送至单片机部的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在构造上有别于NMOS型的单片机。CMOS型单片机部如AT89C51有一个可控的负反响反相放大器,外接晶振或瓷谐振器和电容组成振荡器,图42为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置1PD即特殊功能存放器PCON.1使/PD0,振荡器停顿工作,整个单片机也就停顿工作,以到达节电目的。清0PD,使振荡器工作产生时钟,单片机便正常运行。图中SYS为晶振或瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定晶振上标明的频率。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用C1、C2大,f变小,其典型值为30pF。图4-2 CMOS型单片机时钟电路框图四 、系统程序设置与调试硬件电路设计完毕,即进展程序设计,在程序设计之前,首先要确定定时器的工作方式,方式控制字,确定串行口的工作模式等,下面分别讨论。硬件调试主要是针对我的转速测量系统的单片机硬件电路分别进展调试。这一局部硬件调试主要分成两大块:上电前的调试和上电后的调试。上电前的调试在上电前,我们必须确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这局部调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。特别是数码管的连接局部,有PROTEL制作的PCB确保要和原理图上的图一致,有些在电路板上没法连接的线路,要用短接线把接好,对照着原理图局部,一局部一局部地用万用表测量,注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。上电后的调试在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次课程设计中,上电调试主要只转速测量系统的单片机控制局部、数码管点亮局部、和上位机通信是的电平转换和串口通信局部的硬件调试。1、单片机控制局部硬件调试:这一局部调试主要是检查时钟电路、复位电路是否接对,单片机的电源以及地是否接好,以及其他的一些管脚的接法。看单片机通电后能否可以正常工作等这一系列问题。2、数码管LED电路调试:由于数码管采用的是动态扫描的方式点亮的。数码管的公共端接在7407驱动再接到单片机的P2口作为位选信号,字型是接在P0口。电路上电检查7407是否接上电源和地让其正常工作。在这一前提下,查看数码管能否点亮。只需要接仿真机上编写一个小程序让5位LED全亮,或者让它们其中的某位点亮,也可以显示不同的数字,根据要求给P0口,P2口分别赋值。即可检查数码管的硬件电路是否正确,即可判断显示驱动电路整个完整,首先排除这里的故障。3、发送局部硬件电路调试:这一局部电路硬件调试主要完成任务是使得通过HIN232CPE电平转换器转换前后的电平关系。可以用示波器和万用表检查电平转换前后的关系本系统设计中,T0被用于计数,计数量大为好,可以获得较大的测量围,因此,T0选定为工作方式116位的计数方式,设计中,没有使用外部控制端,仅用指令置位/清零TR0来进展计数的启动/停顿,这样,电路较为简单,同时精度可到达要求,因此,T0采用自由计数的方式,不用预置初值。本系统设计中,T1被用于数码管显示及形成闸门信号,由于系统中用到4位数码管,动态显示时,一组数码管显示的总时间以不超过20ms为宜,因此,这里选择T1的定时时间为5ms,4位数码管显示完毕,正好用于20ms,这里选用T1的工作状态。确定了定时/计数器T1的定时时间以后,就要计算定时初值,本系统用了12M的晶振,恰好是一个机器周期为1us,因此,5ms定时时间意味着只要计数5000次即可,由于定时/计数器T1是向上计数,因此,要化为16进制,并分别送入T1的高8位和低8位。这里,采用的keil汇编软件有较强的预处理功能,能够处理较复杂的运算,因此,程序中可写为: MOV TH1,#HIGH(655365000) MOV TL1,#LOW(655365000) 这里使用了两条指令#HIGH和#LOW,它们的用途分别是取其后括号中数值的高8位和低8位,因此,这两行语句的含义就是取655365000的高8位和低8位,写成655365000而不是写出其结果60536可以提高程序的维护性,直观地看到定时初值。由于89C51单片机在中断时,会附加延时38个周期,在满足一定条件的情形下,验证这个数值是否正确,可以在进入仿真调试时通过观察Keil提供的有关变量看到,如果不正确,可以根据实际情况略作调整,保证定时时间为5ms。定时/计数器的方式控制字TMOD,其地址为89H,复位值00H,不可位寻址。根据本设计,TMOD的控制字应为00010101BT1为定时器,T0为16位计数器。程序中用:MOV TMOD,#00010101B将控制字送入TMOD。TCON地址88H,可进展位寻址,复位值00H。TF0、TF1分别为定时器T0和计数器T1的溢出标志位,TR0和TR1在正常情况下,都没有溢出标志,只有当计数值或定时值超过65536时,才能有溢出中断请求,这两位是由硬件置位和硬件清零,不需另行设置。可在T0和T1的溢出中断效劳程序中,以供使用。TR1、TR0分别用于开启T1和T0的开关位,其中TR1由系统开启时,直接置位,翻开T1,开场定时,经运行判断后,翻开TR0。在程序开场之前,首先进展变量的分配,使用EQU伪指令定义了一些符号变量,使得程序阅读时较为直观。程序的初始化,根据硬件电路的要求,将各硬件电路置于其规定的状态;根据需要,设置堆栈;对定时器、计数器、串行口等设置工作状态,预置初值等。以下是程序定义变量及进展初始化的程序行。DISPBUF EQU 5AH ;显示缓冲区从5AH开场,共4个单元。SECCOUN EQU 59H;秒计数器单元,用于累计T1的中断次数,每200个为一秒。SPCOUNEQU 57H;速度计时器单元57H和58H,高位在前(57H单元中) COUNTEQU 56H ;显示时的计数器SPCALC BIT 00H ;要求计算速度的标志,该位为1时主程序计算速度,然后清该位HIDDEN EQU 10;消隐码; 以上分配变量MOV SP, #5FH ;设置堆栈MOV P1,#OFFH ;将P1置位高电平。MOV P0,#0FFH;将P0置位高电平。MOV P2,#OFFH ;将P2置位高电平,以上三行熄灭所有LED及数码管。MOV TMOD,#00010101B;定时器T1工作于方式1,计数器T0工作方式1。MOV TH1,#HIGH(65536-5000);设置T1初始值 MOV TL1,#LOW(65536-5000)MOVTH0,#00H;设置T0的计数初始值0MOVTL0,#00H SETB TR1;开启T1SETBTR0;开启T0SETB ET1;开定时器1中断SETB EA;允许单片机相应中断定时计数器T1每5ms中断一次,用以进展数码管显示和每1秒读取一次计数器T0中的数值。1秒信号的产生 中断产生后:INCSECCOUNMOV A,SECCOUNCJNEA,#200,GO2判断SECCOUN是否到达200了,如果到达200,那么说明1秒时间已到,程序将关闭T0计数器,然后对T0中已记得的数据进展处理,然后再去进展显示,否那么直接转去显示。这局部的程序流程图如图4所示。2数码管的显示 数码管显示采用动态方式,即每次中断点亮一位数码管,依次循环。由于数码管共有4位,因此,每20ms即可轮流点亮每个数码管一次,利用人的视觉暂留现象,可以稳定地显示各位数码管的值。图5是显示部份的流程图,从图中可以看出,程序中利用了一个显示计数器,该计数器的值在03之间变化,对应第一至第四位数码管,当计数值到4时,即回零。下面以显示计数器值等于2为例,加以说明。当显示计数器值等于2时,意味着此时应点亮第3位数码管去进展显示。程序中首先取显示缓冲区初值:秒计数器加1到200了吗停顿T0工作读T0计数值读T0计数值置位计算请求标志清秒计数器进入显示局部图4 秒信号子程序MOV A,#DISPBUF 该值为5AH,加上显示计数器的值即5CH: ADDA,COUNT 因此将从5CH中取出待显示数据: MOV R0,AMOVA,R0 然后查字表码表,并将该字形码送往P0: MOVDPTR,#DISPTABMOVCA,A+DPTR MOVP0,A 因为P0是段驱动。下面是要点亮第3位数码管,程序中再次取计数值,即2,然后查位码: MOV A,COUNT MOV DPTR,#BITTAB MOVC A,A+DPTR 位码的值: BitTab: DB 0FDH, 0FEH, 0FBH, OF7H, 0EFH 显示计数器加1到4了吗?显示计数器回0取显示缓冲区首址加计数值取该显示缓冲区的值查字形码表字形码送往P0重取计数值查位码送往P2口重置定时初值退 出图5 数码管显示流程图因此,查出来的值是0FBH,即11111011,这个值被送往P2口: ORLP2,#00001111B ;先将P2口的低4位置1关闭原点亮的数码管 ANL P2,A ;将查得的位码与P2相与,点亮相应的数码管观察硬件,即可发现P2.2驱动第3位数码管,因此即实现了点亮第三位数码管的要求,而其他各位不被点亮。这种处理方法使得该程序具有很强的通用性,只要改变计数值,改变位码表,即可用于不同位数、不同接法的数码管驱动。4. 系统流程本系统的主程序参考图6,在完成初始化工作以后,及循环等待,每1s时间到之后,开 始计算器、端口、中断初始化是否计算?等待NY计算转速送显示缓冲区结 束图6 主程序流程图T1中断程序将会读取T0中的计数值,并将其放入约定的存储单元中,并且置位要求计算的标志,当该标志位为1时,主程序即转入计算,第一步将16进制数的结果转化为BCD码,第二步,将BCD码转化并送入显示缓冲区。五 、程序调试及仿真1 .基于Keil的程序调试源程序基于汇编语言DISPBUF EQU 5AH;显示缓冲区从5AH开场SECCOUN EQU 59H ;秒计数单元,用于累计T1的终端次数,每200个为一秒SPCOUN EQU 57H;速度计时器单元57H和58H,高位在前57H单元中COUNT EQU 56H;显示时的计数器SPCALCBIT 00H;要求计算速度的标志,该位为1那么主程序进行速度计算,然后清该位HIDDEN EQU 10;消隐码ORG 0000HAJMP STARTORG 001BHJMP TIMER1;定时中断1入口ORG 30HSTART:MOV SP,#5FH;设置堆栈MOV P1,#0FFH;将P1置位高电平MOV P0,#0FFH;将P0置位高电平MOV P2,#0FFH;将P2置位高电平,以上三行初始化,所有显示器D及数码管灭MOV TMOD,#00010101B;定时器T1工作于方式1,计数器T0工作方式1。MOV TH1,#HIGH(65536-5000);设置T1初始值 MOV TL1,#LOW(65536-5000)MOVTH0,#00H;设置T0的计数初始值0MOVTL0,#00H SETB TR1;开启T1SETBTR0;开启T0SETB ET1;开定时器1中断SETB EA;允许单片机相应中断LOOP:JNB SPCALC,LOOP;如果未要求计算,转本身循环;标号:MULD 功能:双字节二进制无符号数乘法;入口条件:被乘数在R2、R3中,乘数在R6、R7中。;出口信息:乘积在R2、R3、R4、R5中。;影响资源:PSW、A、B、R2R7堆栈需求:2字节MULD:MOV A,R3 ;计算R3乘R7MOV B,R7MUL ABMOV R4,B ;暂存局部积MOV R5,AMOV A,R3 ;计算R3乘R6MOV B,R6MUL ABADD A,R4 ;累加局部积MOV R4,ACLR AADDC A,BMOV R3,AMOV A,R2 ;计算R2乘R7MOV B,R7MUL ABADD A,R4 ;累加局部积MOV R4,AMOV A,R3ADDC A,BMOV R3,ACLR ARLC AXCH A,R2 ;计算R2乘R6MOV B,R6MUL ABADD A,R3 ;累加局部积MOV R3,AMOV A,R2ADDCA,BMOV R2,ARETMOV R2,SPCOUNMOV R3,SPCOUN+1MOV R6,#0MOV R7,#5;测得的数据是每秒计数值,转为分每一转测12次,故乘5而非60CALL MULDSETB TR1;标号:HB2功能:双字节十六进制整数转换成双字节BCD码整数;入口条件:待转换的双字节十六进制整数在R6、R7中。;出口信息:转换后的双字节BCD码整数在R2、R3、R4、R5中。;影响资源:PSW、A、R2R7堆栈需求:2字节HB2:CLRA;BCD码初始化MOVR3,AMOVR4,AMOVR5,AMOVR2,#10H;转换双字节十六进制整数HB3:MOVA,R7;从高端移出待转换数的一位到CY中RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R5;BCD码带进位自身相加,相当于乘2ADDCA,R5DAA;十进制调整MOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,AMOVA,R3ADDCA,R3MOVR3,A;双字节十六进制数的万位数不超过6,不用调整DJNZR2,HB3;处理完16bitRETMOV A,R4MOV R6,AMOV A,R5MOV R7,A;将乘得的结果送R6、R7准备转换CALL HB2MOV DISPBUF,R3;最高位MOV A,R4ANL A,#0F0H;去掉低4位SWAP A;将高4位切换到低4位MOV DISPBUF+1,AMOV A,R4ANL A,#0FHMOV DISPBUF+2,AMOV A,R5ANL A,#0F0HSWAPAMOV DISPBUF+3,AMOVA,R5ANL A,#0FHMOV DISPBUF+4,ACLR SPCALC;清计算标志JMP LOOP;主程序到此完毕TIMER1:PUSH ACC;ACC入栈PUSH PSW;PSW入栈SETB RS0;工作区1JNB TR0,SETTR0;如果T0未运行,那么开启T0JMP GO1SETTR0:SETB TR0GO1:INC SECCOUN;秒计数器加1MOV A,SECCOUNCJNE A,#201,GO2;如果未到1s那么转每到1s停1次,故数值为201CLR TR0;1s到了,那么停顿T0的运行MOV SPCOUN,TH0MOV SPCOUN+1,TL0;读取计数值CLR AMOV TH0,AMOV TL0,A;清计数器SETB SPCALC;要求主程序计算速度MOV SECCOUN,#0;清秒计数器GO2:INCCOUNT;用于显示的计数器MOV A,COUNTCLR CSUBB A,#4JZN1JMP N2N1:MOV COUNT,#0N2:MOV A,#DISPBUFADD A,COUNTMOV R0,A;指向当前要显示的显示缓冲区MOV A,R0;取第一个带显示数MOV DPTR,#DISPTAB;字形表首地址MOVC A,A+DPTR;取字形码MOVP0,A;将字形码送P0位段口MOV A,COUNTMOV DPTR,#BITTAB;字位表首地址MOVC A,A+DPTRORL P2,#00001111BANL P2,AMOV TH1,#HIGH(65536-5000)MOV TL1,#LOW(65536-5000)POP PSWPOP ACCRETIBITTAB:DB 0FDH,0FEH,0FBH,0F7H,0EFH;字模表 0 1 2 3 4 5 6 7 8 9 消隐 DISPTAB:DB 28H,7EH,0A4H,64H,72H,61H,21H,7CH,20H,60H,0FFH END实验总结单片机综合设计实验使我受益匪浅。不仅让我重新复习了单片机原理、汇编语言的知识,也学到了不少新的东西,比方Protel的使用等。进一步了解了光电、霍尔、电容、电感等类似接近开关传感器的构造、工作原理、使用方法。综合运用其他先修课程的理论和实践知识,制定设计方案,确定传感器型号,根本掌握有关转速测量的方法与技术。学会组建一个简单测量系统,提高动手能力。通过计算、分析、绘图,能运用标准、规、手册并学会查阅有关资料,培养仪表设计的根本技能。总之,本次实验对我们每位同学都是一次历练。本文介绍的应用于单片机系统在电机转速这一领域的应用,具有硬件电路简单、本钱低廉、编程方便、通信可靠性高的特点,实现了单片机对电机转速的测量以及和PC通信的数据传送。可以对电机转速的平稳性做个分析。关于本次课程设计,感受颇多。总的来说是可以的,富有收获的,尽管其中充满了艰辛与困难。但看到自己的成果时,所有的艰辛与疲倦都抛到了九霄云外。一种成就感在心头油然而生。另外一方面,在自己的亲身实践中,也发现了自己的一些缺乏的地方,有待进一步提高与改善。此次课程设计任务是高精度大围的电机转速测量系统,在实际调试中遇到的种种问题
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!