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

合集下载

基于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温度PID调节实验报告

51温度PID调节实验报告

成绩:重庆邮电大学自动化学院综合实验报告题目:51系列单片机闭环温度控制实验学生姓名:***班级:0811103学号:**********同组人员:黄酉指导教师:***完成时间:2014年12月一、实验要求及分工情况51系列单片机闭环温度控制实验——基于Protuse仿真实验平台实现要求:1. 设计硬件电路:温度检测:采用热电偶或热电阻温度给定:采用电位器进行模拟电压给定,0——5VAD转采用12位转换显示采用8位LED,或者LCD1602显示键盘4X4,PID等参数通过键盘设置。

2. 软件控制算法:数字PID,参数在线修改。

显示窗口:显示温度的设置值SV、温度的实际值PV。

实际温度值,温度峰值、峰值时间等通过串口上传到上位机(选做)具体分工:黄酉负责系统设计思想导向与编程;霍栋博负责辅助编程与编写报告与Proteus仿真。

二、实验内容(实验原理介绍)1、电路的总体工作原理温度控制系统采用AT89S51八位机作为微处理单元进行控制。

采用4X4键盘把设定温度的最高值和最低值存入单片机的数据存储器,还可以通过键盘完成温度检测功能的转换。

温度传感器把采集的信号与单片机里的数据相比较来控制温度控制器。

机AT89S51为测控系统的核心来完成数据采集、处理、显示、报警等功能。

选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。

该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89S51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器为点阵字符LCD,1602液晶模块。

检测范围5摄氏度到60摄氏度。

本系统除了显示温度以外还可以设置一个温度值,对所测温度进行监控,当温度高于或低于设定温度时,开始报警并启动相应程序(温度高于设定温度时,风扇开;当温度低于设定温度时,加热器开)。

51单片机PID算法程序增量式PID控制算法

51单片机PID算法程序增量式PID控制算法

51单片机PID算法程序增量式PID控制算法增量式PID控制算法是一种常用的控制算法,可以应用于各种控制系统中。

该算法的原理是通过计算目标值与实际值之间的差异,来调整控制系统的输出,使其逐渐接近目标值。

增量式PID控制算法的核心思想是通过对目标值与实际值之间的差异进行积分和微分计算,来调整控制系统的输出。

这样可以使得控制系统对误差的响应更加敏感,从而实现更精确的控制效果。

在51单片机中实现增量式PID控制算法,可以按照以下步骤进行:1.参数设置:首先需要设置PID控制算法的参数,包括比例系数Kp、积分系数Ki和微分系数Kd。

这些参数可以根据实际控制系统的需求进行调整。

2.变量定义:定义控制系统所需的变量,包括目标值、实际值、误差值、上一次的误差值、累积误差值等。

3.计算误差:将目标值与实际值之间的差异作为误差值进行计算。

4.计算增量输出:根据误差值以及上一次的误差值和累积误差值,计算控制系统的增量输出。

增量输出的计算公式为:增量输出=Kp*(当前误差-上一次误差)+Ki*当前误差+Kd*(当前误差-上一次误差)5.更新变量:更新控制系统所需的变量,包括上一次的误差值和累积误差值。

6.输出信号:将增量输出作为控制系统的输出信号,并进行相应的处理。

通过上述步骤,就可以实现51单片机的增量式PID控制算法。

在实际应用中,可以根据具体情况对算法进行优化和改进,以满足实际控制的需求。

总结起来,增量式PID控制算法是一种常用的控制算法,可以通过计算目标值与实际值之间的差异,调整控制系统的输出,从而实现精确的控制效果。

在51单片机中实现增量式PID控制算法,可以按照参数设置、变量定义、计算误差、计算增量输出、更新变量和输出信号等步骤进行。

根据具体情况可以对算法进行优化和改进,以满足实际控制的需求。

51单片机的直流电机调速、测速以及显示系统

51单片机的直流电机调速、测速以及显示系统

52.................................................................................................... 单清序程 2.4
53................................................................................................ 望展与论结 章五第
述概
1.1
述概
章一第
3
。图理原路电效等的构结部内器码译供提里盘光品产在。然 了目一�上BCP 在印经已围范址地�出输组8供提。器码译为作件器DLP用采 。口端出输挽推行并位8个1、口端入输阻高行并位8个1展扩 。储存据数量容大者或hsalF序程作用以可�器储存hsalF量容大BK215展扩 。MAR态静BK23展扩 。验实做户用便方�出引针插排双用部全口端O/I组4的机片单 。MORPEE的B652有 置内还片芯狗门看�外此。位复狗门看、位复键按、位复CR�选可式方位复 。便方了供提验实做 来振晶的点频它其成换替户用为�装安式座插用采�zHM2950.11认默�振晶 。能功真仿等问访备设围外、察观量变 、出跳、点断、速全、步单持支面全够能片芯真仿该。序程动驱的别特装安 要需不并且而�真仿线在件硬行进地便方够能�下持支的15C lieK具工发开 件软境环swodniW机片单核内1508的行流最前目在。片芯真仿的门专片1备配 。线载下的门专作制要需不�载下PSI现实能就�配标箱 验实CPOStramS随经已缆电该�缆电信通232-SR脑电通普根一要需只15kciuQ 。 序 程 户 用 载 下 式 方 � 程 编 可 统 系 在 � PSI 持 支 机 片 单 2DR15VL98P 的 备 配 。等等�TRAU 型强增 �IPS 件硬 � �便方不 �位复有只 2508� 醒唤可断中部外后式模电掉入进 �级先 优断中个 4�RTPD 双�式模速倍双�MAR 态静内片 BK1� �能功 PAI 和 PSI 持 支来用�hsalF 导引 BK8�hsalF 序程户用 BK46 置内如�能功强增多许有具 。核内 UPC 2508 letnI 型强增�2DR15VL98P 机片单型新体导半 spilihP 用采 � � � � � � �

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

单片机51测速程序

单片机51测速程序

//实例 100:电机转速表设计#include<reg51.h> // 包含单片机寄存器的头文件#include<intrins.h> //包含 _nop_() 函数定义的头文件sbit RS=P2A0; sbit RW=P2A1; sbit E=P2A2; II寄存器选择位,将 RS位定义为P2.0引脚〃读写选择位,将 RW位定义为P2.1引脚II使能信号位,将E位定义为P2.2引脚sbit BF=P0A7; II忙碌标志位,,将BF位定义为P0.7引脚unsigned char code digit[ ]={"0123456789"}; // 定义字符数组显示数字 un sig ned in t v;II储存电机转速unsigned char count; 〃储存定时器TO中断次数bit flag; //计满1秒钟标志位***************************************************函数功能:延时 1ms (3j+2)*i=(3 X 33+2) X 10=1010(微秒),可以认为是 1 毫秒***************************************************/ void delay1ms(){unsigned char i,j; for(i=0;i<10;i++) for(j=0;j<33;j++)}I*****************************************************函数功能:延时若干毫秒入口参数: n***************************************************Ivoid delay(unsigned char n){unsigned char i;for(i=0;i<n;i++)delay1ms();}I*****************************************************函数功能:判断液晶模块的忙碌状态返回值:result。

51单片机PID算法程序(三)增量式PID控制算法

51单片机PID算法程序(三)增量式PID控制算法

51单片机PID算法程序(一)PID算法(原创文章,转载请注明出处/tengjingshu) 比例,积分,微分的线性组合,构成控制量u(t),称为:比例(Proportional)、积分(Integrating)、微分(Differentiation)控制,简称PID控制图1控制器公式在实际应用中,可以根据受控对象的特性和控制的性能要求,灵活地采用不同的控制组合,构成比例(P)控制器比例+积分(PI)控制器比例+积分+微分(PID)控制器式中或式中控制系统中的应用在单回路控制系统中,由于扰动作用使被控参数偏离给定值,从而产生偏差。

自动控制系统的调节单元将来自变送器的测量值与给定值相比较后产生的偏差进行比例、积分、微分(PID)运算,并输出统一标准信号,去控制执行机构的动作,以实现对温度、压力、流量、也为及其他工艺参数的自动控制。

比例作用P只与偏差成正比;积分作用I是偏差对时间的积累;微分作用D 是偏差的变化率;比例(P)控制比例控制能迅速反应误差,从而减少稳态误差。

除了系统控制输入为0和系统过程值等于期望值这两种情况,比例控制都能给出稳态误差。

当期望值有一个变化时,系统过程值将产生一个稳态误差。

但是,比例控制不能消除稳态误差。

比例放大系数的加大,会引起系统的不稳定。

图2比例(P)控制阶跃响应积分(I)控制在积分控制中,控制器的输出与输入误差信号的积分成正比关系。

为了减小稳态误差,在控制器中加入积分项,积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。

这样,即使误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减少,直到等于零。

积分(I)和比例(P)通常一起使用,称为比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

如果单独用积分(I)的话,由于积分输出随时间积累而逐渐增大,故调节动作缓慢,这样会造成调节不及时,使系统稳定裕度下降。

图3积分(I)控制和比例积分(PI)控制阶跃相应微分(D)控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。

51单片机PID算法程序(三)增量式PID控制算法

51单片机PID算法程序(三)增量式PID控制算法

51单片机PID算法程序(三)增量式PID控制算法前言在之前的两篇文章中,我们分别介绍了基础PID算法和位置式PID控制算法。

在本文中,我们将介绍另一种常见的PID算法——增量式PID控制算法,以及如何在51单片机上实现增量式PID控制算法。

增量式PID控制算法简介增量式PID控制算法与位置式PID控制算法最大的区别在于输出控制量的计算方式不同。

位置式PID算法的输出控制量是与目标值的误差和历史误差之和的积分和误差的比例和微分,而增量式PID算法的输出控制量只与误差和历史误差的差值有关。

在增量式PID控制算法中,输出控制量的计算方式如下:$$ OutPut=K_p \\cdot Err+K_i \\cdot \\Delta Err+K_d \\cdot \\Delta^2 Err $$ 其中,K p、K i和K d分别是比例、积分和微分系数。

增量式PID控制算法的优点在于可以避免积分饱和、能够快速响应控制量变化,因此在某些要求高响应速度的应用中,常选择使用增量式PID控制算法。

51单片机上的增量式PID控制算法相比较于位置式PID控制算法,增量式PID控制算法的实现更加复杂,需要考虑历史误差的存储、误差的差值计算等问题。

因此,在51单片机上实现增量式PID控制算法需要一些特殊的处理方式。

我们可以通过以下三个步骤来实现增量式PID控制算法:步骤一:初始化变量在增量式PID控制算法中,需要定义一些变量,如上一次的误差值和输出控制量等。

因此,在使用增量式PID控制算法之前,需要先初始化这些变量。

//定义变量double set_point=0; //目标值double process_pv=0; //实际值double Kp=1,Ki=1,Kd=1; //PID参数double last_error=0,prev_error=0; //历史误差double output=0, dInput=0; //输出控制量和误差的差值double output_max=100.0,output_min=-100.0; //控制量范围//初始化变量void PID_Init(){last_error = 0;prev_error = 0;dInput = 0;output = 0;}步骤二:控制量计算根据增量式PID控制算法的公式,我们可以计算控制量的值。

51单片机PID算法程序(三)增量式PID控制算法解读

51单片机PID算法程序(三)增量式PID控制算法解读
图1
控制器公式
在实际应用中,可以根据受控对象的特性和控制的性能要求,灵活地采用不同的控制组合,构成
比例(P)控制器
比例+积分(PI)控制器
比例+积分+微分(PID)控制器
式中
或ቤተ መጻሕፍቲ ባይዱ
式中
控制系统中的应用
在单回路控制系统中,由于扰动作用使被控参数偏离给定值,从而产生偏差。自动控制系统的调节单元将来自变送器的测量值与给定值相比较后产生的偏差进行比例、积分、微分(PID)运算,并输出统一标准信号,去控制执行机构的动作,以实现对温度、压力、流量、也为及其他工艺参数的自动控制。
T ——采样周期。
如果采样周期足够小,则(2-4)的近似计算可以获得足够精确的结果,离散控制过程与连续过程十分接近。
51单片机PID算法程序(一)PID算法
(原创文章,转载请注明出处/tengjingshu)
比例,积分,微分的线性组合,构成控制量u(t),称为:比例(Proportional)、积分(Integrating)、微分(Differentiation)控制,简称PID控制
(图1,表1)
2)Atmel8-bit AVR Microcontrollers Application Note:AVR221: Discrete PID controller
(图2,图3,图4,图5,表2)
3)使用Ziegler-Nichols方法的自整定控制
/2007-03/200733042815.htm
最好的寻找PID参数的办法是从系统的数学模型出发,从想要的反应来计算参数。很多时候一个详细的数学描述是不存在的,这时候就需要实际地调节PID的参数.
Ziegler-Nichols方法

基于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单片机的红外反射式光电传感器测速机的简易方案设计书
(二)单片机部分
(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系列单片机控制步进电机调速实验

基于51系列单片机控制步进电机调速实验

基于51系列单片机控制步进电机调速实验实验指导书仇国庆编写重庆邮电大学自动化学院自动化专业实验中心2009年2月基于51系列单片机控制步进电机调速实验实验目的及要求:1、熟悉步进电机的工作原理2、熟悉51系列单片机的工作原理及调试方法3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量)4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。

速度设定由键盘设定,步进电机的反馈速度由LED数码管显示。

实验原理:步进电机控制原理一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。

因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。

步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。

由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。

随着数字控制系统的发展,步进电动机的应用将逐渐扩大。

步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机的驱动电路根据控制信号工作,控制信号可以由单片机产生。

电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)图1 是反应式步进电动机结构示意图,它的定子具有均匀分布的六个磁极,磁极上绕有绕组。

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

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

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

基于51单片机的PID调温(热得快)资料

基于51单片机的PID调温(热得快)资料

《自动控制原理》课程设计指导老师:邹恩年级专业:13 自动化 4 班姓名学号(分工) 韩锦澎 201330280107(电路设计) 韦伊玲 201330280219 (程序编写) 徐敏芳 201330280723 (焊接调试) 王可欣 201330280102 (论文)2015年1月7 日1目录1. 系统设计方案......................................................3 1.1 方案一........................................................3 1.2 方案二 .......................................................3 1.3 方案三........................................................3 1.4 方案的比较和确定..............................................3 2.系统硬件部分设计...................................................3 2.1 系统硬件电路图 ...............................................3 2.1.1 单片机 AT89C52 ..........................................4 2.1.2 单片机与 LCD 通信连接 ....................................4 2.1.3 其他电路模块及总电路 .......................................5 3 系统软件部分 .......................................................5 3.1 系统的主流程图如下............................................5 4.温度控制系统 PID 调节...............................................6 4.1 PID 控制传递函数..............................................6 4.2 PID 参数调节方法..............................................6 4.3 PID 参数设定..................................................6 5.实验与调试.........................................................7 6.总论...............................................................8 附 录.............................................................8参 考 文 献.........................................................2421. 系统设计方案1.1 方案一 选用铂电阻温度传感器。

基于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系列单片机直流电机闭环调速实验

51系列单片机直流电机闭环调速实验

指导教师评定成绩:审定成绩:自动化学院综合实验报告综合实验(1):51系列单片机直流电机闭环调速实验——基于Protuse仿真实验平台实现专业:电气工程与自动化班级::学号:时间: 2013.10---2013.12一、设计要求1.设计硬件电路:(1)直流电机采用编码器测速(2)直流电机速度给定采用电位器进行模拟电压给定,0——5V(3)AD转采用12位转换(4)显示采用8位LED,或者LCD1602显示(5)键盘4X4,PID等参数通过键盘设置。

2.软件(1)控制算法:数字PID,参数在线修改。

(2)显示窗口:显示速度的设置值SV、速度的实际值PV。

(3)实际速度值,速度峰值、峰值时间等通过串口上传到上位机(选做)二、实验容直流电机PWM控制系统的主要功能包括:直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小,能够很方便的实现电机的智能控制。

其间,还包括直流电机的直接清零、启动(置数)、暂停、连续功能。

该直流电机系统由以下电路模块组成:振荡器和时钟电路:这部分电路主要由AT89C52、些电容、晶振组成。

设计输入部分:这一模块主要是利用带中断的独立式键盘来实现。

设计控制部分:主要由AT89C52单片机的外部中断扩展电路组成。

设计液晶显示部分由LCD1602液晶显示模块组成。

直流电机PWM控制实现部分:主要由一些二极管、电机和L298直流电机驱动模块组成。

1.主控电路主控型号:AT89C52图2-1 单片机最小系统2.电机驱动电路电机的驱动芯片选用L298N 作为驱动芯片,工作稳定电机驱动信号由单片机提供,信号经过光耦隔离后,通过L298N的输出脚与两个电机相连,L298N部包含4通道逻辑驱动电路,可以方便的驱动两个直流电机,或一个两相步进电机。

L298N 可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7 V电压。

4脚VS接电源电压,VS电压围VIH为+2.5~46 V。

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

编码器输出的A向脉冲接到单片机的外部中断INT0,B向脉冲接到I/O端口P1.0。

当系统工作时,首先要把INT0设置成下降沿触发,并开相应中断。

当有有效脉冲触发中断时,进行中断处理程序,判别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波形应该由P3^3脚输入。

代码实现://定时器0初始化,用来定时10msvoid Init_Timer0(void){TMOD |= 0x01; //使用模式1,16位定时器,且工作在计时模式TH0=(65536-10000)/256; //定时10msTL0=(65536-10000)%6;EA=1; //总中断打开ET0=1; //定时器中断打开TR0=1; //定时器开关打开}// 计数器1初始化,用来统计定时器1计时250ms内PWM波形个数void Init_Timer1(void){TMOD |= 0x50; //使用计数模式1,16位计数器模式TH1=0x00; //给定初值,由0往上计数TL1=0x00;EA=1; //总中断打开ET1=1; //定时器中断打开TR1=1; //定时器开关打开}//定时器0的中断服务子函数,主要完成脉冲个数的读取,实际转速的计算和PID 控制以及控制结//果输出等工作void Timer0_isr(void) interrupt 1{unsigned char count;TH0=(65536-10000)/256; //重新赋值 10msTL0=(65536-10000)%6;count++;if (count==25) //如果达到250ms,则计算一次转速并进行一次控制运算{count=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)使得转速控制达到想要的精度。

试凑法:注意这里参数调节采用实验凑试法,试凑法也有其规律,下面做出讲解:实验凑试法是通过闭环运行或模拟,观察系统的输出结果,然后根据各参数对系统的影响,反复凑试参数,直至出现满意的响应,从而确定PID控制参数。

实验凑试法的整定步骤为"先比例,再积分,最后微分"。

(1)整定比例控制将比例控制作用由小变到大,观察各次响应,直至得到反应快、超调小的响应曲线。

(2)整定积分环节若在比例控制下稳态误差不能满足要求,需加入积分控制。

先将步骤(1)中选择的比例系数减小为原来的50~80%,再将积分时间置一个较大值,观测响应曲线。

然后减小积分时间,加大积分作用,并相应调整比例系数,反复试凑至得到较满意的响应,确定比例和积分的参数。

(3)整定微分环节若经过步骤(2),PI控制只能消除稳态误差,而动态过程不能令人满意,则应加入微分控制,构成PID控制。

先置微分时间TD=0,逐渐加大TD,同时相应地改变比例系数和积分时间,反复试凑至获得满意的控制效果和PID控制参数。

代码实现unsigned int Proportion=8;//比例常数 Proportional Constunsigned int Integral=3;//积分常数 Integral Constunsigned int Derivative=1;//微分常数 Derivative Constunsigned int LastError=0;//Error[-1]unsigned int PrevError=0;//Error[-2]unsigned int Error=0;//Error[0]int Out=0;//outcomeint contr_PID(){Error=expc_speed-real_speed;//计算偏差//进行增量式PID计算Out=Out+Proportion*(Error-LastError)+Integral*Error+Derivative*(Error+PrevError-2*LastError);//进行误差更新PrevError=LastError;LastError=Error;//上下限幅处理if(Out<0)Out=0;//驱动电机的电压不可能小于零,故当输出小于零时,输出应该值为零if(Out>255)Out=255;//DA转换为8位,最大数值为255,故当大于255时,限制为255 return Out;}3.电机驱动:原理:直流有刷电机既可以用模拟电压驱动,又可以用PWM驱动.如果用PWM驱动时,刚刚PID后的输出可以直接对应到PWM高电平持续的时间,PWM周期为T,则低电平对应为T-Out即可,这个实现比较简单。

这里介绍利用DA将数字量Out 转化为模拟电压驱动电机的方法。

模拟电压驱动实现:将数字量转化为模拟量的最常用方法就是使用DA转换。

在一般的使用中我比较喜欢的一款芯片是PCF8591。

它内部集成了4路8位AD转换和1路8位DA转换,与单片机之间使用IIC通信方式。

由于IIC通信只需要SDA 和SCL两根信号线,因此很省IO口,并且一个芯片AD,DA都有了,很方便。

具体的PCF8591资料请参考其datasheet,这里直接给出其封装好的IIC通信代码,使用直接就可以了。

这里面其他的函数不用管,因为它们最终在两个函数中被调用,即write_add()和read_add()中。

前者实现DA转换,有两个参数,第一个参数是控制DA转换对应寄存器地址,取0x40,第二个是要转换的数据,即返回的OUT,使用时直接一句代码:write_add(0x40,OUT)就能将数字信号转换为模拟电压信号。

后者实现AD转换,只有一个参数,就是选择AD转换的4个通道,通过宏定义可以定义出其四个通道:#define AD_IN0 0x40#define AD_IN1 0x41#define AD_IN2 0x42#define AD_IN3 0x43使用时只需要一句代码:dat=read_add(AD_IN2)就能实现将第二个通道的模拟信号转换为数字信号。

代码实现://PCF8591.h#define uchar unsigned char//延时4usvoid delay(void);//iic初始化void init(void);// iic开始信号void start(void) ;// iic停止信号void stop(void) ;// iic应答相当于一个智能的延时函数void respons(void) ;// iic读一个字节数据uchar read_byte(void) ;//iic写一字节数据void write_byte(uchar date) ;// 控制DA转换void write_add(uchar control,uchar date);// 控制AD转换uchar read_add(uchar control) ;//PCF8591.c#include<AD.h>#include<reg52.h> #define PCF8591 0x90 //默认为写,如果为读,则为0x91 sbit SDA=P2^0;sbit SCL=P2^1;//延时4usvoid delay(void){unsigned char i;for(i=1;i>0;i--);} // iic初始化void init(){SDA=1;delay();SCL=1;delay();} // iic开始信号void start(){SDA=1;delay();SCL=1;delay();SDA=0;delay();}// iic停止信号void stop(){SDA=0;delay();SCL=1;delay();SDA=1;delay();} // iic应答相当于一个智能的延时函数void respons(){uchar i;SCL=1;delay();while((SDA==1)&&(i<250))i++;SCL=0;delay();}// iic读一个字节数据uchar read_byte(){uchar i,k;SCL=0;delay();SDA=1;delay();for(i=0;i<8;i++){SCL=1;delay();k=(k<<1)|SDA;//先左移一位,再在最低位接受当前位SCL=0;delay();}return k;} //iic写一字节数据void write_byte(uchar date){uchar i,temp;temp=date;for(i=0;i<8;i++){temp=temp<<1; //左移一位移出的一位在CY中SCL=0; //只有在scl=0时sda能变化值delay();SDA=CY;delay();SCL=1;delay();}SCL=0;delay();SDA=1;delay();}// 控制DA转换void write_add(uchar control,uchar date){start();write_byte(PCF8591);respons();write_byte(control);respons();write_byte(date);respons();stop();}// 控制AD转换uchar read_add(uchar control){uchar date;start();write_byte(PCF8591);respons();write_byte(control);respons();start();write_byte(PCF8591+1);//把最后一位变成1,读数据 respons();date=read_byte();stop();return date;}主函数:主函数中主要是一些初始化工作,还有按键检测和实际转速和期望转速显示。

相关文档
最新文档