1、 课程设计(论文)说明书题 目:电机转速测量电路 院 (系):信息与通信学院 专 业:电子科学与技术 学生姓名 学 号: 指导教师:何宁 职 称:教授 2012 年 12 月 20 日桂林电子科技大学课程设计论文 第 1 页 共 20 页1摘 要本文设计了一种基于AT89S52单片机的红外线转速测量系统。该系统的红外发射与接收采用直射式,红外发光管射出的红外线通过圆盘的小孔照射到红外探头上,接收电路再经过简单的信号处理得到脉冲式的转速信号。使用AT89S52单片机采样脉冲信号并计算每分钟内脉冲信号的数目,即电机对应的转速值,最终系统通过四位七段数码管显示电机每分钟的转速值。本文详细分析了系统的
2、组成及工作原理,给出了系统中各硬件模块设计方法及系统软件设计方法,给出了部分程序流程图和程序清单。该测速系统安装维护方便,工作稳定,运行可靠,具有较大的推广应用价值。关键词:转速测量;红外发射与接收;单片机 AbstractA infrared speed measuring system which based on the MCU of AT89S52 was designed in this paper. The infrared transmitter and receiver of the system used the direct type. The infrared light
3、 emitted from the IR LED passed through the hole in the disc to the infrared sensor, and the receiver circuit output a pulsed infrared signal by a simple signal processing. The AT89S52 was used to sample the pulse signal and calculate the amount of the pulse signal per minute which was the value of
4、the motor speed. Finally the value of the motor would be displayed real-time by four-bit seven-segment digital tube. The composition and the principle of the system are presented, and the design method of hardware and the software are also presented. The measurement system will have a broad prospect
5、s because the convenient installation and maintenance, stable working, reliable operation.Key words: Speed measurement; Infrared transmitter and receiver; MCU桂林电子科技大学课程设计论文 第 2 页 共 20 页2目 录引言31 设计要求41.1 设计目的41.2 设计内容及要求42 转速测量系统的原理42.1 转速测量方法42.1.1 M 法(测频法)42.1.2 T 法(测周期法)52.1.3 M/T 法(频率/周期法)52.2 转速
6、测量原理53 系统概述63.1 转动系统63.2 信号采集及其处理63.3 单片机处理电路63.4 显示电路64 设计的具体实现74.1 系统硬件电路的设计74.1.1 脉冲产生模块设计74.1.2 转速信号处理模块设计74.1.3 单片机处理模块设计84.1.4 显示模块设计114.2 系统软件的设桂林电子科技大学课程设计论文 第 3 页 共 20 页3计124.2.1 控制程序说明124.2.2 程序设计流程图125 电路板测试结果14谢辞15参考文献16附录17桂林电子科技大学课程设计论文 第 4 页 共 20 页4引言电机,作为一种量大面广的产品,已广泛应用于国民经济的各个行业中。而电
7、机的生产王国正在由日本转移到中国,尤其是浙江温州和广东珠三角地区,许多家电厂家在家电中生产也要大量用到电机。不管是电机生产厂家,还是将电机作为它们的产品中的零部件的厂家,要将它们的产品打到国际市场上,迫切需要 IS09002 认证。而IS09002 要求生产产品所用的零部件以及最终的产品都要经过本单位的质量检测,也就是说,每年要检测上亿个电机,故对电机测试仪的需求非常迫切。电机测试的参数主要有:效率、功率因数、定子输入电流、转矩、转速等,本课题主要研究转速的测量。转速是各类电机运行中的一个重要物理量,如何准确、快速而又方便地测量电机转速,极为重要。红外线数字转速电路是一种非接触式,光电传感的转
8、速计量仪器。它由红外光源、遮光圆盘、红外探头、信号处理电路与数显装置等组成。遮光圆盘随电机转轴一同转动,红外探头将从圆盘上的小孔透射来的光信号转换为电信号,然后通过计数脉冲的频率,即可在数显装置上读出旋转轴的转速。目前我国的转速计量技术与发达国家相比,在精度上与发达国家还有一定的差距。国家质量监督局的文件显示,目前在我国工业领域应用的高精度转速计量仪器中,90%的转速测量仪的测量准确度只能达到 0.1%左右,而在发达国家的测量精度能达到 0.05%。可想而知,两者测量精度的不一样,会在产品的质量上产生什么样的结果。同样由于机械式转速测量仪的精度上和测量方式上远远比不上光电式转速测量仪,所以采用
9、红外数字转速测量仪是转速测量仪器发展的一种不可避免的趋势。桂林电子科技大学课程设计论文 第 5 页 共 20 页51 设计要求红外线数字转速电路是一种代替机械转速电路,并用来测量转动速率的计量仪表。1.1 设计目的 (1)掌握红外线光电转换器的工作原理; (2)掌握红外线转速电路的设计、组装、调试方法。1.2 设计内容及要求 (1)设计四位数数值的红外线转速表,转速表基于红外线采样,测速范围为 0000 - 9999 转/分,实现近距离测量; (2)红外发光管发射的红外线经由红外探头得到,在接收电路中进行一系列的信号处理,得出被测转速的脉冲信号; (3)画出完整的电路图,组装、调试红外线转速表
10、,写出设计、调试报告; (4)选作远距离的转速测量。2 转速测量系统的原理2.1 转速测量方法转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否。因此,转速测量一直是工业领域的一个重要问题。按照不同的理论方法,先后产生过模拟测速法(如离心式转速表) 、同步测速法(如机械式或闪光式频闪测速仪) 以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。本文介绍的采用单片机和红外采样部分组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法。对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。在频率的工程测量中,电子式
11、定时计数测量频率的方法一般有三种:M 法(测频法) 、T 法(测周期法) 和 M/T 法(频率/周期法)。2.1.1 M 法( 测频法)在规定的检测时间内,检测光电脉冲发生器所产生的脉冲信号的个数来确定转速。桂林电子科技大学课程设计论文 第 6 页 共 20 页6虽然检测时间一定,但检测的起止时间具有随机性,因此 M 法测量转速在极端情况下会产生 1 个转速脉冲的误差。当被测转速较高或电机转动一圈发出的转速脉冲信号的个数较大时,才有较高的测量精度,因此 M 法适合于高速测量。2.1.2 T 法(测 周期法)它是测量光电脉冲发生器所产生的相邻两个转速脉冲信号的时间来确定转速。相邻两个转速脉冲信号
12、时间的测量是采用对已知高频脉冲信号进行计数来实现的。在极端情况下,时间的测量会产生 1 个高频脉冲周期,因此 T 法在被测转速较低(相邻两个转速脉冲信号时间较大)时,才有较高的测量精度,所以 T 法适合于低速测量。2.1.3 M/T 法(频率/周期法)它是同时测量检测时间和在此检测时间内光电脉冲发生器所产生的转速脉冲信号的个数来确定转速。由于同时对两种脉冲信号进行计数,因此只要“同时性”处理得当,M/T 法在高速和低速时都具有较高的测速精度。本设计要实现在转速范围 0000 - 9999 转/分之间测量转速,所以红外数字转速表既要测量低速转速又要测量高速转速,而 M/T 法在高速和低速时都有较
13、高的精度。由于 M/T 法可在整个速度范围内获得高分辨率,可在不损失精度和分辨率的前提下获得快速响应,所以本次设计采用 M/T 法。2.2 转速测量原理一般的转速长期测量系统是预先在轴上安装一个有 60 齿的测速齿盘,用变磁阻式或电涡流式传感器获得一转 60 倍转速脉冲,再用测频的办法实现转速测量。而临时性转速测量系统,可采用红外采样系统,从转轴上预先粘贴的一个标志上获得一转一个转速脉冲,随后利用电子倍频器和测频方法实现转速测量。不论长期或临时转速测量,都可以在微处理器的参与下,通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期,换算出转轴的频率或转速。即通过速度传感器,将转速信号变为电脉
14、冲,利用微机在单位时间内对脉冲进行计数,再经过软件计算获得转速数据。亦即:(1)/(TmNnn 转速,单位:转/ 分钟;N 采样时间内所计脉冲个数;T 采样时间,单位:分钟;m 每旋转一周所产生的脉冲个数(通常指测速码盘的齿数) 。如果 m=60,那么 1 秒钟内脉冲个数 N 就是转速 n, 即:桂林电子科技大学课程设计论文 第 7 页 共 20 页7(2)NTmNn)601/()/(通常 m 为 60。桂林电子科技大学课程设计论文 第 8 页 共 20 页83 系统概述系统主要由 AT89S52 单片机处理系统、电机、信号采集单元、信号处理单元和显示系统等几个部分组成,如图 1:图1 系统组
15、成框图3.1 转动系统红外线转速表采用的红外线探头有直接式和反射式两种。本设计中采用直射式测量电机转速。当不透光的物体挡住发射与接收之间的间隙时,接收电路产生电信号。3.2 信号采集及其处理被测物理量经过红外探头进行光电变换后,变为电阻、电流、电压、电感等某种电参数的变化值。为了进行信号的分析、处理、显示和记录,须对信号作放大、运算、分析等处理,这就引入了中间变化电路。3.3 单片机处理电路用于测量转速的脉冲信号通过 P3.5/T1 输入单片机,用 AT89S52 的定时计数器 T1对脉冲信号进行计数,用定时计数器 T0 进行定时,每 50ms 产生一个中断对数码管进行刷新,产生 120 个中
16、断后(即 6s) ,进行一次转速处理,再通过单片机对 T1 的脉冲数进行运算转换后,用数码管显示电机的转速。3.4 显示电路系统通过四位七段数码管实时显示电机的转速值。转动系统 信号采集及其处理单片机处理电路 显示电路桂林电子科技大学课程设计论文 第 9 页 共 20 页9过孔4 设计的具体实现4.1 系统硬件电路的设计4.1.1 脉冲产生模块设计设计采用了红外光电传感器,进行非接触式检测。当有物体挡在红外发光二极管和高灵敏度的红外探头之间时,接收电路将会输出一个高电平,而当没有物体挡在中间时则输出为低电平,从而形成一个脉冲。系统在红外对管间加入电动机,并在电动机的转轴上安装一转盘。在这个转盘
17、的边沿处挖出若干个圆形过孔,每当转盘随着后轮旋转的时候,接收电路将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的 TTL 电平,即可算出轮子即时的转速。因此,脉冲信号的频率大小就反映了电机转速的高低。该装置的优点是输出信号的幅值与转速无关,而且可测转速范围大,一般为 1104 r/s 以上,精确度高。脉冲发生源的硬件结构图如图 2 所示。 图2 脉冲发生源硬件结构图(左为正视图,右为侧视图)4.1.2 转速信号处理模块设计转速信号处理电路包括信号放大电路、整形电路。由于产生的电压信号很小,所以要采用共射电路进行放大处理,然后再使用 NE555 进行脉冲整形工作,使输出为矩
18、形脉冲。桂林电子科技大学课程设计论文 第 10 页 共 20 页10图3 信号处理电路图4.1.3 单片机处理模块设计(1)AT89S52 单片机介绍如图 5 所示,AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 可编程Flash 存储器。在单芯片上,拥有灵巧的 8 位 CPU 和在线系统可编程 Flash,使得AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。引脚功能:电源引脚:VCC 接电源、GND 接地。输入/输出口:PORT 0(3932) 、PORT 1(18) 、PORT 2(2128) 、PORT 3(1017) 。复位引脚:RST。
19、几乎所有的微控制器都需要复位(Reset)的操作。对于 8051 而言,只要复位引脚接高电平超过两个机器周期(约 ) ,即可产生复位操作。s2频率引脚:XTAL1、XTAL2。存储器引脚: 。当 时,系统使用内部存储器;当 时,系统使用外EA10EA部存储器。桂林电子科技大学课程设计论文 第 11 页 共 20 页11外部存储器控制引脚:第 30 脚(ALE):地址锁存启用信号,若 ALE=1,P0 被当成地址总线;若 ALE=0,P0 被当成数据总线。第 29 脚( ):程序存储启用信号,PSEN通常把此引脚连接到外部存储器(ROM)的 引脚,当 8051 要读取外部存储器的数据O时,此引脚
20、就会输出一个低电平信号。图4 AT89S52引脚图(2)主控单元如下图 6 所示,X1 为 12MHz 的晶振,第 9 脚为复位引脚,通过按键开关控制。用于测量转速的脉冲通过 P3.5 输入单片机,用 AT89S52 的定时/计数器 T1 对脉冲信号进行计数,用定时/计数器 T0 进行定时,每 50ms 产生一个中断对数码管进行刷新,产生120 个中断后(即 6s) ,进行一次转速处理,再通过单片机对 T1 的脉冲数进行乘 10 运算转换后,用数码管显示电机的转速。桂林电子科技大学课程设计论文 第 12 页 共 20 页12图5 AT89S52最小系统(3)时钟电路 单片机各功能部件的运行都是
21、以时钟控制信号为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。本设计中此采用内部时钟方式,如图 7 所示,以石英晶体振荡器和两个片电容组成外部振荡源。片内的高增益反相放大器通过 XTAL1、XTAL2 外接,作为反馈元件的片外晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率取决于晶振的振荡频率,振荡频率范围为 1.212MHz。工程应用时通常采用 6MHz 或 12MHz。图中 X1 为 12MHz,电容 C1、C2 为 30pF,它们一起构成此单片机的自激振荡器。图6 时钟电路图桂
22、林电子科技大学课程设计论文 第 13 页 共 20 页13(4)复位电路8051 的复位引脚(Reset)是第 9 脚,当单片机振荡器工作时,该引脚上出现持续2 个机器周期的高电平,就可以实现系统复位。如图 8 所示,本设计采用手动复位,用一个电容与一个 10K 电阻串联组成,电阻接地,电容接 VCC,RESET 脚接在它们中间。未上电时,RST 端为低电平,只要按下这个按键,RST 端转换为高电平,经过两个机器周期后,单片机就能复位。图7 单片机复位电路图(5)存储器设置电路如果将第 31 脚( )接地,则采用外部存储器;将 31 脚接 Vcc,则采用内部存EA储器。本次设计采用内部存储器,
23、故将第 31 脚与第 40 脚及 Vcc 相连接。4.1.4 显示模块设计(1)显示部分采用四位七段数码管来显示最终的结果,即电机的转速。如图 10所示,采用 470 的限流电阻,并使用 10K 的上拉电阻,以增加数码管的亮度。图8 显示电路图桂林电子科技大学课程设计论文 第 14 页 共 20 页14(2)四位七段数码管:内部的 4 个数码管共用 adp 这 8 根数据线,有 4 个公共端,加上 adp,共有 12 个引脚。图 11 是一个共阴四位数码管的内部结构图。引脚排列是从左下角的那个脚(1 脚)开始,以逆时针方向依次为 112 脚。图9 四位七段数码管内部结构图管脚顺序:从数码管的正
24、面观看,以第一脚为起点,管脚的顺序逆时针方向排列。12 9 8 6 公共脚a-11 b-7 c-4 d-2 e-1 f-10 g-5 dp-34.2 系统软件的设计4.2.1 控制程序说明 在 6S 之内计数外部脉冲的频率,由定时器 0 进行 6S 的定时(定时方式) ,定时器1 对外部脉冲进行计数。和 PC 机相比,单片机资源十分有限。因此单片机系统不可能像 windows 系统那样建立庞大的消息循环机制,将消息分发给各个程序并行处理。在基于消息的单片机编程中,采取一种简化的方式,消息可以这样来定义:当某个事件(例如中断)发生时,事件处理程序(例如中断服务程序)设置相应的标志,不同的标志即代
25、表不同的消息;而主程序所进行的消息循环就是主程序不断地判断这些标志,以决定启动哪一个处理函数(即将消息发送给特定的消息处理函数) 。这种方法在多中断系统中使用,可以明显地提高中断的实时性;另外,由于在中断服务程序中不需要调用数据处理程序,也有效地防止了代码重入带来的问题。4.2.2 程序设计流程图(1)主程序流程图桂林电子科技大学课程设计论文 第 15 页 共 20 页15图10 主程序流程图(2)测量函数流程图 图11 测量函数流程图(3)显示函数流程图图12 显示函数流程图桂林电子科技大学课程设计论文 第 16 页 共 20 页16(4)T0_6s 中断子程序流程图图13 T0_6s中断子
26、程序流程图5 电路板测试结果在实际的电路测试中,由于只是采用简单的模拟信号采集电路,故存在一定的误差。在转速小于每分钟 1000 转时,测量结果误差较小,当转速太高时测量误差变大。但是该电路已经可以实现基本的计数功能,从而经过计算得到直流电机的每分钟的转速。给出测试结果实测数据和图片,说明数据量关系桂林电子科技大学课程设计论文 第 17 页 共 20 页17谢 辞经过将近一个月的忙碌,本次课程设计已经接近尾声。通过这次学校组织的课程设计,我端正了自己学习的态度,锻炼了自己独立动手的能力。在此,我要感谢每一个帮助过我的人。 首先,我要感谢的是我的导师何宁老师。何宁老师平日里工作繁多,我的论文的选
27、题到最终的定稿,几经修改,都无不凝聚了陈老师的辛勤付出。可以说,没有何宁的悉心指导和帮助,我是不可能顺利完成我的课程设计的。另外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。再次,我要感谢的是我的同学和舍友们。在我课程设计期间,他们给了我不少的关心和帮助。理论与实践的结合,是对知识较好牢固掌握的一种方法,这次的课设有了这种理念,基于改变高分低能的现状。对于即将毕业的我们,社会更迫切需要的是能力,而不只是以往的高分。学校看出了这种现状,所以安排了我们的课程设计:理论实践相结合。所以作为桂电学子的我表示深切感谢,这次真的是一次的难得的宝贵经验。最后我要感谢的是
28、我亲爱的桂林电子科技大学的每一位老师和同学。总之,感谢每一位关心过我,爱护过我的人。滴水之恩,当涌泉相报。桂林电子科技大学课程设计论文 第 18 页 共 20 页18参考文献1 李群芳等.单片微型计算机与接口技术(第 3 版).北京:电子工业出版社,20082 谭浩强.C 程序设计(第三版).北京:清华出版社,20053 王卫东等.模拟电子技术基础(第 2 版).北京:电子工业出版社,20104 周茜.电路分析基础(第 2 版).北京:电子工业出版社,20105 王卫东.高频电子电路(第 2 版).北京:电子工业出版社,2009桂林电子科技大学课程设计论文 第 19 页 共 20 页19附 录
29、(1)PCB图图 14 红外线数字转速表 PCB 图桂林电子科技大学课程设计论文 第 20 页 共 20 页20(2)源程序/*红外线数字转速表,由 P3.5 输入经过处理后的脉冲信号,按下 PB0 于 6s 后显示直流电机转速*/=声明区=#include /定义 8051 寄存器的头文件#define SEG P0 /定义七段 LED 数码管接至 Port0#define SCANP P2 /定义扫描线接至 Port2sbit PB0=P32; /声明 PB0 按钮,接至 P3.2char TAB11=0x3f,0x06,0x5b,0x4f,0x66, /数字 0-40x6d,0x7d,0
30、x07,0x7f,0x67,0x00; /数字 5-9,及数码管不亮char disp4=0x3f,0x3f,0x3f,0x3f; /声明显示区数组初始显示 0000/*声明 T0 定时相关声明*/ /THx TLx#define count 50000 /T0(MODE 1)的计数值,0.05s#define TH_M1 (65636-count)/256 /T0(MODE 1)计数高 8 位#define TL_M1 (65636-count)%256 /T0(MODE 1)计数低 8 位char count_T0=0; /计算 T0 中断次数/*声明基本变量*/bit status_F=
31、1; /状态标志位unsigned int freq=0; /频率变量sfr16 DPTR=0x82; /声明 DPTR,数据指针寄存器void delay_1ms(int); /声明延迟函数void measure(void); /声明测量函数void display(void); /声明显示函数/=主程序=main() /主程序开始 P0=0x3f;P2=0xff; /数码管显示为 0000while(1) /无穷循环 if(PB0=0) /若按下 PB0 status_F=0; /则进入测量阶段measure(); /调用测量函数while(status_F=0); /等待 0,测量完毕
32、else display(); /显示阶段 /while 循环结束 /主循环结束桂林电子科技大学课程设计论文 第 21 页 共 20 页21/=子程序:=/*测量函数*/void measure(void) /测量函数开始 IE=0x8a; /1000 1010,启动 T0、T1 中断TMOD=0x51; /0101 0001:T1 为计数器、T0 为定时器,都采用MODE1TH0=TH_M1;TL0=TL_M1; /设置 T0 计数量的高、低八位TH1=0;TL1=0; /设置 T1 归零TR0=1;TR1=1; /启动 T0、T1/*6s 定时函数*/void T0_6s(void)int
33、errupt 1 /T0_6s 中断子程序开始 TH0=TH_M1;TL0=TL_M1; /设置 T0 计数器的高、低 8 位if(+count_T0=120) /若达到 6s count_T0=0; /重新计数status_F=1; /完成测量TR1=0;TR0=0; /关闭 T1、T0DPH=TH1;DPL=TL1; /计数量的高、低 8 位freq=DPTR; /计数器 T1 值放入 freq 变量if(freq*10=10000) /当电机转速超过 10000r/min 时 disp0=TAB10; /千位显示区不亮disp1=TAB10; /百位显示区不亮disp2=TABfreq*
34、10/10000; /填入十位显示区disp3=TAB(freq*10/1000)%10; /填入个位显示区else /当电机转速低于 10000r/min 时 disp0=TAB(freq*10/1000)%10; /填入千位显示区disp1=TAB(freq*10/100)%10; /填入百位显示区disp2=TAB(freq*10/10)%10; /填入十位显示区disp3=TAB(freq*10)%10; /填入个位显示区 /结束 if 判断(达到 6s) /T0_6s 中断子程序结束桂林电子科技大学课程设计论文 第 22 页 共 20 页22/*显示函数*/void display(
35、void) /显示函数开始 while(PB0=1) /若按下 PB0 P2=0xfe; /P2.0 输出 0,P2 端其余输出 1P0=disp0; /点亮最高位数码管delay_1ms(4); /延迟 4msP2=0xfd; /P2.1 输出 0,P2 端其余输出 1P0=disp1; /点亮次高位delay_1ms(4); /延迟 4msP2=0xfb; /P2.2 输出 0,P2 端其余输出 1P0=disp2; /点亮次低位delay_1ms(4); /延迟 4msP2=0xf7; /P2.3 输出 0,P2 端其余输出 1P0=disp3; /点亮最低位delay_1ms(4); /延迟 4ms /结束 while(按下 PB0) /显示函数结束/*延迟函数,延迟约 x*1ms*/void delay_1ms(int x) /延迟函数开始 int i,j; /声明整数变量for(i=0;ix;i+) /计数 x 次,延迟 x*1msfor(j=0;j120;j+); /计数 120 次,延迟 1ms