基于L298芯片PWM控制直流电机的闭环调速系统(共37页)

上传人:58****5 文档编号:49050007 上传时间:2022-01-17 格式:DOCX 页数:37 大小:744.97KB
返回 下载 相关 举报
基于L298芯片PWM控制直流电机的闭环调速系统(共37页)_第1页
第1页 / 共37页
基于L298芯片PWM控制直流电机的闭环调速系统(共37页)_第2页
第2页 / 共37页
基于L298芯片PWM控制直流电机的闭环调速系统(共37页)_第3页
第3页 / 共37页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上运动控制系统课程设计题 目: 基于L298芯片PWM控制直流电机的闭环调速系统 院系名称: 电气工程学院 专业班级: 自动1302 学生姓名: 张鹏涛 学 号: 9 指导教师: 曹毅 成绩: 指导教师: 日 期 :摘要 近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,为满足生产过程自动化系统各种不同的特殊要求,对直流电机调速提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足实际应用的要求,通过PWM方式控制直流电机调速的方法就应运而生。本论文主要研究了利用MC51单片机控制PWM信号从而实现对电压改变最后控制直流电机进行调速,并且通过单元模块电路分析了整个系统的工作原理。以C语言进行软件编写,通过软件编程对PWM信号占空比进行调节,单片机根据程序进行操作,进一步控制了H桥电路的输入信号,而测速系统把电机转速反馈给单片机通过按键控制其转速,LCD把转速显示出来,从而实现电动机的调速、变向等功能,这种设计方法的电路简单,具有操作简单、非常实用前景和价值。关键词:直流电机;MC51;PWM调速;L298;LCD1602目录专心-专注-专业引言 对直流电机转速的控制方法可分为两类:励磁控制与电枢电压控制。励磁控制调速法是通过控制磁通,从而控制电机转速。这类方法,控制功率小;转速较低时,收到磁饱和的限制;当转速较高时,收到换向火花和换向器结构强度的限制;而且,由于励磁线圈存在较大电感,导致了系统动态响应较差。所以,此法应用较少。电枢电压控制方式也可分为两种:一为调节电压,二为调节电流。过去传统的调速系统是采用模拟电子电路来实现其功能,这种电路优势在于响应快,但是灵活性较差,难易维修。然而单片机作为一种可编程控制器,已经得到成熟的应用。本课题设计是以51系列单片机为控制核心,产生占空比由数字PID算法控制的PWM脉冲信号实现对直流电机转速的控制。同时利用光电编码器将电机转速转换成脉冲信号反馈到单片机中,形成转速闭环控制系统,以达到转速无静差调节。人机界面采用12864LCD显示器显示电机当前的参数、正反转状态、转速以及运行时间,通过44键盘实现:数字PID参数设置、电机正反转、加速、减速、启动、停止。一、调速系统总体设计1.1系统总体设计说明 本文设计了一个直流电机的调速控制系统,以MC51单片机为控制核心产生PWM信号对直流电机的供电电源进行控制从而达到调速目的。采用闭环结构实现转速无静差,以软件编程方式实现数字PID,系统可以实现可逆调速,应具备必要的人机界面可对电机转速进行设置,并可以手动调整控制器的PID参数,具备堵转保护等必要的保护手段。其中总体设计中设计如下模块:PWM产生及控制、功率放大及驱动电路、电机测速、闭环速度反馈电路、PID控制器、速度显示、键盘控制、保护性电路。1.2系统总体设计框图二、调速系统的硬件电路的设计与原理2.1基于单片机的电机控制设计2.1.1单片机简介单片机是指CPU、RAM、ROM、定时器/计数器以及基本输入/输出(I/O)接口电路等部件集成在一块芯片上,这样组成的芯片及微型计算机,称之为单片微型计算机,简称为单片微机或单片机。因为单片机的硬件结构与指令系统都是按工业控制的要求设计制作的,常用作于工业的检测、控制装置中,因此也称作微控制器或嵌入式控制器。 我国目前广泛使用的MCS-51系列单片机,性价比较好,8031、8051都属于51系列。其内部结构包括:中央处理器、只读存储器、随机存取存储器、并行输入/输出口、定时/计时器、中断系统。图2.2-1 MCS-51单片机的结构框图MCS-51系列单片机为哈佛结构,就是程序存储器和数据存储器分开,相互独立。它的性能特点有:1内部程序存储器:4KB;2内部数据存储器:128KB;3外部程序存储器:可扩展到64KB;4外部数据存储器:可扩展到64KB;5输入/输出口线:32根(4个端口,每个端口8根);6定时/计数器:2个16位可编程的定时/计数器;7串行口:全双工,2根;8寄存器区:在内部数据寄存器的128B中划出一部分作为寄存器区,分为4个区,每个区8个通用寄存器;9中断源:5个中断源,2个优先级;10堆栈:最深128B;11布尔处理器:就是处理器,对某些单元的某位做单独处理;12指令系统(系统时钟为12MHz时):大部分指令执行时间为1us,少部分指令执行时间为2us,只有乘、除指令的执行时间为4us。图2.2-2 MCS-51单片机的系统结构框图 MCS-51单片机都采用40脚双列直插式封装,40个引脚中有:2个专用于主电源,2个外接晶振,4跳控制或与其他电源复用的引脚,32个I/O引脚。2.1.2单片机在电机控制方面的应用在单片机控制的电机系统中,单片机的输入信号一般是:用作频率或转速设定的运行指令,用作闭环控制和过电压、过电流保护的电机系统电流、电压反馈量,用于转速、位置闭环控制的电机转速、转角信号,用作缺相或瞬时停电保护的交流电源电压信号等。从计算机输出地信号主要为:交流装置功率半导体元器件的触发信号,用于控制输出电压、电流的频率、幅值和相位信号,电机系统的运行和故障状态指示信号,及上位机或系统的通信信号等。单片机在电机控制系统中实现的主要功能有:逻辑控制功能,运算、调节和控制功能、自动保护功能、故障检测和实时诊断功能。电动机系统采用单片机控制具有的优越性:容易获得高精度的稳态调整性能,可获得优化的控制质量,能方便灵活地实现多种控制策略,提高系统工作的可靠性。2.2电机驱动电路设计2.2.1驱动电路原理介绍在直流电机驱动方面,普遍应用H桥电路来实现对直流电机的调速,如图2.2-1。图2.2-1 H桥驱动电路 由图可知,H桥驱动电路由4个三极管与电机组成,其形状与字母H相似,所以被称为“H桥驱动电路”。若想要让电机运行,需要导通对角的两个三极管,Q1与Q4或Q2与Q3。当Q1与Q4导通时,如图2.2-2。图2.2-2 电机顺时针运行电流从从电源正极流出后,从Q1由左向右流过电机,再从Q4流出回来电源的负极。此时,电流以从左往右的方向流过电机,从而使电机按顺时针方向运转。当Q2与Q3导通时,如图2.2-3。图2.2-3 电机逆时针运行电流从从电源正极流出后,从Q3由右向左流过电机,再从Q2流出回来电源的负极。此时,电流以从右往左的方向过电机,从而使电机按逆时针方向运转。2.2.2驱动电路的专用芯片选用及设计为了使驱动电路更加稳定可靠,并且减少布线,决定采用专用芯片来驱动直流电机工作。L298N是一款由SGS公司生产的直流电机控制芯片。它的内部包含两个H桥的高电压大电流双全桥式驱动器,接受标准TTL逻辑电平信号,可以驱动46V、2A以下的电机。以L298N构造组成的PWM功率放大器的工作形式为单级可逆模式,2个H桥的下侧桥晶体管发射极连接在一起。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA、ENB接控制使能端,控制电机的停转。图2.2-4 L298内部结构图图2.2-5 L298引脚图2.2.3调速系统驱动电路设计及分析本调速系统的驱动电路设计如图2.2-6所示。图2.2-6 L298驱动电路表2.2-1 L298输入输出关系表 根据上表可得,当使能控制端ENA为高电平时,将PWM控制信号送至输入端IN1与IN2,便可以控制电动机的正转与反转。当IN1端为PWM信号,而IN2端为低电平时,电机正转;当IN2端为PWM信号,而IN1端为低电平时,电机反转。当IN1端与IN2端都为低电平时,驱动桥路上的4个晶体管均处于截止状态,这样使正在运行的电机的电枢电流反向,电机便自由停止。当电机正常运行同时,瞬间导通另一组晶体管,将使电机快速停止。电机的在转速上的调节由单片机产生不同占空比的PWM信号来实现。2.3电机转速采集电路设计2.3.1速度采集的原理及方法 本调速系统中由于要将电机当前采样的速度与上次采样的速度进行比较,计算出偏差,然后进行PID运算,因此速度采集电路在整个系统中是不可缺少的。目前在速度采集技术上主要有以下三种方法: 方法一:霍尔集成片。这是由三片霍尔金属板组成的器件,当磁铁正面朝向金属板时,便产生霍尔效应,金属板会产生横向导通的现象。因此,我们只要把磁片安装在电机上,并将霍尔集成片安装在固定轴上,这样便可以将电机的速度以脉冲的形式检测出来。 方法二:测速发电机。将测速发电机与直流电机的转轴相连,当直流电机运转时,带动测速发电机一起转动,此时测速发电机会产生大小取决于电机转速的感应电动势。 方法三:光电编码器。这是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。将上诉三种方法进行比较,由于高性能的霍尔元件较难购置,且成本较高,所以不采用方法一。测速发电机虽然采样精度较高,但是其实际的安装电路较复杂,而且成本也是三者中最高的,所以也不予采用。因此,本课题将采用方法三:光电编码器来作为电机转速采集模块的传感器。光电编码器由光栅盘和光电检测装置组成。光栅盘是在一个一定直径的圆板上等分地裁剪出若干个长方形孔如图2.3-1(a)所示。光电码盘与电机同轴,当电机运转时,光栅盘与电机一起转动,经发光二极管等电子器件组成的检测装置检测的脉冲信号。再通过计算一个周期内光电编码器输出的脉冲数,从而得到当前电机的转速如图2.3-1(b)所示。而且,编码盘还可提供相位相差的两路脉冲信号来判断旋转方向。 (a) (b)图2.3-1 光电编码器原理图2.3.2电机转速采集电路设计图2.3-2 测速模块电路图2.4显示模块设计2.4.1显示模块的原理与方法 为了使调速系统能让人更直观地观察到电机在调速期间的运行状况,所以,显示模块是不可缺少的。 目前在显示模块主要有以下三种方式: 方法一:LED数码管显示器。是由发光二极管作为发光单位制作而成。通过控制输入显示器的段码信号来控制显示器。其显示接口电路分为静态显示和动态显示两种。 方法二:液晶显示器LCD。其分为点阵型与字符型两种,点阵型液晶可显示图形和文字,字符型液晶只能显示字符。将上诉两种方法进行比较,LED数码管显示器虽然在控制方面较为简单,但是占用的资源较多,且无法显示本课题所需的信息量,所以方法一不予采用。液晶显示器LCD因其功耗小、体积小等特点,且符合本课题要求,所以予以采用。LCD显示模块存在多种不同的型号与规格,对于不同的规格和型号的液晶显示器而言,它们的控制方法是一样的。针对本课题的要求,对于所需显示的信息量,在显示模块选择了12864LCD液晶显示器,它主要是由行驱动器、列驱动器以及12864圈点阵液晶显示器组成,既能进行汉字显示(1616)以及图形显示。12864LCD共有20个引脚,其引脚分布如图2.4-1所示,其引脚功能如表2.4-2所示。图2.4-21 12864LCD液晶显示器模块引脚图引脚符 号引 脚 功 能引脚符 号引 脚 功 能1VSS电源地15CS1CS1=1芯片选择左边64*64点2VDD电源正+5V16CS2CS2=1芯片选择右边64*64点3VO液晶显示驱动电源17/RST复位(低电平有效)4RSH:数据输入;L:指令码输入18VEELCD驱动负电源5R/WH:数据读取;L:数据写入19A背光电源(+)6E使能信号。20K背光电源(-)7-14DB0-DB7数据线有些型号的模块19、20脚为空脚表2.4-2 12864LCD液晶显示器模块引脚功能2.4.2显示模块电路设计本调速系统的显示模块电路设计如图2.4-3所示。图2.4-3 12864LCD液晶显示器模块电路图2.5键盘输入模块设计2.5.1键盘输入模块的原理与方法 由于本直流电机调速系统要求通过按键形式对直流电机进行相应控制,包括:正转、反转、加速、减速、停止、启动以及PID控制器的参数设定。所以按键输入模块是本系统的人机界面部分至关重要的一部分。 目前在键盘输入模块主要有以下两种方法: 方法一:独立式键盘。每个键占用一个I/O口。其优点是结构简单、使用方便,缺点是所占用端口资源较多。 方法二:行列式键盘。行列式键盘由行线跟列线组成。以对行线和列线进行扫描的方法来确认键值。其优点是在键盘较多的情况下,占用的I/O口资源较少,缺点是相对于独立式键盘而言,结构较复杂。 将上诉两种方法进行比较,本课题要求完成电机的加速、减速、启动、停止、正反转控制,以及对P、I、D三项参数的设定,所以所需的按键较多。若采用独立式键盘势必占用大量的I/O口资源,所以方法一不予以采用。而行列式恰好满足了本课题的要求,所以采用方法二。2.5.2键盘输入模块电路设计本调速系统的显示模块电路设计如图2.5-1所示。图2.5-1 行列式键盘输入模块电路图三、调速系统数字部分的设计与原理3.1 PID控制器3.1.1 PID控制的原理与方法 对于一个控制系统,通常要求其具有快速性、稳定性的品质和性能指标,本课题为了提高调速系统对直流电机在速度运行的上述要求,将采用转速闭环系统来对本直流电机调速进行优化,并采用数字PID控制器来实现电机的无静差运行。图3.1-1 PID控制器的原理框图增益常数(系数)上升时间过冲建立时间稳态误差Kp减少增大很小变化减小KI减少增大增加消除KD很小变化减小减少很小变化图3.1-2 积分(I)和比例积分(PI)控制阶跃响应3.1.2数字PID算法的实现在单片机的应用中,可选用的控制方法其实很多,但最常用的还是数字PID算法。通过最优控制理论可以证明,PID控制能够满足非常多工业控制对象的控制要求。PID算法也存在多种算法,如位置式PID算法、增量式PID算法等。本课题的直流电机调速系统采用的核心算法是增量式PID算法,它是根据本次采样的数据与设定值进行比较,求出误差,然后通过P、I、D用算,一步步逼近设定值,最终输出运算结果来控制PWM脉冲的占空比来调节直流电机两端的电压值,从而达到控制点自己转速的作用。增量式PID算法公式为:数字增量式PID程序的流程如图3.1-4所示:图3.1-4 数字增量式PID程序流程图3.2数字测速模块3.2.1数字测速模块的设计思想与算法单片机接收从光电编码器的脉冲,然后进行数字运算,计算出当前电机转速,最后将转速值传送给LCD显示与PID控制模块。如图3.2-1所示图3.2-1 数字测速模块设计思想利用单片机的外部中断来记录脉冲数。每当编码器旋转一周记为一个脉冲,由脉冲触发外部中断,累计外部中断的次数,除以编码盘上的总开口数,便可得到编码器旋转地圈数。再利用单片机的定时器,利用软件定时产生1秒的定时时间,在1秒定时时间到达时,所记录的外部中断发生中断的次数,便是电机的转速(r/s)。转速计算公式: 3.2.2数字测速系统流程图 (a) (b) (c)图3.2-2 (a)系统主程序流程图 (b)外部中断流程图 (c)定时器中断流程图3.3 12864LCD显示模块3.3.1 12864LCD显示器的控制方法在前面的章节已经对12864LCD显示器的引脚分布以及引脚功能做了说明,下面我们来介绍下12864LCD显示器的控制方法。读状态D/IR/WEDB7DB6DB5DB4DB3DB2DB1DB0011BUSY0ONOFFRST0000如果BUSY=1,表示系统正忙,不能操作;只有BUSY=0时,才能操作。写指令D/IR/WEDB7DB6DB5DB4DB3DB2DB1DB000下降沿指令写数据D/IR/WEDB7DB6DB5DB4DB3DB2DB1DB010下降沿显示数据将8位数据写入已确定的显示存储器的单元内。操作每完成一个列地址,列地址计数器加1.显示开关设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB0000011111D当D=1时,开显示;当D=0时,关显示。显示起始行设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(063)有上表可知,DB5至DB0为显示起始行的地址,取值在0至3FH(1至64行)之间,它所规定的是显示器屏幕上显示内容的最顶一行所对应的显示存储器的行地址。3.3.LCD显示器的显示子程序流程图 图3.3-2 写入1616汉字程序流程图3.4行列式键盘输入模块3.4.1行列式键盘输入模块的设计思想单片机读取行线和列线当前的电平高低,确认是否有按键按下,然后通过内部运算确定键值,输出键值,用于:改变电机运行状态,12864LCD显示相关参数,设定PID参数。如图3.4-1所示。图3.4-1 键盘输入模块设计思想行列式键盘编程要实现以下三个目标:键的正确判断。先使某行值为“0”。再读取列值,如果读取得到的列值是“0”,则说明所在行和列的交叉处的键被按下。键去抖动。当扫描到有键按下时,延时10ms再判断该键是否仍是按下的,若不是,则将它当做误操作处理。这样可以有效对按键动作进行消抖。键值确定。根据行号、列号建立一个键值数据表,键值存于数据表中,当相应的按键按下时,再从中取键值。通过相应的键值执行其对应的代码。3.4.2 行列式键盘输入模块的程序流程图图3.4-2 行列式键盘程序流程图3.5.PWM调速方法设计3.5.1对PWM控制的介绍 由电机原理可得一下公式: (5-1)在确定的调速系统中,I、R、K及都是确定,则由式(5-1)可知,转速n与直流电机的电枢电压存在一定关系,只要调节点数电压U,就能改变转速n,此法称为调压调速法。由于全空性功率电子器件的逐步发展,PWM控制技术与开关功率电路已经成为主流技术,以其能减小功率器件导通损耗、提高驱动效率等优点,所以在功率应用方面已经基本取代了现行功率放大电路。在PWM控制技术中,让功率器件按一个固定频率工作在“开”与“关”两个状态,即开关饱和和导通状态。通过这种方式来改变公路器件的驱动脉冲信号的通、断的时间,来改变负载两端的平均电压的大小。当这个负载为直流电机时,就实现了电机的调压调速。下面举例说明下,PWM的工作原理,如下图所示:图3.5-1 PWM波形图设T为脉冲的周期,t1为电枢两端高电平时电压为Ud所用的时间,为占空比,得:因此,我们可得电枢两端电压的平均值:若电压幅值,周期,脉宽,则占空比,得:电枢两端的平均电压。3.5.2 PWM脉冲的产生 单片机的PWM口。新一代的单片机增加了许多功能,其中包括PWM功能。在这些单片机中我们只要通过初始化设置,就能使其PWM输出口自动输出PWM脉冲波,只有在改变占空比时CPU才进行干预。本设计采用定时器0设置周期计数,若计数到100归零,主函数中可以根据计数值控制引脚高低电瓶所占比,即控制电机占空比。3.5.3 PWM脉冲产生模块的程序流程图图3.5-6 PWM脉冲程序流程图设计心得本设计对基于L298芯片PWM控制直流电机的闭环调速系统做了一个粗浅的探讨。它是以51系列单片机为控制核心,加上一定量的外围电路,通过L298驱动芯片完成对直流电机的驱动,通过PWM脉冲波完成对直流电机的调速,通过数字PID与测速模块形成速度闭环系统完成对直流电机的无静差调节。并通过人机界面,完成对电机运行的参数设置,且直观地观察电机的运行状态。在整个设计过程中遇到了很多问题,我通过寻找书籍以及网络资料进行改善与解决,该系统还存在不足之处有待改善。鉴于本水平有限,有不对之处,望包涵,多多指教。参考文献1 张强等.基于单片机的电动机控制技术M.北京:中国电力出版社出版2 谷腰欣司等.直流电动机实际应用技巧M.北京:科学出版社出版3刘伟.PWM技术在电机驱动控制中的应用D.合肥:合肥工业大学电子与通信工程专业4 张千帆,寇宝泉. 电机控制集成电路的选用:第五讲直流电机PWM控制芯片UC3637的选用J. 微电机5 余建国.基于单片机的步进电动机调速的控制方法J.产品与技术系统&装置.电器时代20066 薛英杰.用于单相电机调速的单片PWM控制技术A.伺服技术附录1(完整电路图)附录2(程序源码)#include #include #define GPIO_KEY P1 /定义矩阵键盘端口#define uint unsigned intuintduty=0.3; /占空比a(01) int num; sbit MOTOR_1=P25;sbit MOTOR_2=P26;sbit EN_MOTOR=P27;int change=1; /电机正反转 1:正转 2:反转int TarSpd = 0; /真实速度int CurSpd = 0; /测量速度int stop_flag=0; /停车标志位int speed_count = 0; /计数,20次为1sint num_medium; /脉冲个数int num_display; /脉冲个数(使用)uinte0,e1,e2,kp,ki,kd,vpa;void Delay10ms(); /延时10msvoid KeyDown(); /检测按键函数voidmotor_control();char KeyValue=0; /键值 116void main(void)IT0 = 0; /外部中断0采用电平触发方式;边沿触发为1下降沿有效TMOD=0x01;TH0=(65536-20)/256;TL0=(65536-20)%256;TH1=(65536-50000)/256; /50ms TL1=(65536-50000)/256;EA=1;ET0=1;TR0=1; ET1=1;TR1=1;EX0 = 1; /开外部中断0 TarSpd=0.5; /电机速度LCD_Init();LCD_Location(0,0);LCD_PrintStr(基于L298芯片PWM控制直流电机的闭环调速系统);while(1)KeyDown(); /按键扫描switch(KeyValue)case 1:kp+=0.1;break; /pid调节case 2:kp-=0.1;break;case 3: ki+=0.1;break;case 4:ki-=1 ;break;case 5:kd+=1 ;break;case 6:kd-=0.1;break;case 7: TarSpd+=0.1;break;/加速case 8:TarSpd-=0.1;break;/减速case 9: change=1;break; /正转case 10:change=2;break; /反转case 11:stop_flag=1;break;/停车motor_control();if(change=1)if(num=100*duty)MOTOR_1=1;elseMOTOR_1=0;MOTOR_2=0;if(change=2)if(num=100*duty)MOTOR_2=1;elseMOTOR_2=0;MOTOR_1=0;LCD_Location(0,16);LCD_PrintStr(设定速度:);LCD_Location(80,16);LCD_PrintNum(TarSpd,2);LCD_Location(0,32);LCD_PrintStr(当前速度:);LCD_Location(80,32);LCD_PrintNum(CurSpd,2);/* 函 数 名 : KeyDown* 函数功能 : 检测有按键按下并读取键值* 输 入 : 无* 输 出 : 无*/void KeyDown(void)char a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f) /读取按键是否按下Delay10ms(); /延时10ms进行消抖if(GPIO_KEY!=0x0f)/再次检测键盘是否按下 /测试列GPIO_KEY=0X0f;switch(GPIO_KEY)case(0X07):KeyValue=1;break;case(0X0b):KeyValue=2;break;case(0X0d): KeyValue=3;break;case(0X0e):KeyValue=4;break;/测试行GPIO_KEY=0Xf0;switch(GPIO_KEY)case(0X70):KeyValue=KeyValue;break;case(0Xb0):KeyValue=KeyValue+4;break;case(0Xd0): KeyValue=KeyValue+8;break;case(0Xe0):KeyValue=KeyValue+12;break;while(a0;c-) for(b=38;b0;b-) for(a=130;a0;a-);/* 函 数 名 : timer0_isr* 函数功能 : 定时器0-pwm* 输 入 : 无* 输 出 : 无*/void timer0_isr() interrupt 1 /PWM的频率=10KHZTH0=(65536-20)/256;TL0=(65536-20)%256;num+;if(num100)num=1;/* 函 数 名 : timer1_isr* 函数功能 : 定时器0-pwm* 输 入 : 无* 输 出 : 无*/void timer1_isr() interrupt 3 /PWM的频率=10KHZTH0=(65536-50000)/256;TL0=(65536-50000)%256;speed_count+; if(speed_count=20) speed_count=0; num_display=num_medium; num_medium=0; CurSpd=num_medium*0.3;/脉冲与速度比例系数0.3/* 函 数 名 : timer1_isr* 函数功能 : 定时器0-pwm* 输 入 : 无* 输 出 : 无*/void int0() interrupt 0 /边沿触发方式中断函数。每次Key下降沿改变Led状态 num_medium+;/* 函 数 名 : motor_control* 函数功能 : 电机pid控制* 输 入 : 无* 输 出 : 无*/voidmotor_control() if(stop_flag)e2=TarSpd-CurSpd;vpa=Kp*(e2-e1)+Ki*e2+Kd*(e2+e0-2*e1);vpa/=10;e0=e1;e1=e2;duty+=vpa;elseMOTOR_1=0;MOTOR_2=0;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!