基于51单片机的光电编码器测速

合集下载

基于某51单片机地自行车测速系统设计

基于某51单片机地自行车测速系统设计

摘要随着居民生活水平的不断提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。

自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。

自行车的速度里程表能够满足人们最根本的需求,让人们能清楚地知道当前的速度、里程等物理量。

而对于自行车运动员来说,最为关心的莫过于一段时间的训练效果。

因为教练要根据一段时间运动员的训练效果进展评估,从而进展适当的调整已使运动员达到最优的状态。

因此爱好自行车运动的人十分学要一款能测速的装置,以知道自己的运动情况。

并根据外界条件,如温度,风速等进展适当的调节,已达到最优运动的效果。

关键词:单片机、LED显示、里程/速度、霍尔元件第一章系统总方案分析与设计1.1 课题主要任务与容本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED数码管实时显示里程和速度的自行车的速度里程表。

本文主要介绍了自行车的速度里程表的设计思想、电路原理、方案论证以与元件的选择等容,整体上分为硬件局部设计和软件局部设计。

本文首先扼要对该课题的任务进展方案论证,包括硬件方案和软件方案的设计;继而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后对本次设计进展了系统的总结。

具体的硬件电路包括AT89C52单片机、霍尔元件以与LED显示电路等。

软件设计包括:中断子程序设计,里程计算子程序设计,显示子程序设计。

软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。

1.2 任务分析与实现本设计的任务是:以通用AT89C52单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进展处理后送入单片机。

里程与速度的测量,是经过AT89C52的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过LED显示器显示出来。

基于MCS-51单片机的车辆测速仪的设计与制作

基于MCS-51单片机的车辆测速仪的设计与制作

基于MCS-51单片机的车辆测速仪的设计与制作毕业设计说明书(论文)作者: 学号:系:专业:题目: 基于MCS-51单片机的车辆测速仪的设计与制作指导者:(姓名) (专业技术职务)评阅者:(姓名) (专业技术职务)年月毕业设计(论文)评语毕业设计说明书(论文)中文摘要毕业设计说明书(论文)外文摘要目次1 绪论 01.1 课题的背景与意义 01.2 单片机发展概况 (1)1.3 主要研究内容 (2)2 雷达测速仪原理 (3)2.1 车辆测速技术简介 (3)2.2 多普勒效应 (4)2.3 多普勒信号的提取 (6)3 系统硬件设计思想以及原理框图 (7)3.1 方案论证 (7)3.2 系统总体设计框图 (7)3.3 单片机AT89C52介绍 (8)3.4 复位电路 (12)3.5 晶振电路 (14)3.6 放大整形电路 (15)3.7 数据显示 (15)4 系统软件设计 (24)4.1 测频方法的选择 (24)4.2 主程序流程图 (26)4.3 中断服务子程序流程图 (29)4.4 1602液晶初始化流程图 (31)5 系统仿真及调试 (32)5.1 Proteus (32)5.2 Keil C51 (33)5.3 仿真与调试的步骤 (33)5.4 功能的检测 (34)5.5 仿真结果 (36)结论 (38)致谢 (40)参考文献 (40)附录................................................... 错误!未定义书签。

1 绪论1.1 课题的背景与意义随着雷达技术的发展,雷达的任务不仅是测量目标的距离、方位和仰角,而且还包括测量目标的速度,以及从回波中获取更多有关目标的信息。

飞机、导弹、人造卫星、各种舰艇、车辆、兵器、炮弹以及建筑物、山川、云雨等等,都可能作为雷达的探测目标,这要根据雷达用途而定[1]。

二次大战后,特别是20世纪70年代以来,雷达技术有了迅速的发展,雷达已在军事的各个方面获得应用。

基于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单片机的光电编码器测速

基于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单片机的高速公路测速系统和车牌识别分析

基于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世纪经济全球化和信息时代的到来,作为信息来源的自动检测、图像识别技术越来越受到人们的重视。

基于51单片机的自行车测速系统设计【范本模板】

基于51单片机的自行车测速系统设计【范本模板】

摘要随着居民生活水平的不断提高,人们对于生活质量的要求也日益增加,尤其是对健身的要求。

自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。

自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。

而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。

因为教练要根据一段时间内运动员的训练效果进行评估,从而进行适当的调整已使运动员达到最佳的状态.因此爱好自行车运动的人十分学要一款能测速的装置,以知道自己的运动情况。

并根据外界条件,如温度,风速等进行适当的调节,已达到最佳运动的效果。

关键词:单片机、LED显示、里程/速度、霍尔元件第一章系统总方案分析与设计1。

1 课题主要任务及内容本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED数码管实时显示里程和速度的自行车的速度里程表。

本文主要介绍了自行车的速度里程表的设计思想、电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。

本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后对本次设计进行了系统的总结。

具体的硬件电路包括AT89C52单片机、霍尔元件以及LED显示电路等。

软件设计包括:中断子程序设计,里程计算子程序设计,显示子程序设计。

软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。

1。

2 任务分析与实现本设计的任务是:以通用AT89C52单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。

里程及速度的测量,是经过AT89C52的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,其结果通过LED显示器显示出来.本系统总体思路如下:假定轮圈的周长为L,在轮圈上安装m个永久磁铁,则测得的里程值最大误差为L/m。

51单片机自行车测速(含实时时间,温度显示,断电保存等)

51单片机自行车测速(含实时时间,温度显示,断电保存等)

单片机课程设计报告自行车测速仪学院信息工程学院专业信息工程(电子信息工程方向)年级班别 2010级(4)班学号 3110002980学生姓名 XXX指导教师 XXX申请成绩 XXX2012年12 月1、设计要求:自行车测速仪(传感器必须自己做)(每班最多8人选此题,难度系数:中;此题除非所有硬件自己做,并用于实际自行车上,否则不能得优或良)基本功能:能实时显示自行车的行驶速度附加功能:实时时钟,行驶里程累计2.设计思路:首先是选择基于51单片机来设计这个产品,这个产品主要的功能是用来测量自行车的车速,既然要测车速,那就要用到传感器,所以选择了红外光电传感器,它的检测头里也装有一个发光器和一个收光器,但前方没有反光板。

正常情况下发光器发出的光收光器是找不到的。

当检测物通过时挡住了光,并把光部分反射回来,收光器就收到光信号,输出一个开关信号。

在没有遮挡物时,传感器输出端输出一个高电平,当有遮挡物时,输出端就会输出低电平,那样就可以利用单片机的计数功能,把传感器输出的信号输入到单片机的外部脉冲输入端,可以通过测试脉冲数来算出车速,具体实现是利用单片机的计数功能实现下降沿计数,然后在两秒内统计出自行车走过的圈数,算出自行车车轮的周长,再乘以圈数,再除以时间两秒,就得到车速,然后在lcd上面显示,还可以算出自行车的路程,也利用单片机的定时中断功能可以设置和显示实时时间,还可以利用单片机上自带的温度传感器ds18b20测出实时温度,在lcd上显示出来。

3.任务分工:XXX(100%)4.设计步骤:1.先完成lcd的显示代码,使单片机上的lcd能正常显示数字,字符。

2,利用单片机的定时计数功能,首先在lcd上显示实时时间能每秒加一。

3.通过对按键的扫描检测,实现对实时时间的设置。

例如按下按键,使能设置时间(断开计时中断),再分别设置三个按键分别实现对小时,分钟,秒的设置(按下一次加一)。

4.通过单片机的计数功能,即外部脉冲信号输入到引脚P3.5(T1),电平从1到0跳变,则计数器加一。

51单片机PID调增量式光电编码器测速

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 )使得转速控制达到想要的精度。

基于MCS51系列单片机的超声波多普勒测速设计

基于MCS51系列单片机的超声波多普勒测速设计

摘要在速度测量领域,利用多普勒效应的设计不在少数。

其中,多以激光多普勒测速设计或装置为主,激光以其高强度、频率单一、不易受到干扰等良好的性质受到众多多普勒测速设计者的青睐,以激光为波源做成的装置具有测速范围广(4×10~(-5)~10~4米/秒)、空间分辨率高、动态响应快等优点。

但是,这种装置一般而言价格比较昂贵,在许多测量精度要求不那么严格的地方的应用受到了很大的限制。

因此,我们设计了以超声波作为波源结合单片机用以数据处理的方案,再加上其他一些必要的电子电路,可以把整个装置集成到一块PCB板上,以电池供电。

这样便解决了价格问题,提高了性价比,同时携带方便,测量精度亦在可以接受的范围内。

关键词:多普勒效应;超声波;单片机;混频放大;差频测量;模数转换;滤波整形基于单片机的超声波多普勒测速设计1前言1.1多普勒效应多普勒效应是指物体辐射的波长因为光源和观测者的相对运动而产生变化,在运动的波源前面,波被压缩,波长变得较短,频率变得较高,在运动的波源后面,产生相反的效应,波长变得较长,频率变得较低,波源的速度越高,所产生的效应越大,根据光波红/蓝移的程度,可以计算出波源循着观测方向运动的速度,恒星光谱线的位移显示恒星循着观测方向运动的速度,这种现象称为多普勒效应。

测速的公式简介。

多普勒效应是本设计的理论依据,深入的考虑,可基于超声波多普勒效应推导出移动物体的速度,具体公式如下:(1)当波源静止,观察者运动时f=[(u+Vr)/u]f0 ①(2)当波源运动,观察着静止时f=[u/(u-Vs)]f0 ②(3)当两者同时运动时f=[(u+Vr)/(u-Vs)]f0 ③由于超声波的发生器和接收器是集中在一起的,所以当运动物体反射超声波时,应该把运动物体当做波源,而把超声波接收器作为观察者。

这样,就可以结合上述公式求出运动物体的速度与多普勒频移之间的关系,如下:(1)当波源静止,观察者运动时Vr=[(f0-f’)/(f0+f’)]u ④(2)当波源运动,观察者静止时Vs=[(f0-f’)/(f0+f’)]u ⑤(3)当两者相对运动时Vr={[(f’-f0)u2-(f’+f0)Vs]/[(f’+f0)u+(f0-f’)Vs]}u ⑥其中第⑤式的情况在实际情况中不会出现,但是注意到两者相对运动时的第⑥式中出现了波源的运动速度Vs,这时就需要用第⑤式先求出波源的运动速度,进而求出物体的运动速度。

基于51单片机的红外反射式光电传感器测速机的简易方案设计书

基于51单片机的红外反射式光电传感器测速机的简易方案设计书
因为当红外线照到面黑色时,反射光很弱,接收端检测到的光线可以忽略,当照到白色面时,反射光强烈,发射端发射的红外线几乎被接收端全部接收,因此,检测到的信号经过比较电路输出后,会给单片机输入高低两种电平。所以,在编程中,假定在1S时间内共检测到n个低电平信号,那么此电机的转速为 。
四:整体电路图及实物图
(二)单片机部分
(1)单片机外部连线图:如下图(3)所示
图(3)单片机连线图
在上接线图中,可在数码管与单片机之间接上一个分压电阻,起到保护作用。单片机型号选89C51或89C52都行。在实验板上把图(1)中的2管脚(逻辑电平输出管脚)和图(2)中的12管脚(中断输入管脚)连接,即可构成整个测速系统。
(c)
图(1)LM339工作原理图及管脚图
(2)整体连线图:如下图(2)所示:
图(2)比较型光电传感器整体电路图
在上图中,LED灯相当于一个红外线发射管,JP1是红外线接收管,接收光强在上面转换成电流,在R上成为电压信号。当光线照射到白色面上时,光线反射强烈,光线照射到黑色面上时,光线反射较弱。因此当光照在不同颜色面上时,阻值会发生明显的变化。将阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机。
if(aa==20)
{
aa=0。
temp=20*n。
n = 0。
qian=temp/1000。
bai=temp%1000/100。
shi=temp%100/10。
ge=temp%10。
}
}
P1=0xfb。
delay(1)。
P0=table[shi]。
P1=0xfd。
delay(1)。
P0=table[ge]。
P1=0xfe。

基于51单片机的红外反射式光电传感器测速机的简易设计

基于51单片机的红外反射式光电传感器测速机的简易设计

基于51单片机的红外反射式光电传感器测速机的简易设计——基于红外反射式的测速机引言在工程实践中,经常会遇到各种需要测量转速的场合。

转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量,不论是直流调速系统还是交流调速系统,只有转速的高精度检测才能得到高精度的控制系统。

迄今为止,测速可分为两类:模拟电路测速和数字电路测速。

随着微电子技术的发展,计算机技术的广泛应用,出现了以计算机为核心的数字测速装置。

这样的速度测量装置测量范围宽、工作方式灵活多变、适应面广,具有普通数字测速装置不可比拟的快速性、精确性和优越性。

一:设计思路用一个红外发光二极管和一个接受红外光的二极管组成一套光电管。

当检测到物表面为黑色时,反射光很弱,接收端检测到的光线可以忽略,使接收端呈现一种状态,例如开关管截止;当被检测物表面为白色时,反射光强烈,发射端发射的红外线被接收端全部接收,使接收端呈现另一种相反的状态,例如开关管开通。

这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。

由此,我想到用一个比较器来比较两种接受到的信号,从而输出“0”“1”两种高低电平,并把两种信号传给单片机进行统计,然后利用设定算法进行计算,最后通过数码显示管显示计算结果。

二:所需模块本测速系统共有两个模块构成,一个为光电传感器部分,用于接收光信号并转换为电信号,即高低电平信号;另一个为单片机部分,用于接收高低电平信号并通过内部计算,然后再通过数码显示管显示测出的结果。

(一) 光电传感器部分(1)LM339工作原理及管脚图:LM339类似于增益不可调的运算放大器。

每个比较器有两个输入端和一个输出端。

两个输入端中的一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。

当用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压,当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。

基于51单片机的数字信号测量存储系统设计(光电码盘测速等)

基于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单片机的光电编码器测速报告课程名称:标题:课程设计报告|基于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)。

基于51单片机的循线测距测速及1602显示

基于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; TempCyc<10; TempCyc++)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 registerspeed_t2_ovf_count = 0; //T2 overflow counter registerwhile(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(); //计算}}}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机的光电编码器测速课程设计报告课程名称: 微机原理课程设计题目: 基于51单片机的光电编码器测速摘要光电编码器是高精度位置控制系统常用的一种位移检测传感器。

在位置控制系统中,由于电机既可能正转,也可能反转,所以要对与其相连的编码器输出的脉冲进行计数,要求相应的计数器既能实现加计数,又能实现减计数,即进行可逆计数。

其计数的方法有多种,包括纯粹的软件计数和硬件计数。

文中分别对这两种常用的计数方法进行了分析,对其优缺点进行了对比,最后提出了一种新的计数方法,利用80C51单片机内部的计数器实现对光电编码器输出脉冲的加减可逆计数,既节省了硬件资源,又能得到较高的计数频率。

本设计就是由单片机STC89C52RC 芯片,光电编码器和1602液晶为核心,辅以必要的电路,构成了一个基于51单片机的光电编码器测速器。

该系统有两个控制按键,分别用于控制每秒的转速和每分钟的转速,并将速度用1602液晶显示出来。

该测速器测速精准,具有实时检测的功能,操作简单。

关键词:光电编码器,51单片机,C语言,1602液晶2目录一、设计任务与要求 ..................................................................... (4)1.1 设计任务 ..................................................................... . (4)1.2 设计要求 ..................................................................... . (4)二、方案总体设计 ..................................................................... . (5)2.1 方案一 ..................................................................... .. (5)2.2 方案二 ..................................................................... .. (5)2.3 系统采用方案 ..................................................................... ............................................... 5 三、硬件设计 ..................................................................... (7)3.1 单片机最小系统 ..................................................................... . (7)3.2 液晶显示模块 ..................................................................... .. (7)3.3 系统电源 ..................................................................... . (8)3.4光电编码器电路 ..................................................................... .. (8)3.5 整体电路 ..................................................................... . (9)四、软件设计 ..................................................................... . (10)4.1 keil软件介绍 ..................................................................... .. (10)4.2 系统程序流程 ..................................................................... ............................................. 10 五、仿真与实现 ..................................................................... (12)5.1 proteus软件介绍 ..................................................................... .. (12)5.2 仿真过程 ..................................................................... .. (12)5.3 实物制作与调试 ..................................................................... .. (13)5.4 使用说明 ..................................................................... ..................................................... 14 六、总结 ..................................................................... (15)6.1 设计总结 ..................................................................... .. (15)6.2 经验总结 ..................................................................... ..................................................... 15 七、参考文献 ..................................................................... . (16)3一、设计任务与要求1.1 设计任务1).对更多小器件的了解2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用3).掌握仿真软件的运用和原理图的绘制4).加深焊接的技巧,提高焊接的能力5).熟悉调试方法和技巧,提高解决实际问题的能力6).熟悉设计报告的编写过程1.2 设计要求1).两个按键控制显示每分钟和每秒钟的功能2).74LS74辅助光电编码器测转向3).光电编码器输出脉冲计数4).1602液晶显示转速4二、方案总体设计设计一个基于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为设计总体框架图,通过该图大致的介绍了一下整个光电编码器测速系统的各个主要部分。

5图1 系统总体框架2)总体工作原理是八位,可装入的值太小,每进行一个周期的脉冲统计需要进入由于定时器工作模式25000次定时器中断,由于进入中断的次数太多,所以很容易出现在低八位装满本应触发而程序还在中断子程序中运行,而无法触发中断的情况,所以不采用工作模式2。

工作模式0只需要进入定时中断1000次就可以进行一个周期的脉冲统计,所以选择功能模式0。

方案一中用,用纯软件计数虽然电路简单,但是计数速度慢,难以满足实时性要求,而且容易出错。

我们可以用单片机内部的计数器来实现加减计数。

单片机片内有两个16位定时计数器都可以用来脉冲计数,用两个外部中断来检测正反转,避免了每一个脉冲都要进行高低电平检测的步骤。

控制按键,液晶和复位方面的设计在方案一和方案二中一样。

综上考虑,最终方案确定为方案二。

相关文档
最新文档