基于51单片机的直流电机控制系统设计Word文档格式.docx

上传人:b****2 文档编号:5144066 上传时间:2023-05-04 格式:DOCX 页数:13 大小:87.92KB
下载 相关 举报
基于51单片机的直流电机控制系统设计Word文档格式.docx_第1页
第1页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第2页
第2页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第3页
第3页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第4页
第4页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第5页
第5页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第6页
第6页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第7页
第7页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第8页
第8页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第9页
第9页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第10页
第10页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第11页
第11页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第12页
第12页 / 共13页
基于51单片机的直流电机控制系统设计Word文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的直流电机控制系统设计Word文档格式.docx

《基于51单片机的直流电机控制系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的直流电机控制系统设计Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

基于51单片机的直流电机控制系统设计Word文档格式.docx

第三章系统硬件电路设计

整体框图如下

第四章系统的软件设计

本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和数码管显示等部分的设计。

单片机资源分配如下表:

P0

显示模块接口

键盘中断

P1

键盘模块接口

P1.0/P1.1

PWM电机驱动接口

系统时钟

①PWM脉宽控制:

本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:

/*****************延时函数*************************/

delays()

{

uchari;

for(i=5000;

i>

0;

i--);

}

②键盘中断处理子程序:

采用中断方式,按下键,完成延时去抖动、键码识别、按键功能执行。

要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少一定的占空比。

③显示子程序:

利用数组方式定义显示缓存区,缓存区有8位,分别存放各个数码管要显示的值。

④定时中断处理程序:

采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。

对定时器置初值B1E0H可定时20ms,即系统时钟精度可达0.02s。

当20ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。

3、软件设计中的特点:

对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止则由于当前速度逐渐降至零。

这样有利于保护电机。

键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效率。

第五章:

程序

见附件1

第六章:

PCB图

第七章:

元件清单

元件

数量(个)

直流电机

1

极性电容20uf

1

按键

6

电容22pf

2

At8951

12MHZ晶振

RP1

1

四位一体数码管

Led

2

电阻1k

电阻200K

ULN2003

电阻10K

电源口HDR2x3

74LS04

下载口IDC

第八章:

参考文献

[1] 

孙涵芳徐爱卿.MCS-51/96系列单片机原理及应用[M].北京:

北京航空航天大学出版社,1977..

[2] 

何立民.单片机应用技术选编[M].北京:

北京航空航天大学出版社,2003..

[3] 

史国生.交直流调速系统[M].北京:

化学工业出版社,2002.161-174.

第九章:

心得体会

本次课程设计虽然只有两周,但短短两周我掌握了汇编编程的原理和方法。

熟悉了单片机基本特征和电路设计的方法。

掌握了直流电机的控制方法。

熟练了运用定时器设计PWM波控制直流电机。

总之,收获很多。

附件1

/************头文件*********/

#include<

reg51.h>

absacc.h>

#include<

intrins.h>

/**************************/

/********自定义变量********/

#defineuintunsignedint//自定义变量

#defineucharunsignedchar

chargw,sw,bw,qw;

ucharj;

//定时次数,每次20ms

ucharf=5;

//计数的次数

sbitP10=P1^0;

//PWM输出波形1

sbitP11=P1^1;

//PWM输出波形2

sbitP12=P1^2;

//正反转

sbitP13=P1^3;

//加速

sbitP14=P1^4;

//减速

sbitP15=P1^5;

//停止

sbitP16=P1^6;

//启动

uchark;

uchart;

//脉冲加减

/**************************/*

/*********控制位定义********************/

ucharcodesmg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71};

//程序存储区定义字型码表

chardataled[4]={0x08,0x04,0x02,0x01};

//位码

uintx;

//数码管显示的数值

display();

//数码管显示

delays();

//延时函数

key();

displays();

/*****************************************/

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

main(void)

{

TMOD=0x51;

//T0方式1定时计数T1方式1计数

TH0=0xb1;

//装入初值20MS

TL0=0xe0;

TH1=0x00;

//计数567

TL1=0x00;

TR0=1;

//启动t0

TR1=1;

//启动t1

gw=sw=bw=qw=0;

//数码管初始化

P0=0xc0;

P2=1;

while

(1)//无限循环

{

display();

key();

}

/***************数码管显示****************/

display()

gw=x%10;

//求速度个位值,送到个位显示缓冲区

sw=(x/10)%10;

//求速度十位值,送到十位显示缓冲区

bw=(x/100)%10;

//求速度百位值,送到百位显示缓冲区

qw=x/1000;

//求速度千位值,送到千位显示缓冲区

for(i=0;

i<

4;

P2=led[i];

if(i==0)//显示个位

{

P0=smg[gw];

delays();

}

elseif(i==1)//显示十位

{

P0=smg[sw];

}

elseif(i==2)//显示百位

{

P0=smg[bw];

delays();

}

elseif(i==3)//显示千位

if(k==0)//正转时显示"

三"

P0=0x49;

else

P0=0x71;

//反转时显示"

F"

}

i++;

/*******************************************************/

/************************************************/

/*********t0定时*中断函数*************/

voidt0()interrupt1using2

//重装t0

f--;

if(k==0)

if(f<

t)

P10=1;

else

P10=0;

P11=0;

if(f<

P11=1;

else

P11=0;

P10=0;

if(f==0)

f=5;

}

j++;

if(j==50)

j=0;

x=TH1*256+TL1;

//t1方式1计数,读入计数值

x++;

display();

/****************按键扫描**************/

key()

if(P12==0)//如果按下,

while(!

P12)//去抖动

k=~k;

}

if(P16==0)//启动

while(P16==0);

IE=0x8a;

}

if(P13==0)//加速

while(P13==0);

t++;

if(t>

=5)

t=5;

if(P14==0)//减速

while(P14==0);

t--;

if(t<

1)

t=1;

if(P15==0)//停止

while(P15==0);

EA=0;

}

课程设计成绩评定表

评定项目

内容

满分

评分

总分

学习态度

学习认真,态度端正,遵守纪律。

10

答疑和设计情况

认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。

40

说明书质量

设计方案正确、表达清楚;

设计思路、实验(论证)方法科学合理;

达到课程设计任务书规定的要求;

图、表、文字表达准确规范,上交及时。

回答问题情况

回答问题准确,基本概念清楚,有理有据,有一定深度。

总成绩

采用五级分制:

优、良、中、及格、不及格

指导教师评语:

签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2