基于51单片机的光电编码器测速
基于51单片机的速度检测系统解析
基于51单片机的速度检测系统摘要在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。
模拟式采用测速发电机为检测元件,得到的信号是模拟量。
数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。
随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。
本文便是运用单片机控制的智能化测量自行车转速。
自行车在运行过程中,需要对其进行监控,转速是一个必不可少的一个参数。
本系统就是对自行车转速进行测量,并显示转速,了解自行车运行的基本状况。
本设计主要用AT89C51作为控制核心,由霍尔传感器、LED数码显像管、及24C02构成。
详细介绍了单片机的测量转速系统及串行通讯。
充分发挥了单片机的性能。
本文重点是测量速度并显示在4位LED数码管上。
其优点硬件是电路简单,软件功能完善,测量速度快、精度高、控制系统可靠,性价比较高等特点。
关键字:MSC-51(单片机);计算机;传感器自动化测量Speed test brief introductionAbstract:In the bike practice, we will meet each kind to need frequently to survey the rotational speed the situation, the survey rotational speed method divides into the simulation type and the digital two kinds. The simulation type uses measured that the fast generator is the detecting element, obtains the signal simulates the the de graduated from the design of the issue is control of the intelligent use of speed measuring instrument.The aticle is the motor speed measurement, and basic situation. This topic describes the design steps and method of humidity measurement system which based on chipdesign a system which can measure temperature and humidity, show the measurement results and warming.This system uses AT89C51 as the main chip, use a new integrated digital temperature and humidity sensor DHT11 gather the temperature and humidity data.It uses C language to design system programming on development platform. The main design is divided .Key words:single chip; intelligence; computer; transimiter; test.目录第1章引言 (1)第2章系统介绍 (2)2.1 系统结构 (2)2.2 系统要求 (3)第3章硬件电路设计 (4)3.1 单片机模块 (4)3.2 霍尔传感器模块 (9)3.3 显示模块 (10)3.4 24C02存储器简介 (11)第4章软件设计 (14)4.1编译语言的选择 (14)4.2程序模块 (14)4.3集成开发环境Keil介绍 (17)第5章调试 (22)5.1系统硬件调试 (22)5.2 系统软件调试 (22)5.3 系统整体调试 (23)结论 (24)致谢 (25)参考文献 (26)附件1原理图 (27)附件2 PCB板 (28)附件3 实物 (29)附件4 程序 (29)第1章引言自行车被发明及使用到现在已有两百多年的历史,在这两百年间人类在不断的尝试与研发过程中,自行车发展的目的也从最早的代步工具转换成休闲娱乐的用途,随着生活水平的提高,人们希望自行车的功能更强大,比如说对行车信息的掌握,而里程计/速度计正满足了这个需求。
基于51单片机的光电编码器测速
摘要光电编码器是高精度位置控制系统常用的一种位移检测传感器。
在位置控制系统中,由于电机既可能正转,也可能反转,所以要对与其相连的编码器输出的脉冲进行计数,要求相应的计数器既能实现加计数,又能实现减计数,即进行可逆计数。
其计数的方法有多种,包括纯粹的软件计数和硬件计数。
文中分别对这两种常用的计数方法进行了分析,对其优缺点进行了对比,最后提出了一种新的计数方法,利用80C51单片机内部的计数器实现对光电编码器输出脉冲的加减可逆计数,既节省了硬件资源,又能得到较高的计数频率。
本设计就是由单片机STC89C52RC芯片,光电编码器和1602液晶为核心,辅以必要的电路,构成了一个基于51单片机的光电编码器测速器。
该系统有两个控制按键,分别用于控制每秒的转速和每分钟的转速,并将速度用1602液晶显示出来。
该测速器测速精准,具有实时检测的功能,操作简单。
关键词:光电编码器,51单片机,C语言,1602液晶目录一、设计任务与要求 (3)1.1 设计任务 (3)1.2 设计要求 (3)二、方案总体设计 (4)2.1 方案一 (4)2.2 方案二 (4)2.3 系统采用方案 (4)三、硬件设计 (6)3.1 单片机最小系统 (6)3.2 液晶显示模块 (6)3.3 系统电源 (7)3.4光电编码器电路 (7)3.5 整体电路 (8)四、软件设计 (9)4.1 keil软件介绍 (9)4.2 系统程序流程 (9)五、仿真与实现 (11)5.1 proteus软件介绍 (11)5.2 仿真过程 (11)5.3 实物制作与调试 (12)5.4 使用说明 (13)六、总结 (14)6.1 设计总结 (14)6.2 经验总结 (14)七、参考文献 (15)一、设计任务与要求1.1 设计任务1).对更多小器件的了解2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用3).掌握仿真软件的运用和原理图的绘制4).加深焊接的技巧,提高焊接的能力5).熟悉调试方法和技巧,提高解决实际问题的能力6).熟悉设计报告的编写过程1.2 设计要求1).两个按键控制显示每分钟和每秒钟的功能2).74LS74辅助光电编码器测转向3).光电编码器输出脉冲计数4).1602液晶显示转速二、方案总体设计设计一个基于51单片机的光电编码器测测速。
基于51单片机的高速公路测速系统和车牌识别分析
基于51单片机的高速公路测速系统和车牌识别分析添加时间: 2010-3-20 11:19:19 文章来源: 文章作者: 点击数:17688摘要鉴于高速公路限速牌不能很好地对司机起到警示作用的作用,本文设计了一套基于MCS-51单片机,包含光电探测装置和显示装置的电子屏幕。
它不仅能方便设置并显示该路段的限制速度,以完成普通电子限速牌的限速提示功能,同时能将测得的车速实时显示,并自动判断是否超速。
另外它低廉的造价和经计算证明较高的精度大大提高了它的可用性。
车辆牌照自动识别系统是近几年发展起来的基于图像和字符识别术的智能化交通管理系统,是目前国内外模式识别应用研究领域的一个热点。
本文对系统中区域提取、图像预处理、字符分割和字符识别等环节涉及的算法、设计做了一个比较详细的论述。
本文在图像预处理中重点介绍一种在图像获取阶段有目的定位关注的物体,讨论了灰度图像二值化的多种算法,利用它在原始图像形成的标识区域特性,在约束条件下,按照识别牌几何特征提出了一种特殊的二值化处理方法。
实验证明该图像识别系统具有较高的可靠性与稳定性,减小了进一步车牌识别中计算量大的问题,从而提高了车牌识别的准确性和快速性。
讨论了灰度图像二值化的多种算法基于数学形态学的图像去除噪声的方法。
基于数学形态学的图像去除噪声是通过对图像的开、闭操作有选择的去噪声。
可以去除直径小于字符笔划半径的孤立噪声点。
还详细地介绍了基于字符形态划分的字符识别方法。
基于字符形态划分的字符识别方法是在对数字字符结构进行充分分析的基础上,对基元检测,归纳字符形态特征,得到的快速字符识别方法。
关键词:光电检测;车速测量;单片机;电子限速牌;车辆牌照;图像处理;基元检测;字符识别基于51单片机的高速公路测速系统和车牌识别分析AbstractIn view of the highway speed limit unlicensed drivers should not very well serve as a warning to the role, this article has designed a single-chip based on the MCS-51, including the photoelectric detection devices and display devices of the electronic screen. It not only can easily set up and display the road speed limit in order to achieve common electronic speed limit signs prompt function, can be simultaneously measured real-time display of speed and automatically determine whether the speeding. In addition it is low cost and the higher the accuracy of calculations greatly enhance its usability. Vehicle License Plate Recognition system is developed in recent years based on the image and character recognition operation of the Intelligent Traffic Management System, the application of pattern recognition at home and abroad are currently a hot area ofresearch. In this paper, the system of regional extraction, image preprocessing, character segmentation and character recognition algorithm, such as aspect involved in the design to do a more detailed exposition. In this paper image pre-processing in the introduction of a focus at image acquisition phase has the purpose of positioning objects of concern, discussed the gray image binarization of a variety of algorithms, use it in the original logo image formation of regional characteristics, in binding conditions, identification card in accordance with the geometric characteristics of a particular binarization approach. Experiments prove that the image recognition system has high reliability and stability, further reduce the vehicle license plate recognition in the calculation of a large quantity of questions, thereby increasing the accuracy of license plate recognition and speed.Discussed the gray image binarization algorithm of multiple images based on mathematical morphology method to remove noise. Images based on mathematical morphology to remove the image noise is through the open and close operation has chosen to noise. Can remove the character strokes of a diameter less than the radius of the isolated noise points. Also detail the division of character-based form of character recognition methods. Morphological character-based division of Character Recognition on the figure are at a full analysis of character structure based on element detection, morphological characteristics summarized characters get Character Recognition Express.Key words:Photoelectric detection; speed measurement; Singlechip; electron speed licensing; vehicle license; image processing; motif detection; Character Recognition目录摘要................................................................................. (I)Abstract........................................................................... . (II)第1章绪论................................................................................. . (2)1.1 车牌字符识别研究课题的背景 (2)1.2 车牌字符识别研究的意义 (2)1.3 车牌字符识别研究的应用现状及发展 (3)1.4 本文主要内容.................................................................................第2章车牌图像预处理 (5)2.1 数字图像处理的相关介绍 (5)2.1.1 数字图像处理概念 (5)2.1.2 图像的数字化表示 (5)2.1.3 本文中图像处理所涉及的相关领域 (6)2.2 图像二值化................................................................................. . (6)2.2.1 彩色图像和灰度图像 (6)2.2.2 基于灰度的图像二值化 (7)2.2.3 图像二值化结果演示 (9)2.3 用数学形态学的方法去除噪声 (10)2.3.1 数学形态学的几种基本运算 (10)2.3.2 经开闭运算前后的图像对比显示 (16)2.4 单个字符图像的分割 (17)2.4.1 我国车牌的特点 (17)2.4.2 对所要识别的车牌的分析 (17)2.4.3 基于列扫描黑色像素积累的字符分割 (18)2.4.4 已经分割后的单个字符演示 (18)2.5 本章小结................................................................................. . (19)第3章基于字符形态划分的字符识别 (19)3.1 字符识别概述................................................................................3.1.1 目前字符识别的一些常规方法 (20)3.2 字符轮廓分析 (21)3.2.1 字符轮廓的划分 (21)3.2.2 字符四方向轮廓公式化表示 (21)3.3 字符轮廓的变化特征 (22)3.4 字符形态划分的结构基元 (22)3.4.1 字符结构基元划分原理 (22)3.4.2 字符形态划分方法的特点 (23)3.5 利用字符结构基元划分的字符识别原理 (24)3.5.1 基元的检测 (24)3.5.2 轮廓的统计特征 (25)3.5.3 用字符形态识别数字字符 (25)3.5.3.1 数字字符的特点 (25)3.5.3.2 数字字符的识别方法 (26)3.5.4 字符识别的matlab算法流程 (27)3.6 本课题整体流程 (29)3.6.1 对本课题流程的总体说明 (29)3.6.2 用MATLAB完成本课题的流程图 (30)3.7 基于字符形态划分的字符识别方法的特点和不足 (30)3.8 本章小节................................................................................. (31)结论................................................................................. . (32)参考文献................................................................................. (33)第1章绪论1.1 车牌字符识别研究课题的背景随着21世纪经济全球化和信息时代的到来,作为信息来源的自动检测、图像识别技术越来越受到人们的重视。
基于AT89C51的LCD数字测速仪的设计测量汽车速度
目录1、设计背景 (1)2、欲实现功能 (3)3、系统硬件设计 (4)3.1系统框图及测速原理 (4)3.2单片机AT89C52 (5)3.3 OPTC光电断续器 (6)3.4 液晶显示LM016L (7)3.5 三端稳压集成器LM7805 (8)3.6电源 (8)4 、软件设计 (9)4.1 程序流程图 (9)4.2 C语言编程 (9)5 、系统仿真及调试 (10)6 、元器件清单 (11)7 、结语 (11)8 、附录 (13)附录1 实验仿真电路 (13)附录2 源程序 (14)9 、参考文献 (23)10 、致谢 (24)内容摘要随着居民生活水平的不断提高,家用轿车开始普及为人们娱乐、休闲代步的工具。
汽车测速仪能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程、时间等物理量。
以便做出判断和采取必要的措施,以防止交通事故的发生。
测速仪作为汽车最基本、最重要的部件之一,在汽车的运行过程中起着至关重要的作用。
一个性能良好、测量精确、稳定的测速系统,从某种意义上说,直接影响着汽车乃至司乘人员的生命安全。
本论文主要阐述一种基于光电传感器的汽车测速仪的设计。
以 AT89C52 单片机为核心,OPTC 光断续器测转数,实现对汽车速度、时间的测量统计,并能将汽车的里程数及速度信息送单片机,并通过单片机输出驱动信号,用LCD实时显示。
文章详细介绍了汽车测速仪的硬件电路和软件设计。
硬件部分利用光电传感器组件将汽车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。
软件部分用C语言进行编程,采用模块化设计思想。
该系统硬件电路简单,子程序具有通用性,完全符合设计要求。
关键词:速度;时间;光断续器;单片机;LCD显示The car speedometer design based on the AT89C51ABSTRACTWith the developing of people’s life, the car is becoming the universal tool of transportation and substitute for walking and becoming the first choice of entertainment and exercising. The car speedometer can fulfill the basic need of people’s life, so that they can learn the speed、the mileage 、the time of the car. For that people could take some necessary measures in case of any accident happened by a dangerous speed. As one of the most basic and important part of a ca r, speedometer is taking an important role during the car’s running. To some extent, an accurate and stable speedometer has a effect on the driver’s life directly.In this paper, the car speedometer design based on the photoelectric sensor element is elaborated. By AT89C52 as kernel, using photoelectric sensor element to measure revolution, the measure and statistic are achieved. The car speed can be displayed on LCD. In this article, the hardware circuit and software design of car speedometer instrument are introduced in detail. About the hardware, the pulse number is transmitted of one cycle of the car into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. About the software, in C language; the program is designed in the mode of modules. The system has simple hardware, common sub-program, and meets the demand of design.KEY WORDS:Mileage / speed; Time;temperature;photoelectric sensor element; Single chip microcomputer; LCD基于AT89C51的LCD数字测速仪1设计背景随着人们生活水平的逐渐提高,人们对于生活质量的要求也日益增加,尤其是对出行的要求。
基于51单片机的自行车测速系统设计
摘要随着居民生活水平的不断提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。
自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。
自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。
而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。
因为教练要根据一段时间内运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态。
因此爱好自行车运动的人十分学要一款能测速的装置,以知道自己的运动情况。
并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。
关键词:单片机、LED显示、里程/速度、霍尔元件第一章系统总方案分析与设计1.1 课题主要任务及内容本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED数码管实时显示里程和速度的自行车的速度里程表。
本文主要介绍了自行车的速度里程表的设计思想、电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。
本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后对本次设计进行了系统的总结。
具体的硬件电路包括AT89C52单片机、霍尔元件以及LED显示电路等。
软件设计包括:中断子程序设计,里程计算子程序设计,显示子程序设计。
软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。
1.2 任务分析与实现本设计的任务是:以通用AT89C52单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。
里程及速度的测量,是经过AT89C52的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过LED显示器显示出来。
使用单片机制作的测速表
使用单片机制作的测速表测速是工农业生产中经常遇到的问题,学会使用单片机技术设计测速仪表具有很重要的意义。
要测速,首先要解决是采样的问题。
在使用模拟技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。
使用单片机进行测速,可以使用简单的脉冲计数法。
只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,即可获得转速的信息。
一、脉冲信号的获得可以有多种方式来获得脉冲信号,这些方法有各自的应用场合。
下面逐一进行分析。
1.霍尔传感器霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。
如图1所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。
图1 CS3020外形图使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。
如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。
在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。
这种传感器不怕灰尘、油污,在工业现场应用广泛。
2.光电传感器光电传感器是应用非常广泛的一种器件,有各种各样的形式,如透射式、反射式等,基本的原理就是当发射管光照射到接收管时,接收管导通,反之关断。
以透射式为例,如图2所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。
为此,可以制作一个遮光叶片如图3所示,安装在转轴上,当扇叶经过时,产生脉冲信号。
当叶片数较多时,旋转一周可以获得多个脉冲信号。
图2光电传感器的原理图图3遮光叶片3.光电编码器光电编码器的工作原理与光电传感器一样,不过它已将光电传感器、电子电路、码盘等做成一个整体,只要用连轴器将光电传感器的轴与转轴相连,就能获得多种输出信号。
51单片机PID调增量式光电编码器测速
编码器输出的A向脉冲接到单片机的外部中断INTO, B向脉冲接到I/O端口P1.0。
当系统工作时,首先要把INTO设置成下降沿触发,并开相应中断。
当有有效脉冲触发中断时,进行中断处理程序,判别B脉冲是高电平还是低电平,若是高电平则编码器正转,加1计数;若是低电平则编码器反转,减1计数。
基于51单片机的直流电机PID闭环调速系统原理详解与程序(2013-08-04 01:18:15)转载▼标签:分类:单片机51单片机直流电机pidpcf8591基于51单片机的直流电机PID闭环调速系统1. 电机转速反馈:原理:利用光电编码器作为转速的反馈元件,设电机转一周光电编码器发送N个PWM波形,利用测周法测量电机转速。
具体实现:将定时器0设置在计数模式,用来统计一定的时间T内接受到的脉冲个数M个,而定时器0置在计时模式,用来计时T时间。
则如果T时间接受到M 个PWM波形,而电机转一圈发出N个PWM波形,则根据测周法原理,电机的实际的转速为:real_speed=M/ ( N*T),单位转/秒。
若将定时器1置在计数模式,则PWM波形应该由P3A3脚输入。
代码实现://定时器0初始化,用来定时10msvoid Init_Timer0(void){TMOD |= 0x01; // 使用模式 1,16位定时器 ,且工作在计时模式TH0=(65536-10000)/256; // 定时 10msTL0=(65536-10000)%6;//计数器1初始化,用来统计定时器1计时250ms 内PWM 波形个数 voidInit_Timer1(void){ TMOD |= 0x50; // 使用计数模式 1, 16位计数器模式TH1=0x00; // 给定初值,由 0往上计数TL1=0x00;EA=1; // 总中断打开ET1=1; // 定时器中断打开TR1=1; }// 定时器开关打开// 定时器0的中断服务子函数, 主要完成脉冲个数的读取, 实际转速的计算和 控制以及控制结// 果输出等工作void Timer0_isr(void) interrupt 1 { unsigned char count;TH0=(65536-10000)/256; // 重新赋值 10msTL0=(65536-10000)%6;count++;if (count==25)// 如果达到250ms,则计算一次转速并进行一次控制运算{ EA=1; // ET0=1; // TR0=1; // }总中断打开定时器中断打开定时器开关打开PIDcount=0;// 清零以便于定时下一个250msTR1=0;// 关闭定时器1,统计脉冲个数real_speed=(256*TH1+TL1)*4/N;//250ms 内脉冲个数并由此计算转速TH1=0x00; // 计数器1清零,重新开始计数TL1=0x00;TR1=1;OUT=contr_PID();// 进入PID 控制 , PID 控制子函数代码在后面给出write_add(0x40,OUT);〃进行DA转换,将数字量转换为模拟量,后面会介绍到}}2. PID 控制:PID 的基本原理在这里不作具体讲解,这里主要给出PID 算法的实现,通过调节结构体中比例常数( Proportion )、积分常数( Integral )、微分常数 ( Derivative )使得转速控制达到想要的精度。
基于MCS-51单片机的车辆测速仪的设计与制作
毕业设计说明书(论文)作者: 学号:系:专业:题目: 基于MCS-51单片机的车辆测速仪的设计与制作指导者:(姓名) (专业技术职务)评阅者:(姓名) (专业技术职务)年月毕业设计(论文)评语学生姓名:班级、学号题目:基于MCS-51单片机的车辆测速仪的设计与制作综合成绩:毕业设计(论文)评语毕业设计说明书(论文)中文摘要毕业设计说明书(论文)外文摘要目次1 绪论 (1)1.1 课题的背景与意义 (1)1.2 单片机发展概况 (2)1.3 主要研究内容 (3)2 雷达测速仪原理 (4)2.1 车辆测速技术简介 (4)2.2 多普勒效应 (5)2.3 多普勒信号的提取 (6)3 系统硬件设计思想以及原理框图 (8)3.1 方案论证 (8)3.2 系统总体设计框图 (8)3.3 单片机AT89C52介绍 (8)3.4 复位电路 (11)3.5 晶振电路 (13)3.6 放大整形电路 (14)3.7 数据显示 (15)4 系统软件设计 (21)4.1 测频方法的选择 (21)4.2 主程序流程图 (23)4.3 中断服务子程序流程图 (25)4.4 1602液晶初始化流程图 (27)5 系统仿真及调试 (28)5.1 Proteus (28)5.2 Keil C51 (29)5.3 仿真与调试的步骤 (29)5.4 功能的检测 (30)5.5 仿真结果 (31)结论 (34)致谢 (35)参考文献 (35)附录 ................................................... 错误!未定义书签。
1 绪论1.1 课题的背景与意义随着雷达技术的发展,雷达的任务不仅是测量目标的距离、方位和仰角,而且还包括测量目标的速度,以及从回波中获取更多有关目标的信息。
飞机、导弹、人造卫星、各种舰艇、车辆、兵器、炮弹以及建筑物、山川、云雨等等,都可能作为雷达的探测目标,这要根据雷达用途而定[1]。
基于单片机的光电编码器位置检测系统设计
基于单片机的光电编码器位置检测系统设计代杰;樊瑜瑾;张学丽;孙宏德【期刊名称】《计算机测量与控制》【年(卷),期】2011(19)1【摘要】In order to real time monitoring of the running state of mechanical equipment, a photoelectric encoder position measuring system based on single-chip is designed. To achive highest counting resolution and faster counting speed, the system use AVR single-chip to accomplish the phase detection and quadruple frequency in the front-end circuit, use the 16-bit counter T2 of MCS - 52 single-chip to count. Meanwhile, the position data is being sent to the upper PC through the serial port of MCS-52 single-chip. Use VB6.0 software to devise the monitoring interface that can dynamically display the position data of encoder. The design is very simple, and has high measuring accuracy, fast speed, which achieve150KHz, and is suitable for the situation of position and angle measurment.%为了实现对机床设备运行状态的实时监测,设计了一种基于单片机的光电编码器位置检测系统;系统采用高性能的AVR单片机对编码器的两相位置信号进行鉴相及四倍频处理,然后通过MCS-52单片机的T2计数器进行硬件计数,同时使用MCS-52单片机的串行端口将位置数据传送至上位PC机中;采用VB6.0软件设计上位机的监控界面,实时动态显示各种编码器的位置数据;试运行结果表明,该设计不仪电路简单,且计数精度高、响应速度快,达到150kHz,适用于各种位置及角度检测场合.【总页数】3页(P17-19)【作者】代杰;樊瑜瑾;张学丽;孙宏德【作者单位】昆明理工大学,机电工程学院,云南,昆明,650093;昆明理工大学,机电工程学院,云南,昆明,650093;云南科技信息职业学院,云南,昆明,650224;昆明昆开专用数控设备有限责任公司,云南,昆明,650106【正文语种】中文【中图分类】TP274【相关文献】1.位置检测装置--光电编码器 [J], 付旭东;付瀛;徐冰2.基于AVR单片机的光电编码器定长系统设计 [J], 陈立兵;樊瑜瑾;代杰;郭波江;孙宏德3.一种光电编码器位置检测系统研究与应用 [J], 李红果4.基于单片机的引俄雷达光电编码器试验检测平台设计 [J], 柳颖5.基于SOC单片机的高集成度光电编码器电路设计 [J], 黎梦泽因版权原因,仅展示原文概要,查看原文内容请购买。
基于C51单片机直流电机测速仪设计
基于C51单⽚机直流电机测速仪设计基于C51单⽚机直流电机测速仪设计摘要:电机的转速是各类电机运⾏过程中的⼀个重要监测量,测速装置在电机调速系统中占有⾮常重要的地位,特别是数字式测速仪在⼯业电机测速⽅⾯有独到的优势。
本⽂介绍了⼀种基于C51单⽚机的光电传感器转速测量系统的设计。
系统采⽤对射式光电传感器产⽣与齿轮相对应的脉冲信号,使⽤AT89C51单⽚机采样脉冲信号并计算每分钟内脉冲信号的数⽬,即电机对应的转速值,最终系统通过LCD实时显⽰电机的转速值。
经过软硬件系统的搭建,分别通过Protues软件系统仿真实验和实际电路搭建检查实验。
仿真实验表明本系统满⾜设计要求,并且结构简单、实⽤。
整个直流电机测速系统在降低测速仪成本,提⾼测速稳定性及可靠性等⽅⾯有⼀定的应⽤价值。
关键词:转速测量;光电传感器;单⽚机Based On C51 SCM Single DC Motor Speedometer DesignABSTRACT:Motor speed is all kinds of motor operation is an important process to monitor the amount of speed measuring device in the motor control system occupies a very important position, Especially the digital speedometer in the industrial motor speed has unique advantage. This paper describes a photoelectric sensor 51 SCM-based speed measurement system design. System uses a beam photoelectric sensor generates a pulse signal corresponding to the gear, the use of a sampling pulse signal AT89C51 SCM and calculating the pulse per minute, the number of signals that the speed of the motor corresponding to the value of the final system time through the LCD display the motor speed value.After a hardware and software system structures, respectively, through Protues software system to build the actual circuit simulation and experimental examination. Simulation results show that the system meets the design requirements, and the structure is simple and practical. DC Motor Speed entire system in reducing speedometer costs, improve reliability, speed stability and a certain application value.Keywords: Speed measurement; Photoelectric; Single chip micyoco⽬录1 绪论 (1)1.1 数字式转速测量系统的发展背景 (1)1.2 转速测量在国民经济中的应⽤ (1)1.3主要研究内容 (2)1.4 设计的⽬的和意义 (2)2 转速测量系统的原理 (4)2.1 转速测量原理 (4)2.2 转速测量计算⽅法 (5)3转速测量系统设计⽅案 (7)3.1 直流电机转速测量⽅法 (7)3.2 设计任务及⽅案 (8)4 直流电机测速系统设计 (9)4.1 单⽚机AT89C51介绍 (9)4.2 转速信号采集 (14)4.2 转速信号处理电路设计 (16)4.4 最⼩系统的设计 (17)4.4.1复位电路 (17)4.4.2 晶振电路 (20)4.5 显⽰部分设计 (20)5 直流测速系统仿真 (24)5.1 直流测速系统仿真 (24)5.1.1单⽚机最⼩系统仿真 (25)5.1.2 数码管显⽰仿真 (25)5.2 主程序流程设计 (26)5.2.1 主程序流程设计 (26)5.2.2 定时器的初始化 (27)5.3 实际电路实验 (28)参考⽂献 (30)致谢 (31)1 绪论1.1 数字式转速测量系统的发展背景在现代⼯业⾃动化⾼度发展的时期,⼏乎所有的⼯业设备都离不开旋转设备,形形⾊⾊的电机在不同领域发挥着很重要的作⽤。
一种基于光电编码器的高精度测速和测加速度方法
一种基于光电编码器的高精度测速和测加速度方法A New Way of Measuring Velocity and Acceleration Based on Photoelectric Encoder姜庆明杨旭甘永梅王晓钰王兆安jiang qing ming(西安交通大学电气工程学院,西安710049)【摘要】在比较常用的基于光电编码器的测速、测加速度方法的优缺点的基础上,本文提出了一种新的基于光电编码器的高精度测速和测加速度的方法,论述了软硬件的实现方法。
并且针对编码器脉冲不均匀性对测速、测加速度精度的造成的影响,提出了一种软件处理的方法,很好的提高了精度。
关键词:光电编码器测速测加速度脉宽误差【Abstract】By analyzing and comparing the existing ways of measuring velocity and acceleration based on photoelectric encoder, the paper proposed a new way of measuring the velocity and acceleration. How to design and realize the hardware and software is introduced. And how to improve the measuring accuracy influenced by the width error of the pulse is also introduced.【Key words】photoelectric encoder、measure velocity、measure acceleration、width error of pulse1.引言光电脉冲编码器是一种数字式角度传感器, 它能将角位移量转换为与之对应的电脉冲进行输出,主要用于机械转角位置和旋转速度的检测与控制。
基于51单片机的自行车测速系统设计【毕业作品】
任务书设计题目:基于51单片机的自行车测速系统设计1.设计的主要任务及目标设计自行车测速系统,实现对速度、里程等的测量及显示,并具备超速报警功能;熟练掌握51单片机的应用;完成系统整体设计,硬件设计;完成程序编制及调试。
2.设计的基本要求和内容(1) 查阅资料,完成开题报告;(2) 熟悉51单片机开发工具,了解自行车测速系统相关知识;(3) 系统整体方案设计;(4) 硬件设计,完成系统硬件选择及相关电路绘制工作;(5) 系统软件设计,完成程序的编制及调试;(6)毕业设计说明书;3.主要参考文献[1]李朝青. 单片机原理及接口技术. 北京: 北京航空航天大学出版社, 1994[2]张洪润, 张亚凡. 传感器技术与应用教程. 北京: 清华大学出版社, 2005[3]陈伟.基于单片机的测速仪[J].电子制作.2008(10)4.进度安排基于51单片机的自行车测速系统设计摘要:随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。
因此,为了满足人们对自行车更强大功能的要求,给人们带来更多的方便,设计一种体积小、操作简单的便携式自行车里程速度器,它能自动地显示当前自行车行走的距离及运行的速度。
本论文主要阐述一种基于霍尔元件的自行车里程速度器的设计。
以 AT89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,采用 24C02 实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用LED实时显示。
关键词:里程/速度,霍尔元件,AT89C52单片机,LED显示Bicycle speed system design based on 51 single chip microcomputerAbstract: With the continuous improvement of living standards, the bicycle is not only the common transport, transport tool, but become entertainment, leisure, exercise of choice. Therefore, in order to satisfy the people to the bicycle more powerful, brings more convenience to people, the portable bicycle mileage speed sensor design of a small volume, simple operation, it can automatically display the distance and the bicycle running speed. This paper mainly expounds a kind of design speed bicycle mileage is based on Holzer element. AT89C52 microcontroller as the core, measuring speed A44E Holzer sensor, measuring the speed of the bicycle mileage / statistics, using 24C02 to realize saving mileage information when the power is off, and the bicycle mileage and speed with the LED real time display.Keywords: mileage / speed, Holzer element, AT89C52 microcontroller, LED目录1前言 (1)1.1课题产生的背景 (1)2总体方案设计 (3)2.1任务分析与实现 (3)2.2 硬件方案设计 (4)2.2.1里程/速度测量传感器的设计 (4)2.2.2方案的确定 (5)2.3软件方案设计 (6)3系统硬件设计 (7)3.1概述 (7)3.2传感器及其测量系统 (7)3.2.1霍尔传感器的测量原理 (8)3.2.2集成开关型霍尔传感器 (8)3.3单片机的选型 (10)3.3.1单片机概述 (10)3.3.2单片机中断系统 (10)3.3.3单片机定时/计数功能 (11)3.4其他器件的选型 (12)3.4.1存储器 (12)3.4.2 74LS74芯片 (13)3.4.3 74LS244芯片的介绍 (14)3.5电路设计 (14)3.5.1时钟电路设计 (14)3.5.2 复位电路的设计 (15)3.5.3 显示电路的设计 (16)3.5.4 报警电路的设计 (18)4系统软件设计 (19)4.1总体程序设计 (19)4.2中断子程序的设计 (21)4.3数据处理子程序的设计 (22)4.3.1里程计算子程序 (22)4.3.2速度计算子程序 (22)4.4显示子程序设计 (23)5系统调试与分析 (25)5.1 系统调试 (25)5.1.1 调试系统简介 (25)5.1.2 系统仿真 (25)5.2 调试故障及原因分析 (26)总结 (28)参考文献 (29)致谢 (31)附录1 电路原理图 (32)附录2 程序清单 (33)1前言单片机自20世纪70年代问世以来,作为微计算机一个很重要的分支,应用广泛,发展迅速,已对人类社会产生了巨大的影响。
基于51单片机的红外反射式光电传感器测速机的简易方案设计书
(1)单片机外部连线图:如下图(3)所示
图(3)单片机连线图
在上接线图中,可在数码管与单片机之间接上一个分压电阻,起到保护作用。单片机型号选89C51或89C52都行。在实验板上把图(1)中的2管脚(逻辑电平输出管脚)和图(2)中的12管脚(中断输入管脚)连接,即可构成整个测速系统。
但整体来说,此测速系统还是具有可行性的。当我们需要知道某电机的转速而又缺少测速装置时,就可以用此套系统来进行测速。它的简单性,方便性和快捷性也是某些测速装置不可比拟的。至于其缺点,由于设计者水平目前有限,暂不能完美解决,只待以后对此方面有较多理解后在解决,同时也希望对此精通的师生给予指点,从而进行改进测速方法,提高整个系统的测速性能。
(c)
图(1)LM339工作原理图及管脚图
(2)整体连线图:如下图(2)所示:
图(2)比较型光电传感器整体电路图
在上图中,LED灯相当于一个红外线发射管,JP1是红外线接收管,接收光强在上面转换成电流,在R上成为电压信号。当光线照射到白色面上时,光线反射强烈,光线照射到黑色面上时,光线反射较弱。因此当光照在不同颜色面上时,阻值会发生明显的变化。将阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机。
void display(uint qian,uint bai,uint shi,uint ge)。
void delay (uint z)。
void init()。
void main()
{
EA=1。//开总中断
EX0=1。//开外部中断0
init()。//初始化子程序
while(1)
{
display(qian,bai,shi,ge)。
if(aa==20)
基于51单片机的循线测距测速及1602显示
#include<regx52.h> //器件配置文件#include <intrins.h>#define TX P1_2 //Trig#define RX P1_3 //Echo#define LCM_RS P2_5 //概念LCD引脚#define LCM_RW P2_6#define LCM_E P2_7#define LCM_Data P0#define Busy 0x80 //用于检测LCM状态字中的Busy标识#define uint unsigned int#define uchar unsigned charsbit P10=P2^1;//操纵左电机前进sbit P11=P2^2;//操纵左电机后退sbit P12=P2^3;//操纵右电机前进sbit P13=P2^4;//操纵右电机后退sbit P14=P1^4;//寻迹左sbit P15=P1^5;//寻迹中sbit P16=P1^6;//寻迹右sbit P17=P1^7;//避障void LCMInit(void);void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(void);void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,BuysC);void fun2(void);void fun3(void);void fun4(void);void fun5(void);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code mcustudio[] ={"…………. "};unsigned char code email[] = {"………… "};unsigned char code Cls[] = {"……………"};unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'};static unsigned char DisNum = 0; //显示用指针unsigned int time=0;unsigned long S=0;bit flag =0;unsigned char disbuff[4] ={ 0,0,0,0,};bit Flg_5ms=0;unsigned char Counter_100ms=0;unsigned char buf[5]={0,0,0,0,0};unsigned int Speed;unsigned int speed_frequency; // frequencyunsigned int speed_catch1; //catch 1unsigned int speed_catch2; //catch 2unsigned char speed_t2_ovf_count_temp; //T1 overflow counter temp register unsigned char speed_t2_ovf_count; //T1 overflow counter register unsigned char speed_catch_p; //catch pointer//写数据void WriteDataLCM(unsigned char WDLCM){ReadStatusLCM(); //检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //假设晶振速度太高能够在这后加小的延时LCM_E = 0; //延时LCM_E = 1;}//写指令void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCM(); //依照需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}//读数据unsigned char ReadDataLCM(void){LCM_RS = 1;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);}//读状态unsigned char ReadStatusLCM(void){LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); //检测忙信号return(LCM_Data);}void LCMInit(void) //LCM初始化{LCM_Data = 0;WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); //关闭显示WriteCommandLCM(0x01,1); //显示清屏WriteCommandLCM(0x06,1); // 显示光标移动设置WriteCommandLCM(0x0F,1); // 显示开及光标设置}//按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) {Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; //算出指令码WriteCommandLCM(X, 1); //发命令字WriteDataLCM(DData); //发数据}//按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) {unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]>0x19) //假设抵达字串尾那么退出{if (X <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符ListLength++;X++;}}}//5ms延时void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);}//400ms延时void Delay400Ms(void){unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);};}/********************************************************/ void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100; //算出来是CMif((S>=700)||flag==1) //超出测量范围显示"-"{flag=0;DisplayOneChar(0, 1, ASCII[11]);DisplayOneChar(1, 1, ASCII[10]); //显示点DisplayOneChar(2, 1, ASCII[11]);DisplayOneChar(3, 1, ASCII[11]);DisplayOneChar(4, 1, ASCII[12]); //显示M}else{disbuff[0]=S%1000/100;disbuff[1]=S%1000%100/10;disbuff[2]=S%1000%10 %10;DisplayOneChar(0, 1, ASCII[disbuff[0]]);DisplayOneChar(1, 1, ASCII[10]); //显示点DisplayOneChar(2, 1, ASCII[disbuff[1]]);DisplayOneChar(3, 1, ASCII[disbuff[2]]);DisplayOneChar(4, 1, ASCII[12]); //显示M}}/********************************************************/void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围{flag=1; //中断溢出标志}/********************************************************/ void StartModule() //启动模块{TX=1; //启动一次模块_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}//--------------------------------------------void fun2(void){ P10=1;P11=0;P12=1;P13=0;} //前进void fun3(void){ P10=0;P11=0;P12=1;P13=0;}//左转void fun4(void){ P10=1;P11=0;P12=0;P13=0;} //右转void fun5(void){ P10=0;P11=0;P12=0;P13=0;}//停止/********************************************************/void timer1() interrupt 3 //T0中断用来计数器溢出,超过测距范围{Flg_5ms=1;TH1=0xee;TL1=0;TF1=0;if(P14==1&&P15==0&&P16==1) fun2();if((P14==0&&P15==0&&P16==1)||(P14==0&&P15==1&&P16==1)) fun3();if((P14==1&&P15==0&&P16==0)||(P14==1&&P15==1&&P16==0)) fun4();if((P14==1&&P15==1&&P16==1)||(P14==0&&P15==0&&P16==0)||(P17==0)) fun5();}//-------------------------------------------void Timer2() interrupt 5 //按时器2捕捉中断,溢出中断{if(TF2){if(speed_t2_ovf_count_temp < 2) speed_t2_ovf_count_temp++;else{speed_frequency = 0; // frequencyspeed_catch1 = 0; //catch 1speed_catch2 = 0; //catch 2speed_catch_p = 0; //catch pointerspeed_t2_ovf_count_temp = 0; //T2 overflow counter temp registerspeed_t2_ovf_count = 0; //T2 overflow counter registerSpeed=0;}TF2=0;}if(EXF2){switch(speed_catch_p){case 0:speed_catch1 = RCAP2H;speed_catch1 <<=8;speed_catch1 += RCAP2L;speed_catch_p++;break;case 1:speed_catch2 = RCAP2H;speed_catch2 <<=8;speed_catch2 += RCAP2L;speed_t2_ovf_count = speed_t2_ovf_count_temp;speed_catch_p++;break;default:break;}speed_t2_ovf_count_temp = 0;EXF2=0;}}/*********************************************************/void main(void){unsigned char TempCyc;unsigned long temp;Delay400Ms(); //启动等待,等LCM讲入工作状态LCMInit(); //LCM初始化Delay5Ms(); //延时片刻(可不要)DisplayListChar(0, 0, mcustudio);DisplayListChar(0, 1, email);ReadDataLCM();//测试用句无心义for (TempCyc=0; T empCyc<10; T empCyc++)Delay400Ms(); //延时DisplayListChar(0, 1, Cls);Speed=0;speed_frequency = 0; // frequencyspeed_catch1 = 0; //catch 1speed_catch2 = 0; //catch 2speed_catch_p = 0; //catch pointerspeed_t2_ovf_count_temp = 0; //T2 overflow counter temp register speed_t2_ovf_count = 0; //T2 overflow counter register while(1){TMOD=0x11; //设T0为方式1,GATE=1;TH0=0;TL0=0;TH1=0xee;TL1=0;T2CON = 0x09; //捕捉模式ET0=1; //许诺T0中断ET1=1; //许诺T0中断ET2=1;EA=1; //开启总中断TR1=1; //开启计数TR2=1;while(1){if(Flg_5ms){Flg_5ms=0;if(Counter_100ms<39){Counter_100ms++;if(Counter_100ms==20){if(speed_catch_p > 1){temp =(unsigned long)(( 65536UL * speed_t2_ovf_count)+ speed_catch2 - speed_catch1); //calculate TSpeed= (unsigned int)(9584640UL / temp);speed_catch_p = 0;}if(Speed >9999U) Speed=9999U;buf[0]=Speed/1000;buf[1]=(Speed/100)%10;buf[2]=(Speed/10)%10;buf[3]=Speed %10;DisplayOneChar(8, 1, ASCII[buf[0]]);DisplayOneChar(9, 1, ASCII[buf[1]]);DisplayOneChar(10, 1, ASCII[buf[2]]);DisplayOneChar(11, 1, ASCII[buf[3]]);DisplayOneChar(12, 1, 'm'); //显示MDisplayOneChar(13,1, 'm'); //显示MDisplayOneChar(14,1, '/');DisplayOneChar(15,1, 's');}}else{Counter_100ms=0;StartModule();// DisplayOneChar(0, 1, ASCII[0]);TH0=0;TL0=0;while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut(); //计算}}}}}。
基于单片机的测速仪设计
基于单片机的测速仪设计一、测速仪的原理及需求分析测速仪的工作原理通常基于对运动物体在一定时间内经过的距离的测量,从而计算出其速度。
常见的测速方法包括激光测速、雷达测速、超声波测速等。
对于基于单片机的测速仪,我们选择使用光电传感器来检测物体的运动。
在设计之前,需要明确测速仪的性能需求。
例如,测量的速度范围、测量精度、响应时间、工作环境等。
假设我们设计的测速仪用于测量车辆在公路上的行驶速度,速度范围设定为 0 200 千米/小时,测量精度要求在±5%以内,响应时间不超过 1 秒,能够适应各种天气条件。
二、硬件设计1、单片机选型选择合适的单片机是整个系统的核心。
考虑到性能、成本和开发难度等因素,我们选用了常见的 STM32 系列单片机。
STM32 具有丰富的外设资源、较高的处理速度和良好的稳定性,能够满足测速仪的需求。
2、光电传感器光电传感器用于检测物体的运动。
当物体经过传感器时,会遮挡光线,从而产生一个电信号。
我们选用了对射式光电传感器,其检测精度高,稳定性好。
3、信号调理电路由于光电传感器输出的信号可能比较微弱或存在干扰,需要通过信号调理电路进行放大、滤波等处理,以提高信号的质量。
4、显示模块为了直观地显示测量结果,选用了液晶显示屏(LCD)。
LCD 具有低功耗、显示清晰等优点。
5、电源模块提供稳定的电源是系统正常工作的保障。
设计中采用了稳压芯片将输入的电源电压转换为单片机和其他模块所需的工作电压。
三、软件设计1、编程语言选择 C 语言作为开发语言,C 语言具有语法简洁、可移植性好等优点,适合单片机的开发。
2、主程序流程系统上电后,首先进行初始化操作,包括单片机内部资源的初始化、传感器的初始化、显示模块的初始化等。
然后进入循环,不断检测传感器的信号,计算速度,并将结果显示在显示屏上。
3、速度计算算法通过测量物体经过传感器的时间间隔,结合传感器之间的距离,就可以计算出物体的速度。
例如,假设传感器之间的距离为 L,物体经过传感器的时间间隔为 T,则速度 V = L / T 。
基于51单片机的数字信号测量存储系统设计(光电码盘测速等)
摘要直流电机转速作为直流电机的一项重要技术指标,在各个应用场合都有重要的研究价值,是其他大部分技术参数的计算来源,因此,准确测量直流电动机的转速具有重要的研究意义和理论价值。
目前,在工程实践中,经常会遇到各种需要测量转速的场合。
对于工业测试,水利,机械等方面,转速是重要的控制参数之一。
尤机在工业测试系统中,大部分旋转仪器需要测定目前的转速,对机械设备进行故障预防。
因此,如何利用先进的数字技术和计算机技术改造传统的工业技术,提高监控系统的准确性,安全性,方便性是当前工业测控系统必须解决的一个问题。
转速测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方法,这种测量方技术已不能适应现代科技发展的要求,在测量范围和测量精度上,已不能满足大多数系统的使用。
随着大规模及超大规模集成电路技术的发展,数字系统测量得到普遍应用,特别是单片机对脉冲数字信号的强大处理能力,使得全数字量系统越来越普及,其转速测量系统也可以用全数字化处理。
在测量范围和测量精度方面都有极大的提高。
模拟检测:即利用测速电机作为发电机,通过检测反电势E的大小和极性可得到转速N和电机转向,采用这种方法直接可以得到转速N和输出电压的特性曲线,直观,但也有很多不足,比如在高速和低速情况下实际输出偏离理想特性。
数字检测技术:即通过分析数字信号产生的一系列脉冲间接获取电机转速。
如光电旋转编码器是将检测圆盘划分为等距的三个同心圆,最外环和次外环分别用等距的黑白条纹分开,且最外环和次外环的缝隙位置相位差为90度,用于判断电机的转速,最内环只有一个黑条纹,用作定位脉冲或者是复位脉冲,利用光电编码器输出的脉冲可以计算转速,具体的又可分为M法,T法和M\T法。
关键词:51单片机光电码盘目录摘要 0一、设计题目与要求 (2)二、方案选定 (2)(一)、选择实现转速测量的方法 (2)1.根据测量方法分类 (2)2.根据工作原理分类 (4)3.几种具体的测量方法 (5)4.光电开关具体的类型 (6)(二)、测量系统的构成 (7)1.信号拾取 (7)2.整形倍频 (9)3.单片机模块 (9)三、硬件电路设计 (12)(一)、原理分析 (12)(二)、显示部分 (12)(三)、复位电路 (12)(四)、信号 (13)(五)、单片机时钟 (14)四、系统程序设置与调试 (15)(一)、单片机控制部分硬件调试: (16)(二)、数码管LED电路调试: (16)(三)、发送部分硬件电路调试: (16)(四)、系统流程 (21)五、程序调试及仿真 (21)实验总结 (27)原理图 (28)参考文献: (29)一、设计题目与要求电动机转速测量1、实现对电动机转速的测量。
基于51单片机的光电编码器测速报告
基于51单片机的光电编码器测速报告课程名称:标题:课程设计报告|基于51单片机速度测量的199微机原理光电编码器课程设计在位置控制系统中,电机可以正转或反转,因此为了对与其相连的编码器输出的脉冲进行计数,需要相应的计数器向上或向下计数,即向上或向下计数有许多计数方法,包括纯软件计数和硬件计数。
本文分别分析了两种常用的计数方法,并比较了它们的优缺点。
最后,提出了一种新的计数方法,利用80C51单片机内部的计数器实现光电编码器输出脉冲的上下可逆计数,节省了硬件资源,获得了较高的计数频率。
该设计以STC89C52RC芯片、光电编码器和1602液晶为核心,辅以必要的电路,构成了基于51单片机的光电编码器转速表该系统有两个控制键,分别用于控制每秒和每分钟的转速,并用1602液晶显示速度。
速度计测速准确,具有实时检测功能,操作简单。
关键词:光电编码器,51单片机,C语言,1602液晶显示器2目录1,设计任务和要求 (4)1.1设计任务.................................................................................................................4 1.2设计要求 (4)2、方案的总体设计是 (5)2.1方案一 (5)2.2方案二。
.............................................................................................................. ...5 2.3系统采用方案.. (5)3,硬件设计 (7)3.1单片机最小系统....................................................................................................7 3.2液晶模块..................................................................................................7 3.3系统电源.................................................................................................................. ..8 3.4光电编码器电路..........................................................................................................8 3.5整体电路. (9)4,软件设计 (10)4.1 keil软件推出 (10)4.2系统程序流程..................................................................................................................105,仿真与实现 (12)5.1 proteus软件推出 (12)5.2模拟过程.................................................................................................................. ...12 5.3物理生产和调试........................................................................................................13 5.4使用说明.. (14)6,总结.................................................................................................................156.1设计总结 (15)6.2经验总结 (1)57,参考文献 (16)31、设计任务和要求1.1设计任务1)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要光电编码器是高精度位置控制系统常用的一种位移检测传感器。
在位置控制系统中,由于电机既可能正转,也可能反转,所以要对与其相连的编码器输出的脉冲进行计数,要求相应的计数器既能实现加计数,又能实现减计数,即进行可逆计数。
其计数的方法有多种,包括纯粹的软件计数和硬件计数。
文中分别对这两种常用的计数方法进行了分析,对其优缺点进行了对比,最后提出了一种新的计数方法,利用80C51单片机内部的计数器实现对光电编码器输出脉冲的加减可逆计数,既节省了硬件资源,又能得到较高的计数频率。
本设计就是由单片机STC89C52RC芯片,光电编码器和1602液晶为核心,辅以必要的电路,构成了一个基于51单片机的光电编码器测速器。
该系统有两个控制按键,分别用于控制每秒的转速和每分钟的转速,并将速度用1602液晶显示出来。
该测速器测速精准,具有实时检测的功能,操作简单。
关键词:光电编码器,51单片机,C语言,1602液晶目录一、设计任务与要求 (3)1.1 设计任务 (3)1.2 设计要求 (3)二、方案总体设计 (4)2.1 方案一 (4)2.2 方案二 (4)2.3 系统采用方案 (4)三、硬件设计 (6)3.1 单片机最小系统 (6)3.2 液晶显示模块 (6)3.3 系统电源 (7)3.4光电编码器电路 (7)3.5 整体电路 (8)四、软件设计 (9)4.1 keil软件介绍 (9)4.2 系统程序流程 (9)五、仿真与实现 (11)5.1 proteus软件介绍 (11)5.2 仿真过程 (11)5.3 实物制作与调试 (12)5.4 使用说明 (13)六、总结 (14)6.1 设计总结 (14)6.2 经验总结 (14)七、参考文献 (15)一、设计任务与要求1.1 设计任务1).对更多小器件的了解2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用3).掌握仿真软件的运用和原理图的绘制4).加深焊接的技巧,提高焊接的能力5).熟悉调试方法和技巧,提高解决实际问题的能力6).熟悉设计报告的编写过程1.2 设计要求1).两个按键控制显示每分钟和每秒钟的功能2).74LS74辅助光电编码器测转向3).光电编码器输出脉冲计数4).1602液晶显示转速二、方案总体设计设计一个基于51单片机的光电编码器测测速。
设计一个电路来实现光电编码器测量;利用单片机内部精确到微妙的定时计数器来实现一个周期的时间来统计脉冲数;74LS74作为辅助芯片来完善光电编码器测转向的功能;P0和P2口控制1602液晶显示转速;利用P1^1和P1^2来实现液晶显示每秒钟和每分钟转速的功能;利用复位按键功能来实现复位操作。
调节蓝白滑动变阻器来调节液晶亮度。
2.1 方案一51单片机的定时/计数器工作在模式2时是一个可以自动重装载的8位定时/计数器。
工作时高八位和低八位装入相同的初值,当低八位装满时,高八位的值自动装入到第八位中,从而可以省去用户软件中重装初值常数的语句,可产生相当精确的定时时间。
由于只有八位参与计数,所以其计数周期最大为256微妙。
采用初值装入0x38,每个200微妙进入一次中断,5000次中断为100毫秒,即实现周期为1秒的脉冲计数。
光电编码器的A相接在单片机的外部中断,光电编码器的B相接在单片机的P1^0。
A相发出的脉冲每触发一次中断就就计数一个脉冲,并且再对P1^0的高低电平进行检测,如果为高电平则为反转,如果是低电平则为正转。
反向器中的两个作为放大作用。
再接两个三极管作为开关作用,组成一个直流电机的驱动电路。
P1^1和P1^2分别控制液晶显示每分钟的转速和每秒钟的转速。
P2口控制1602液晶的数据口,P0的三个引脚控制1602液晶的数据/命令选择端、读/写选择端、使能端来显示速度。
2.2 方案二51单片机的定时/计数器工作在模式0时是一个16位位定时/计数器。
工作时高八位和低八位各装入初值,当低八位装满时,高八位加1。
由于是16位参与计数,所以其计数周期最大为65536微妙。
采用初值高八位装入0xfc,初值低八位装入0x18,每个1000微妙进入一次中断,1000次中断为1秒,即形成周期为1秒的脉冲计数。
本方案在方案1的基础上外接一个74LS74的芯片。
光电编码器的A相接在单片机的P3^4的引脚,利用单片机的计数器1进行脉冲计数,同时接在74LS74的时钟信号接口。
光电编码器的B相接在74LS74的D接口。
Q端接在P3^2引脚,Q非端接在P3^3引脚。
利用两个外部中断来判断正反转。
P1^1和P1^2分别控制液晶显示每分钟的转速和每秒钟的转速。
P2口控制1602液晶的数据口,P0的三个引脚控制1602液晶的数据/命令选择端、读/写选择端、使能端来显示速度。
2.3 系统采用方案1)总体设计图1为设计总体框架图,通过该图大致的介绍了一下整个光电编码器测速系统的各个主要部分。
图1 系统总体框架2)总体工作原理由于定时器工作模式2是八位,可装入的值太小,每进行一个周期的脉冲统计需要进入5000次定时器中断,由于进入中断的次数太多,所以很容易出现在低八位装满本应触发而程序还在中断子程序中运行,而无法触发中断的情况,所以不采用工作模式2。
工作模式0只需要进入定时中断1000次就可以进行一个周期的脉冲统计,所以选择功能模式0。
方案一中用,用纯软件计数虽然电路简单,但是计数速度慢,难以满足实时性要求,而且容易出错。
我们可以用单片机内部的计数器来实现加减计数。
单片机片内有两个16位定时计数器都可以用来脉冲计数,用两个外部中断来检测正反转,避免了每一个脉冲都要进行高低电平检测的步骤。
控制按键,液晶和复位方面的设计在方案一和方案二中一样。
综上考虑,最终方案确定为方案二。
三、硬件设计3.1 单片机最小系统单片机要正常工作,首先要产生片内时钟信号。
在单片机内部的振荡器的输入端XTAL1和输出端XTAL2之间接一个石英晶振就可以够成一个自激振荡器。
再在两端之间串联接个电容并且在两个电容之间接地以便于稳定频率还对振荡频率有微调作用。
电容通常选30PF 左右,振荡脉冲频率范围为0~24MHZ。
该电路中选用12MHZ晶振。
时钟电路图如下:图2 时钟电路图单片机在启动时与其他微处理器一样,要让CPU及系统各部件处于确定的初始状态,并从初始开始工作。
这就需要复位操作。
复位电路有两种方式:上电自动复位和按键自动复位。
上电自动复位只是在开始接通电源瞬间复位,接下来想要再次复位就需要断电重启,不方便。
按键自动复位不仅可以在开始接通电源瞬间复位还可以通过按下按键复位随时复位。
所以选择按键复位方式。
复位电路如下:图3 复位电路图3.2 液晶显示模块该可调直流电机最大速度为每分钟1200转,采用1602液晶显示。
控制1602液晶亮度的是蓝白滑动变阻器。
1602液晶有16个管脚。
编号为1,2管脚为电源正负极管脚,15,16为背光源正负极管脚;7~14为dataI/O管脚与单片机的P0口相连,负责液晶与芯片之间的信息传送;4,5,6分别为数据/命令选择端、读/写选择端、使能端,与单片机的, P2^0、P2^1、P2^2相连,负责控制液晶与芯片之间数据命令的读写操作;3为液晶显示偏压信号端,用于调整液晶显示对比度。
1602液晶显示原理图如下:G N D 1V C C 2V O 3R S 4R W 5E N 6D B 07D B 18D B 29D B 310D B 411D B 512D B 613D B 714B L A 15B L K161602液晶GNDVCC GNDVCC112233RV1P 0.0V O P 0.1P 0.2P 2.0P 2.1P 2.2P 2.3P 2.4P 2.5P 2.6P 2.7图4 液晶显示系统图3.3 系统电源为了方便控制系统的上电与断电,系统电源中连接了一个蓝白自锁开关。
此开关两边各有三个引脚,不同的连接方式,开关的控制方法就不同。
电源的正负极各接在此开关的两边。
为了方便观察电源是否接上,在电路中的VCC 与GND 之间接一个发光二极管并且加一个限流电阻防止发光二极管烧坏,电源通电时发光二极管亮,断电时,则暗。
再接四个排针便两边的两个排针用于外部电源给系统上电,中间的两个排针是用于单片机烧录程序。
如图所示:图5 系统电源图3.4光电编码器电路这是一张光电编码器部分的电路原理图。
图上的74LS74芯片上就是两个D 触发器。
A 相接在P3^4的引脚用于计数器0采集脉冲。
A 相同时接在CLK 端,B 相接在D 端,Q 接在P3.2引脚,外部中断0检测和Q 非接在P3.3外部中断1来检测。
另外A 相和B 相各需接一个上拉电阻,阻值为1K 。
这样输出的脉冲就可以直接接在单片机上,进行检测了。
另外74LS74芯片的SET 引脚,CLR 引脚,VCC 引脚都接电源,GND 引脚接地。
整个电路就连接完成了。
图6 光电编码器电路3.5 整体电路这是采用网络标号的画出的以一张整体电路图。
它将整张可调直流电机的电路原理图分为七个部分:电源模块,P0口上拉电阻,1602液晶模块,51单片机,复位晶振电路,控制按键和光电编码器电路。
整张原理看起来美观,明了并且根据标号很容易找到与之对应的引脚。
基于51单片机的光电编码器测速设计四、软件设计4.1 keil软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil 软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。