还剩38页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
基于霍尔传感器的电机转速测量系统软件设计摘要在生产过程中,电机的应用十分广泛,随着生产的不断发展,对电机转速的测量就显得十分必要,同时对电机转速的测量提出了更高的要求本文设计了一种以51单片机作为主控制http://bbs.shejis.com/index.phpgid=280\t_blank器,使用霍尔传感器http://bbs.shejis.com/forum-216-
1.html\t_blank进行测量的直流电机转速测量系统本系统采用集成霍尔传感器敏感速率__,具有频率响应快,抗干扰能力强等特点文章介绍了霍尔传感器的工作原理,阐述了霍尔传感器测速系统的工作过程,利用脉冲计数法实现了对转速的测量,通过LCD直观地显示电机的转速值结合硬件电路设计,采用模块化方法进行了软件设计编制了电机转速的测量设计了测量模块、转速模块、__模块、显示模块等的C51程序,并通过PROTEUSE软件进行了仿真仿真结果表明所设计的软件程序是正确的关键词:霍尔传感器http://___.cqvip.com/asp/vipsearch.aspQuery=%BB%F4%B6%FB%B4%AB%B8%D0%C6%F7Type=K;单片机http://___.cqvip.com/asp/vipsearch.aspQuery=%B5%A5%C6%AC%BB%FAC8051F060Type=K;电机转速测量http://___.cqvip.com/asp/vipsearch.aspQuery=%D7%AA%CB%D9%B2%E2%C1%BFType=K;液晶显示SoftwareDesignofMotorSpeedMeasurementSystemBasedonHallSensorAbstractIntheproductionpro__ssthemotorsarewidelyusedasproductioncontinuestodevelopmeasuringthemotorspeedbecomesne__ssarywhilemotorspeedmeasurementputforwardhigherrequirements.Thismeasurementsystemisadesignofamicrocomputer51asthepri__rycontrollertheHallsensorasasensortomeasuretheDCmotorspeed.ThesystemusesanintegratedHallsensorsensitivityrateofthesignalwithafrequencyoffastresponseanti-interferen__abilityandsoon.TheworkingprincipleoftheHallsensorwasintrodu__dinthispaper.Theworkingpro__sswasdescribed.Itisusedpulse-countingmethodtoachievethemeasurementofspeedandtodisplaymotorspeedvaluesthroughanintuitiveLCD.CombinationofhardwarecircuitdesignsoftwaresweredesignedbyamodularapproachusingC51programsuchasthemotorspeedmeasurementmodulealarmmoduledisplaymoduleetc.AlltheseprogramsweresimulatedthroughPROTEUSE.Simulationresultsshowthatthedesignedsoftwareprogramsarecorrect.Keywords:Hallsensor;microcontroller;SpeedMeasurement;LCD.目录TOC\o1-3\h\z\u1绪论
11.1立题的目的和意义
11.2应用与发展前景
11.3设计任务与要求
21.
3.1设计任务
21.
3.2设计要求
21.4小结22课题方案设计
32.1系统总体设计要求
32.2系统模块结构论证
32.
2.1霍尔测速模块论证与选择
32.
2.2计数器模块论证与选择
32.
2.3显示模块论证与选择
32.
2.4__模块论证与选择
42.
2.5电源模块论证与选择
42.
2.6单片机模块论证与选择
42.3转速测量方案论证
42.
3.1方案一电机轴一侧贴磁片
42.
3.2方案二电机转轴加测速转盘
52.
3.3方案对比
52.4小结53系统总体设计
63.1总体硬件设计
63.
1.1硬件原理图
63.
1.2硬件电路设计总图
63.2系统子模块简介
73.
2.1传感器部分
83.
2.2计数器
83.
2.3处理器
83.
2.4LCD显示部分
83.
2.5外接__部分84软件设计
104.1程序设计步骤
104.2程序流程图
104.
2.1主程序流程图
114.
2.2中断服务流程图
124.3软件程序设计
144.
3.1主程序设计
144.
3.2中断服务程序设计
164.
3.3显示程序设计
164.
3.4__程序设计
184.
3.5转速程序的设计
184.
3.6软件程序基础知识准备195软件调试
205.1Proteus及KEIL软件简介
205.
1.1Proteus软件
205.
1.2KEIL软件
205.2应用KEIL软件进行程序调试
215.3Proteus软件仿真
215.
3.1仿真步骤
215.
3.2仿真实例
225.4硬件软件联合调试
255.
4.1联调步骤
255.
4.2搭接检查步骤266结论27附录28____34致谢351绪论在实践中,经常会遇到各种需要测量转速的场合例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要测量和显示其转速测量转速的方法分为模拟式和数字式两种模拟式采用测速发电机为检测元件,得到的__是模拟量数字式通常采用光电编码器、圆光栅、霍尔元件等为检测元件,得到的__是脉冲__随着微型计算机的广泛应用,特别是高性能__比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法,智能化微电脑代替了一般机械式或模拟式结构
1.1立题的目的和意义霍尔传感器是利用霍尔效应实现磁电转换的一种传感器它具有灵敏度高、线性度好、稳定性高、体积小和耐高温等特点在机车控制系统中占有非常重要的地位
[1]测速装置在控制系统中占有非常重要的地位对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间在此主要介绍应用霍尔传感器通过测量磁场强度来得到稳定的脉冲方波__实现电机转速的测量转速是电动机极为重要的一个状态参数在很多运动系统的测控中都需要对电机的转速进行测量速度测量的精度直接影响系统的控制情况它是关系测控效果的一个重要因素不论是直流调速系统还是交流调速系统只有转速的高精度检测才能得到高精度的控制系统
1.2应用与发展前景随着微型计算机可靠性提高和__的下降用单片机测量电机转速已日趋普遍我们知道欲提高测量精度必须先测出准确的转速而原先在可控硅调速电路中采用的测速发电机方式已不能满足要求必须采用数字测速的方法
[2]转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法测频法、T法测周期法和MPT法频率周期法,该系统采用了M法测频法转速检测方式采用霍尔脉冲法测量转速有两种简单的方式本文采用频率法,检测的是输入脉冲数这种方式又称频率法它测出一定时间内输入的脉冲的个数在控制系统中占有非常重要的地位对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间所设计的基于霍尔元件的脉冲发生器要求成本低,构造简单,性能好在电气控制系统中存在着较为恶劣的电磁环境,因此要求产品本身要具有较强的抗干扰能力由于需要采用霍尔传感器的应用领域,如汽车、电机、__和电脑都已经采用了该器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与上述几个市场相比,因此霍尔传感器在全球总的市场容量是较为稳定的,每年的增长率保持在5%到10%之间因为各种应用电机的部件、节气门位置的检测、各种阀__置的检测都会用到霍尔传感器而且,在中国市场中,国外厂商为了降低成本,陆续将零部件拿到中国进行设计和生产,这也进一步提升了中国市场霍尔传感器的应用量随着它在消费电子市场上的应用越来越广,如何控制功耗和成本将是厂商面临的挑战而且,它还面临生产测试技术方面的挑战
[3]
1.3设计任务与要求
1.
3.1设计任务根据学校毕业设计的要求,设计一个功能满足设计要求、工作稳定、以单片机为核心的基于霍尔传感器的电机转速测量系统,能够实现在电机工作时转速的测量,并在发生故障时能及时的发出____本设计包括完整的硬件设计和相应的软件设计
1.
3.2设计要求首先选定传感器,霍尔传感器具有灵敏、可靠、体积小巧、无触点、无磨损、使用寿命长、功耗低等优点,综合了电机转速测量系统的要求其次设计一个单片机小系统,掌握单片机接口电路的设计技巧,学会利用单片机的定时器和中断系统对脉冲__进行测量或计数再次实时测量显示并有__功能,实时测量根据脉冲计数来实现转速测量的方法要求霍尔传感器转速为0~5000r/min
1.4小结本章主要对本设计的立题目的及意义进行了介绍并且对设计的要求进行了总结2课题方案设计
2.1系统总体设计要求如果把霍尔传感器按预定位置有规律地布置在轨道上,当永磁体经过它时,可以从测量电路上测得脉冲__根据脉冲__的分布可以测出电机速度
2.2系统模块结构论证
2.
2.1霍尔测速模块论证与选择方案一采用霍尔元件传感器即霍尔片;霍尔片可分为贴片型和直插型由于贴片型不常用,因此选择直插型选型号为A___4的霍尔片作为霍尔测速模块的核心,该霍尔片体积小,__灵活,可用于测速,且与普通的磁钢片配套使用,__一般为
2.5~3元方案二采用霍尔传感器;选型号为CHV-25P/10的霍尔传感器,其额定电压为10v输出__5v/25__电源为12~15v体积大,__一般为40~120元之间不等从性价比方面综合考虑因此选择方案一
2.
2.2计数器模块论证与选择可以采用片外计数器和片内计数器两个方案片外计数器的方案是指采用8253等片外的专用计数芯片进行脉冲计数,单片机控制8253的技术过程,并在技术完毕后读取计数值片内计数方案是指采用单片机的内部计数器完成对脉冲的计数过程使用片内的计数器的优点在于降低单片机系统的成本每到一个脉冲将会产生一个T1的计数,在T0产生的100ms中断完成后,T1的中断溢出次数就是所需要计的脉冲数特点在于使用了内部的T1作为外部脉冲的计数器,并且,为了避免计数器的溢出,将T1的初值设为
02.
2.3显示模块论证与选择方案一采用8段LED数码管作为显示模块核心数码管显示器件相对便宜,但是耗能大、编写程序相对麻烦,工作量大方案二采用LCD液晶显示器作为显示模块核心LCD显示器工作原理简单,编程方便,节能环保因此选择方案二
2.
2.4__模块论证与选择方案一采用蜂鸣器与发光二极管作为声光__主要器件该方案不论在硬件和焊接方面还是在编写软件方面都简单方便,而且成本低廉方案二采用__播报系统作为声光__的核心该方案更具人性化、智能化,但是就该设计要求而言,方案过于复杂,相对成本过高,工作量偏大因此选择方案一
2.
2.5电源模块论证与选择方案一采用交流220V/50Hz电源转换为直流5V电源作为电源模块该方案实施简单,电路搭建方便,可作为单片机__常备电源使用方案二采用干电池串并联达到5V作为电源模块该方案实施简单,无需搭建电路,但相对该方案不够稳定,电池耗电快,带负载后压降过高,可能无法使系统稳定持续运行方案三采用可充电锂电池结合稳压模块作为电源模块该方案简单易行,而且相对稳定、误差小,但该方案相对__过高,针对该设计要求性价比低因此选择方案一
2.
2.6单片机模块论证与选择方案一选用P89C51的单片机速度极快、功耗低、体积小、资源丰富,有各种不同的规格,最快的达100MPS,引脚还可编程确定功能方案二PhilipsP89C51RD2有4个PDA属于兼容版方案比较因为项目的目标是测速系统的应用,所以我还是选用了方案一中51系列的单片机,因为51的架构十分典型选择方案一中51系列单片机我认为主要考虑以__面
1.__便宜;
2.__手段便宜;
3.自己动手焊接相对容易
2.3转速测量方案论证转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法测频法、T法测周期法和MPT法频率周期法,该系统采用了M法测频法由于转速是以单位时间内转数来衡量,在变换过程中多数是有规律的重复运动
[4]
2.
3.1方案一电机轴一侧贴磁片使用霍尔传感器获得脉冲__,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有__输出,转轴旋转时,就会不断__生脉冲__输出如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有__输出,可以换一个方向再试
[5]
2.
3.2方案二电机转轴加测速转盘传感器采用霍尔器件将电机的转速转化为脉冲__,处理器采用89C205l单片机.计数器采用单片机片内汁数器完成对脉冲的计数,显示器采用字符型液晶显示器1602进行显示系统原理框图如图3-1所示系统工作过程测量转速的霍尔传感器与机轴相连接,机轴每转一周,产生一定的脉冲个数,霍尔器件电路部分输出,成为转速计数器的计数脉冲控制计数时间,即可实现计数器的计数值对应机轴的转速值单片机CPU将数据处理后,通过LCD显示出来转速的测量转速传感器由磁钢、霍尔元件组成将一非磁性圆盘固定装在电机转轴上,圆盘边缘等距离用环氧树脂粘贴块状磁钢,磁钢采用永久磁
[6]图2-1霍尔传感器检测__图
2.
3.3方案对比方案一与方案二综合进行对比,发现方案一最少只需一粒磁片即可达到所需要求,简单方便,经济实惠,并易于操作因此经比较选择方案一
2.4小结本章通过总体设计进行对方案选择的最终确定,研究了霍尔测速、计数器、显示、__、电源、单片机等各部分模块的可行性方案介绍了系统各模块结构并进行方案的比较、论证和最终的选择3系统总体设计
3.1总体硬件设计基于霍尔传感器的速度测量系统工作过程是测量转速的霍尔传感器和机轴同轴连接,机轴每转一周,产生一定量的脉冲个数,由霍尔器件电路部分输出经光电耦合后,成为转速计数器的计数脉冲同时传感器电路输出幅度为12v的脉冲经光电耦合后降为5v,保持同__C51逻辑电平相一致控制计数时间,即可实现计数器的计数值对应机轴的转速值CPU将该值数据处理后,在LCD上显示出来一旦超速,CPU通过喇叭和指示灯发出声、光____
[7]
3.
1.1硬件原理图以单片机AT89C5l为控制核心,用霍尔集成传感器作为测量转速的检测元件,最后用字符型液晶显示器1602HD44780控制显示的小型直流电动机转速的方法,是数字式测量方法,智能化微电脑代替了传统的机械式或模拟式结构系统硬件原理图如图3-1所示
[8]图3-1硬件原理图
3.
1.2硬件电路设计总图在原理图基础上对各部分进行了详细的设计,硬件电路图如图3-2所示图3-2硬件电路图
3.2系统子模块简介本文介绍一种用AT__C51单片机测量小型电动机转速的方法系统以单片机AT__C5l为控制核心.用霍尔集成传感器作为测量小型直流电机转速的检测元件,经过单片机数据处理,用字符型液晶显示器1602显示小型直流电机的转速另外系统还可完成对电机的开关控制、系统工作时间、当前时间及电机状态的显示单片机转速测量系统组成单片机转速测量系统的有传感器、处理器、计数器和显示器四个部分组成
3.
2.1传感器部分主要分为两个部分第一部分是利用霍尔器件将电机转速转化为脉冲__;第二个部分是使用光耦,将传感器输出的__和单片机的计数电路两个部分隔开,减少计数的干扰用于测量的A44E集成霍尔开关,磁钢用直径D=
6.004mm,长度为L=
3.032mm的钕铁硼磁钢电源用直流,霍尔开关输出由四位半直流数字电压表测量,磁感应强度B用95A型集成霍尔元件测量
[9]图3-3霍尔片管脚管脚接线
3.
2.2计数器片内计数方案是指采用单片机的内部计数器完成对脉冲的计数过程
3.
2.3处理器处理器是单片机,采用的是89C51单片机
3.
2.4LCD显示部分显示部分有两个功能,在正常的情况下,通过LCD显示当前的频率数值,当电机的转速超出一定的范围后,通过灯光和蜂鸣器进行__
3.
2.5外接__部分在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或__用I/O定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了比如为2500Hz的蜂鸣器的驱动,可以知道周期为400μs,这样只需要驱动蜂鸣器的I/O口每200μs翻转一次电平就可以产生一个频率为2500Hz,占空比为1/2duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放电流就可以了
[10]4软件设计
4.1程序设计步骤第一步分析问题,明确任务要求,对于复杂的问题,还要讲要解决的问题抽象成数学模型,即用数学表达式来描述第二步确定算法,即根据实际问题和指令系统的特点确定完成这一任务须经历的步骤第三步根据所选择的算法,确定内存单元的分配使用那些寄存器程序运行中的中间数据及结果存放在那些单元,以利于提高程序的效率和运行速度然后制定出解决问题的步骤和顺序,画出程序的流程图第四步根据流程图,编写源程序第五步上机对原程序进行编译、调试
4.2程序流程图电机转速测量需要经过的4个基本步骤1是控制方式;2是确定计数方式;3是__输入方式;4是计数值的读取;通过89C51,单片机完成对电机转速脉冲计数的控制,读取寄存器完成转速频率的确定而SGN电机脉冲__连到引脚计数次数为3次,将3次结果取平均,从而提高计数的稳定性和精确性其测量过程是测量转速的霍尔传感器和电机机轴同轴连接,机轴每转一周,产生一定量的脉冲个数,由霍尔器件电路输出经过电耦合器后,即经过隔离整形电路后,成为转数计数器的计数脉冲同时霍尔传感器电路输出幅度为12V的脉冲经光电耦合后降为5V,保持同单片机AT89C51逻辑电平相一致,控制计数时间,即可实现计数器的计数值对应机轴的转速值主CPU将该值数据处理后,在LCD液晶显示器上显示出来
[11]本系统采用89C51中的中断对转速脉冲计数定时器T0工作于定时方式,工作于方式1每到1s读一次外部中断计数值,此值即为脉冲__的频率,根据式(4-1)可计算出电机的转速当直流电机通过传动部分带圆盘旋转时,霍尔传感器根据圆盘上得磁片获得一系列脉冲__这些脉冲__通过单片机系统定时/计数器计数,定时器T0定时定时器T0完成100次溢出中断的时间T除以测得的脉冲数m,经过单位换算,就可以算得直流电机旋转的速度直流电机转速计算公式n=60·m/N1·T·Nrpm(4-1)其中n为直流电机转速N为栅格数,N1为T0中断次数,m为在规定时间内测得的脉冲数,T为定时器T0定时溢出时间
[12]
4.
2.1主程序流程图主程序工作过程如下先进行初始化设置各定时器初值,然后判断是否启动系统进行测量如果是,就启动系统运行如果不是就等待启动启动系统后,霍尔传感器检测脉冲到来后,启动外部中断,每来一个脉冲中断一次,记录脉冲个数同时启动T0定时器工作,每1秒定时中断一次,读取记录的脉冲个数,即电机转速连续采样三次,取平均值记为一次转速值再进行数值的判断,若数值高于5000rpm则__并返回初始化阶段,否则就进行正常速度液晶显示图4-1主流程图
4.
2.2中断服务流程图在处于中断服务程序阶段,首先进行关中断设置其次进行对位进行的脉冲个数计数的数值读取再次对、T0进行赋初值并且进行关中断设置最后进行中断返回
一、外部计数中断图4-2外部中断流程图
二、定时器中断图4-3T0中断流程图
4.3软件程序设计
4.
3.1主程序设计主程序在对定时器j__ascript:;\t_self、计数器、堆栈等进行初始化后即判断标志位是否为1,如果为1,说明要求对数据进行计算处理,首先将标志位清零,以保证下次能正常判断,然后进入数据处理程序,由于这里的闸门时间为1s,而显示要求为转/分,因此,要将测到的数据进行转换,转换的方法是将测得的数据乘以60,但由于转轴上__有4只磁钢,每旋转一周可以得到4个脉冲,因此,要将测得的数据除以4,所以综合起来,将测得的数据乘以60/4=15即可得到每分钟的转速计算得到的结果是二进制的整数,要将数据送往显示缓冲区需要将该数转化为BCD码运算得到的是压缩BCD码,需要将其转换为非压缩BCD码,从标号CBCD开始的一段程序即作了这样的处理
[13]定时器T0用作4ms定时发生器,在定时中断程序中进行数码管的动态扫描,同时产生1s的闸门__1s闸门__的产生是通过一个计数器Count,每次中断时间为4ms,每计250次即为1s,到了1s后,即清除计数器Count,然后关闭作为计数器用的INT0,读出TH
0、TL0中的数值,分别送入SpCount和SpCount+1单元,将T0中的值清空,置标志位为1,要求主程序进行速度值的计算这里还有一个细节,用作1s闸门__产生的Count每次中断都会加1,而INT0却有一个周期是被关闭的,因此,计数值是251而不是250系统采用外部晶振,系统时钟SYSCLK等于18432000,T0定时1ms,初始化时TH0=-SY-SCLK/1000》8;TL0=-(SYSCLK/1000)等待1s到,输出转速脉冲个数N,计算电机转速值将1s内的转速值换算成1min内的电机转速值,并在LCD上输出测量结果
[14]/*------------------------主函数-------------------------*/void__in{int_all;//全局初始化while1{disp_count;//数据处理ifzhuan5000//转速警告{warning=1;}ifzhuan4999{warning=0;}write_com__nd0x80;fori=0;isizeofdisplay-1;i++{write_datadisplay[i];//LCD显示delay5;}}}
4.
3.2中断服务程序设计
一、外部计数中断/*-------------------外部中断0计数程序-------------------*/voidcountervoidinterrupt0{EX1=0;//关外部中断0count++;//计数加1ifcount==4//4次循环为电机转一圈{count=1;//初始化计数z++;//转圈计数加1}EX1=1;//开外部中断0}
二、定时器中断/*-----------------内部中断0计时计数程序-----------------*/voidTime0voidinterrupt2using0{TH0=0x4c;//50ms定时TL0=0x00;msec++;ifmsec==20//50*20=1S{msec=0;zhuan=z;z=0;}}
4.
3.3显示程序设计液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预每次输入指令前都要判断液晶模块是否处于忙的状态向LCD输入的数据有两种,一种是指令,一种是数据指令是负责初始化LCD与LCD显示字符是什么位置数据是告诉该显示什么命令与数据是RS端的高低电平来确定数据开始的时候是由LCDCS高电平开始,低电平结束图4-4显示流程图/*--------------------向LCD1602写命令--------------------*/voidwrite_com__nducharcom__nd{rs=0;//选择写命令P0=com__nd;//向LCD写命令lcdcs=1;//__使能端高电平lcdcs=0;//__使能端低电平}/*-------------------------------------------------------*//*--------------------向LCD1602写数据--------------------*/voidwrite_datauchardata0{rs=1;//选择写数据P0=data0;//向LCD写数据lcdcs=1;//__使能端高电平lcdcs=0;//__使能端低电平}
4.
3.4__程序设计蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机http://shop.pic__r.com/\o东哥电子商城提供单片机学习__板,实验板,编程器,仿真器,无__射接收模块,各种电子元器件.IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路蜂鸣器程序设计思路本程序通过在输出一个音频范围的方波,驱动实验板上的蜂鸣器发出蜂鸣声,其中Delay延时子程序的作用是使输出的方波频率在人耳朵听觉能力之内的20KHZ以下,如果没有这个延时程序的话,输出的频率将大大超出人耳朵的听觉能力,我们将不能听到声音更改延时常数,可以改变输出频率,也就可以调整蜂鸣器的音调代码为:ifzhuan5000{warning=1;}ifzhuan4999{warning=0;}
4.
3.5转速程序的设计测速的方法决定了测速__的硬件连接,测速实际上就是测频,因此,频率测量的一些原则同样适用于测速通常,可以用计数法、测脉宽法和等精度法来进行测试所谓计数法,就是给定一个闸门时间,在闸门时间内计数输入的脉冲个数;测脉宽法是利用待测__的脉宽来控制计数门,对一个高精度的高频计数__进行计数由于闸门与被测__不能同步,因此,这两种方法都存在±1误差的问题,第一种方法适用于__频率高时使用,第二种方法则在__频率低时使用等精度法则对高、低频__都有很好的适应性
[15]/*-----------------------数据处理------------------------*/voiddisp_count{display
[9]=zhuan/1000+0;/转换转速的千位display
[10]=zhuan/100%10+0;//转换转速的百位display
[11]=zhuan/10%10+0;//转换转速的十位display
[12]=zhuan%10+0;//转换转速的十位}
4.
3.6软件程序基础知识准备针对AT89C51单片机,头文件AT__x
51.h给出了特殊功能寄存器SFR所有端口的定义其次C语言编程基础十六进制表示字节0x5a二进制为01011010B;0x6E为01101110如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位而丢掉高8位TMOD=TMOD0xf0|0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位While1;表示无限执行该语句,即死循环语句后的分号表示空循环体,也就是{;}在引脚输出方波编程方法(比如P
3.2引脚)#include//该头文档中有单片机内部资源的符号化定义,其中包含P
3.2//void__invoid//void表示没有输入参数,也没有函数返值,这入单片机运行的复位入口//{While1//非零表示真,如果为真则执行下面循环体的语句//{P3_2=1;//给P3_2赋值1,引脚P
3.2就能输出高电平VCC//P3_2=0;//给P3_2赋值0,引脚P
3.2就能输出低电平GND//}//由于一直为真,所以不断输出高、低、高、低……,从而形成方波//}5软件调试
5.1Proteus及Keil软件简介
5.
1.1Proteus软件Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库Proteus软件提供多种现实存在的虚拟仪器仪表此外,Proteus还提供图形显示功能,可以将线路上变化的__,以图形的方式实时地显示出来这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试__用于电路的测试这些测试__包括模拟__和数字__提供Sche__ticDrawing、SPI__仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、__R、PIC等常用的MCU,并提供周边设备的仿真,例如
373、led、示波器等Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室以虚代实、以软代硬,就建立一个完善的虚拟实验室在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等
[16]
5.
1.2Keil软件KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件__系统与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用用过汇编语言后再使用C来__,体会更加深刻KeilC51软件提供丰富的库函数和功能强大的集成__调试工具,全Windows界面另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解在__大型软件时更能体现高级语言的优势C51工具包的整体结构如图5-1所示,其中Uvision与Ishell分别是C51forWindows和ForDos的集成__环境IDE,可以完成编辑、编译、连接、调试、仿真等整个__流程__人员可用IDE本身或其它编辑器编辑C或汇编源文件然后分别由C51及A51编译器编译生成目标文件.O__目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件.ABSABS文件由OH51转换成标准的Hex文件,以供调试器DScope51或TScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中图5-1C51工具包的整体结构图
5.2应用Keil软件进行程序调试软件的调试必须在__系统的支持下进行先分别调试通过各个模块程序然后调试中断服务程序最后调试主程序将各部分连接进行调试调试的范围可以由小到大逐步增加必要的中间__可以先做设定通常交叉使用单步运行断点运行连续运行等多种方式每次执行完毕后检查CPU执行现场RAM的有关内容I/O接口的状态等发现一个问题解决一个问题直至全部通过首先新建一个工程项目文件;其次为工程选择目标器件;再次为工程项目设置软硬件调试环境;并创建源程序文件并输入程序代码,及保存创建的源程序项目文件;最后把源程序文件添加到项目中
[17]
5.3Proteus软件仿真在Proteus软件中画出原理图向单片机中加入需要调试的程序的HEX文件便可以进行调试了.
5.
3.1仿真步骤利用Proteus实现单片机系统__过程一般分为四步
1.在Proteus平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等(简称Proteus电路设计);
2.在Proteus平台上进行单片机系统源程序设计、编辑、汇编编译、调试,最后生成目标代码文件(*.hex)(简称Proteus软件设计);再次在Proteus平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真(简称Proteus仿真);最后仿真正确后,__实际单片机系统电路,并将目标代码文件(*.hex)下载到实际单片机中运行、调试若出现问题,可与Proteus设计与仿__互配合调试,直至运行成功(简称实际产品__、运行与调试)笔者的实践证明按照Proteus仿真通过的设计来__的实际系统,只要__正确、元器件无误,焊接牢靠,基本都能顺利通过
[18]
5.
3.2仿真实例首先,进行参数的选定本系统主芯片采用的是AT89C51,因此选定该型号图5-2芯片型号选择其次,在OptionForTargetTarget1中选择生成HEX文件图5-3HEX文件生成运行的第一步,__运行程序确认运行程序无误,即没有错误和警告图5-4确认程序无误__生成工程文件并生成HEX文件图5-5已生成HEX文件可通过Debug中的Run和Step来对程序的对应代码进行一一调试图5-6程序运行调试通过程序加入芯片,在Proteus软件里仿真的效果图图5-7显示图
5.4硬件软件联合调试
5.
4.1联调步骤第一步__Keil与Proteus;第二步把Proteus__目录下VDM
51.dll文件__到Keil__目录的C51BIN目录中;第三步修改Keil__目录下Tools.ini文件,在C51字段加入TDRV5=BINVDM
51.DLLProteusV__Monitor-51Driver打开Proteus,画出相应电路在Proteus的Tools菜单中选中Useremotedebugmonitor;第四步在Keil中编写MCU的程序;及进入Keil的Proteus菜单Optionfortarget工程名在Debug选项中右栏上部的下拉菜选中ProteusV__Monitor-51Driver在进入seting,如果同一台机IP名为
127.
0.
0.1如不是同一台机则填另一台的IP地址端口号一定为8000注意可以在一台机器上运行Keil,另一台中运行Proteus进行远程仿真第五步即最后在Keil中进行Debug,同时在Proteus中查看直观的结果
[19]
5.
4.2搭接检查步骤首先检查元件的好坏;按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真其次放置各元件;按电路图的位置将各元件安置好,首先放置核心元件,然后再放其他元件,特别注意顺序不能颠倒再次电路接线;在保证电路元器件完好及各元器件放置无误合理的情况下,开始对电路连接布线,由于本设计用面包板搭件,所以布线要无跨线并且工整
[20]6结论本文给出了一种单片机实现电机转速的测量系统克服了传统方法测量的不足可以实现电机转速不同区段的精度测量该速度测量系统具有测量速度快,测量精度高的优点,不但可应用于一般的机电控制过程中进行速度测量,而且可应用于其它要求转速精确测量系统中主要通过学习了霍尔传感器、89C51单片机、1206LCD显示等知识,查阅了相关资料,实现了“基于霍尔传感器的电机转速测量系统设计”的基本要求本系统实现了题目基本部分以及扩展部分的要求,可达到设计的基本条件要求所设计的系统具有以下功能1对于设计采用89C51单片机作为测量转速的主CPU芯片,系统硬件设备结构简单合理,成本低,实时性好2测速系统采用霍尔传感器作为敏感速率__,具有频率响应快,抗干扰能力强等特点霍尔传感器的输出__经__调理后,通过单片机对连续脉冲记数来实现转速测量,充分利用了单片机的内部资源,有很高的性价比经过测试并对误差进行分析发现,该系统的测量误差在5%以内,并且在测量范围内转速越高测量精度越高所以该系统在一般的转速检测和控制中均可应用3针对采用1206LCD显示测速值,直观、稳定,易于实现,该显示方式可以__到其他工程应用领域并应用KEIL进行了软仿真,调试结果表明所设计的软件程序正确4测速系统的功能还有待进一步扩充,如判别转速方向的能力;电路布局、和抗干扰方面还有很大的提升空间提高是有限的但提高也是全面的,正是这一次设计让我积累了无数实际经验,使我的头脑更好的被知识武装了起来,也必然会让我在未来的工作学习中表现出更高的应变能力,更强的沟通力和理解力顺利如期的完成本次毕业设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心附录源程序#includereg
51.H#includeintrins.h#defineuintunsignedint#defineucharunsignedchar/*-----------------------端口命名------------------------*/__itrs=P2^7;//LCD的数据/命令选择端__itrw=P2^6;//LCD的读写选择端__itlcdcs=P2^5;//LCD的使能__端__itwarning=P3^1;//蜂鸣器端/*-------------------------------------------------------*//*-----------------------定义参数------------------------*/uintizcountzhuanmsec;//定义参数uchardisplay[]={speed=r/sec};//定义显示参数/*-------------------------------------------------------*//*-----------------------毫秒延时------------------------*/voiddelayuintms{uintij;//为延时引入ij两参数forj=0;jms;j++//延时第一循环fori=0;i120;i++;//延时第二循环}/*-------------------------------------------------------*//*--------------------向LCD1602写命令--------------------*/voidwrite_com__nducharcom__nd{rs=0;//选择写命令P0=com__nd;//向LCD写命令lcdcs=1;//__使能端高电平lcdcs=0;//__使能端低电平}/*-------------------------------------------------------*//*--------------------向LCD1602写数据--------------------*/voidwrite_datauchardata0{rs=1;//选着写数据P0=data0;//向LCD写数据lcdcs=1;//__使能端高电平lcdcs=0;//__使能端低电平}/*-------------------------------------------------------*//*-------------------外部中断0计数程序-------------------*/voidcountervoidinterrupt0{EX1=0;//关外部中断0count++;ifcount==4//4次循环为电机转一圈{count=1;//初始化计数z++;//转圈计数加1}//计数+1EX1=1;//开外部中断0return;}/*-------------------------------------------------------*//*------------------------LCD显示------------------------*/voiddisplaytolcd{write_com__nd0x80;//向LCD1602写命令80Hfori=0;isizeofdisplay-1;i++//循环要传输的字符个数次每一次传输一个字符{write_datadisplay[i];delay5;}}/*-------------------------------------------------------*//*-----------------内部中断0计时计数程序-----------------*/voidTimer_0voidinterrupt1{TH0=0x65;//50ms定时TL0=0xF3;msec++;ifmsec==20//50*20=1S{displaytolcd;msec=0;zhuan=z;z=0;}}/*-------------------------------------------------------*//*----------------------端口初始化-----------------------*/voidint_all{warning=0;//关蜂鸣器z=0;//初始化z的值count=0;//初始化count的值zhuan=0;//初始化转的值rw=0;//选择LCD写数据指令delay15;//延时15mswrite_com__nd0x38;//向LCD1602写命令38Hdelay5;//延时5mswrite_com__nd0x0e;//向LCD1602写命令0EHdelay5;//延时5mswrite_com__nd0x06;//向LCD1602写命令06HTMOD=0x01;//内部中断定时器选择TH0=0x66;//50ms定时TL0=0x50;EA=1;//开中断总开关ET0=1;//开内部中断0TR0=1;//计时器开始工作IT0=1;//外部中断0为下降沿触发EX0=1;//开外部中断0}/*-------------------------------------------------------*//*-----------------------数据处理------------------------*/voiddisp_count{display
[9]=zhuan/1000+0;//转换转速的千位display
[10]=zhuan/100%10+0;//转换转速的百位display
[11]=zhuan/10%10+0;//转换转速的十位display
[12]=zhuan%10+0;//转换转速的个位}/*-------------------------------------------------------*//*-------------------转速过高警告程序--------------------*/voidwarning_speed{ifzhuan5000//高于5000转打开警告{warning=1;}ifzhuan=5000//低于5000转关闭警告{warning=0;}}/*-------------------------------------------------------*//*------------------------主函数-------------------------*/void__in{int_all;//全局初始化while1{disp_count;//数据处理warning_speed;//转速警告displaytolcd;//LCD显示}}/*-------------------------------------------------------*/____
[1]赵负图.现代传感器集成电路[M].北京:人民邮电出版社
2000.534-
535.
[2]__坤,陈善久,裘雪红.单片微型计算机原理及应用[M].西安西安电子科技大学出版社,1998年.
[3]全润,张亚凡,邓洪敏.传感器原理及应用[M].北京清华大学出版社,2008年
[4]冯寿亭,李迪.基于嵌入式计算机和DSP的数控系统以及其通信实现[J].组合机床与自动化,2005
[5]来清__编.传感器与单片机接口及实例[M].北京____大学出版社.
[6]何希才.传感器及其应用[M].北京国防工业出版社,2001·
[7]万福君凌文玉王乃厚等.单片微机原理系统设计与__应用[M].合肥:中国科学技术大学出版社
1995.46-
52.
[8]冯雷星.基于单片机高性价比频率计的设计与实现[J].微计算机信息,2007,20785-86.
[9]冯夏勇,蔡建国.实用微机转速测量方法的研究[J].宇航测量技术,1997,17649-25.
[10]胡汉才.单片机原理及其接口技术[M].北京清华大学出版社.1996.
[11]杨宁王吴田蔚风等.高精度飞轮控制系统方案分析研究[J].__控制,2004,22350一53.
[12]彭为,黄科,雷道仲.单片机典型系统设计实例精讲[M].北京电子工业出版社.2007年
[13]李学礼.基于Proteus的8051单片机实例教程[M].北京电子工业出版社,2008年
[14]李华.单片机通用接口技术[M].北京北京____大学出版社,
1999.
[15]陈伯时.电力拖动自动控制系统[M].北京机械工业出版社,2003103—107
[16]__刚彭喜元.MCS-51单片机应用设计[M].哈尔滨工业大学出版社.2003年
[17]周航慈.单片机应用程序设计技术[M].北京____大学出版社,200211
[18]徐爱钧.单片机原理实用教程—基于Proteus虚拟仿真[M].北京电子工业出版社.2009年
[19]TexasInstrumentsIncorporatedTMS320c54xDSP[J].BI0SUsersGuideSPRU326C2000.5.
[20]刘涳主编.毕业设计宝典.西安西安电子科技大学出版社.2008年致谢四年的学习和生活就要随着这篇论文的答辩而结束了有许许多多的舍不得,也有许许多多的感谢要说在本论文撰写完成之际,衷心感谢所有给予我指导和帮助的老师、同学本课题从开始至最后终检,三个月的毕业设计已接近尾声感谢电子信息系的__及各实验室的老师给予我们热情的指导和帮助,为我们投入了大量的财力、物力和实验设施PAGE36。