基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc

上传人:wj 文档编号:729216 上传时间:2023-04-29 格式:DOC 页数:20 大小:576.50KB
下载 相关 举报
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第1页
第1页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第2页
第2页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第3页
第3页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第4页
第4页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第5页
第5页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第6页
第6页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第7页
第7页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第8页
第8页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第9页
第9页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第10页
第10页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第11页
第11页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第12页
第12页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第13页
第13页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第14页
第14页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第15页
第15页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第16页
第16页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第17页
第17页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第18页
第18页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第19页
第19页 / 共20页
基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc

《基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc》由会员分享,可在线阅读,更多相关《基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc(20页珍藏版)》请在冰点文库上搜索。

基于51单片机课程设计报告小直流电机调速控制系统Word文件下载.doc

2.方案论证(规划、选定)------------------------------------5

3.方案说明(设计)-------------------------------------------5

4.硬件方案设计

4.1电位器采集模块----------------------------------------------6

4.1.1电位器-------------------------------------------------6

4.1.2数模转换及显示----------------------------------------6

4.2模数转换与单片机的连接--------------------------------------7

4.3数模转换模块及放大驱动模块----------------------------------9

5.软件方案设计------------------------------------------------9

6.调试

6.1硬件调试---------------------------------------------------10

6.2软件调试---------------------------------------------------10

7.技术小结(结束语)----------------------------------------10

8.参考文献----------------------------------------------------10

9.附录(元件清单、电路图、源程序代码、实物图片等)

9.1元件清单----------------------------------------------------11

9.2电路图------------------------------------------------------11

9.3源程序代码--------------------------------------------------12

1.1课题研究的目的及意义

直流电机具有良好的启动性能和调速特性,虽然各种类型的电机层出不穷,然而在自动控制系统、电子仪器设备等方面,直流电机的应用还是占有突出地位。

直流电机调速平滑,调速围广,过载能力强,可实现频繁的无级快速起动、制动、加减速和正反转。

为了满足生产过程自动化系统化各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,通过PWM方式控制直流电机调速的方法就应用而生。

PWM直流电机调压调速系统拥有需要的功率元件少、线路简单、控制方便、开关频率高、低速性能好。

通过学习并熟练掌握这个调速系统,对我们今后的工作有十分重要的意义。

本课题是以单片机为主要控制核心,针对直流电机的调速系统进行设计,通过本次课程设计培养我们综合运用所学的知识和技能解决问题的本领,巩固和加深多所学知识的理解。

1.2国外电机控制的研究现状及发展

国外主要电气公司如瑞典ABB公司、德国的西门子公司、AEG公司、日本的三菱公司、东芝公司、美国的GE公司、西屋公司等,均已经开发出多个数字直流调速装置,有成熟的系列化、标准化、模板化的应用产品。

我国从20世纪60年代初试制成功第一只硅晶管以来,晶闸管直流调速系统也得到迅速的发展和广泛的应用。

目前晶闸管供电的直流调速系统在我国各部门得到运用。

还有数字直流调速系统的研究,随着PWM技术的发展,我国直流电机调速也正向着脉宽调制方向发展。

1.3PWM调速发展前景

PWM调速作为一项新的调速技术,在西方发达国家已得到广泛应用。

目前,不论是在同步电机调速方面,还是异步电机调速方面,PWM调速是较好的。

1.3.1PWM调速

现代的PWM调速采用的是脉宽调制技术,具体一点就是应用了采样控制理论中的一个重要理论,冲量相等而形状不同的窄脉冲加在具有惯性环节上时,其效果基本相同,冲量即窄脉冲的面积。

2.方案论证(规划、选定)

方案一:

以两块AT89C51单片机进行通信扩展I/O口为控制中心,采集电位器的值通过A/D转换器(ADC0809),单片机控制将其转换成数字量显示在数码管上;

再将这个值作为信号,改变占空比,再通过D/A转换器(DAC0832)转换成模拟量,进而通过LM324运放和ULN2003放大控制直流电机调速。

方案二:

同样以AT89C51单片机为控制中心,但是只用一块单片机。

采用两块595芯片级联来控制数码管的段选与位选,节省I/O口。

采集电位器的值通过A/D转换器(ADC0809),单片机控制将其转换成数字量显示在数码管上;

再将这个值作为信号,改变占空比,再通过D/A转换器(DAC0832)转换成模拟量,进而通过OPAMP放大控制直流电机调速。

经过比较,方案一的硬件电路复杂,而且要用两块单片机比较浪费和麻烦。

最终选定了硬件电路简单,需要在程序上进行一定数据处理的方案二。

3.方案说明(设计)

本设计以AT89C51单片机为控制中心,运用电位器采集信号,然后经过ADC0809进行模拟量到数字量的转换,将此作为占空比并将最终数据传输给单片机,单片机进行进一步处理并将处理的数据传输给DAC0832将数字量转换成模拟量再经过OPAMP放大输出驱动直流电机,并通过电位器值得改变来改变占空比,从而实现直流电机的调速。

整体框图如下:

ADC0808模数转换

两个595级联控制数码管显示数字值

电位器采集信号值

AT89C51

MOROR

OPAMP放大驱动模块

DAC0832数模转换

4.1电位器采集模块

4.1.1电位器

电位器的作用——调节电压(含直流电压与信号电压)和电流的大小。

电位器的电阻体有两个固定端,通过手动调节转轴,改变动触点在电阻体上的位置,则改变了动触点与任一个固定端之间的电阻值,从而改变了电压与电流的大小。

电位器是一种可调的电子元件。

它是由一个电阻体和一个转动或滑动系统组成。

当电阻体的两个固定触电之间外加一个电压时,通过转动或滑动系统改变触点在电阻体上的位置,在动触点与固定触点之间便可得到一个与动触点位置成一定关系的电压。

它大多是用作分压器,得到模拟量

  

4.1.2模数转换及显示

当电位器发生改变时,阻值发生相应的变化,通过下图所示的电路能够使得电位器两端的电压发生相应的改变。

此时的输出信号为模拟量,单片机无法直接读取。

通过ADC0809转换成数字量显示在数码管上(单片机通过MAX2719控制数码管显示)

上图为模数转换模块

上图为数码管显示模块

4.2模数转换与单片机的连接

89C51是一个低功耗,高性能CMOS8位单片机,片含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统,芯片集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C51具有如下特点:

40个引脚,4kBytesFlash片程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,4个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,部集成看门狗计时器片时钟振荡器。

其工作电压在4.5-5V,一般我们选用+5V电压。

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

ADC0809

由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用

A/D转换器进行转换。

三态输出锁存器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

下面为ADC0809与单片机的连接电路:

4.3数模转换模块及放大驱动模块

DAC0832是8分辨率的D/A转换集成芯片。

与微处理器完全兼容。

这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。

D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

OPAMP(LM324)系列由四个独立的,高增益,部频率补偿运算放大器,其中专为从单电源供电的电压围经营

连接图如下:

4.4MAX2719LED驱动显示模块

MAX7219是一种串入、并出的共阴极LED数码管显示驱动器,每片可驱动8位LED数码管显示,与单片机的接口只需3根线,带BCD译码器,及显示测试、移位、锁存器等,输出电流达40mA,外围只需一只亮度调整电阻。

1、 

引脚功能说明 

DIN:

串行数据输入端,CLK的上升沿时数据被载入部16位移位寄存器中 

CLK:

串行时钟输入端,最高工作频率可达10MHz 

LOAD:

片选端,低电平接收DIN端的数据,高电平时数据被所存 

DIG0~7:

LED的位控制端 

A~DP:

LED的端控制端 

DOUT:

 

串行数据输出端,用于芯片的级联 

ISET:

硬件亮度调整端,在该引脚与VCC之间跨接一个电阻,LED的亮度即可通过该电阻来调节,流过LED的段驱动平均电流为流过此电阻电流的100倍,此电阻值围为:

10~80K之间。

2、 

部寄存器说明 

A、 

译码方式选择寄存器 

地址:

09H 

赋值:

FFH 

表示使用MAX7219部的BCD译码器 

00H 

表示不使用MAX7219部的BCD译码器 

B、 

亮度调节寄存器 

0AH 

00H~0FH 

可改变MAX7219所驱动的LED的亮度,其变化围在1/32~31/32之间 

C、 

扫描位数设定寄存器 

0BH 

所有位不显示 

01H~07H 

依次对应于1~8位及前面位全部显示(即需显示的位应为“1”) 

D、 

待机模式开关寄存器 

0CH 

LED全灭 

01H 

LED正常显示 

E、 

显示器测试寄存器 

0FH 

LED为正常显示状态 

LED测试状态,即LED全亮

F、 

8位LED显示数据寄存器 

01H~08H 

5.软件方案设计

首先处理数据的采集程序。

其次对数据进行处理。

最后完善小直流电机的控制函数。

将数模转换模块作为主要程序,将模数及放大驱动模块等小模块写成头文件的形式置于主程序中,这样程序分模块易理解,易操作。

下图为ADC0809工作时序,知道后才能依据时序编写程序

6.调试

6.1硬件调试

先把程序下载到单片机,通电,开始调试。

旋动电位器,改变电位器的值,数码管上显示数值变化,电机转速也有变化,转速的变化与数值大小变化趋势一致。

6.2软件调试

软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除的过程。

正确无误后加载至硬件电路中的单片机,如果发现不理想的效果,在确保硬件无误的情况下,根据需求修改程序,慢慢调试以实现自己想要的效果。

7.技术小结(结束语)

从拿到课题的茫然到渐渐学会接受,开始慢慢自己动手查找资料,询问很多单片机学的好的同学及学长,再到查找到电路的设计,从程序的编写到仿真功能的基本实现,最后历经一路坎坷做出实物,效果和功能基本达到。

感觉真的很辛苦,但同时也很快乐很充实,毕竟收获了许多。

从查资料到确定方案就差不多花了四天时间,在设计过程中不断的发现问题,同时也不断的解决问题,越来越发觉制作实物相比整体设计要难一些,就算仿真完全没错实物运行也会有很多问题。

实际制作过程中会遇到多种多样的问题,刚开始仿真效果总是出不来,要通过不断的测试和实验来解决,最后焊接出来的实物没有问题。

总之,不能粗心大意,做任何事都要细心,要考虑的周全,不能因为一时的失败而丧失信心,从哪里跌倒了要从哪里爬起来,只有有了这样的精神,才会从问题中学到更多的知识,为我以后更好的发展奠定了基础。

学院和老师给予我们这次锻炼的机会,成长的机会,!

8.参考文献

[1]吴黎明主编.单片机原理与接口技术(第二版),科学.

[2]毅刚主编,基于Proteus的单片机课程的基础实验与课程设计,人民邮电.

9.附录(元件清单、电路图、源程序代码等)

9.1元件清单

元件

用途

数量

单片机

1

晶振

单片机外围电路需要

电容(33PF)

2

ADC0809、DAC0832、MAX7219

模数转换芯片、数模转换芯片、电子数码管控制需要

各1

电位器

采集信号

电阻(5.1K)

MAX7219芯片使用

电阻(1K)

数模转换电路需要

电容(0.1nf)

芯片电路需要

4

OPAMP(LM324)

提供运放

小直流电机

电机

7SEG-MPX4-CC

LED显示模块

9.2电路图

(连接图)

(运行图)

9.3源程序代码

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

小直流电机调速控制系统

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

#include<

reg51.h>

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

//ADC0808的控制端口

sbitOE=P1^0;

//0808读取数字量允许,高电平有效

sbitEOC=P1^1;

//0808转换结束标志,结束时为1

sbitSTART=P1^2;

//下降沿开始转换

sbitCLOCK=P1^3;

//0808的芯片信号

//DAC0832的控制端

sbitCS=P1^6;

//0832的片选

sbitWR1=P1^7;

//0832写入数字量控制信号之一

//LED的控制位

sbitMAXDIN=P2^0;

//数据输入口

sbitMAXLOAD=P2^1;

//载入数据,上升沿锁定

sbitMAXCLK=P2^2;

//上升沿读取

//共阴极段码:

123456789全灭

ucharcodeledcode[]={0x7e,0x30,0x6d,

0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};

//延时程序,要写在前面

voiddelay(uchartime){

uchark,l;

for(k=0;

k<

time;

k++){

for(l=0;

l<

110;

l++){

;

}

}

}

//ADC0808初始化

//A,B,C已经全部接地,选中IN0输入

voidinit_adc0808(){

EA=1;

//中断总允许

TMOD=0x02;

//T0工作方式2

TH0=216;

//定时40us,CLOCK周期80us,

TL0=216;

//频率12.5KHz

ET0=1;

//定时器1中断允许

TR0=1;

//启动定时器

START=0;

//下降沿开始进行下一轮A/D转换

OE=0;

//高电平时允许读取数字数据

P1=0x30;

//DAC0832初始化

voidinit_dac0832(){

CS=0;

//选中

WR1=0;

//使其开始转换

//向MAX7219写入字节(8bit)

voidsendbyte(uchardat){

uchari,temp;

_nop_();

for(i=0;

i<

8;

i++){

//取最高位

temp=dat&

0x80;

//逐位左移

dat=dat<

<

1;

if(temp){

MAXDIN=1;

}else{

MAXDIN=0;

MAXCLK=0;

_nop_();

MAXCLK=1;

//向MAX7219写入地址和控制字

voidsendword(ucharaddr,uchardat){

//载入数据,连续数据的后16位在LOAD上升沿

//时被锁定,第16个上升沿之后,必须把MAXDIN

//置高,否则数据从DOUT流失

MAXLOAD=0;

sendbyte(addr);

sendbyte(dat);

MAXLOAD=1;

//MAX7219初始化

voidinit_max7219(){

sendword(0x0c,0x01);

//设置电源工作模式

sendword(0x0a,0x09);

//设置亮度

sendword(0x0b,0x03);

//设置扫描界限

sendword(0x09,0x00);

//设置译码模式

sendword(0x0f,0x00);

//显示测试

//MAX7219清空

voidclear_max7219(){

uchari;

for(i=1;

=8;

sendword(i,0x00);

//获取电压输入值数字量

ucharadinput(){

ucharvalue;

//停止转换4部曲

OE=0;

//暂停转换

EOC=1;

//转换结束

START=0;

//没有下降沿

P1&

=0x8f;

P1|=0x00;

delay(10);

//产生一个低脉冲开始转换

START=1;

//等待转换结束,结束时EOC=1,跳过下面循环

while(!

EOC);

//OE=1时允许读取转换结果

OE=1;

delay

(1);

value=P0;

//关掉读取

returnvalue;

//将滑动变阻器的电压值显示在LED上

voidled(ucharv){

//量程缩小后的值

//放大10000倍,提高精度

unsignedintvv=(int)196*v;

//位数操作

ucharj,k,l,m;

m=vv/10000;

//个位

l=vv%10000/1000;

//十分位

k=vv%1000/100;

//百分位

j=vv%100/10;

//千分位

init_max7219();

clear_max7219();

sendword(0x01,ledcode[j]);

sendword(0x02,ledcode[k]);

sendword(0x03,ledcode[l]);

sendword(0x04,ledcode[m]|0x80);

//向DAC0832输出数据

voiddasend(ucharv){

init_dac0832();

P3=v;

//定时器中断T0

voidtimer0(void)interrupt1{

//产生供给0808的时钟信号

CLOCK=~CLOCK;

voidmain(){

//变量要写在最前面

ucharinput;

//初始化ADC0808

init_adc0808();

while

(1){

//获得电压

input=adinput();

//显示电压

led(input);

//输出PWM调制信号

dasend(input);

.

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

当前位置:首页 > 农林牧渔 > 林学

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

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