根据proteus仿真的pwm电机调速
基于Proteus的直流电机闭环调速系统设计

摘要在工业自动控制系统和各种智能产品中常常会用用电动机进行驱动、传动和控制,而现代智能控制系统中,对电机的控制要求越来越精确和迅速,对环境的适应要求越来越高。
本设计以AT89C51单片机为核心,基于Proteus单片机仿真软件,完成了直流电机的转速自动测量及转速调节功能。
在设计中采用PWM技术和PID控制技术对电机进行控制,并且利用数码管设计的人机界面系统显示转速的设定值及实际值,通过应用PID算法对占空比的计算达到精确调速的目的。
还利用了Visual Basic6.0编程软件编写了一个简单的上位机软件,显示实际转速的变化情况,对PID参数的整定提供依据。
关键词:Proteus,AT89C51,PID,PWM调速,Visual Basic 6.0目录第一章绪论 (1)1.1 直流电机闭环调速系统背景 (1)1.2 本设计实现的基本功能 (1)1.3设计目的及意义 (1)第二章总体规划 (2)2.1 直流电机控制原理及特点 (2)2.2 直流电机调速控制方式选择 (2)2.3 PWM脉宽调制方式 (3)2.4 电机实际转速的获取 (3)2.5总体设计框图 (4)2.6 上位机界面设计 (4)第三章硬件设计 (5)3.1 AT89C52芯片介绍 (6)3.2 电机驱动电路设计 (7)3.3 按键模块设计 (7)3.4 数码管显示模块设计 (8)3.5 串口电路设计 (8)第四章软件设计 (9)4.1 主程序 (9)4.2 定时器0中断服务程序 (10)4.3 PID控制输出程序 (10)第五章硬件与软件联合调试5.1 运行时速度设定值与实际值 (12)5.2 运行时直流电机转动情况 (12)5.3 运行时上位机运行情况 (12)参考文献 (13)致谢 (14)附录 (15)第一章绪论1.1直流电机闭环调速系统背景对直流电机转速的控制即可采用开环控制,也可采用闭环控制。
与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差率(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范围可以大大提高。
基于Proteus的单片机PWM直流电机速度控制系统设计

5
高继 宁 , 赵建平.孙郁 芝肾病临证经验集 [ M] .北京 : 科 学 出版 社 ,2 0 1 1 .2 3 4 .
究 。E m a i l :1 6 3 q z j @1 6 3 . C O n。 r
第 3期
2 3
4
朱
毛 :益 肾活血方治疗糖尿病 肾病 6 0例 临床 观察
・7 9・
58 6. 王 吉耀. 内科学 [ M] .北京 :人 民卫生 出版社 ,2 0 0 5 .
本 方案 以 A T 8 9 C 5 1单 片机 为 控制 器 ,将 单 片 机产 生 的控制 信号加在 电机 驱动 H 模块 I 2 9 8芯 片
就是对脉冲的宽度进行调制的技术。P WM控制技
收 稿 日期 :2 0 1 3—5—1 2
通讯作者 :乔志杰 ( 1 9 8 3一) ,男,安徽 电子信 息职 业技术 学院 ,讲师 ,工学硕士,主要从事电气 自动化方 面的教 学与研
脉宽 调 制 ( P u l s e Wi d t h Mo d u l a t i o n , P WM)
图 1 周期性 P W M 矩 形 脉 冲
: ,
若 令 : 每
则上式可化为 :U o = O / × U( u为脉 冲幅值 ) O t 即为 占空 比,由上式可知 ,要改变直 流输 出电压的大小 ,可以通过改变脉冲幅值 和占空 比 来实现 ,实际应用 中脉冲幅值通常是不变 的, 所 以可 以通过 控 制 占空 比 的大 小 实 现 直 流输 出 电压在 0~U之 间 的有 效控制 ,也就 是改 变 电机 电 枢 ( 定 子 ) 电压 的 接 通 和 断 开 的 时 间 比 ( 占空 比) 以达到变压 目的,从而利用 P WM控制技术实 现对直 流 电机 转速 的调节 。 3系统 设计 3 . 1总体 方案 的确定
基于Proteus的直流电机PWM调速系统研究

V0 1 . 2 1
No . 1 5
电子设 计 工程
El e c t r o ni c De s i g n En g i n e e
2 0 1 3年 8月
Au g .2 01 3
基于 P r o t e u s的直 流 电机 P WM 调 速 系统研 究
Y U A N Z h a n - j u n
( D e p a r t m e n t o fE l e c t r o n i c s , S h a a n x i I n s t i t u t e fI o n t e r n a t i o n a l T r a d e&C o mm e r c e , X i a n y a n g 7 1 2 46 0 , C h i n a )
d e b u g g i n g i s c o mp l e t e d b y u s i n g P r o t e u s s o f t wa r e . he T e x p e r i me n t a l r e s u l t s s h o w t h a t t h i s P W M r e g u l a t i n g s p e e d s y s t e m o f DC
设计方案 。 系统 以 A T 8 9 S 5 1单 片机 为 核 心 , 利 用 AD C 0 8 0 8采样 直 流 电机 占空 比设 定值 . 运 用脉 宽调 制 技 术 控 制 P wM 波输 出占空比 o . r , 完 成 直 流 电机 的 转 速 调 节 。 利用P r o t e u s软 件 进 行 了仿 真 调 试 , 结果表明所设计的直流电机 P WM 调 速 系 统 具 有 较 高 的控 制 精 度 和 较 快 的 动 态 响 应 速 度 ; 并且 P r o t e u s 仿 真技术的运 用, 可 有 效 地 降 低 系统 开发 成 本 , 缩
PROTUES课程设计-直流电动机调速器-单片机89C51-Keil---Proteus

1 引言随着微电子技术的不断发展与进步,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
在现代工业中,直流电动机作为电能转换的传动装置,被广泛应用于机械、冶金、石油、化工、国防等工业部门中。
直流电动机是将直流电能转换为机械能的电动机。
因其良好的调速性能而在电力拖动中得到广泛应用。
随着对生产工艺、产品质量的要求不断提高和产量的增长,越来越多的生产机械要求能实现自动调速。
直流调速系统的发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术和微机应用技术的最新发展成就。
正是这些技术的进步使直流调速系统发生翻天覆地的变化。
其中电机的控制部分已经由模拟控制逐渐让位于以单片机为主的微处理器控制,形成数字与模拟的混合控制系统和纯数字控制系统,并向全数字控制方向快速发展。
本文设计了用DAC0808设计直流电动机调速器的基本方案,阐述了该调速器系统的基本结构、工作原理、运行特性及其设计方法。
本系统用电压表测量直流电动机的转速,用MCS-51单片机输出数字信号通过DAC0808芯片实现数模转换,从而输出模拟电压来控制调节直流电动机的转速。
本设计主要研究利用单片机及DAC0808实现数模转换调速,直流电机的控制和测量方法,从而对直流电机的调速控制精度、响应速度以及节约能源等都具有重要意义。
2 设计总体方案2.1 设计要求基本要求:使用AT89C51单片机为核心,使用数模转换元件DAC0808对单片机输出的数字信号进行转换,输出模拟信号驱动直流电动机。
具体要求:在设计中,设计8个按键对应直流电动机的8挡不同转速,按下不同按键时,电动机将以不同速度转动,在8个按键中取一个按键为直流电动机转动停止按键。
8挡不同转速的设定由学生自己决定。
仿真:控制程序在Keil软件中编写,编译,整个控制电路在Proteus仿真软件中连接调示。
基于LabVIEW和Proteus的直流电机调速系统仿真设计

秒的时间内检测到输出脉冲个数为 m, 则可以计算出电机的转
速 n 为:
n=m / pt
(1)
42
基于 LabVIEW 和 Proteus 的直流电机调速系统仿真设计
2.2 单片机软件设计
AT89S52 采 用 C
语言编程, 程序框图
如 3 所示。 系统将采
集到的速度信息传送
给上位机, 上位机软
件 LabVIEW 做 PID
到的数据发送到上位机,P3.0 口和 P3.1 口用于串口连接。
本仿真通过计数编码器 50ms 内输出的脉冲个数来反映 电
机的转动速度,通过 P3.4 口计数编码器产生的脉冲个数。 电路
采用的光电编码器与直流电机一体, 可以看成直流电机和光电
图 2 系统硬件电路图
编码器是同轴传动。 在实际使用中,光电码盘与电动机同轴传动
参考文献 [1]王磊,陶梅.精通 LabVIEW8.0[M].北京:电子工业出版社,2007 [2]雷 振 山 ,魏 丽 ,赵 晨 光 ,等.LabVIEW 高 级 编 程 与 虚 拟 仪 器 工 程 应 用
[M ]. 北 京 :中 国 铁 道 出 版 社 ,2009 [3]郭天祥.51 单片机 C 语言教程[M].北京:电子工业出版社,2009
图 4 LabVIEW 监控界面
3.1 串口模块的参数配置
LabVIEW 中串口通信程序设计是通过 VISA 实现的, 其中
常用的 VISA 模块包括串口初始化、串口写、串口读、串口关闭四
个模块。 使用时,要通过串口初始化模块设置串口通信的串口资
源、波特率、数据位、停止位、奇偶校验等参数,其值应与下位机
Abstract This paper designs a dc motor speed simulation system by LabVIEW and Proteus.Motor's drive and speed's acquisition is finished by single-chip computer,and the hardware circuit is simulated in Proteus,and then realized the communication between MCU and upper computer through virtual serial.LabVIEW implements PID control the received the information from MCU,finally adjust dc motor speed by adjusting PWM waves occupies output the AT89C52 single chip computer,then achieve the purpose of dc motor speed adjustment. Keywords:DC motor,speed governing system,MCU,LabVIEW,virtual serial
直流电机脉宽调制调速在Proteus中的仿真设计

直流电机脉宽调制调速在Proteus中的仿真设计文章设计了以单片机为核心,直流电动机为执行构件,H桥集成电路L298作为电动机驱动电路的脉宽调制调速系统,并在Proteus软件中进行了仿真。
系统采用PWM对直流电机调速,精度高、范围大、设计简单实用、性能可靠,具有一定的应用价值,而使用Proteus仿真软件也方便教学。
标签:PWM;单片机;Proteus;仿真1 引言脉冲宽度调制是利用数字信号输出对模拟电路进行控制的一种技术,广泛应用于功率控制、通信等领域。
脉宽调制就是按一定的规则对脉冲的宽度进行调制。
PWM的优点其一是从处理器到被控系统信号都是数字形式的,无需进行数模转换,其二是相较于模拟控制对噪声抵抗能力的增强,这是将PWM用于通信的主要原因。
在机电控制系统中,广泛采用PWM技术驱动各类模拟器件,如电动机调速、照明调光等。
要实现PWM可采用专用的集成电路,也可使用集成PWM 功能模块的单片机,或者采用程序控制单片机定时器及通用IO口来实现。
2 系统工作原理分析直流电动机是一个模拟器件,而单片机的输出是数字信号。
要实现单片机对直流电动机转速的控制,可以采用數/模转换电路进行D/A转换,也可以采用脉宽调制的方式实现。
本设计以单片机为控制核心并负责脉宽调制任务,按键作为系统输入,改变单片机输出脉冲的宽度实现对直流电动机速度的调节。
脉宽调制的输出就是不同宽度的脉冲,也就是单片机改变输出的高低电平的时间。
单片机的引脚负载能力极弱,需要功率驱动电路对单片机的输出信号进行放大后,再驱动直流电动机。
需要注意的是要让电动机取得不同转速的效果,必须提高调制频率,通常调制频率为1~200kHz,否则实际效果会是转动一短时间再停止一段时间。
3 硬件电路设计本设计采用脉宽调制的方式实现用按键控制直流电动机的转速,电动机从静止到全速运行分为多个档位。
整个系统硬件电路由单片机最小系统、按键、直流电动机及其驱动电路组成。
在本设计中选择AT89S52单片机芯片为系统控制芯片,系统晶振频率为12MHz。
可逆直流PWM调速控制系统的仿真与设计(电源采用直流电源L298N)
摘要直流电机具有良好的启动性能和调速特性,它的特点是启动转矩大,能在宽广的范围内平滑、经济地调速,转速控制容易,调速后效率很高。
本文设计的直流电机调速系统,主要用proteus仿真,实现电机的加减速和正反转以及控制超调量和稳态误差等要求。
采用L298N芯片来设计电机驱动电路。
用LM331来实现电压频率转换。
在仿真中加上PI调节和三角波比较环节来进行直流PWM调速控制系统。
关键词:直流电机;调速控制系统;驱动电路。
目录摘要 (Ⅰ)目录 (Ⅱ)1前言 (1)2设计基本内容 (1)2.1设计题目 (1)2.2主要内容 (1)2.3具体要求 (1)3电路设计 (2)3.1设计基本框图 (2)3.2电机正反转模块 (2)3.3电机加减速模块 (3)3.4驱动电路模块 (3)3.5频电转换模块 (5)3.6PI调节及三角波比较模块 (7)4仿真结果 (7)5总结体会 (9)参考文献 (10)致谢 (11)仿真原理图 (12)1 前言电动机作为最主要的动力源和运动源之一,在生产和生活中占有十分重要的地位。
电动机的调速控制方法过去多用模拟法,随着单片机的产生和发展以及新型自关断元器件的不断涌现,电动机的控制也发生了深刻的变化。
直流电动机控制技术是一项以直流电动机作为机械本体,融入了电力电子技术、微电子技术、单片机控制技术和传感器技术的多学科交叉机电一体化技术。
单片机在电动机控制中的应用使调速系统具有了数值运算、逻辑判断及信息处理的功能。
自从全控型电力电子器件问世以后,就出现了采用全控型的开关功率元件进行脉宽调制的控制方式,形成了脉宽调制变换器-直流电动机调速系统,简称直流脉宽调速系统,或直流PWM调速系统。
PWM系统在很多方面有较大的优越性:主电路线路非常简单,需要用到的功率器件比较少;开关频率比较高,电机损耗及发热都比较少,电流很容易连续,并且谐波少;功率开关器件工作在开关状态,导通损耗比较小,装置效率比较高;低速性能比较好,调速范围比较宽,稳速精度比较高;若与快速响应的电动机配合,则系统频带宽,动态响应比较快,动态抗干扰能力强;直流电源采用不控整流时,电网功率因数比相控整流器高。
基于.PWM的电机调速系统
基于PWM的电机调速系统实验目的:1.学会并掌握可keil软件的使用;2.学会并掌握protues软件的使用;3.通过实验巩固单片机相关知识和检验自身动手能力实验要求:掌握单片机相关知识,利用调PWM占空比的方式来控制直流电机的转速,并且在led数码管上显示转速。
实验设备和仪器:1.89c51单片机最小系统2.直流电机3.示波器实验内容:本次实验设计是由小组五个成员共同完成基于PWM的电机调速系统并完成实物搭建和撰写实验报告。
本次实验小组共提供了两个方案,方案一和方案二,两个方案各自具有优缺点,详细内容会在下面给出。
方案一实验步骤:1.利用protues画电路图,电路图如图1所示:图1:方案一电路图2.根据电路图编写C语言代码:代码如下:#include <reg51.h>sbit PWM=P2^7;sbit CS3=P2^3;sbit CS2=P2^2;sbit CS1=P2^1;sbit CS0=P2^0;sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;unsigned char timer1;unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void Time1Config();void main(void){Time1Config();while(1){if(timer1>100) //PWM周期为100*0.5ms{timer1=0;}if(~key1){if(timer1 <30) //改变30这个值可以改变直流电机的速度{PWM=1;}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[3];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}else if(~key2){if(timer1 <50){PWM=1;else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0; P0=tab[5];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1; P0=tab[0];P0=0xff;}else if(~key3){if(timer1 <80){PWM=1;}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0; P0=tab[8];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1; P0=tab[0];P0=0xff;}else if(~key4){if(timer1 <100){PWM=1;}else{PWM=0;}CS0=0;CS1=1;CS2=0;CS3=0; P0=tab[1];CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[0];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}}}void Time1Config(){TMOD|= 0x10; //设置定时计数器工作方式1为定时器//--定时器赋初始值,12MHZ下定时0.5ms--//TH1 = 0xFE;TL1 = 0x0C;ET1 = 1; //开启定时器1中断EA = 1;TR1 = 1; //开启定时器}void Time1(void) interrupt 3 //3 为定时器1的中断号{TH1 = 0xFE; //重新赋初值TL1 = 0x0C;timer1++;}3.实验仿真,部分仿真结果如图2图3所示:图2:仿真结果图(1)图3:仿真结果图(2)4.实物验证结果如图4所示:图4:方案一实物验证结果实物验证可以明显感觉到电机转速的变化,由于每个开发板不同,相比仿真程序,对实物验证程序进行了略微的修改,最终能达到要求。
基于Proteus仿真的直流电机调速设计
I Q ( ) : ( i — i o ) / K o { ( ) = K I 口 ( , ) 一 ( 1 2 ) + i R = O / K v + i R
一
) 去
( 2 )
是一 常数 , 为 电机工作 时内部线圈产生的反 向 电动 势 , 为 电机 端 电压 , 、 分 别为 速度 常数
Pr o t e u s s i mu l a t i o n s o f t wa r e r e li a z e P W M s p e e d c o n t r o l o f DC mo t o r .
Ke y wo r d s :DC mo t o r ;P W M;i n t e l l i g e n t v e h i c l e ;s i mu l a t i o n; DC s p e e d c o n t r o l
摘要 :为 了实现智 能小 车的精确控制 ,分析 了直 流电机模 型及其参数特性 , 讨 论了直流 电机调速方 法 ,在分析 P WM直流 电机
调速实现原理的基础 上,借助 P r o t e u s 仿真软件 实现直 流电机 的P WM调速 。
关键词 : 直 流电机 ;P WM;智能小车 ;仿真 ;直流调速
和 转矩 常数 。设 电机 的转 矩 、转 轴输 出功 率 效 率
分别为 Q 、P 、叼 ,可构建直流 电机模型为 :
数 特性 以及 P WM调速原 理 ,借助于 P r o t e u s 仿真
实现 P WM直 流 电机调 速 。
1 直 流 电机模 型分 析
直 流 电机 由转子 、定 子 、换 向器 等 组成 ,其 等效模 型如图 1 所 示 。 电 阻 R为 转 子 线 圈 内 阻 ,
Proteus仿真环境下的电机调速系统设计
P r o t e u s仿 真环 境 下 的 电机 调 速 系统设 计
王 欣峰 ,任 淑 萍
( 1 . 山西 大 学 自动化 系 , 山 西 太 原 0 3 0 0 1 3 ;2 . 山 西 大 学 电 子 信 息 工 程 系 , 山西 太 原 0 3 0 0 1 3 )
摘 要 :提 出 了一种 在 P r o t e u s环 境 下 的 直 流 电机 P W M 调 速 系 统 的 设 计 方 法 。AT 8 9 C 5 1单 片 机 产 生 占空 比 可 调的P WM 波 形 ,通 过 L 2 9 8 N 来驱 动 直 流 电机 ,独 立 按 键 用 于 设 定 电 机 的 正 反 转 以 及 电机 的启 停 , 利 用 系 统 自带 的 可 实 现 测 速 功 能 的 电机 组 成 直 流 电机 的 闭 环调 速 系 统 。 关 键 词 :P r o t e u s ;直 流 电机 ;调 速 系 统
L 2 9 8 N 内部 包含 4通 道 逻辑 驱 动 电 路 , 其额 定 工 作 电
流为 1 A, 最大可达 1 . 5 A, 可 直 接 对 电机 进 行 控 制 , 无须 隔离 电路 , 且 可 以驱 动 双 电机 。O UT1与 0UT2 之 间 以及 OUT 3与 O UT 4之 间可 分别 接 电机 。
环控 制 系统 。
图 2 直 流 电机 的驱 动 电路
2 . 2 键 盘 电路 设 计
甲
+
[ L 2 9 8 N J
1 .
由于本设 计 中所 用 按键 不 多 , 因 此选 择 独 立 式 按 键, 如 图 3所示 。通 常 机 械 开关 在 按 键 按 下 时 由于 弹 性作 用不可 能一下 稳 定 地 接通 , 同 时 在按 键 释 放 时 也 不 能一下 断 开 , 为了消 除这 种按 键抖 动带 来 的误 操 作 , 必 须应进 行 键盘 去抖 , 本文 采用 软件 去抖 , 当检 测 到有 键 按下 时 , 调 用 软件 延 时 1 0 ms ~2 0 ms , 如 果 再 次 检
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV OUT,#00H ;启动输出
RETI
;----
;T1中断服务子程序 (脉宽)
;----
INTT1:
CLR TR1 ;脉宽调节结束
MOV OUT,#0FFH ;结束输出
RETI
;----
;10ms延时子程序
;----DELAY:
MOV R6,#50
DELAY1:
MOV R7,#100
#include <REGX51.H>
#define uchar unsigned char
/*****************************************************************************
* TH0和TL0是计数器0的高8位和低8位计数器,计算办法:TL0=(65536-C)%256; *
if (!P1_5)
{
ZKB1--;
ZKB2=100-ZKB1;
}
}
/*对占空比值限定范围*/
if (ZKB1>99) ZKB1=1;
if (ZKB1<1) ZKB1=99;
}
}
/******************************************************
*函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/
SETB EA
SETB ET0
SETB ET1
SETB TR0
LOOP: MOV A,PWM ;
JB INCKEY,LOOP1 ;增加键是否按下?
CALL DELAY ;延时去抖动
JB INCKEY,LOOP1
CJNE A,#0FFH,PWMINC ;是否到最大值?
CALL BEEP_BL ;是,蜂鸣器报警。
PWM EQU 7FH ;PWM赋初始值
OUT EQU P0 ;8个LED灯的接口
INCKEY EQU P1.4 ;K1,PWM值增加键。
DECKEY EQU P1.5 ;K2,PWM值减小键。
BEEP EQU P3.7
;----
ORG 0000H
SJMP START
ORG 000BH
SJMP INTT0
DJNZ R7,$
DJNZ R6,DELAY1
RET
;----
;蜂鸣器响一声子程序
;---
BEEP_BL:
MOV R6,#100
BL1: CALL BL2
CPL BEEP
DJNZ R6,BL1
MOV R5,#25
CALL DELAY2
RET
BL2: MOV R7,#180
BL3: NOP
DJNZ R7,BL3
P1_0=0;
else
P1_0=1;
if (click<=ZKB2)
P1_1=0;
else
P1_1=1;
}
三、proteus仿真图
}
/*中断函数*/
void timer0(void) interrupt 1 using 2
{
static uchar click=0; /*中断次数计数器变量*/
TH0=V_TH0; /*恢复定时器初始值*/
TL0=V_TL0;
++click;
if (click>=100) click=0;
if (click<=ZKB1) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/
{
;
}
}
}
void delay500us(void)
{
int j;
for(j=0;j<57;j++)
{
;
}
}
void beep(void)
{
uchar t;
for(t=0;t<100;t++)
{
delay500us();
FMQ=!FMQ; //产生脉冲
}
FMQ=1; //关闭蜂鸣器
delaynms(300);
SJMP LOOP
PWMINC:
INC PWM ;调节脉宽(脉宽减小)
SJMP LOOP
LOOP1: JB DECKEY,LOOP2 ;减小键是否按下?
CALL DELAY ;延时去抖动
JB DECKEY,LOOP2
CJNE A,#02H,PWMDEC ;是否到最小值?
CALL BEEP_BL ;是,蜂鸣器报警。
ZKB1=50; //占空比初值设定
ZKB2=50; //占空比初值设定
while(1)
{
if(!K5)
{
delaynms(15); //消抖
if(!K5) //确定按键按下
{
beep();
ZKB1++; //增加ZKB1
ZKB2=100-ZKB1; //相应的ZKB2就减少
}
}
if(!K6)
{
delaynms(15); //消抖
void init_sys(void) /*系统初始化函数*/
{
/*定时器初始化*/
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
TR0=1;
ET0=1;
EA=1;
}
//延时
void Delay5Ms(void)
{
unsignempCyc--);
sbit K5=P1^4;
sbit K6=P1^5;
sbit PWM1=P1^0;
sbit PWM2=P1^1;
sbit FMQ=P3^6;
uchar ZKB1,ZKB2;
void delaynms(uint aa)
{
uchar bb;
while(aa--)
{
for(bb=0;bb<115;bb++) //1ms基准延时程序
SJMP LOOP
PWMDEC:
DEC PWM ;调节脉宽(脉宽增加)
LOOP2: SJMP LOOP
;----
;T0中断服务子程序 (频率)
;控制定时器1中断
;----
INTT0:
CLR TR1
MOV TH0,#0FCH ;1ms延时常数
MOV TL0,#066H ;频率调节
MOV TH1,PWM
}
void main(void)
{
TR0=0; //关闭定时器0
TMOD=0x01; //定时器0,工作方式1
TH0=(65526-100)/256;
TL0=(65526-100)%256; //100us即0.01ms中断一次
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器T0
//电机反方向旋转以最高速度
二、内容及要求:
1、设计一个直流电机调速系统,并用单片机实现连接开关和数码显示并将其值输入直流电机调速系统。
2、通过公式及键控实现其直流电机启动、加速、减速和停止等四种形态。
目标:
(1) CPU为8051芯片;
(2) 实验需要4个LED,分别显示启动、加速、减速和停止。
(3) 通过按键开关输入不同的值改变脉冲占空比的控制值从而得到不同的频率脉冲,实现脉冲转变为点评,实现调速功能。
* TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器*
*工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时*
*间为1ms*65536=65.536ms *
******************************************************************************/
TH0=(65526-100)/256;
TL0=(65526-100)%256;
N++;
if(N>100)
N=0;
if(N<=ZKB1)
PWM1=0;
else
PWM1=1;
if(N<=ZKB2)
PWM2=0;
else
PWM2=1;
}
//显现:电机转速到最高后,也就是N为1或99时,再按一下,就变到99或1,
ORG 001BH
SJMP INTT1
ORG 0030H
;----
;主程序
;定时器0工作在模式1,定时器1工作在模式2。
;----
START:
MOV SP,#30H
MOV TMOD,#21H
MOV TH1,PWM ;脉宽调节
MOV TL1,#00H
MOV TH0,#0FCH ;
MOV TL0,#066H ;频率调节
if(!K6) //确定按键按下
{
beep();
ZKB1--; //减少ZKB1
ZKB2=100-ZKB1; //相应的ZKB2增加
}
}
if(ZKB1>99)
ZKB1=1;
if(ZKB1<1)
ZKB1=99;
}
}
void time0(void) interrupt 1
{
static uchar N=0;
直流电机调速资料汇总
一.
使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。
C语言代码:
#include<AT89X52.h>