单片机课程设计

发布 2022-10-04 21:31:28 阅读 1959

方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件**比较昂贵。

更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。

方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。

方案三:采用由达林顿管组成的h型pwm电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。

这种电路由于工作在管子的饱和截止模式下,效率非常高;h型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的pwm调速技术。

兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此本设计采用方案三。

方案一:双极性工作制。双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。

方案二:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出pwm信号,两口的输出切换和对pwm的占空比调节决定电动机的转向和转速。

由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。

调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生pwm脉冲的软件实现上比较方便。

方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。

方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围,故采用方案二。

总体设计方案的硬件部分详细框图如图一所示。

图。一、整体框图。

电动机pwm驱动模块的电路设计与实现具体电路见下图二。本电路采用的是基于pwm原理的h型桥式驱动电路。

图。二、驱动电路图。

pwm电路由四个大功率晶体管组成h型桥式电路构成,四部分晶体管以对角组合分为两组:根据两个输入端的高低电平决定晶体管的导通和截止。

在实验中的控制系统电压统一为5v电源,因此若达林顿管基极由控制系统直接控制,则控制电压最高为5v,再加上三极管本身压降,加到电动机两端的电压就只有4v左右,严重减弱了电动机的驱动力。电动机驱动部分通过外接12v电源驱动。

在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制。脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉冲频率低则反之。经实验发现,脉冲频率在40hz以上,电动机转动平稳,但加负载后,速度下降明显,低速时甚至会停转;脉冲频率在10hz以下,电动机转动有明显跳动现象。

实验证明,脉冲频率在15hz-30hz时效果最佳。而具体采用的频率可根据个别电动机性能在此范围内调节。通过a输入信号,b输入低电平与a输入低电平,b输入信号分别实现电动机的正转与反转功能。

通过对信号占空比的调整来对车速进行调节。速度分4档控制,从高电平(第4档)到低电平(第0档)中间占空比以20%逐极递减。速度微调方面,可以通过对占空比以1%的跨度逐增或逐减分别实现对速度的逐加或逐减。

原理图说明。

p3口接4*4的矩阵键盘,这里只用到三个,键盘向单片机输入相应控制指令,由单片机通过p1.0与p1.1其中一口输出与转速相应的pwm脉冲,另一口输出低电平,驱动h型桥式电动机控制电路,实现电动机转向与转速的控制。

电动机的运转状态通过led显示出来。led通过p0口控制,电动机所处速度级数码管显示。数码管由p2口控制。

原理图见附图1

图。三、程序流程图。

流程说明。本设计是采用扫描按键的方式来实现电机的启动、正转、反转,通过调节pwm低电平时间来控制电机的速度。通过扫描按键,按键一按下则进入定时器一正转并进行调速,按键二是反转,按键三是停止按键。

当调速时,数码管指示各个档位。

#include <>

#define uchar unsigned char

#define uint unsigned int

sbit key1=p3^0启动正转按键。

sbit key2=p3^1启动反转按键。

sbit key3=p3^2停止按键。

sbit keyon=p3^4;

sbit pwm1=p1^0定义直流电机的控制端口。

sbit pwm2=p1^1;

uchar cycle定义周期

uchar pwm_off,pwm_off1定义低电平时间。

void delay(uint z延时函数。

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--)

void init初始化函数。

tmod=0x11设置两个定时器工作在方式1

th0=(65536-1000)/256;

tl0=(65536-1000)%256定时1ms

th1=(65536-1000)/256;

tl1=(65536-1000)%256定时1ms

ea=1;et0=1打开中断。

et1=1;

p2=0x81数码管显示0

cycle=20时间可以调整这个是20步调整周期20ms

keyon=0

void main主函数。

uchar pwm_num,pwm_num1;

init初始化。

while(1大循环。

if(key1==0)

delay(10按键按下消抖。

if(key1==0)

while(!key1); 按键松手消抖。

tr1=0;

pwm2=1;

tr0=1;

p0=0xfe;

pwm_num按一下key1,就给直流电机换一个档位。

if(pwm_num==5)

pwm_num=0;

switch(pwm_num)

case 0:p2=0x81; pwm_off=0;break; /不同的占空比调节速度。

case 1:p2=0xf3; pwm_off=15;break数码管显示档位变化。

case 2:p2=0x49; pwm_off=12;break;

case 3:p2=0x61; pwm_off=8;break;

case 4:p2=0x33; pwm_off=2;break;

default:break;

delay(10);

if(pwm_off==0)

if(pwm_off1==0)

void time1() interrupt 1

uchar count;

th0=(65536-1000)/256;

tl0=(65536-1000)%256定时1ms

if(count==pwm_off)

count++;

if(count ==cycle)

void time2() interrupt 3

uchar count1;

th1=(65536-1000)/256;

tl1=(65536-1000)%256定时1ms

if(count1==pwm_off1)

count1++;

if(count1 ==cycle)

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...