电动机转速测量系统的设计设计

上传人:dus****log 文档编号:73845829 上传时间:2022-04-12 格式:DOC 页数:22 大小:100.50KB
返回 下载 相关 举报
电动机转速测量系统的设计设计_第1页
第1页 / 共22页
电动机转速测量系统的设计设计_第2页
第2页 / 共22页
电动机转速测量系统的设计设计_第3页
第3页 / 共22页
点击查看更多>>
资源描述
苏州经贸职业技术学院机电系应用电子技术(电子产品营销)专业毕业设计论文(霍尔传感器电机转速测量系统的设计)学生姓名:高敏君指导教师: 徐 进2013年1月目 录摘要I 绪论III课题研究的目的和意义IIII转速测量在国内外的研究IIIII 主要研究内容II第一章 电机转速测量常用方法11.1 测频法(“M法”)11.2 测周期法(“T法”)11.3 本设计系统中采用的方法2第二章 系统总体方案设计32.1总体设计方案3第三章 硬件电路设计43.1 单片机最小系统设计43.1.1 时钟电路43.1.2 复位电路43.1.3 电源电路53.2 霍尔传感器测量电路设计53.2.1 霍尔传感器原理53.2.2 开关型霍尔传感器53.3 信号处理电路设计73.4显示电路设计83.4.1 LCD1602简介83.4.2 LCD显示电路83.5 按键电路设计93.6 蜂鸣器报警电路设计10第四章 软件设计114.1 系统开发环境114.2 系统开发语言114.3 软件总体设计12第五章系统调试135.1 Protues仿真135.2 系统调试结果14结论15致谢16参考文献17附录18附录118附录226摘 要在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。本文介绍了电机转速测量常用的方法,给出了基于单片机AT89C51的直流电机转速测量系统的设计方案,完成了电机转速测量系统的设计。该系统以A44E开关型霍尔传感器作为产生脉冲信号的主要元件,把所得到的计数脉冲转化为电机的转速值,并在LCD液晶显示器上直观的显示电机的转速值。同时利用矩阵键盘对预先设定的高速值和低速值进行相关设置,超过高速或低于低速值时,实现声报警功能。其优点硬件是电路简单,软件功能完善,测量速度快、精度高、控制系统可靠,性价比较高等特点。关键字:MSC-51(单片机); 转速; 传感器前言I课题研究的目的和意义转速是工程中应用非常广泛的一个参数,其测量方法较多,传统的测速方法一般以测速发电机为主要检测元件,得到的是模拟量,这种测量技术已不能适应现代科技发展的要求,在测量范围和测量精度上,已不能满足大多数系统的使用。随着大规模及超大规模集成电路技术的发展,数字系统测量得到普遍应用。由于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受到企业用户的青睐,单片机对脉冲数字信号的强大处理能力,使得全数字化系统越来越普及,其转速测量系统也可以用全数字化处理,在测量范围和测量精度方面都有极大的提高。以单片机为核心,设计的数字化转速测量系统,使系统能达到更高的性能,具有较强的应用价值。它的研究结果可以用于我们的实际生活中,一方面它可以应用于工业控制中的某一部分,如数控车床的电机转速检测和控制、水泵流量控制以及需要利用转速检测来进行控制的许多场合,如车辆的里程表、车速表等。另一方面由于该转速测量系统采用全数字结构,因而可以很方便的实行远程管理和控制,进一步提高现代化水平。总之,转速测量系统的研究是一件非常有意义的课题。本课题研究的是电机转速测量系统,对了解电机工作状态,提高电机工作效率有很大的帮助,该课题主要是对电机转速测量系统进行硬件和软件的设计,同时从实际硬件电路出发,分析电路的工作原理,根据设计的具体情况提出修改方案和解决办法。II转速测量的研究转速是能源设备与动力机械性能测试中的一个重要的特性参量,因为动力机械的许多特性参数是根据它们与转速的函数关系来确定的,例如压缩机的排气量、轴功率、内燃机的输出功率等等,而且动力机械的振动、管道气流脉动、各种工作零件的磨损状态等都与转速密切相关。III主要研究内容该系统要实现的功能有:1液晶显示器实时显示所测得的转速值;2键盘对设定的高低速值进行相关设置;3实现声光报警功能。为了实现系统功能,主要研究了以下内容:1分析转速测量常用的两种方法;2根据电机转速测量系统的要求选择合适的传感器;3系统中各硬件模块设计和软件设计;4系统调试。第一章 电机转速测量常用方法1.1 测频法(“M法”)在一定测量时间T内,测量脉冲发生器(替代输入脉冲)产生的脉冲数来测量转速,如图2-1所示,设在时间T内,转轴转过的弧度数为,则转速n由式(2-1)计算得到。 式(2-1)转轴转过的弧度数的计算见式(2-2)。 式(2-2)图2-1 “M”法测量转速脉冲将式(2-2)式代入式(2-1),则转速n的表达式见式(2-3)。式(2-3)式中n表示转速单位:(转/分);T表示定时时间单位:(秒);表示产生的脉冲个数。在该方法中,由于定时时间T和脉冲不能保证严格同步,以及在T内能否正好测量外部脉冲的完整的周期不确定,所以可能产生1个脉冲的量化误差。因此,为了提高测量精度,T要有足够长的时间。定时时间可根据测量对象预先设置。设置的时间过长,可以提高精度,而设置的时间过短,测量精度会受到一定的影响。而且在规定的检测时间内对脉冲个数计数,虽然检测时间一定,但检测的起止时间具有随机性,当被测转速较高时,才有较高的测量精度,并且测量准确度随转速的减小而降低,该方法适合于高速测量。1.2 测周期法(“T法”)转速可以用两脉冲产生的间隔宽度来决定。如图2-2所示。通过定时器测得。定时器对时基脉冲(频率为)进行计数定时,在内计数值若为,则计算公式见式(2-4)。 式(2-4)即: 式(2-5)式中P表示为转轴转一周脉冲发生器产生的脉冲数;表示硬件产生的基准时钟脉冲频率:单位(Hz);n 表示转速单位:(转/分);表示时基脉冲。图2-2 “T”法脉宽测量由“T”法可知,“T”法测量精度的误差主要有两个方面,一是由两脉冲的上升沿触发时间不一致而产生的;二是由计数和定时起始和关闭不一致而产生的。因此要求脉冲的上升沿(或下降沿)陡峭以及计数和定时严格同步。该方法在被测转速较低(相邻两个转速脉冲信号间隔时间较大)时,才有较高的测量精度,其测量准确度随着转速的增大而降低,适于低速测量。1.3 本设计系统中采用的方法通过分析可知,M法适合于高速测量,当转速越低,产生的误差会越大。T法适合于低速测量,转速增高,误差增大。由于本系统中所测的电机转速较高,且基于M法的测量,其电路和程序均较为简单,所以本设计中采用M法进行测量。第二章 系统总体方案设计2.1总体设计方案本系统的硬件主要由电机,霍尔传感器,信号调理电路,AT89C51单片机,LCD液晶显示器,矩阵键盘,报警系统组成。电机测速原理是在非磁材料的圆盘边上粘贴两块磁钢,霍尔传感器固定在圆盘外缘,当电机转动时,磁钢经过霍尔传感器正前方,改变了磁通密度,电机每转动一圈,霍尔传感器便输出两个脉冲,随着转盘的不断转动,就不断产生脉冲信号,经放大整形电路后送入单片机处理,转化为计数脉冲,脉冲信号的频率与转动速度成正比,根据单位时间间隔内的脉冲数,就可获得被测电机转速。系统原理框图见图3-5。图3-5转速测量系统框图其中传感器部分采用A44E开关型霍尔传感器,负责将被测量转化为脉冲信号。信号调理电路实现对待测信号的放大整形,降低对待测信号幅度要求,实现对小信号的测量。处理器采用AT89C51单片机,负责对采集到的数据进行处理。显示器采用LCD液晶显示器,负责显示测得的转速值及预设的高速、低速值。采用矩阵键盘对高速、低速值进行加减以及按键声、报警声的相关设置,当测得的转速值超过高速或不足低速值时,就实现声光报警功能。第三章 硬件电路设计3.1 单片机最小系统设计单片机的最小系统是指一个真正可用的单片机的最小配置系统,由时钟电路、复位电路和电源电路组成。3.1.1 时钟电路单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊的工作。时钟电路是单片机的心脏,它控制着单片机的工作节奏。AT89C51单片机内部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入和输出端,接晶振和两个负载电容元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。电路中的电容C7和C8典型值通常选择为20pf-30pf之间。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的频率的高低,振荡器的稳定性和起振的快速性。时钟电路中,晶振的振荡频率范围通常在1.2MHZ-12MHZ之间。晶振的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。但反过来运行速度快对存储器的速度要求就高,对印制电路板的工艺要求也高,晶振和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定,可靠地工作。综合考虑,本设计采用30pf的电容,晶振的频率采用12MHZ,时钟电路在本系统中采用并联方式,最后连接在单片机的18脚和19脚,其电路图见图3-1。图3-1时钟电路3.1.2 复位电路单片机在启动运行时都需要复位,复位使中央处理器CPU和内部其他部件处于一个确定的初始状态,从这个状态开始工作。当单片机执行程序出错或进入死循环时,也可重新启动。单片机有一个复位引脚RST,高电平有效。在时钟电路工作以后,当外部电路使得RST端出现2个机器周期(24个时钟周期)以上的高电平,系统内部复位。复位有两种方式:上电复位和按钮复位,本系统采用的是按钮复位电路,见图3-2。图3-2复位电路图其中电容接VCC,电阻接地,RESET脚接在它们中间,电容选择10uF,按钮与电容并联,后与10K电阻串联,就成了按钮复位电路。3.1.3 电源电路本系统采用USE接口对系统板上各模块供电,提供+5V电源。电源电路图见图3-3.图3-3 电源电路图当开关S1按下时,二极管绿灯亮,此时电源电路接通,各模块可以开始正常工作。3.2 霍尔传感器测量电路设计3.2.1 霍尔传感器原理霍尔传感器是利用霍尔效应原理制成的一种磁敏传感器。它是近年来为适应信息采集的需要而迅速发展起来的一种新型传感器,这类传感器具有工作频带宽,响应快、面积小、灵敏度高、无缺点、便于集成化、多功能化等优点,且易与计算机和其它数字仪表接口,因此被广泛用于自动监测、自动测量、自动报警、自动控制、信息传递、生物医学等各个领域。其测量原理为:金属或半导体薄片的两个端面通以控制电流I,并在薄片的垂直方向上施加磁感应强度为B的磁场,则在垂直于电流和磁场的方向上将产生电势Uh,称为霍尔电势或霍尔电压。霍尔电势Uh=KhIB(其中Kh为霍尔元件灵敏度,它与所用的材料及几何尺寸有关)。这种现象称为霍尔效应,而用这种效应制成的元件称为霍尔元件。霍尔传感器原理图见图3-4。图3-4 霍尔传感器磁场效应3.2.2 开关型霍尔传感器本系统采用开关型霍尔传感器A44E。它的性能参数为:工作点:35-450;释放点:25-430;回差:20;输入电压:4.5-24V;工作电流:20mA;工作温度:-40-85摄氏度;它内部由稳压器A、硅霍尔片B、差分放大器C、施密特触发器D和OC门输出E五部分组成,如图3-5所示从输入端1输入电压Vcc,经稳压器A稳压后加在硅霍尔片B的两端,以提供恒定不变的工作电流在垂直于霍尔片的感应面方向施加磁场,产生霍尔电势差Vw,该信号经差分放大器c放大后送至施密特触发器D整形当磁场达到“工作点”(即Bop),见图3-6,触发器D输出高电压(相对于地电位),使三极管E导通,输出端V。输出低电位,此状态称为“开”。当施加的磁场达到“释放点”(即)时,触发器D输出低电压,使三极管E截止,输出端V。输出高电位,此状态称为“关”。这样2次高低电位变换,使霍尔传感器完成了1次开关动作。图3-5 开关型霍尔传感器构成图开关型霍尔传感器的工作特性见图3-6。图3-6开关型霍尔传感器工作特性霍尔传感器的电路图见图3-7A44EVCCGND12310KOUT 图3-7 霍尔传感器电路图其中,A44E霍尔元件的1脚接+5V电源,2脚接地,3脚是输出端,接LM358的3脚作为输入信号。3.3信号处理电路设计当电动机转动的时候,霍尔传感器会输出一系列与转速成正比的脉冲信号,但霍尔传感器的输出的信号一般电平较低,不能被单片机很好的识别计数显示,所以需要对其进行放大整形,这一环节主要由集成运算放大器构成的电压比较器来实现。该设计在信号处理电路中选用LM358进行设计。LM358内部包括有两个独立的高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358的管脚见图3-8。图3-8 LM358管脚图LM358的特性(Features): 内部频率补偿 直流电压增益高(约100dB) 单位增益频带宽(约1MHz) 电源电压范围宽:单电源(330V);双电源(1.5 一15V) 低功耗电流,适合于电池供电 低输入偏流 低输入失调电压和失调电流 共模输入电压范围宽,包括接地 差模输入电压范围宽,等于电源电压范围 输出电压摆幅大(0 至Vcc-1.5V) 共模抑制比80dB 电源抑制比100dB.设计的脉冲信号调理电路图见图3-9。图3-9信号调理电路在该图中,LM358本质作为一个电压比较器,把R14作为一个基准电压,由霍尔传感器输出的电压传到LM358的“+”输入端,与“-”输入端的基准电压相比较,当“+”端电压高于“-”端电压时,则LM358电压比较器输出为高电平,当“+”端电压低于“-”级电压时,则电压比较器输出为低电平,此时二极管DS6灯亮。二极管DS6作为一个指示信号。电阻R12的作用是分压,二极管的驱动电压约是2V,所以R12要分掉约3V的电压。R13的作用是限流。3.4 显示电路设计 LCD1602简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。1.LCD1602主要技术参数显示容量:162个字符;芯片工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.954.35(WH)mm。2.1602LCD引脚功能第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。 LCD显示电路本设计中LCD显示器的7-14脚接单片机的P0口,RS接P2.8口,RW接P2.7口,EN接P2.6口,同时加上上拉电阻,该LCD显示器为两行显示,第一行显示测得的当前速度值,第二行显示设置的高速值,低速值。电路设计如下图3-11所示。图3-11 液晶显示电路3.5按键电路设计本系统需要对预设的高低速值进行设置,需要用到键盘,键盘一般分为独立式键盘和矩阵键盘。当按键数量较少时,用独立键盘较合适。当按键数量较多时,往往采用矩阵式键盘,可以节省I/O接口线,而且键位越多,情况越明显,矩阵键盘用I/O接口线组成行、列结构,键位设置在行列的交点上。例如4*4的行、列结构可组成16个键的键盘,比一个键位用一根I/O接口线的独立式键盘少了一半的I/O接口线,。在本设计中,矩阵式键盘直接连接于单片机的P1口。P1的8条I/O口线分为4条行线和4条列线,P1.0-P1.3口接矩阵键盘的行线,P1.4-P1.7口接矩阵键盘的列线,按键开关的两端分别接在行线和列线上。其接口电路见图3-12。 图3-12 键盘电路图由图和相应的键的键值定义的各个键的功能如下:S1S4号键: 高速值-10,高速值-1,高速值+1,高速值+10;S5S8号键: 低速值-10,低速值-1,低速值+1,低速值+10;S9S12号键: 无定义;S13S16号键: 按键声开,按键声关,报警声开,报警声关。3.6 蜂鸣器报警电路设计蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、 机、定时器等电子产品中,作为发声器件。蜂鸣器发声原理:电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。报警模块主要负责声音报警,报警电路均比较简单,声光报警由单片机引脚接上拉电阻,晶体管及扬声器构成,电路接线图见图3-13。图3-13 蜂鸣器报警电路蜂鸣器的正极性的一端连接到5V电源上面,另一端连接到三极管的集电极,三极管的基极和一个1K的电阻串联由单片机的P2.0管脚导通,当P2.0口输出低电平时,电路导通,蜂鸣器响,当P2.0口输出高点平时,电路不导通,蜂鸣器不响,由P2.0口不断地输出101010的高低电平,驱动声光报警电路报警。当测得的转速不足所设定的低速值时,则发光二极管DS3亮。若测得的转速值高于所设计的高速值时,则发光二极管DS5亮。当测得的转速值在设定的低速值和高速值之间时,则发光二极管DS4亮。第四章 软件设计4.1 系统开发环境随着单片机开发技术的不断发展,单片机的开发软件也在不断发展,Keil软件是目前流行的用于开发51系列单片机的软件。该软件提供了包含C编译器、宏汇编、链接器库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20MB以上空闲的硬盘空间、Win98、NT、Win2000、WinXP等操作系统。其界面见图5-1.图4-1 Kell运行环境界面4.2 系统开发语言KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。C语言具有良好的模块化,容易阅读和维护等优点。由于模块化,用C语言编写的程序有很好的可移植性,功能化代码能够很方便地从一个工程移植到另一个工程,从而减少开发时间。用C语言编写程序比用汇编编写程序更符合人们的思考习惯,开发者可以更专心地考虑算法而不是考虑一些细节问题,这样就减少了开发和调试时间。使用像C这样的语言,编写者不必十分熟悉处理器的运算过程。很多处理器支持C编译器,这意味着对新的处理器也能很快上手,而不必知道处理器的具体内部结构,这使得用C语言编写的程序比汇编程序有更好的可移植性。所以在本毕业设计中选用单片机C语言来进行程序代码的编写。4.3 软件总体设计根据系统要求,对软件进行了整体设计,该软件系统实现的功能是在单片机内部计数,在计算出转速后进行显示,设定按键的各个功能,实现声光报警。整个系统软件由主程序、T0中断服务子程序,键盘扫描子程序,转速值计算显示子程序,蜂鸣器子程序及延时子程序等组成。软件总体框图见图4-2。图4-2总体框图主程序主要完成系统初始化功能,包括LCD显示初始化,定时/计数器初始化,中断开、关等功能。中断程序主要完成定时、计数功能。转速值显示子程序主负责将测得的当前转速值的显示和设定的高速、低速值的显示。蜂鸣器程序主要完成报警功能。主程序流程图见图4-3。图4-3主程序流程图第五章 系统调试5.1 Protues仿真Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。在Proteus软件中画出原理图,向单片机中加入需要调试的程序的HEX文件,便可以进行调试了.利用Proteus实现单片机系统开发过程一般分为四步:1.在Proteus平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等(简称Proteus电路设计);2.在Proteus平台上进行单片机系统源程序设计、编辑、汇编编译、调试,最后生成目标代码文件(*.hex)(简称Proteus软件设计);3.在Proteus平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真(简称Proteus仿真);4.仿真正确后,安装实际单片机系统电路,并将目标代码文件(*.hex)下载到实际单片机中运行、调试。若出现问题,可与Proteus设计与仿真相互配合调试,直至运行成功(简称实际产品安装、运行与调试)。笔者的实践证明:按照Proteus仿真通过的设计来安装的实际系统,只要安装正确、元器件无误,焊接牢靠,基本都能顺利通过。由于在虚拟仿真电路图中,没有电机及传感器,在Proteus软件里仿真的效果图如下所示:5.2 系统调试结果调试结果,系统实现预期各个功能: (1)在LCD液晶显示器上实时显示测得的转速值。 (2)按键时各个按键的功能完全实现。 (3)超过了预定的高速值或低于预定的低速值时,蜂鸣器报警,同时相应的灯亮。结 论此次毕业设计是我大学生活中重要的一步,经过几个月的努力终于按要求完成本设计任务书的要求,获得预期的效果,期间也提高了自身各方面的能力,从开题到查资料、设计电路、编写程序直到完成设计,每一个过程都是对自己能力的一次检验和充实。本毕业课题是电动机转速测量系统的设计,所设计的系统能实现以下功能:1.采用霍尔传感器采集脉冲信号,输出信号经信号调理后,通过单片机对连续脉冲计数来实现转速测量;2.使用LCD1602液晶显示器实时显示所测得的转速值;3.使用矩阵键盘对设定的高速值。低速值进行相关设置;。4.实现声光报警功能。通过这短短的几月的设计,也得到了很多收获。首先,巩固了以前学习的知识,更深层次地研究和学习电子方面的知识和原理;其次,加强了单片机知识的掌握,提高了对单片机键盘模块、显示模块、测量模块等周边模块应用的能力,特别是在调试过程中掌握了软件和硬件充分结合的调试方法,体会到了实践中得出理论、理论中去实践的研究学习过程。本次设计让我深深的感受到以后在做任何事情时,我们需要的不仅是知识,还需要细心,需要耐心,需要实践。致 谢本文介绍的应用于霍尔传感器系统在电机转速这一领域的应用,实现了单片机对电机转速的测量以及和PC通信的数据传送。可以对电机转速的平稳性做个分析。关于本次毕业设计,感受颇多。总的来说是可以的,富有收获的,尽管其中充满了艰辛与困难。但看到自己的成果时,所有的艰辛与疲倦都抛到了九霄云外。一种成就感在心头油然而生。另外一方面,在自己的亲身实践中,也发现了自己的一些不足的地方,有待进一步提高与改善。此次毕业设计任务是高精度大范围的电机转速测量系统,在实际调试中遇到的种种问题使我在设计与调试中学习到了许多知识。整个毕业设计过程是对自己大学三年所学知识归纳总结和应用,也就是把理论知识用到实践之中去。让理论和实践相结合,以此产生实际的成果。而这正是我们学习理论知识的目的之所在。除此之外,我们要在拥有扎实的专业知识的前提条件下,在整个设计与调试过程中要有信心和耐心,对自己有信心,相信自己能够很好的完成本次设计任务。在调试中不断发现问题进而解决问题,这是一个再学习的过程,其本身就是对自己的一次锻炼,培养了自己独立思考,动手解决问题的能力。从而从各个方面得到提高与完善了自己,使自己的各个方面提高到一个新的台阶,同时为以后的工作打下基础。在本次毕业设计中,特别要感谢徐进以及其他老师和同学给我们的热心帮助和鼓励,才使得我们的毕业设计能够很好的完成。参考文献1 丁阳喜.基于单片机测量电机转速的系统设计J.煤矿机械,2010(03).2 赵树磊,谢吉华等.基于霍尔传感器的电机测速装置J.江苏电器,2001(10).3 于炳亮.电机转速测量方法研究J.山东科学,2005(05).4 丁芝琴.基于霍尔传感器的电机测速装置设计J.农机化研究,2010(05).5 王玉茹等.一种直流电机驱动及转速测量系统的设计J.2000.6 王晓明.电动机的单片机控制M.北京:北京航空航天大学出版社,2002:5.7 何桥,段清明,邱春玲等单片机原理及应用M北京:中国铁道出版社,2008.8 胡大可,李培弘,方路平基于单片机8051的嵌入式开发指南M北京:电子工业出版社,20039 范风强,兰婵丽单片机语言C51应用实战集锦(修订版)M北京电子工业出版社,2005.10 李广弟,朱月秀,王秀山单片机基础M北京:北京航空航天出版社,2001.11 陈雪丽.单片机原理及接口技术M.北京:化学工业出版社,2005.12 严钟豪,谭祖根编非电量电测技术M北京:机械工业出版社,2001.13 王知平.基于89C51的转速测量系统设计D.东南大学.2005.14 宋沈阳.基于Small RTOS51的油耗-转速智能测量系统的设计与实现D.华中科技大学.2006.附录附录1#include#include#define uchar unsigned char#define uint unsigned int#define keyport P1/定义键盘控制口#define LCD_DATA P0/LCD数据总线sbit LCD_RS = P27; /1-选择数据选择器 0-选择指令选择器 sbit LCD_RW = P26;/1-读操作 0-写操作sbit LCD_EN = P25;/LCD使能端sbit LED1 = P23; /红色发光二极管sbit LED2 = P22; /绿色发光二极管sbit LED3 = P21; /红色发光二极管sbit BEEP = P20;/蜂鸣器uchar line116 = NowSpeed= rps;/显示缓存uchar line216 = RH= ,RL= rps;uint N;/定义计数器脉冲值int Nmax=100,Nmin=40; /定义报警上下限uchar T0_count=0;bit alarm=1;/报警标志bit key_voice=1;/按键声标志/LCD 1602A子程序-/延时子函数/void delay_ms(int ms) uchar y; while(ms-) for(y = 0; y250; y+) _nop_();_nop_();_nop_();_nop_(); /检查LCD忙状态,lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据/bit lcd_busy() bit result; LCD_RS=0;LCD_RW=1; /忙标志读出 LCD_EN=1; _nop_();_nop_();_nop_();_nop_();_nop_();/延迟5个机器周期 result=(bit)(LCD_DATA&0x80); LCD_EN=0; return(result); /写指令数据到LCD-/RS=L,RW=L,E=高脉冲,D0-D7=指令码。void lcd_write_cmd(uchar cmd) while(lcd_busy(); LCD_EN=0;LCD_RS=0;LCD_RW=0;/指令寄存器写入 LCD_EN=1; LCD_DATA=cmd; /写命令 LCD_EN=0; /写显示数据到LCD-/ /RS=H,RW=L,E=高脉冲,D0-D7=数据。 void lcd_write_data(uchar dat) while(lcd_busy(); LCD_EN=0;LCD_RS=1;LCD_RW=0;/数据寄存器写入 LCD_EN=1; LCD_DATA=dat; /写数据 LCD_EN=0; /LCD初始化设定-/void lcd_init() LCD_DATA=0;delay_ms(10); /延时 lcd_write_cmd(0x38); /16*2显示,5*7点阵,8位数据 delay_ms(5);lcd_write_cmd(0x38); /重复写入,解决冷启动时的异常delay_ms(5); lcd_write_cmd(0x0c); /显示开,关光标 delay_ms(5); lcd_write_cmd(0x06); /移动光标 delay_ms(5); lcd_write_cmd(0x01); /清除LCD的显示内容 delay_ms(5);/设定显示位置-/ void lcd_pos(uchar pos) lcd_write_cmd(pos | 0x80); /数据指针=80+地址变量/LCD显示-/display() uchar m;lcd_pos(0); /设置显示位置为第一行第1个字符,00H-27H共40字符 for(m=0;m16;m+) lcd_write_data(line1m); lcd_pos(0x40); /设置显示位置为第二行第1个字符,40H-67H共40字符 for(m=0;m16;m+) lcd_write_data(line2m);/LCD 1602A子程序结束-/蜂鸣器子程序-/void delay_beep(uchar x) /x*0.14MS uchar i; while(x-) for(i=0;i13;i+) void beep(uchar j,uchar k)/声音间隙j=1-8合适 响声长短k=100-255 uchar i; for(i=0;i0;j-) for(k=125;k0;k-);uchar keyscan(void) uchar line=0,colume=0; /定义行、列值 uchar temp; /暂存值 keyport=0x0f; /扫描行值 temp=keyport; if(temp!=0x0f) delay(10); temp=keyport; if(temp!=0x0f) switch(temp) case 0x0e:line=0;break; case 0x0d:line=1;break; case 0x0b:line=2;break; case 0x07:line=3;break; keyport=0xf0; /扫描列值 temp=keyport; if(temp!=0xf0) delay(10); temp=keyport; if(temp!=0xf0) switch(temp) case 0xe0: colume=1; while(keyport=0xe0) delay(10); / 等待按键松开 break; case 0xd0: colume=2; while(keyport=0xd0) delay(10); break; case 0xb0: colume=3; while(keyport=0xb0) delay(10); break; case 0x70: colume=4; while(keyport=0x70) delay(10); break; if(key_voice) beep(5,170);/可选响铃 return (4*line+colume);/返回键值/-void scan(void) uchar key; key=keyscan(); switch(key) /* 键位设置: Line1: MAX-10 MAX-1 MAX+1 MAX+10 Line2: MIN-10 MIN-1 MIN+1 MIN+10 Line3: Line4:key_voice_on key_voice_off alarm_on alarm_off */ case 1: Nmax-=10; if(Nmax=Nmin)Nmax=Nmin; break; case 2:Nmax-; if(Nmax=999)Nmax=999; break; case 4: Nmax+=10; if(Nmax=999)Nmax=999; break; case 5: Nmin-=10; if(Nmin=0)Nmin=0; break; case 6:Nmin-; if(Nmin=Nmax)Nmin=Nmax; break; case 8:Nmin+=10; if(Nmin=Nmax)Nmin=Nmax; break; case 9: break; case 10: break; case 11: ; break; case 12:; break; case 13: key_voice=1;/按键声开 break; case 14:key_voice=0;/按键声关 break; case 15: alarm=1; / 警报开 break; case 16:alarm=0; / 警报关 break; default: ; /计算转速并计算显存值-/void compute_rps(uint N) / uint N; /0-65535 uint rps; uchar num_array3=0; uchar max_array3=0; uchar min_array3=0; uint num; uchar i=0; rps=N; /计算转速值 r/s(转/秒) rps=N/2 r/ 500 ms =N r/s */ num=rps; /分离num(num为整数)各位值的函数,最低位放在array0-/ do num_arrayi+=num%10; while(num=num/10); /分号不能忽略! i=0; line110=num_array2+0x30; line111=num_array1+0x30; line112=num_array0+0x30; num=Nmax; /分离num(num为整数)各位值的函数,最低位放在array0- do max_arrayi+=num%10; while(num=num/10); /分号不能忽略! i=0; line23=max_array2+0x30; line24=max_array1+0x30; line25=max_array0+0x30; num=Nmin; /分离num(num为整数)各位值的函数,最低位放在array0- do min_arrayi+=num%10; while(num=num/10); /分号不能忽略! i=0; line210=min_array2+0x30; line211=min_array1+0x30; line212=min_array0+0x30; if(rpsNmax) /超过预定高速时Nmax if(alarm) beep(4,180); LED1=1; LED2=1; LED3=0; else if(rpsNmin) LED1=1; LED2=0; LED3=1; else /低于预定低速时 if(alarm) beep(2,150); LED1=0; LED2=1; LED3=1; /定时器0中断-/void timer0(void) interrupt 1 T0_count+; TH0=0x3C;TL0=0xB0;/T0重置,50ms f0=12MHZ if(T0_count=10) T0_count=0; ET0=0; /关中断开关 TR0=0;TR1=0; /关T0,关T1 N=256*TH1+TL1; /统计50ms*10内的脉冲数N compute_rps(N); TH0=0x3C;TL0=0xB0;/T0重置,50ms f0=12MHz TH1=0x00;TL1=0x00;/T1重置 ET0=1; /中断开关开 TR0=1;TR1=1; /主函数-/main() lcd_init(); /初始化LCD TMOD=0x51; /设置定时器工作方式,即T0为16位定时器、T1为16位计数器。 / GATE C/T M1 M0 GATE C/T M1 M0 / 0 1 0 1 00 0 1 TH0=0x3C;TL0=0xB0;/T0初始化 TH1=0x00;TL1=0x00;/T1初始化 EA=1; /打开总中断 / EA - ET2 ES ET1 EX1 ET0 EX0/1 0 000 0 1 0 ET0=1; /允许T0中断 TR0=1;TR1=1; /启动T0,T1 /TF1 TR1 TF0 TR0 /1 1 while(1) scan(); disp
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


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

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


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