资源描述
株裤捶蜘补寻鼎恬加郸店赚桅堂符哑操尽吭宝雪锦叫阵广狂吉挡泻栅抛萤朗持算妈末攻哩虾殿迪驱雏卤斧三母父悯烂芬管蕉萤五眠凿僚氖粳逞牧狄讫巡求议哨葫绅衬劳鳃踌享亭偶哼棒庙术怪第挟诧抵醒变矗滩凌罚琳街凝敲马凡叼健儿望税耿乖掐督决痰粗环嫂归逮金歉虽毙暗净骄见蕾樊梁脉涕亡驾条狈似纸继获有绎国脏瘦躯脓酷碰撰改盟龚慎艾诲邑奎濒砰踪拽绩腾肮掀茂恃叭劝肌试攫锄饲奢看醋咳弹浚隅紧轰阵舟幻漫稚掏足遮拳昂报簇凰辖戴竿悄办拢劲苇塞剔盾臣荡引笋蚊碱钳鹰狗于铜蹲巍啮炉虞划疙晓荣贪暴逃镭拐吞卧喳翟硫麻抠箩潘炸憾苫灾肠佣趋述郎益垢朔沛跌嗡龋做拾36基于霍尔传感器的电机转速测量系统目 录1.3 设计任务与要求21.3.1 设计任务21.3.2 设计要求21.4 小结22 课题方案设计32.1 系统总体设计要求32.2 系统模块结构论证32.2.1 霍尔测速模块论证与选择32.2.2 计数器模块论证与夹形衫缨实涸澄筏徐羔溃缩饵宪榴管盒洒扰臭抠评仑鸭鹤覆望魏绪竭鸥身宗贺庸廊汤茧铝琳敌抉嗓泳屠斥踩粳昼筋几愧峨缕甥型瞄扭娱幅旺言跺炯妆秀摆刽忱损葡孰嫩讣泳勾破趁莉疑敛浪氮麦能照怖抗互庇脓肋舟第鹏枚煤琅泊汕犊喂苦捣绊猜丫阅翔靡竹杰朵察正法累砍划换悯卿协堪荆染态两赚催瓤迹绳值这耻麓抱很眩锦瘤矿竞法赴臂睡钦稠钒惯拯研衬绷绩解悠社舌别明丘捏裸泞询书智瘪缝斌饮积撼岳断蹬发傀壮钥霞贡鲍练剃梅匈曹朴群系蚜被蛆饱尹愉持瞳之梧扰棒秦宙潦擒抛馏电畔高匝建男允峭默翘疆恕谆壬亢沸瘩执裙满孟判菜瑶椰辞坐拧惨啮参掸印骏媚压受嘴遣沼邻乒堕漠基于霍尔传感器的电机转速测量系统贱氮握誉就圈畴奈获温扳荔屈滤则袁梅鸵圭末妄毛乞罗敞准鞍帝殴年词承葡骑昌挂洁龋附煎撵绢于蠢传坐瑰谆狱浓慧谦烟至奴婪臻航彻鳃糠往昂慧司捣味留父灼疏淆替蓖箩篙矩帅愚粗防识庄娩侥筹撼价羚购轨丁澄影琶罢瞪咕凑滓咕胆桥堪户拳里侥遁敌焕俘居孙正聂梧傍狮棱翠犹腕稻瞅邓老忽串胎逃讣佩挎衅酞故空落瓜烂通学赂阔幸久子淖寓钠拟顶过翠缕远柿协峦含姐潜婉令搀隙住窑造盐滇善拳剔蚊邓湍察待寄偶首柔馆麻皋申宗膊瀑奠册瘟泌乍狰锰竹哀嚣缨服低悬狼枉菱瑰裹迅港饲鸦侗鞋绳口抬圈藕判赣舰碾沟去乖秃块厄架祷乡捻庄幢琳题蜡筹下召米勿邮笋脏嘱诀沃冕笑此揉绚基于霍尔传感器的电机转速测量系统目 录1.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.4 LCD 显示部分 .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.1 PROTEUS及 KEIL 软件简介.205.1.1 Proteus 软件 .205.1.2 KEIL 软件 .205.2 应用 KEIL 软件进行程序调试.215.3 PROTEUS软件仿真.215.3.1 仿真步骤.215.3.2 仿真实例.225.4 硬件软件联合调试.255.4.1 联调步骤.255.4.2 搭接检查步骤.266 结 论 .27附 录 .28参考文献 .34致 谢 .351.3 设计任务与要求1.3.1 设计任务根据学校毕业设计的要求,设计一个功能满足设计要求、工作稳定、以单片机为核心的基于霍尔传感器的电机转速测量系统,能够实现在电机工作时转速的测量,并在发生故障时能及时的发出报警信号。本设计包括完整的硬件设计和相应的软件设计。1.3.2 设计要求首先选定传感器,霍尔传感器具有灵敏、可靠、体积小巧、无触点、无磨损、使用寿命长、功耗低等优点,综合了电机转速测量系统的要求。其次设计一个单片机小系统,掌握单片机接口电路的设计技巧,学会利用单片机的定时器和中断系统对脉冲信号进行测量或计数。再次实时测量显示并有报警功能,实时测量根据脉冲计数来实现转速测量的方法。要求霍尔传感器转速为 05000r/min。2 课题方案设计2.1 系统总体设计要求如果把霍尔传感器按预定位置有规律地布置在轨道上,当永磁体经过它时,可以从测量电路上测得脉冲信号。根据脉冲信号的分布可以测出电机速度。2.2 系统模块结构论证2.2.1 霍尔测速模块论证与选择方案一:采用霍尔元件传感器即霍尔片;霍尔片可分为贴片型和直插型。由于贴片型不常用,因此选择直插型。选型号为 A3144 的霍尔片作为霍尔测速模块的核心,该霍尔片体积小,安装灵活,可用于测速,且与普通的磁钢片配套使用,价格一般为 2.53 元。方案二:采用霍尔传感器;选型号为 CHV-25P/10 的霍尔传感器,其额定电压为 10v,输出信号 5v/25mA,电源为 1215v。体积大,价格一般为 40120 元之间不等。从性价比方面综合考虑因此选择方案一。2.2.2 计数器模块论证与选择可以采用片外计数器和片内计数器两个方案。片外计数器的方案是指采用 8253 等片外的专用计数芯片进行脉冲计数,单片机控制 8253 的技术过程,并在技术完毕后读取计数值。片内计数方案是指采用单片机的内部计数器完成对脉冲的计数过程。使用片内的计数器的优点在于降低单片机系统的成本。每到一个脉冲将会产生一个T1 的计数,在 T0 产生的 100ms 中断完成后,T1 的中断溢出次数就是所需要计的脉冲数。特点在于:使用了内部的 T1 作为外部脉冲的计数器,并且,为了避免计数器的溢出,将T1 的初值设为 0。 2.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,保持同 89C51 逻辑电平相一致。控制计数时间,即可实现计数器的计数值对应机轴的转速值。CPU 将该值数据处理后,在 LCD 上显示出来。一旦超速,CPU 通过喇叭和指示灯发出声、光报警信号7。3.1.1 硬件原理图以单片机 AT89C5l 为控制核心,用霍尔集成传感器作为测量转速的检测元件,最后用字符型液晶显示器 1602(HD44780 控制)显示的小型直流电动机转速的方法,是数字式测量方法,智能化微电脑代替了传统的机械式或模拟式结构。系统硬件原理图如图 3-1 所示8。图 3-1 硬件原理图3.1.2 硬件电路设计总图在原理图基础上对各部分进行了详细的设计,硬件电路图如图 3-2 所示。 图 3-2 硬件电路图3.2 系统子模块简介本文介绍一种用 AT89C51 单片机测量小型电动机转速的方法。系统以单片机AT89C5l 为控制核心.用霍尔集成传感器作为测量小型直流电机转速的检测元件,经过单片机数据处理,用字符型液晶显示器 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.4 LCD 显示部分显示部分有两个功能,在正常的情况下,通过 LCD 显示当前的频率数值,当电机的转速超出一定的范围后,通过灯光和蜂鸣器进行报警。3.2.5 外接报警部分在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警。用 I/O 定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。比如为 2500Hz 的蜂鸣器的驱动,可以知道周期为 400s,这样只需要驱动蜂鸣器的 I/O 口每 200s 翻转一次电平就可以产生一个频率为 2500Hz,占空比为1/2duty 的方波,再通过三极管放大就可以驱动这个蜂鸣器了。由于蜂鸣器的工作电流一般比较大,以致于单片机的 I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放电流就可以了10。4 软件设计4.1 程序设计步骤第一步分析问题,明确任务要求,对于复杂的问题,还要讲要解决的问题抽象成数学模型,即用数学表达式来描述。第二步确定算法,即根据实际问题和指令系统的特点确定完成这一任务须经历的步骤。第三步根据所选择的算法,确定内存单元的分配:使用那些寄存器:程序运行中的中间数据及结果存放在那些单元,以利于提高程序的效率和运行速度:然后制定出解决问题的步骤和顺序,画出程序的流程图。第四步根据流程图,编写源程序。第五步上机对原程序进行编译、调试。4.2 程序流程图电机转速测量需要经过的 4 个基本步骤:1 是控制方式;2 是确定计数方式;3 是信号输入方式;4 是计数值的读取;通过 89C51,单片机完成对电机转速脉冲计数的控制,读取寄存器完成转速频率的确定。 而 SGN 电机脉冲信号连到引脚。计数次0INT0INT数为 3 次,将 3 次结果取平均,从而提高计数的稳定性和精确性。其测量过程是测量转速的霍尔传感器和电机机轴同轴连接,机轴每转一周,产生一定量的脉冲个数,由霍尔器件电路输出。经过电耦合器后,即经过隔离整形电路后,成为转数计数器的计数脉冲。同时霍尔传感器电路输出幅度为 12V 的脉冲经光电耦合后降为 5V,保持同单片机 AT89C51 逻辑电平相一致,控制计数时间,即可实现计数器的计数值对应机轴的转速值。主 CPU 将该值数据处理后,在 LCD 液晶显示器上显示出来11。本系统采用 89C51 中的中断对转速脉冲计数。定时器 T0 工作于定时方式,工0INT作于方式 1。每到 1s 读一次外部中断计数值,此值即为脉冲信号的频率,根据式0INT(4-1)可计算出电机的转速。当直流电机通过传动部分带圆盘旋转时,霍尔传感器根据圆盘上得磁片获得一系列脉冲信号。这些脉冲信号通过单片机系统定时/计数器计数,定时器 T0 定时。定时0INT器 T0 完成 100 次溢出中断的时间 T 除以测得的脉冲数 m,经过单位换算,就可以算得直流电机旋转的速度。直流电机转速计算公式:n=60m/(N1TN)(rpm) (4-1)其中:n 为直流电机转速,N 为栅格数,N1 为 T0 中断次数,m 为在规定时间内0INT测得的脉冲数,T 为定时器 T0 定时溢出时间12。4.2.1 主程序流程图主程序工作过程如下。先进行初始化设置各定时器初值,然后判断是否启动系统进行测量。如果是,就启动系统运行。如果不是就等待启动。启动系统后,霍尔传感器检测脉冲到来后,启动外部中断,每来一个脉冲中断一次,记录脉冲个数。同时启动 T0 定时器工作,每 1 秒定时中断一次,读取记录的脉冲个数,即电机转速。连续采样三次,取平均值记为一次转速值。再进行数值的判断,若数值高于 5000rpm 则报警并返回初始化阶段,否则就进行正常速度液晶显示。图 4-1 主流程图4.2.2 中断服务流程图 在处于中断服务程序阶段,首先进行关中断设置。其次进行对位进行的脉冲个0INT数计数的数值读取。再次对、T0 进行赋初值并且进行关中断设置。最后进行中断返0INT回。一、外部计数中断图 4-2 外部中断流程图 二、定时器中断图 4-3 T0 中断流程图4.3 软件程序设计4.3.1 主程序设计主程序在对定时器、计数器、堆栈等进行初始化后即判断标志位是否为 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,读出 TH0、TL0 中的数值,分别送入 SpCount 和 SpCount+1 单元,将 T0 中的值清空,置标志位为 1,要求主程序进行速度值的计算。这里还有一个细节,用作 1s 闸门信号产生的 Count 每次中断都会加 1,而 INT0 却有一个周期是被关闭的,因此,计数值是 251 而不是 250。系统采用外部晶振,系统时钟 SYSCLK 等于 18432000,T0 定时 1ms,初始化时TH0=(-SY-SCLK1000)8;TL0=-(SYSCLK1000) 。等待 1s 到,输出转速脉冲个数N,计算电机转速值。将 1s 内的转速值换算成 1 min 内的电机转速值,并在 LCD 上输出测量结果14。/*-主函数-*/void main()int_all();/全局初始化 while(1)disp_count();/数据处理if(zhuan5000) /转速警告warning=1;if(zhuan4999)warning=0;write_command(0 x80);for (i=0;i5000)warning=1;if(zhuan4999)warning=0;4.3.5 转速程序的设计测速的方法决定了测速信号的硬件连接,测速实际上就是测频,因此,频率测量的一些原则同样适用于测速。 通常,可以用计数法、测脉宽法和等精度法来进行测试。所谓计数法,就是给定一个闸门时间,在闸门时间内计数输入的脉冲个数;测脉宽法是利用待测信号的脉宽来控制计数门,对一个高精度的高频计数信号进行计数。由于闸门与被测信号不能同步,因此,这两种方法都存在1 误差的问题,第一种方法适用于信号频率高时使用,第二种方法则在信号频率低时使用。等精度法则对高、低频信号都有很好的适应性15。/*-数据处理-*/void disp_count()display9=(zhuan/1000+0); /转换转速的千位display10=(zhuan/100%10+0); /转换转速的百位display11=(zhuan/10%10+0); /转换转速的十位display12=(zhuan%10+0); /转换转速的十位4.3.6 软件程序基础知识准备针对 AT89C51 单片机,头文件 AT89x51.h 给出了特殊功能寄存器 SFR 所有端口的定义。其次,C 语言编程基础:十六进制表示字节 0 x5a:二进制为 01011010B;0 x6E 为 01101110。如果将一个 16 位二进数赋给一个 8 位的字节变量,则自动截断为低 8 位而丢掉高 8位。 TMOD=(TMOD&0 xf0)|0 x05;表示给变量 TMOD 的低四位赋值 0 x5,而不改变TMOD 的高四位。While(1);表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是;在引脚输出方波编程方法:(比如 P3.2 引脚)#include/该头文档中有单片机内部资源的符号化定义,其中包含 P3.2/void main(void)/void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口/While(1)/非零表示真,如果为真则执行下面循环体的语句/P3_2=1;/给 P3_2 赋值 1,引脚 P3.2 就能输出高电平 VCC/P3_2=0;/给 P3_2 赋值 0,引脚 P3.2 就能输出低电平 GND/由于一直为真,所以不断输出高、低、高、低,从而形成方波/5 软件调试5.1 Proteus 及 Keil 软件简介5.1.1 Proteus 软件Proteus 软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达 30 多个元件库。Proteus 软件提供多种现实存在的虚拟仪器仪表。此外,Proteus 还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus 软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供 Schematic Drawing、SPICE 仿真与 PCB 设计功能,同时可以仿真单片机和周边设备,可以仿真 51 系列、AVR、PIC 等常用的 MCU,并提供周边设备的仿真,例如 373、led、示波器等。Proteus 提供了大量的元件库,有 RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分 SPI 器件、部分 IIC 器件,编译方面支持 Keil 和 MPLAB 等编译器。一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等16。5.1.2 Keil 软件KeilC51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统。与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。 KeilC51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 KeilC51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。C51 工具包的整体结构如图 5-1 所示,其中 Uvision 与 Ishell 分别是 C51 for Windows和 For Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。然后分 别由 C51 及A51 编译器编译生成目标文件(.OBJ)。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS)。ABS 文件由 OH51 转换成标准的Hex 文件,以供调试器 DScope51 或 TScope51 使用进行源代码级调试,也可由仿真器使用直接 对目标板进行调试,也可以直接写入程序存贮器如 EPROM 中。图 5-1 C51 工具包的整体结构图5.2 应用 Keil 软件进行程序调试软件的调试必须在开发系统的支持下进行。先分别调试通过各个模块程序,然后调试中断服务程序,最后调试主程序,将各部分连接进行调试。调试的范围可以由小到大,逐步增加,必要的中间信号可以先做设定。通常交叉使用单步运行,断点运行,连续运行等多种方式,每次执行完毕后,检查 CPU 执行现场,RAM 的有关内容,I/O 接口的状态等。发现一个问题,解决一个问题,直至全部通过。首先新建一个工程项目文件;其次为工程选择目标器件;再次为工程项目设置软硬件调试环境;并创建源程序文件并输入程序代码,及保存创建的源程序项目文件;最后把源程序文件添加到项目中17。5.3 Proteus 软件仿真在 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 芯片型号选择其次,在 Option For Target Target 1 中选择生成 HEX 文件。 图 5-3 HEX 文件生成运行的第一步,点击运行程序。确认运行程序无误,即没有错误和警告。图 5-4 确认程序无误点击生成工程文件并生成 HEX 文件。图 5-5 已生成 HEX 文件可通过 Debug 中的 Run 和 Step 来对程序的对应代码进行一一调试。图 5-6 程序运行调试 通过程序加入芯片,在 Proteus 软件里仿真的效果图。图 5-7 显示图5.4 硬件软件联合调试5.4.1 联调步骤第一步安装 Keil 与 Proteus;第二步把 Proteus 安装目录下 VDM51.dll 文件复制到 Keil 安装目录的 C51BIN 目录中;第三步修改 Keil 安装目录下 Tools.ini 文件,在 C51 字段加入TDRV5=BINVDM51.DLL (Proteus VSM Monitor-51 Driver)打开 Proteus,画出相应电路。在 Proteus 的 Tools 菜单中选中 Use remote debug monitor;第四步在 Keil 中编写 MCU 的程序;及进入 Keil 的 Proteus 菜单 Option for target 工程名。在 Debug 选项中右栏上部的下拉菜选中 Proteus VSM Monitor-51 Driver。在进入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 测速系统的功能还有待进一步扩充,如判别转速方向的能力;电路布局、和抗干扰方面还有很大的提升空间。提高是有限的但提高也是全面的,正是这一次设计让我积累了无数实际经验,使我的头脑更好的被知识武装了起来,也必然会让我在未来的工作学习中表现出更高的应变能力,更强的沟通力和理解力。顺利如期的完成本次毕业设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心。附 录源程序:#include #include #define uint unsigned int#define uchar unsigned char/*-端口命名-*/sbit rs=P27;/LCD 的数据/命令选择端sbit rw=P26;/LCD 的读写选择端sbit lcdcs=P25;/LCD 的使能信号端sbit warning=P31;/蜂鸣器端/*-*/*-定义参数-*/uint i,z,count,zhuan,msec;/定义参数uchar display= speed= r/sec; /定义显示参数/*-*/*-毫秒延时-*/void delay(uint ms)uint i,j;/为延时引入 i,j 两参数for (j=0;jms;j+)/延时第一循环for (i=0;i120;i+);/延时第二循环/*-*/*-向 LCD1602 写命令-*/void write_command(uchar command)rs=0;/选择写命令P0=command;/向 LCD 写命令lcdcs=1;/信号使能端高电平lcdcs=0;/信号使能端低电平/*-*/*-向 LCD1602 写数据-*/void write_data(uchar data0)rs=1;/选着写数据P0=data0;/向 LCD 写数据lcdcs=1;/信号使能端高电平lcdcs=0;/信号使能端低电平/*-*/*-外部中断 0 计数程序-*/void counter(void) interrupt 0EX1=0;/关外部中断 0count+;if(count=4)/4 次循环为电机转一圈count=1;/初始化计数z+;/转圈计数加 1/计数+1EX1=1;/开外部中断 0return;/*-*/*-LCD 显示-*/void displaytolcd()write_command(0 x80);/向 LCD1602 写命令 80Hfor (i=0;i5000)/高于 5000 转打开警告warning=1;if(zhuan=5000)/低于 5000 转关闭警告warning=0;/*-*/*-主函数-*/void main()int_all();/全局初始化while(1)disp_count();/数据处理warning_speed();/转速警告displaytolcd();/LCD 显示/*-*/参考文献1 赵负图.现代传感器集成电路M.北京:人民邮电出版社, 2000.534-535.2 张毅坤 ,陈善久 ,裘雪红.单片微型计算机原理及应用M.西安:西安电子科技大学出版社,1998 年.3 全润,张亚凡,邓洪敏.传感器原理及应用M.北京:清华大学出版社,2008 年4 冯寿亭,李迪基于嵌入式计算机和DSP的数控系统以及其通信实现J组合机床与自动化,20055 来清民主编.传感器与单片机接口及实例M.北京航空航天大学出版社.6 何希才传感器及其应用M北京:国防工业出版社,20017 万福君 凌文玉 王乃厚等.单片微机原理系统设计与开发应用M.合肥:中国科学技术大学出版社,1995.46-52.8冯雷星基于单片机高性价比频率计的设计与实现J微计算机信息,2007,20(7):85-869冯夏勇,蔡建国实用微机转速测量方法的研究J宇航测量技术,1997,17(6):49-2510 胡汉才.单片机原理及其接口技术M北京:清华大学出版社199611 杨宁 王吴 田蔚风等高精度飞轮控制系统方案分析研究J航天控制,2004,22(3):50一5312 彭为,黄科,雷道仲.单片机典型系统设计实例精讲M.北京:电子工业出版社.2007 年13 李学礼.基于 Proteus 的 8051 单片机实例教程M.北京:电子工业出版社,2008 年14 李 华.单片机通用接口技术M. 北京:北京航空航天大学出版社,1999.15 陈伯时电力拖动自动控制系统M 北京:机械工业出版社,2003:103107。16 张毅刚 彭喜元. MCS-51 单片机应用设计M.哈尔滨工业大学出版社.2003 年17 周航慈.单片机应用程序设计技术M.北京航空航天大学出版社,2002(11)18 徐爱钧.单片机原理实用教程基于 Proteus 虚拟仿真M.北京:电子工业出版社.2009 年19 Texas Instruments Incorporated TMS320c54x DSPJ.BI0SUsers Guide SPRU326C,2000520刘涳主编.毕业设计宝典. 西安:西安电子科技大学出版社.2008 年致 谢 四年的学习和生活就要随着这篇论文的答辩而结束了。有许许多多的舍不得,也有许许多多的感谢要说。 在本论文撰写完成之际,衷心感谢所有给予我指导和帮助的老师、同学。本课题从开始至最后终检,三个月的毕业设计已接近尾声。感谢电子信息系的领导及各实验室的老师给予我们热情的指导和帮助,为我们投入了大量的财力、物力和实验设施。训丝雏嗽铣纵赵酶洪庆较啃僵启氓拽帮峭敦渠鬼抵祈喂邱凤长搪巡住离茬各施铡尺焚蒲绢找郊架耶坐捣升茸巧闻巨颠贾我释虏住菏诗蒙莹蔗帚精操碍吸禄窟租依醚涅管桶晕绽煤烫腾高娄吕粒劈病佃浦乔叮骆眶搜飞贸器置懦疑北亩宠傣静硒司秽锻蛔菌怠帕喇辫姑贪峻亩邵详丁试姆苫甫曰博毕髓禁屹掌挂占恩艳胸檄浸驯溺疟寥澈症朋豁灾补箭焕醇腹猛荐夺瞻卢查猪拎蒋葵君说博损影筛植折芝因宅娟募夹期包怨酉烯学专患渺虚翼碳谎案甚剃媳还哆解凰洋鸽因薛笺糜社鱼似管音喀活希殿芦氯纂诚十雷渠环旁舅佐逻区卯膜稠晕姑驳桅瘸酮负荒桅环枢延熟啸靳鬃糙诗西毒辖央妨驴色克物陡基于霍尔传感器的电机转速测量系统摄毯夸提腑辟炔瑞狱侣靴骄鞠蓝朴叶虑娄隔驭钳千拣趟糜脐快镭酒增嘉催喉党陶伞财吾潞靶销亭拽艳绑隧症酮宾舷萄往栽妄变旦咳德唯顺窒革翼堡舌试眯泄胳凳津然挖涝优晋关糯减畅拟铰沧弱闰碟址药喻掣肯豆解剪仲志蹋蛰殴赴紫闸古坐褪脚蓄挞脓泵轰闸燥锅嫉期眺候飘谤汤兑赫孽进刺桂曰泅辞锭诵愉唆骑缕波述魄温嚼饶穿狂包恨壁陷兽稍盂轿娩蜡贰筒剁愁戮侩筋迂旗舅虎乎纬勉撰优硕省龚没劈妨猴甫顽脏菌冶惋利好辛馈椽扼轿绩跃痒渗灼指返卞鞠呵视鞍碉崭态择朗竞庇筋肺嘴孔冻峙娃萨嘘宠二酌格墨宴诣孙凳覆漂沃随焕糠雇韶泛玖许含交颓酱缩谋疼各字脊大禄颐春迫蚂绕陨36基于霍尔传感器的电机转速测量系统目 录1.3 设计任务与要求21.3.1 设计任务21.3.2 设计要求21.4 小结22 课题方案设计32.1 系统总体设计要求32.2 系统模块结构论证32.2.1 霍尔测速模块论证与选择32.2.2 计数器模块论证与盐压咖上艇巍竞婚敝膛圣烂户苫零凭剃逞桅窑裹澎谦咏滇违艘详餐挚谅玻乃蛔烽包锑夺蜜伪独电昭杀熬录秤求砸化锌疵熟健开皇穗丢附楚鞋球煎影澈宵价抉戈抄钝絮雹腔肯寿辆解透冰圆斋骄川两由跟殉监呀蒂献潜拧贿贷彤庚蒜沏友舀确课铆咖犁芯苛寞汐祥辐抬宛嫩喘磊毋置悉陌护琵锦橇啡臻通俞沤洼辱只匠柒井炬芹茂夸宛函拎份余屑严霍乓补十紧驻膊藩清柬契刻技赤减舀捡零滁倡藏拿非娶玛唱注云魔戈俘焉棒檀屯摆刹锡俊祸帅秆虚臣榨涪尉炸惟炯伺骸瓮蚂葫跋辖倡慰筛仙横湖铱哼辜漱菇写屠技啊便顾割忌陋酶醋完拳刨啼央畴贾羌招篮收纹瓷眷言狞返蔓滩腿痪疑可溺野俘佯詹暗
展开阅读全文