用户登录
用户注册

分享至

直流电机PWM调速实验报告

  • 作者: 关爱八卦成长滴懂小姐
  • 来源: 数月亮
  • 2019-05-30

直流电机PWM调速实验报告

学 院:

专 业:机械设计制造及其自动化

姓 名:

班 级:

学 号:

指导老师:

直流电机PWM调速实验

一、 实验目的:

1、掌握脉宽调制的方法;

2、用程序实现脉宽调制,并对直流电机进行调速控制

二、 实验设备:

PC机一台,单片机最小系统,驱动板,直流电机,连接导线等

三、 实验原理:

1、 PWM(Pulse Width Modulation)简称脉宽调制。即,通

过改变输出脉冲的占空比,实现对直流电机进行调速控制。

2、 实验线路图:

四、 实验内容:

1、 利用实验时提供的单片机应用系统及直流电机驱动电路板,编制控制程序,实现直流电机PWM调速控制。

2、 连接实验电路,观察PWM调控速度控制,实现的加速、减速等调速控制。

五、 实验步骤:

1、

2、 按系统电路图连线,调试完成; 开启单片机,按下键盘启动按钮,电机正常旋转;

3、

4、 按动键盘加速、减速、正转、反转、停止按键,分别实现预定功能。 实验完成,收拾实验器械,整理。

六、 实验程序:

#include

#define TH0_TL0 (65536-1000)//设定中断的间隔时长

unsigned char count0 = 50;//低电平的占空比

unsigned char count1 = 0;//高电平的占空比

bit Flag = 1;//电机正反转标志位,1正转,0反转

sbitKey_add=P2 ^ 0; //电机减速

sbitKey_dec=P2 ^ 1; //电机加速

sbitKey_turn=P2 ^ 2; //电机换向

sbit PWM1=P2^6;//PWM 通道 1,反转脉冲

sbit PWM2=P2^7;//PWM 通道 2,正转脉冲

unsigned char Time_delay;

/************函数声明**************/

void Delay(unsigned char x);

voidMotor_speed_high(void);

voidMotor_speed_low(void);

voidMotor_turn(void);

void Timer0_init(void);

/****************延时处理**********************/

void Delay(unsigned char x)

{

Time_delay = x;

while(Time_delay != 0);//等待中断,可减少PWM输出时间间隔

}

/*******按键处理加pwm占空比,电机加速**********/

voidMotor_speed_high(void)//

{

if(Key_add==0)

Delay(10);

if(Key_add==0)

{

count0 += 5;

if(count0 >= 100)

{

count0 = 100;}

}

while(!Key_add);//等待键松开}

}

/******按键处理减pwm占空比,电机减速*****/

voidMotor_speed_low(void)

{

if(Key_dec==0)

{Delay(10);

if(Key_dec==0)

{ count0 -= 5;

if(count0

{count0 = 0; }

}

while(!Key_dec );}

}

/************电机正反向控制**************/

voidMotor_turn(void)

{if(Key_turn == 0)

{Delay(10);

if(Key_turn == 0)

{Flag = ~Flag; }

while(!Key_turn);}

/***********定时器0初始化***********/

void Timer0_init(void)

{TMOD=0x01; //定时器0工作于方式1

TH0=TH0_TL0/256;

TL0=TH0_TL0%256;

TR0=1;

ET0=1;

EA=1;

}

/*********主函数********************/

void main(void)

{Timer0_init();

while(1)

{Motor_turn();

Motor_speed_high();

Motor_speed_low();}

}

/**************定时0中断处理******************/

void Timer0_int(void) interrupt 1 using 1

{TR0 = 0;//设置定时器初值期间,关闭定时器

TL0 = TH0_TL0 % 256;

TH0 = TH0_TL0 / 256 ;//定时器装初值

TR0 = 1;

if(Time_delay != 0)//延时函数用

{Time_delay--;

}

if(Flag == 1)//电机正转

{ PWM1 = 0;

if(++count1

{PWM2 = 1;

}

elsePWM2 = 0;

if(count1 >= 100)

{count1=0; }

}

else //电机反转

{PWM2 = 0;

if(++count1

{ PWM1 = 1;

}

else PWM1 = 0;

if(count1 >= 100)

{ count1=0;

}

七、 实验心得:

此次实验,不仅锻炼了我们的独立思考和动手能力。还让我们了解到单片机来实现电机调整有多种途径。相对于其他用硬件或者硬软结合的方法实现对电机进行调整。掌握脉宽调制的方法;学会用程序来实现脉宽调制,并对直流电机进行启动、加速、减速、停止等调速控制。

直流电机PWM-调速实验报告

实验报告

直流电机 PWM 调速实验

一、 实验目的 :

1、掌握脉宽调制的方法;

2、用程序实现脉宽调制,并对直流电机进行调速控制

二、 实验设备:

PC 机一台,单片机最小系统,驱动板,直流电机,连接导线等

三、 实验原理:

1、 PWM(Pulse Width Modulation)简称脉宽调制。即,通 过改变输出脉冲的占空比, 实现对直流电机进行调速控制。

2、 实验线路图:

四、 实验内容:

1、 利用实验时提供的单片机应用系统及直流电机驱动电路板,编制控 制程序,实现直流电机 PWM 调速控制。

2、 连接实验电路, 观察 PWM 调控速度控制, 实现的加速、 减速等调速 控制。

五、 实验步骤:

1、 按系统电路图连线,调试完成;

2、 开启单片机,按下键盘启动按钮,电机正常旋转;

3、 按动键盘加速、 减速、 正转、 反转、 停止按键, 分别实现预定功能。

4、 实验完成,收拾实验器械,整理。

六、 实验程序:

#include

#define TH0_TL0 (65536-1000)//设定中断的间隔时长

unsigned char count0 = 50;//低电平的占空比

unsigned char count1 = 0;//高电平的占空比

bit Flag = 1;//电机正反转标志位 ,1正转, 0反转

sbit Key_add=P2 ^ 0; //电机减速

sbit Key_dec=P2 ^ 1; //电机加速

sbit Key_turn=P2 ^ 2; //电机换向

sbit PWM1=P2^6;//PWM 通道 1,反转脉冲

sbit PWM2=P2^7;//PWM 通道 2,正转脉冲

unsigned char Time_delay;

/************函数声明 **************/

void Delay(unsigned char x);

void Motor_speed_high(void);

void Motor_speed_low(void);

void Motor_turn(void);

void Timer0_init(void);

/****************延时处理 **********************/

void Delay(unsigned char x)

{

Time_delay = x;

while(Time_delay != 0);//等待中断,可减少 PWM 输出时间间隔

}

/*******按键处理加 pwm 占空比,电机加速 **********/

void Motor_speed_high(void)//

{

if(Key_add==0)

Delay(10);

if(Key_add==0)

{

count0 += 5;

if(count0 >= 100)

{

count0 = 100;}

}

while(!Key_add);//等待键松开 }

}

/******按键处理减 pwm 占空比,电机减速 *****/ void Motor_speed_low(void)

{

if(Key_dec==0)

{ Delay(10);

if(Key_dec==0)

{ count0 -= 5;

if(count0 <=>

{count0 = 0; }

}

while(!Key_dec );}

}

/************电机正反向控制 **************/ void Motor_turn(void)

{ if(Key_turn == 0)

{ Delay(10);

if(Key_turn == 0)

{Flag = ~Flag; }

while(!Key_turn);}

/***********定时器 0初始化 ***********/

void Timer0_init(void)

{ TMOD=0x01; //定时器 0工作于方式 1

TH0=TH0_TL0/256;

TL0=TH0_TL0%256;

TR0=1;

ET0=1;

EA=1;

}

/*********主函数 ********************/

void main(void)

{Timer0_init();

while(1)

{ Motor_turn();

Motor_speed_high();

Motor_speed_low();}

}

/**************定时 0中断处理 ******************/ void Timer0_int(void) interrupt 1 using 1

{ TR0 = 0;//设置定时器初值期间,关闭定时器 TL0 = TH0_TL0 % 256;

TH0 = TH0_TL0 / 256 ;//定时器装初值

TR0 = 1;

if(Time_delay != 0)//延时函数用

{Time_delay--;

}

if(Flag == 1)//电机正转

{ PWM1 = 0;

if(++count1 <>

{PWM2 = 1;

}

else PWM2 = 0;

if(count1 >= 100)

{count1=0; }

}

else //电机反转

{PWM2 = 0;

if(++count1 <>

{ PWM1 = 1;

}

else PWM1 = 0;

if(count1 >= 100)

{ count1=0;

}

七、 实验心得:

此次实验,不仅锻炼了我们的独立思考和动手能力。还让我们了解 到单片机来实现电机调整有多种途径。 相对于其他用硬件或者硬软结合的 方法实现对电机进行调整。 掌握脉宽调制的方法; 学会用程序来实现脉宽 调制,并对直流电机进行启动、加速、减速、停止等调速控制。

直流电机PWM波调速的设计与制作实验报告

《单片机原理与应用》课程设计报告

直流电机 PWM 波调速的设计与制作

要求:

一、功能要求

1、实现利用 PWM 波控制直流电机的转速;

2、用数码管显示 PWM 波的输出占空比;

3、用数码管显示直流电机的转速标志;

4、实现对直流电机的速度调制;

二、设计过程要求

1、查阅资料确定设计方案;

2、对设计方案进行仿真验证;

3、选择合适的元器件,搭建电路实验验证效果;

4、画出 PCB 图;

5、书写设计报告;

6、答辩。

三、设计报告要求

设计报告主要包括:题目、内容和要求、总体方案和设计思路、仿真 电路图、软件设计、仿真调试效果、实验测试效果图、 PCB 图、心得体会。

姓名:谭德兵 学号 :1886100112 专业 :电子科学与技术 班级 :10级 01班 成绩:评阅人:

安徽科技学院理学院物电系

一、 实验设计目的

1、掌握脉宽调制的方法;

2、用程序实现脉宽调制,并对直流电机进行调速控制;

3、学习用 LM339内部四个电压比较器产生锯齿波、直流电压、 PWM 脉宽;

4、掌握脉宽调制 PWM 控制模式;

5、掌握电子系统的一般设计方法;

6、培养综合应用所学知识来指导实践的能力;

7、掌握常用元器件的识别和测试,熟悉常用仪表,了解电路调试的基本方法进一步掌 握制版、电路调试等技能。

二、 实验设计设备

单片机开发板,单片机最小系统 ,驱动器,直流电机,连接导线等

三、 实验设计原理

1) 设计总体方案

总体设计模块

1、 STC89C52

本设计运用单片机芯片 STC89C52,通过控制单片机输出引脚 P1.7输出的高低电平的延 时时间长短来达到控制电机的目的 , 运用单片机定时器 /计数器 1对光电编码盘产生的冲进行 计数,将所得到的数值送到 P0口显示。

8051单片机引脚描述

·电源引脚 Vcc 和 Vss : Vcc:电源端,接+5V , Vss :接地端。

·时钟电路引脚 XTAL1和 XTAL2:

·XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外 部 TTL 时钟时,该引脚必须接地。

·XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使 用外部 TTL 时钟时,该引脚为外部时钟的输入端。

·地址锁存允许 ALE :系统扩展时, ALE 用于控制地址锁存器锁存 P0口输出的低 8位地址, 从而实现数据与低位地址的复用。

·外部程序存储器读选通信号 PSEN :PSEN 是外部程序存储器的读选通信号,低电平有效。 ·程序存储器地址允许输入端 EA /VPP :当 EA 为高电平时, CPU 执行片内程序存储器指 令,但当

·PC 中的值超过 0FFFH 时,将自动转向执行片外程序存储器指令。当 EA 为低电平时, CPU 只执行片外程序存储器指令。

·复位信号 RST :该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成

复位操作。

·输入 /输出端口引脚 P0, P1, P2和 P3:

~P0口(P0.0~P0.7) :该端口为漏极开路的 8位准双向口,它为外部低 8位地址线和 8位数 据线复用端口,驱动能力为 8个 LSTTL 负载。

~P1口(P1.0~P1.7) :它是一个内部带上拉电阻的 8位准双向 I/O口, P1口的驱动能力为 4个 LSTTL 负载。

~P2口 (P2.0~P2.7) :它为一个内部带上拉电阻的 8位准双向 I/O口, P2口的驱动能力也为 4个 LSTTL 负载。在访问外部程序存储器时,作为高 8位地址线。

~P3口(P3.0~P3.7) :为内部带上拉电阻的 8位准双向

~I/O口, P3口除了作为一般的 I/O口使用之外,每个引脚都具有第二功能。

2、 驱动电路

(1)、本实验用的是达林顿反相驱动器 ULN2803;

ULN2803: 达林顿反相驱动器。 (元件图 )

ULN2803: 达林顿反相驱动器

八路 NPN 达林顿连接晶体管阵系列特别适用于低辑电平数字电路(诸如 TTL, CMOS 或 PMOS/NMOS)和较高的电流 /电压要求之间的接口,广泛应用于计算机,工业用和 消费类产品中的灯、继电器、打印锤或其它类似负载中。所有器件具有集电极开路输 出和续流箱位二极管, 用于抑制跃变。 ULN2803的设计与标准 TTL 系列兼容, 而 ULN2804最适于 6至 15伏高电平 CMOS 或 PMOS 。

主要特点:

达林顿管驱动器

包含 8个 NPN 达林顿管

高耐压,大电流 器件编号 :ULN2803

封装类型 :AP=DIP18,AFW=SOL18 无铅 /RoHS认证

输出击穿电压 : 50(V) 输出电流 : 500(mA) 输入电阻 :2.7k(Ω) 推荐输入电压 :5(V)

温度范围 :-40℃~+85℃ 包装规格 :AFW:Tape&Reel|

不要超过每个驱动器的电流的限制 [1]

3锁存器连接及数码管显示电路

(1) 、 74HC573锁存器

本实验利用此锁存器控制数码管的位选和段选; 74HC573: 八进制 3 态非反转透明锁存器

74HC573

74HC573引脚图

特性:高性能硅门 CMOS 器件

· SL74HC573 跟 LS/AL573 的管脚一样。器件的输入是和标准 CMOS 输出兼容 的;加上拉电阻,他们能和 LS/ALSTTL 输出兼容。

·当锁存使能端 LE 为高时,这些器件的锁存对于数据是透明

的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被 锁存。

·×\u36755X出能直接接到

CMOS , NMOS 和 TTL 接口上

×\u25805X作电压范围:2.0V~6.0V;;×\u20302X输入电流:1.0uA ×CMOS 器件的高噪声抵抗特性

(2)、数码管显示

本实验用的是 7SEG-MPX6-CC 型号数码管;

数码管的第一位显示的是电机转速标识,第二、三位显示的是 PWM 波的占空比; 4. 按键电路

加速按键、减速按键分别接单片机的 P3.6和 P3.7口以达到控制电机转速的目的; 两按键接到单片机上都是低电平有效;

2) 实验设计思路

(1) PWM 波

PWM(Pulse Width Modulation)简称脉宽调制。即通过改变输出脉冲的占空比,实现 对直流电机进行调速控制。

PWM 一种按规律改变的脉冲序列的脉冲宽度,调节输出量和波形的一种调制方式,常 用的是矩形波 PWM 信号,在控制时需要调节 PWM 波的占空比。

占空比是指高电平(VH )持续时间在一个周期内的百分比。控制电机转速时,占空比 越大,速度越快 , 占空比达到 100%,速度最快。

通过控制单片机上输出不同占空比的 PWM 波信号来控制直流电机的转速。

实验线路图 :

3) 实验元器件

AT89C52、 74HC573锁存器、 ULN2803达林顿反相驱动器、直流电机、

电阻、电源(VCC ) 、数码管(7SEG-MPX6-CC )

四、 实验设计 程序

(一 ) 、 程序流程图

(二) 、程序源代码(C 语言)

#include

#define uchar unsigned char

sbit dula=P2^6; //数码管显示段选 i/0口定义

sbit wela=P2^7; //数码管显示位选 I/O口定义

sbit dianji=P1^7; //控制电机 I/O口定义

sbit jia_key=P3^6; //加速键

sbit jian_key=P3^7; //减速键

uchar num=0,show_num=1,gao_num=1,di_num=3;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管显示数据表 void delay(uchar i) //延时程序

{

uchar j,k;

for(j=i;j>0;j--)

for(k=500;k>0;k--);

}

void display() //数码管显示函数 {

dula=0;

P0=table[show_num];

dula=1;

dula=0;

P0=0xfe;

wela=1;

wela=0;

delay(5);

P0=table[gao_num];

dula=1;

dula=0;

P0=0xfd;

wela=0;

wela=1;

delay(5);

P0=table[di_num];

dula=1;

dula=0;

P0=0xfb;

wela=0;

wela=1;

delay(5);

P0=table[0];

dula=1;

dula=0;

P0=0x3f;

wela=0;

wela=1;

delay(5);

}

void key() //按键检测处理函数

{

if(jia_key==0)

{

delay(5); //消抖

if(jia_key==0)

{

num++; //加速键按下速度标志加 1 if(num==4)

num=3; //已经达到最大 3,则保持 while(jia_key==0); //等待按键松开

}

}

if(jian_key==0)

{

delay(5);

if(jian_key==0)

{

if(num!=0) //减速键按下,速度标志减 1

num--;

else

num=0; //已经达到最小 0,则保持

while(jian_key==0); }

}

}

void dispose() //根据速度标志进行数据处理

{

switch(num)

{

case 0:

show_num=1; //数码管第一位显示数据

gao_num=1; //PWM信号中高电平持续时间标志 1

di_num=3; //PWM信号中低电平持续时间标志 3,此时速度最慢 break;

case 1:

show_num=2;

gao_num=2;

di_num=2;

break;

case 2:

show_num=3;

gao_num=3;

di_num=1;

break;

case 3:

show_num=4;

gao_num=4;

di_num=0; //此时速度最快

break; }

}

void qudong() //控制电机程序

{

uchar i;

if(di_num!=0)

{

for(i=0;i<>

{

dianji=0; //实现 PWM 信号低电平输出

display(); //利用显示函数其延时作用,也不影响数码管

}

}

for(i=0;i<>

{

dianji=1; //实现 PWM 高电平输出

display();

}

}

void main()

{

while(1)

{

dianji=0;

key();

dispose();

qudong();

}

}

五、 实验操作

(1) 、 利用实验时提供的单片机应用系统及直流电机驱动电路板, 编制控制程序 实现直流电机 PWM 调速控制。

(2) 、连接实验电路,观察 PWM 调控速度控制,实现加速、减速调速控制。

实验硬件连接图(ISIS 7 Professional)

在单片机上验证的实物连接图

实验 PCB 图

六、 实验设计 心得体会

通过一学期的单片实验,学到了很多有用的东西。特别是单片机综合实验,让我对单片 机和 c 语言程序设计都有了新的理解。

首先,对 MCS-52单片机的工作原理和具体的功能实现有了一个更高的认识。对于硬件 电路, 以前只是大概了解,实验后, 对单片机的各个端口,寄存器都有了一个比较系统的认 识。 其次,学会了 C 语言的程序编写。 再次,单片机的功能很强大,所能实现的功能并不 仅限于这些实验。单片机还能实现更多更实用的功能,应该学会触类旁通, 举一反三, 在实 验的基础上创新,开发自己的创造力。

最后, 学习单片机实验不仅是学会其电路的工作原理和程序编写, 更要学会一种学习的 方法。对待以后的课程,要有一种细心的态度,就如单片机实验,既要了解硬件电路,知道 每一个元件的工作原理和作用,还要知道程序的流程和基本思路,使所掌握的知识系统化、 体系化。

小直流电机调速系统实验报告

小直流电机调速系统

实验报告

第五组

课程名称 微机原理及应用课程综合作业 学院专业 信息工程卓越工程师 年级班别 2013级2班 学 号 3113002780 学生姓名 黄健鹏

合作者 陈晓明 吴仁伟 指导老师 张巧芬 报告页数 25

2015 年 6 月 30日

1

目录

第一章 绪论........................................................................................................... 3

第二章 设计要求................................................................................................... 3

第三章 设计原理................................................................................................... 3

第四章 程序原理................................................................................................... 4

工作原理概述................................................................................................. 4

第五章 硬件电路................................................................................................... 4

ADC0809: ....................................................................................................... 4

AT89C51 ......................................................................................................... 7

ADC0809与8051单片机的接口设计电路 ............................................... 11

LED数码显示电路设计 .............................................................................. 12

AT89C51与直流电机的连接 ...................................................................... 13

第六章 程序设计................................................................................................. 13

定义符号............................................................................................................... 13

主程序的设计............................................................................................... 14

采样子程序................................................................................................... 15

转换子程序................................................................................................... 16

显示子程序................................................................................................... 17

中断子程序................................................................................................... 18

第七章 仿真与调试............................................................................................. 19

5.1软件介绍................................................................................................. 19

5.2仿真过程................................................................................................. 19

第八章 总结......................................................................................................... 21

附录 程序代码..................................................................................................... 21

2

第一章 绪论

单片微型计算机的诞生是计算机发展史上的一个新的里程碑。近年来,随

着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的

应用更加广泛,尤其是在智能机器人中的应用。直流电动机的起动和调速性能、过

载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调

速控制系统得到了很大的发展。而作为单片嵌入式系统的核心—单片机,正朝着多

功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。

随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种

领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。这

是因为单片机具有很多优点:体积小,功能全,抗干扰能力强,可靠性高,结构合

理,指令丰富,控制功能强,造价低等。所以选用单片机作为控制系统的核心以提

高整个系统的可靠性和可行性。

对直流电机调速器设计的研究,主要实现对电机的控制。本课程设计主要是通过对

电位器的调节实现电机的加速、减速操作。并实现电路的仿真。为实现系统的微机

控制,在设计中,采用了AT89C51单片机作为整个控制系统的控制电路的核心部分,

配以各种显示、驱动模块,实现对电动机转速参数的显示和测量。设计的整个控制

系统,在硬件结构上采用了大量的集成电路模块,大大简化了硬件电路,提高了系

统的稳定性和可靠性,使整个系统的性能得到提高。

第二章 设计要求

以单片机为核心,设计一个小直流电机的调速控制装置。使用ADC0809采样电位器的值,并在显示器上显示,将此信号值作为方波占空比,通过0832芯片输出经放大后控制电机转速。

第三章 设计原理

本题目是以单片机为核心的数字电压表与PWM信号驱动直流电机电路的组合体。 本题目的难点在于如何利用AT89C51内部定时计数器,产生占空比可调的PWM驱动信号。本设计使用定时计数器T0,选择其工作状态l(16位定时计数器,软件载人计数初值)(通过改变软件载入的计数初值实现PWM信号占空比的调节。下面介绍具体过程。

ADC0809采样得到电压信号的数字值addata;初始化T0,使TH0=(256*addata),256(TL0=(addata*256)%256,令输出out=0(因为addata取值为256,而定时计数器为16

位,故在此将其放大256,以实现0~256挡的调节);中断处理,若原来out=0(使TH0=,((256*addata)/256)(TL0=,((addata*256)%256),令输出out=l;若原来out=0(使TH0=(256*addata)/256,TL0=(addata*256)%256,令输出out=0。不断循环执行上述3步,可以实现通过改变输入电压信号来调整PWM占空比。需要注意的是,第3步中用到了按位取

3

反运算,,其功能是为了保证PWM的周期始终稳定在从0x0000计数到0xffff所需的时间上。位运算的执行效率远高于普通十进制的代数运算,应尽量使用。

第四章 程序原理

本设计的硬件电路只要包括最小系统、显示器、控制电路、驱动电路三大部分。最小系统只要是为了使单片机正常工作。控制电路通过操作电位器来控制电机的转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

设计流程图如下:

显示器

AT89S51 电 单片机 机 电位器

工作原理概述

整个系统的工作原理:首先是人为给定电动机转速的电压信号,然后将这个电压信号通过A/D 转换器转换成数字信号后传给单片机。单片机通过中断通信方式将接受的数据先保存起来。然后再对此数据进行处理:要将此二进制数进行转换,先将(00H-FFH )转换成对应的实际数值,接着启动ADC0809开始采样直流电动机的实际速度值,再通过PWM波形发生器来驱动直流电动机,同时通过LED数码管显示出直流电动机的给定速度值和实际速度值。

整个系统设计包括了三个大的部分:A/ D 转换电路部分、D/A转换电路部分、电压显示部分。

第五章 硬件电路

ADC0809:

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1)ADC0809的内部逻辑结构

由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

4

内部结构

(2)(ADC0809引脚结构

ADC0809各脚功能如下:

D7-D0:8位数字量输出引脚。

IN0-IN7:8位模拟量输入引脚。

VCC:+5V工作电压。

GND:地。

REF(+):参考电压正端。

REF(-):参考电压负端。

START:A/D转换启动信号输入端。

ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转换). EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。

CLK:时钟信号输入端(一般为500KHz)。

5

ADC0809对输入模拟量要求:信号单极性,电压范围是0,5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:4条

ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0,IN7上的一路模拟量输入。通道选择表如下表所示。

6

ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE,1,输出转换得到的数据;OE,0,输出数据线呈高阻状态。D7,D0为数字量输出线。

CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(,),VREF(,)为参考电压输入。

2( ADC0809应用说明:

(1)( ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 (2)( 初始化时,使ST和OE信号全为低电平。

(3)( 送要转换的哪一通道的地址到A,B,C端口上。

(4)( 在ST端给出一个至少有100ns宽的正脉冲信号。

(5)( 是否转换完毕,我们根据EOC信号来判断。

(6)( 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

AT89C51

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业

标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。

7

AT89C51 方框图

1(主要特性:

?与MCS-51 兼容

?4K字节可编程闪烁存储器

寿命:1000写/擦循环

8

数据保留时间:10年

?全静态工作:0Hz-24Hz

?三级程序存储器锁定

?128*8位内部RAM

?32可编程I/O线

?两个16位定时器/计数器

?5个中断源

?可编程串行通道

?低功耗的闲置和掉电模式

?片内振荡器和时钟电路

2(管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

口管脚 备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

9

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次

/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

3(振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

4(芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

10

ADC0809与8051单片机的接口设计电路

图3.2控制电路原理图

如图3.1所示,为了简化设计电路,给定转速由一个旋转电位器给定一个0—5V可变模拟电压,通过ADC0809模拟转换器将这一给定0—5V电压转换成对应的数字信号,將这个数字信号作为控制直流电机转速的给定速度值。旋转电位器一端接5V直流电压,另一端接地,可变输出端接ADC0809模拟量输入通道IN0.当电位器输出电压为5V时即给定转速为1500转/分。这样当给定电压在0-5V之间变化时,其转速后的数字信号相当于0-1500转/分。其输出端8个引脚分别连接8051的P0口。

11

LED数码显示电路设计

图3.3 LED数码显示电路

本次设计中要将给定的转速电压,用LED数码管显示出来。LED显示器是由发光二极管构成的字段组成的显示器,有8段和16段管两大类,本次设计采用的是8段数码管。显示器有静态显示和动态显示两种方式。动态显示控制的基本原理是,单片机依次发出段选控制字和对应那一位LED显示器的位选控信号,显示器逐个循环点亮。适当选择扫描速度;利用人眼的“留光”效应,使得看上去好像几位几位显示器在同时显示一样,而在动态扫描显示控制中,同一时刻实际上只要一位LED显示器被点亮。单片机控制系统的接口电路中的LED数码显示器使用的是共阴极接法。共阴极接法的原理:将所有发光二极管的阴极互相连接后接地,每个发光二极管的阳极通过电阻与输入端相连,当阳极端输入高电平时,段发光二极管就导通点亮,当阳极端输入低电平时,段发光二极管就不点亮。设计中采用动态显示,单片机控制采用动态扫描显示。动态显示采用软件法把将要显示的十六进制数转化为相应字符码,所以需要在RAM区中建立一个显示缓冲区。显示缓冲区包含的存储单元个数和系统中的LED显示器的个数相等。而显示缓冲区内包含的存储器单元个数需和系

统中的LED显示器的个数相等。而显示缓冲区的起始地址很重要,它决定了显示缓冲区在RA M 中的位置。显示缓冲区的每个存储单元用于存放相应LED显示管将要显示字符的字型码地址偏移量,所以CPU可以根据这个地址偏移量通过查字形码表找出所显示字符的字形码,以便字形口显示。

12

AT89C51与直流电机的连接

第六章 程序设计

定义符号 先定于相关的字符

LED_0 EQU 40H ;定义符号LED_0代表40H LED_1 EQU 41H ;定义符号LED_1代表41H LED_2 EQU 42H ;定义符号LED_2代表42H LED_3 EQU 43H ;定义符号LED_3代表43H BIAOZHI EQU 44H ;定义符号BIAOZHI代表44H ADC EQU 35H ;定义符号ADC代表35H ST BIT P3.0 ;定义符号ST代表P3.0端口

OE BIT P3.1 ;定义符号OE代表P3.1端口

EOC BIT P3.2 ;定义符号EOC代表P3.2端口 PWM BIT P3.7 ;定义符号PWM代表P3.7端口

13

主程序的设计

主程序

赋初值

开启外部中断TO

等待T0中断

;主程序开始

MAIN:

MOV LED_0,#00H;给LED_0赋初值00H MOV LED_1,#00H;给LED_1赋初值00H MOV LED_2,#00H;给LED_2赋初值00H MOV LED_3,#00H;给LED_3赋初值00H MOV BIAOZHI,#1 ;给BIAOZHI赋初值1 MOV TMOD,#01H;初始化T0定时方式1 MOV TH0,0FFH ;装入定时极短的初值,作用只是第一次启动定时器,进而判断P3.7

端口的电平再做转换

MOV TL0,0F0H

SETB P3.7 ;置P3.7高电平

SETB EA ;开总中断

SETB IT0 ;外部中断0触发方式选择位 SETB EX0 ;外部中断0中断允许位

SETB ET0 ;T0溢出中断允许位

SETB TR0 ;启动T0

14

采样子程序

采样子程序开始

启动ADC

延时

N

A/D是否完成,

Y N

采样是否完成,

Y

返回

;以下START0程序段为读取通道0信息并转换并显示程序段

START0:

MOV DPTR,#7FF8H;指向通道0

MOVX @DPTR,A;读取转换数值

CLR ST;此语句到第三条语句为启动A/D转换

SETB ST ;ST置高电平

CLR ST ;清零ST

JNB EOC, $ ;查询A/D转换是否结束

SETB OE;允许输出

MOVX A,@DPTR;读取转换数据开始转化为工程量

MOV ADC, A; A/D转换结果存入ADC也即35H单元中

CLR OE ;关闭输出

LCALL WAIT;调用转换

LCALL DISP;调用显示

LJMP START0

15

转换子程序 ;以下为把通道0读取到的数据转换成BCD码 WAIT: ;A/D转换数据转BCD码

MOV A, ADC ;把读取到的数据赋值给累加器A MOV B, #51 ;B赋值51

DIV AB ;A除B,商赋值给A,余数给B MOV LED_3, A;整数位存入LED_3也即33H单元中 MOV A, B ;B的值传给A

CLR F0 ;清零F0

SUBB A,#1AH ;A和1AH相减

MOV F0,C

MOV A,#10

MUL AB ;AB相乘

MOV B,#51

DIV AB ;A除B,商赋值给A,余数给B JB F0,BCD1

ADD A,#5

BCD1:

MOV LED_2, A;小数点后第一位存入LED_2也即32H单元中

MOV A, B

CLR F0

SUBB A,#1AH

MOV F0,C

MOV A,#10

MUL AB

MOV B,#51

DIV AB

JB F0,BCD2

ADD A,#5

BCD2:

MOV LED_1,A;小数点后第二位存入LED_1即31H单元中

MOV A, B

CLR F0

SUBB A,#1AH

MOV F0,C

MOV A,#10

MUL AB

MOV B,#51

DIV AB

JB F0,BCD3

ADD A,#5

BCD3:

MOV LED_0,A;小数点后第三位存入LED_0即30H单元中

16

LCALL DISP

RET

显示子程序

DISP: ;显示

MOV DPTR,#TABLE ;指针指向表首地址 MOV A, LED_0

MOVC A, @A+DPTR;查询小数点后第三位段码 CLR P2.0 ;置零P2.0

MOV P1, A;显示小数点后第三位 LCALL DELAY ;调用延时子程序 SETB P2.0 ;置P2.0高电平

MOV A, LED_1

MOVC A,@A+DPTR;查询小数点后第二位段码 CLR P2.1 ;置零P2.1

MOV P1, A ;显示小数点后第二位 LCALL DELAY ;调用延时子程序 SETB P2.1 ;置P2.1高电平

MOV A, LED_2

MOVC A,@A+DPTR;查询小数点后第一位段; CLR P2.2 ;置零P2.2

MOV P1,A;显示小数点后第一位 LCALL DELAY ;调用延时子程序 SETB P2.2 ;置P2.2高电平

MOV A,LED_3

MOVC A,@A+DPTR;查询整数位段码; CLR P2.3 ;置零P2.3

ORL A,#80H;显示小数点位

MOV P1,A;显示整数位

LCALL DELAY ;调用延时子程序 SETB P2.3 ;置P2.3高电平

RET ;返回

17

中断子程序

中断子程序

清零TF0位

判断biaozhi是否为1,

把P3.7置1,定时 把P3.7置零,定时

返回中断

;T0中断子程序

PWM_0:

CLR TF0 ;清零TF0位

MOV A,BIAOZHI ;判断BIAOZHI是否为1,由下面可知,BIAOZHI为1则P3.7为高

电平,为0则为低电平

JZ PWM_ ;为1则顺序执行,把P3.7置零;为0则跳转PWM_,把P3.7置1

MOV TMOD,#01H;T0定时方式1

MOV TH0,ADC; 装入初值

MOV TL0,ADC

MOV BIAOZHI,#0 ;BIAOZHI赋值0

CPL P3.7 ;P3.7置零

SETB TR0 ;启动T0

RETI ;返回中断

PWM_:

MOV A,ADC

CPL A ;取反

MOV R4,A

;MOV A,R3

;CPL A

;MOV R3,A

MOV TMOD,#01H;T0定时方式1

18

MOV TH0,R4 ;装入初值

MOV TL0,R4

MOV BIAOZHI,#1 ;BIAOZHI赋值1

CPL P3.7 ;取反P3.7

SETB TR0 ;启动T0

RETI ;返回中断

第七章 仿真与调试

5.1软件介绍

(1)Proteus软件介绍

Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。

? 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。 ?具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。? 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。? 支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真

、AVR、PIC。 软件,功能极其强大 ,可仿真51

(2)keil软件介绍

Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通 过一个集成开发环境(uVision)将这些部份组合在一起。

5.2仿真过程

操作如下:

在Protues中画出系统电路图

将程序在keil中编译并生成hex文件。把在keil中编译生成的HEX文件载入AT89C51芯片中,运行仿真。

19

20

第八章 总结

两周的课程设计结束了,通过此次课程设计,使我更加扎实的掌握了有关单片机设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检验修改环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在不懈的努力下,终于迎刃而解。

在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可~ 课程设计不仅是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思路,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。

附录 程序代码

小直流电机控制系统源代码:

LED_0 EQU 40H ;定义符号LED_0代表40H

LED_1 EQU 41H ;定义符号LED_1代表41H

LED_2 EQU 42H ;定义符号LED_2代表42H

LED_3 EQU 43H ;定义符号LED_3代表43H

BIAOZHI EQU 44H ;定义符号BIAOZHI代表44H

ADC EQU 35H ;定义符号ADC代表35H

ST BIT P3.0 ;定义符号ST代表P3.0端口

OE BIT P3.1 ;定义符号OE代表P3.1端口

EOC BIT P3.2 ;定义符号EOC代表P3.2端口

PWM BIT P3.7 ;定义符号PWM代表P3.7端口

ORG 0000H ;主程序入口

LJMP MAIN ;跳转到MAIN

ORG 000BH ;T0中断入口

LJMP PWM_0 ;跳到T0中断子程序PWM_0

;主程序开始

MAIN:

MOV LED_0,#00H;给LED_0赋初值00H

MOV LED_1,#00H;给LED_1赋初值00H

MOV LED_2,#00H;给LED_2赋初值00H

MOV LED_3,#00H;给LED_3赋初值00H

MOV BIAOZHI,#1 ;给BIAOZHI赋初值1

MOV TMOD,#01H;初始化T0定时方式1

21

MOV TH0,0FFH ;装入定时极短的初值,作用只是第一次启动定时器,进而判断P3.7

端口的电平再做转换

MOV TL0,0F0H

SETB P3.7 ;置P3.7高电平

SETB EA ;开总中断

SETB IT0 ;外部中断0触发方式选择位 SETB EX0 ;外部中断0中断允许位

SETB ET0 ;T0溢出中断允许位

SETB TR0 ;启动T0

;以下START0程序段为读取通道0信息并转换并显示程序段

START0:

MOV DPTR,#7FF8H;指向通道0

MOVX @DPTR,A;读取转换数值

CLR ST;此语句到第三条语句为启动A/D转换 SETB ST ;ST置高电平

CLR ST ;清零ST

JNB EOC, $ ;查询A/D转换是否结束

SETB OE;允许输出

MOVX A,@DPTR;读取转换数据开始转化为工程量 MOV ADC, A; A/D转换结果存入ADC也即35H单元中

CLR OE ;关闭输出

LCALL WAIT;调用转换

LCALL DISP;调用显示

LJMP START0

;以下为把通道0读取到的数据转换成BCD码 WAIT: ;A/D转换数据转BCD码

MOV A, ADC ;把读取到的数据赋值给累加器A MOV B, #51 ;B赋值51

DIV AB ;A除B,商赋值给A,余数给B MOV LED_3, A;整数位存入LED_3也即33H单元中 MOV A, B ;B的值传给A

CLR F0 ;清零F0

SUBB A,#1AH ;A和1AH相减

MOV F0,C

MOV A,#10

MUL AB ;AB相乘

MOV B,#51

DIV AB ;A除B,商赋值给A,余数给B JB F0,BCD1

ADD A,#5

BCD1:

MOV LED_2, A;小数点后第一位存入LED_2也即32H单元中

MOV A, B

22

CLR F0

SUBB A,#1AH

MOV F0,C

MOV A,#10

MUL AB

MOV B,#51

DIV AB

JB F0,BCD2

ADD A,#5

BCD2:

MOV LED_1,A;小数点后第二位存入LED_1即31H单元中

MOV A, B

CLR F0

SUBB A,#1AH

MOV F0,C

MOV A,#10

MUL AB

MOV B,#51

DIV AB

JB F0,BCD3

ADD A,#5

BCD3:

MOV LED_0,A;小数点后第三位存入LED_0即30H单元中

LCALL DISP

RET

DISP: ;显示

MOV DPTR,#TABLE ;指针指向表首地址 MOV A, LED_0

MOVC A, @A+DPTR;查询小数点后第三位段码

CLR P2.0 ;置零P2.0

MOV P1, A;显示小数点后第三位 LCALL DELAY ;调用延时子程序 SETB P2.0 ;置P2.0高电平

MOV A, LED_1

MOVC A,@A+DPTR;查询小数点后第二位段码 CLR P2.1 ;置零P2.1

MOV P1, A ;显示小数点后第二位 LCALL DELAY ;调用延时子程序 SETB P2.1 ;置P2.1高电平

MOV A, LED_2

MOVC A,@A+DPTR;查询小数点后第一位段;

23

CLR P2.2 ;置零P2.2

MOV P1,A;显示小数点后第一位 LCALL DELAY ;调用延时子程序 SETB P2.2 ;置P2.2高电平

MOV A,LED_3

MOVC A,@A+DPTR;查询整数位段码; CLR P2.3 ;置零P2.3

ORL A,#80H;显示小数点位

MOV P1,A;显示整数位

LCALL DELAY ;调用延时子程序 SETB P2.3 ;置P2.3高电平

RET ;返回

;T0中断子程序

PWM_0:

CLR TF0 ;清零TF0位

MOV A,BIAOZHI ;判断BIAOZHI是否为1,由下面可知,BIAOZHI为1则P3.7为高

电平,为0则为低电平

JZ PWM_ ;为1则顺序执行,把P3.7置零;为0则跳转PWM_,把P3.7置1

MOV TMOD,#01H;T0定时方式1 MOV TH0,ADC; 装入初值

MOV TL0,ADC

MOV BIAOZHI,#0 ;BIAOZHI赋值0 CPL P3.7 ;P3.7置零

SETB TR0 ;启动T0

RETI ;返回中断

PWM_:

MOV A,ADC

CPL A ;取反

MOV R4,A

;MOV A,R3

;CPL A

;MOV R3,A

MOV TMOD,#01H;T0定时方式1 MOV TH0,R4 ;装入初值

MOV TL0,R4

MOV BIAOZHI,#1 ;BIAOZHI赋值1 CPL P3.7 ;取反P3.7

24

SETB TR0 ;启动T0

RETI ;返回中断

;延时子程序

DELAY:

MOV R6, #10 ;延时5ms

D1: MOV R7, #250

DJNZ R7, $

DJNZ R6, D1

RET

TABLE: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH END

25

PWM控制直流电机调速

绪论

脉宽调制 (PWM)控制技术,是利用半导体开关器件的导通和关断,把直流电压变 成电压脉冲序列, 并控制电压脉冲的宽度和脉冲序列的周期以达到变压变频目的的一 种控制技术。 PWM 控制技术广泛地应用于开关稳压电源,不间断电源 (UPS),以及交 直流电动机传动等领。 本文阐述了 PWM 变频调速系统的基本原理和特点, 并在此基础 上给出了一种基于 Mitel SA866DE三相 PWM 波形发生器和绝缘栅双极功率晶体管 (IGBT)的变频调速设计方案。 直流电动机具有优良的调速特性 , 调速平滑、方便 , 调速范围广 ; 过载能力大 , 能承受频繁的冲击负载 , 可实现频繁的无级快速起动、制动 和反转 ; 能满足生产过程自动化系统各种不同的特殊运行要求,在许多需要调速或快 速正反向的电力拖动系统领域中得到了广泛的应用。

直流电动机的转速调节主要有三种方法:调节电枢供电的电压、 减弱励磁磁通和 改变电枢回路电阻。 针对三种调速方法, 都有各自的特点, 也存在一定的缺陷。 例如 改变电枢回路电阻调速只能实现有级调速, 减弱磁通虽然能够平滑调速, 但这种方法 的调速范围不大, 一般都是配合变压调速使用。 所以, 在直流调速系统中, 都是以变 压调速为主。 其中, 在变压调速系统中, 大体上又可分为可控整流式调速系统和直流 PWM 调速系统两种。直流 PWM 调速系统与可控整流式调速系统相比有下列优点 :由于 PWM 调速系统的开关频率较高 , 仅靠电枢电感的滤波作用就可获得平稳的直流电流 , 低速特性好, 稳速精度高, 调速范围宽, 可达 1:10000左右 ; 同样 , 由于开关频率高 , 快速响应特性好 , 动态抗干扰能力强 , 可以获得很宽的频带 ; 开关器件只工作在开关状 态 , 主电路损耗小 , 装置效率高 ; 直流电源采用不控整流时,电网功率因数比相控整流 器高。

正因为直流 PWM 调速系统有以上的优点, 并且随着电力电子器件开关性能的不断 提高 , 直流脉宽调制 ( PWM) 技术得到了飞速的发展。 传统的模拟和数字电路 PWM 已被 大规模集成电路所取代 , 这就使得数字调制技术成为可能。 目前 , 在该领域中大部分应 用的是数字脉宽调制器与微处理器集为一体的专用控制芯片 , 如 TI 公司生产的 TMS320C24X 系列芯片。 电动机调速系统采用微机实现数字化控制 , 是电气传动发展的 主要方向之一。采用微机控制后 , 整个调速系统实现全数字化 , 结构简单 , 可靠性高 , 操作维护方便 , 电动机稳态运转时转速精度可达到较高水平 , 静动态各项指标均能较 好地满足工业生产中高性能电气传动的要求。

1

1 PWM调速控制概述

1.1直流电机转速控制

1.1.1直流电机转速控制类型

直流电机转速控制可分为励磁控制法与电枢电压控制法。励磁控制法是控制磁 通, 其控制功率小, 低速时受到磁饱和限制, 高速时受到换向火花和换向器结构强度 的限制, 而且由于励磁线圈电感较大动态响应较差, 所以这种控制方法用得很少。 大 多数应用场合都使用电枢电压控制法。 随着电力电子技术的进步, 改变电枢电压可通 过多种途径实现,其中 PWM(脉宽调制 ) 便是常用的改变电枢电压的一种调速方法。

1.1.2直流电动机转速的计算

直流电动机转速 n=(U-IR)/Kφ

其中 U 为电枢端电压, I 为电枢电流, R 为电枢电路总电阻, φ为每极磁通量, K 为 电动机结构参数。

此电路是通过调节电压 U 来改变电机转速的。

此电路电机额定电压为 12V 。

1.2 PWM调速控制的原理

PWM 调速控制的基本原理是按一个固定频率来接通和断开电源,并根据需要改 变一个周期内接通和断开的时间比 (占空比 ) 来改变直流电机电枢上电压的

设电机始终接通电源时,电机转速最大为 n max ,且设占空比为 D=t/T ,则电机的 平均速度 nd 为:

n d = nmax D

由公式可知,当改变占空比 D=t/T 时,就可以得到不同的电机平均速度 Vd ,从 而达到调速的目的。 严格地讲, 平均速度与占空比 D 并不是严格的线性关系, 在一般

2

毕业设计论文 PWM 控制直流电机调速

3

的应用中,可将其近似地看成线性关系。

在直流电机驱动控制电路中, PWM 信号由外部控制电路提供,并经高速光电隔离

电路、电机驱动逻辑与放大电路后,驱动 H 桥下臂 MOSFET 的开关来改变直流电机电

枢上平均电压,从而控制电机的转速,实现直流电机 PWM 调速。

1.3 桥式电路的结构及原理

桥式电路是一种最基本的驱动电路结构。 控制电机正反转的桥式驱动电路有单电

源和双电源两种驱动方式。由于本例采用单电源的驱动方式可以满足实际的应用需

要,所以这里只介绍单电源的驱动方式,其电路如下图 1所示。

图 1 驱动方式

注意, 在上图中的 4个二极管为续流二极管。 如果选用的驱动电路中使用的是晶

体三极管, 那么这 4个二极管是必须使用的, 其主要作用是用以消除电机所产生的反

向电动势,避免该反向电动势对晶体三极管的反向击穿。

单电源方式的桥式驱动电路又称为全桥方式驱动或者 H 桥方式驱动。 电机正转时

三极管 Q1和 Q4导通, 反转时 Q2和 Q3导通, 两种情况下, 加在电机两端的电压极性

相反。 当 4个晶体三极管全部关断时, 电机停转。 若 Q1与 Q3关断, 而 Q2与 Q4同时

导通时, 电机处于短路制动状态, 将在瞬时停止转动。 这 4种状态所对应的 H 桥式驱

动电路状态如下图 2所示。

4

(a ) (b ) (c) (d)

图 2 驱动电路状态

上图 2中,从图(a )到图(d )分别表示 H 桥式驱动电路的开关工作状态的切换,电

机分别处于正转、反转、停机和短路制动 4个状态。

从图中可以看出,该电机的驱动电路可以完成本例的两个基本要求:

通过三极管的放大,保证了电机的驱动电流;

通过桥式电路, 对不同开关的选择, 可以实现单片机的数字电平控制三极管的导通和

截止,从而控制小电机的正反转。

2 SG3525芯片的选择

2.1 SG3525功能简介

SG3525是电流控制型 PWM 控制器,所谓电流控制型脉宽调制器是按照接反馈电 流来调节脉宽的。 在脉宽比较器的输入端直接用流过输出电感线圈的信号与误差放大 器输出信号进行比较, 从而调节占空比使输出的电感峰值电流跟随误差电压变化而变 化。 由于结构上有电压环和电流环双环系统, 因此, 无论开关电源的电压调整率、 负 载调整率和瞬态响应特性都有提高,是目前比较理想的新型控制器。

2.2 引脚功能及特点简介

SG3525芯片内部电路原理图如图

3

图 3 SG3525芯片内部电路原理

1.Inv.input(引脚 1) :误差放大器反向输入端。在闭环系统中,该引脚接反馈信

5

号。在开环系统中,该端与补偿信号输入端(引脚 9)相连,可构成跟随器。 2.Noninv.input(引脚 2) :误差放大器同向输入端。在闭环系统和开环系统中,该 端接给定信号。根据需要,在该端与补偿信号输入端(引脚 9)之间接入不同类型的 反馈网络,可以构成比例、比例积分和积分等类型的调节器。

3.Sync(引脚 3) :振荡器外接同步信号输入端。该端接外部同步脉冲信号可实现与 外电路同步。

4.OSC.Output(引脚 4) :振荡器输出端。

5.CT(引脚 5) :振荡器定时电容接入端。

6.RT(引脚 6):振荡器定时电阻接入端。

7.Discharge(引脚 7) :振荡器放电端。该端与引脚 5之间外接一只放电电阻,构 成放电回路。

8.Soft-Start(引脚 8) :启动电容接入端。该端通常接一只 5 的启动电容。

9.Compensation(引脚 9) :PWM 比较器补偿信号输入端。在该端与引脚 2之间接入 不同类型的反馈网络,可以构成比例、比例积分和积分等类型调节器。

10.Shutdown(引脚 10) :外部关断信号输入端。 该端接高电平时控制器输出被禁止。 该端可与保护电路相连,以实现故障保护。

11.Output A(引脚 11):输出端 A 。引脚 11和引脚 14是两路互补输出端。 12.Ground(引脚 12) :信号地。

13.Vc(引脚 13) :输出级偏置电压接入端。

14.Output B(引脚 14):输出端 B 。引脚 14和引脚 11是两路互补输出端。 15.Vcc(引脚 15):偏置电源接入端。

16.Vref(引脚 16) :基准电源输出端。该端可输出一温度稳定性极好的基准电压。 特点如下:

(1)工作电压范围宽:8— 35V 。

(2) 5.1(1 1.0%) V 微调基准电源。

(3)振荡器工作频率范围宽:100Hz — 400KHz.

(4)具有振荡器外部同步功能。

(5)死区时间可调。

(6)内置启动电路。

(7)具有输入欠电压锁定功能。

(8)具有 PWM 锁存功能,禁止多脉冲。

(9)逐个脉冲关断。

(10)双路输出(灌电流 /拉电流): mA(峰值 ) 。

6

2.3 SG3525的工作原理

SG3525内置了 5.1V 精密基准电源,微调至 1.0%,在误差放大器共模输入电压 范围内,无须外接分压电组。 SG3525还增加了同步功能,可以工作在主从模式,也 可以与外部系统时钟信号同步, 为设计提供了极大的灵活性。 在 CT 引脚和 Discharge 引脚之间加入一个电阻就可以实现对死区时间的调节功能。由于 SG3525内部集成了 启动电路,因此只需要一个外接定时电容。

SG3525的启动接入端(引脚 8)上通常接一个 5 的启动电容。上电过程中,由于电 容两端的电压不能突变, 因此与启动电容接入端相连的 PWM 比较器反向输入端处于低 电平, PWM 比较器输出高电平。此时, PWM 锁存器的输出也为高电平,该高电平通过 两个或非门加到输出晶体管上, 使之无法导通。 只有启动电容充电至其上的电压使引 脚 8处于高电平时, SG3525才开始工作。由于实际中,基准电压通常是接在误差放 大器的同相输入端上, 而输出电压的采样电压则加在误差放大器的反相输入端上。 当 输出电压因输入电压的升高或负载的变化而升高时, 误差放大器的输出将减小, 这将 导致 PWM 比较器输出为正的时间变长, PWM 锁存器输出高电平的时间也变长,因此输 出晶体管的导通时间将最终变短, 从而使输出电压回落到额定值, 实现了稳态。 反之 亦然。

外接关断信号对输出级和启动电路都起作用。当 Shutdown (引脚 10)上的信号 为高电平时, PWM 锁存器将立即动作,禁止 SG3525的输出,同时,启动电容将开始 放电。 如果该高电平持续, 启动电容将充分放电, 直到关断信号结束, 才重新进入启 动过程。注意, Shutdown 引脚不能悬空,应通过接地电阻可靠接地,以防止外部干 扰信号耦合而影响 SG3525的正常工作。

欠电压锁定功能同样作用于输出级和启动电路。如果输入电压过低,在 SG3525的输出被关断同时,启动电容将开始放电。

此外, SG3525还具有以下功能,即无论因为什么原因造成 PWM 脉冲中止,输出 都将被中止,直到下一个时钟信号到来, PWM 锁存器才被复位。

7

3 LMD18200芯片的选择

3.1 LMD18200芯片的主要性能

(1)峰值输出电流高达 6A ,连续输出电流达 3A

(2)工作电压高达 55V

(3) Low RDS(ON) typically 0.3W per switch

(4) TTL/CMOS兼容电平的输入

(5) 无“shoot -through” 电流

(6) 具有温度报警和过热与短路保护功能

(7) 芯片结温达 145℃,结温达 170℃时,芯片关断

(8) 具有良好的抗干扰性

3.2 典型应用

(1) 驱动直流电机、步机电机

(2) 伺服机构系统位置与转速

(3) 应用于机器人控制系统

(4) 应用于数字控制系统

(5) 应用于电脑打印机与绘图仪

3.3 内部结构和引脚说明

LMD18200外形结构如图 4所示,内部电路框图 5所示。它有 11个引脚 , 采用 TO-220和双列直插式封装。

8

图 4 LMD18200外形结构图

图 5 LMD18200内部电路框图

各引脚的功能如下表 1:

9

表 1 引脚的功能

LMD18200逻辑真值表 2

10

表 2 LMD18200逻辑真值

3.4 LMD18200工作原理:

内部集成了四个 DMOS 管,组成一个标准的 H 型驱动桥。通过充电泵电路为上桥臂 的 2个开关管提供栅极控制电压,充电泵电路由一个 300kHz 左右的工作频率。可在 引脚 1、 11外接电容形成第二个充电泵电路, 外接电容越大, 向开关管栅极输入的电 容充电速度越快,电压上升的时间越短,工作频率可以更高。引脚 2、 10接直流电 机电枢,正转时电流的方向应该从引脚 2到引脚 10;反转时电流的方向应该从引脚 10到引脚 2。电流检测输出引脚 8可以接一个对地电阻,通过电阻来输出过流情况。 内部保护电路设置的过电流阈值为 10A ,当超过该值时会自动封锁输出,并周期性的 自动恢复输出。 如果过电流持续时间较长, 过热保护将关闭整个输出。 过热信号还可 通过引脚 9输出,当结温达到 145度时引脚 9有输出信号。

3.5 应用电路及其说明

11

LMD18200典型应用电路如图 6所示。

图 6 LMD18200单极性驱动电动机的实际应用电路

LMD18200提供双极性驱动方式和单极性驱动方式。双极性驱动是指在一个 PWM 周期里, 电动机电枢的电压极性呈正负变化。 双极性可逆系统虽然有低速运行平稳性 的优点, 但也存在着电流波动大, 功率损耗较大的缺点, 尤其是必须增加死区来避免 开关管直通的危险, 限制了开关频率的提高, 因此只用于中小功率直流电动机的控制。 本文中将介绍单极性可逆驱动方式。单极性驱动方式是指在一个 PWM 周期内 , 电动机 电枢只承受单极性的电压。

该应用电路是 Motorola 68332CPU与 LMD18200接口例子,它们组成了一个单极 性驱动直流电机的闭环控制电路。 在这个电路中, PWM 控制信号是通过引脚 5输入的, 而转向信号则通过引脚 3输入。 根据 PWM 控制信号的占空比来决定直流电机的转速和 转向。采用一个增量型光电编码器来反馈电动机的实际位置,输出 AB 两相,检测电 机转速和位置,形成闭环位置反馈,从而达到精确控制电机。

12

4 PWM 直流电机控制电路

4.1 电路特点

本电路能驱动多种型号 12V ~ 30V 的 PMDC 型电机, 能提供 3A 的最大电流, 通过 滑片开关控制电机运转方向。 电位器控制电机速度, 电路简单, 性能可靠。 具有以下 特点:

1 . PWM 可调频率范围为 1 16kHz ~ 35 . 1kH

2 .占空比可调范围为 10 %~ 100 %

3 .负载短路保护功能

4 .电机驱动芯片过热保护功能

5 .未使用单片机,降低了控制电路成本

4.2 控制电路结构原理图

控制电路如图 7所示。 LMD18200 和 SG3525 为电路核心芯片。 SG3525 为脉宽调制 控制器, LMD18200 为电机双向驱动芯片。

13

电 机

图 7 控制电路原理图

电路设计原理:

(1) PWM 信号的产生

PWM 信号由 SG3525芯片产生, 脉冲的频率由该芯片的 5 、 6 脚所接电容 C3 和电阻 R3 参数决定; 调节可调电阻 P2 可以得到 1 . 16kHz ~ 35 . 1kHz 范围

内的 PWM 信号; 调节可调电阻 P1 可以使占空比在 10 %~ 100 %范围内变化, 有

效的控制电机的运转速度。

(2)电机驱动电压的产生

(a) 后级电机驱动芯片使用 LMD18200, 但 SG3525 最大的驱动电流为 400mA , 不能满足 3A 电流的驱动要求 ,因此将 SG3525 输出引脚 11 和 14 分别连接到地

(b) 反馈 R1 接 VREF 端将芯片内 OC 三极管输出转变为 TTL 电平输出

(c) LMD18200 具有过热自动保护功能, 在温度达到 170 ℃ 时, 芯片自动断电, 当温度达到 145 ℃ 时。芯片通过第 9 脚输出过热信号,因未使用其他判断电路或

14

单片机,此引脚输出信号无用,通过 R4 直接拉到高电平

(d) 滑片开关 S1 接到 LMD18200 的 3 脚 DIR 端控制电机运转方向

(e) 芯片 4 脚为强制停机信号输入端,高电平有效,因不存在外围控制电路, 直接将其接地

(f) 芯片的 2 脚和 10 脚为电机驱动引脚。 7 .5V ~ 18V 非稳定电压通过 K2 送入 L7805ACV 产生 5V 直流稳压,电容 C5 、 C8 和 C9 为输入和输出端电源 滤波,减少电源噪声

(g) 电机供电电源通过 K3 输入,滤波电容 C6 和 C7 应根据所选择的供电电 压来选择合适的耐压值, 发光二极管 D2 为电路工作指示灯, 在供电电压为 12V 时, 电阻 R7 推荐值为 1K ,在供电电压为 24 时, R7 的推荐值为 1 . 5K

4.3 实验数据验证

表 3 负载、占空比与输出电压的关系

由表 3的实验数据可以得出随着电阻的调节, 当占空比越大, 其输出电压越大, 则直 流电机转的也就越快。

15

4.4 实验图片

图 8 电路接线

图 9 电路接线

16

结论

时间过得很快, 随着我们大家的共同努力, 我们的项目 PWM 调速控制最终成功完 成。 在此期间我懂得了许多, 我们根据电路原理图采购所需的电子元器件, 最后进行 的是电路焊接与调试,调节可调电阻 P1可以得到不同频率范围的 PWM 信号;调节可 调电阻 P1可以使占空比得到变化,进而有效的控制电机的运转速度,而通过对滑片 开关的控制可以使电机进行不同方向的转动。通过实验数据可以得出当改变电阻时, 在总体情况下,占空比越大输出电压越大,及电机转的越快。在占空比在 50%以下增 大时,输出电压没有得到较明显的升高,但当在后 50%增加时输出电压会有很明显的 增大。

我知道了直流电动机具有优良的调速特性 , 调速平滑、方便 , 调速范围广 ; 过载能 力大 , 能承受频繁的冲击负载 , 可实现频繁的无级快速起动、制动和反转 ; 能满足生产 过程自动化系统各种不同的特殊运行要求, 在许多需要调速或快速正反向的电力拖动 系统领域中得到了广泛的应用。 也知道了 PWM 调速控制的基本原理是按一个固定频率 来接通和断开电源, 并根据需要改变一个周期内接通和断开的时间比 (占空比 ) 来改变 直流电机电枢上电压的

17

致谢

时间如流水,经过了三年的学校生涯我们便迎接了自己的毕业时刻,春梦秋云, 夏酷冬寒,随着我们一轮轮的学习,离校日期已日趋临近。

学习的时刻, 同学们都在刻苦努力着, 为得是充实自己的生活, 充实自己的生命。 在大学的三年时间里, 我对所学的专业知识有了深刻的了解, 我们每天在老师的 指导教育下学习知识, 享受知识给我们带来的快乐。 而这次我们做毕业设计我们离不 开老师们平时的辛勤教导, 让我们对数电, 模电, 电力拖动, 电力电子技术等课程有 了一定的了解, 这为我们做毕业设计奠定了理论基础。 当然我更要感谢我们的毕业设 计指导老师王立凤王老师, 我们在她的带领下对毕业设计有了清晰地认识, 老师向我 们详细的讲解原理图以及在焊接电路时需要注意的问题, 在我们制作毕业设计的过程 中, 老师经常关心我们的进程并且问我们有没有遇到一些棘手的问题。 她总是不厌其 烦地为我们大家分析问题并为我们一次次地调试和修改。

我也要感谢我的父母 , 没有他们平时的教育我就不会对知识有如此的渴望, 没有 他们平时在困难时给我的帮助, 我就不会如此坚持学习。 所以在以后的日子里,我会 更加努力的学习和工作,不辜负父母对我的殷殷期望!

我也要感谢身边的同学, 毕业设计能够顺利完成, 和同学的帮忙也要一定的关系, 在出现问题时候, 能够随时的向身边同学请教。 大家一起探讨给我带来了很大的帮助。 从开始进入课题到毕业设计的顺利完成, 一直都离不开老师 、 同学给我热情的帮 助,在这里请接受我诚挚的谢意 !

谢谢同学们的帮助,谢谢老师的热情指导和帮助!

18

参考文献

1,王艳秋《电机及电力拖动》 化学工业出版社, 2008.01

2,孔凡才《自动控制原理与系统》 上海理工大学出版社

3,唐端海,刘昌珍, 《智能电子技术实践教程》 无锡商业职业技术学院, 2007 4,陈小虎《工厂供电技术》 高等教育出版社, 2005.09

5,马成荣《模拟电路设计与制作》 电子工业出版社, 2007.07

19

转载请注明出处范文大全网 » 直流电机PWM调速实验报告

范文
文秘知识
条据书信
行政公文