89C51单片机直流电机调速Word文件下载.docx

上传人:b****2 文档编号:839528 上传时间:2023-04-29 格式:DOCX 页数:26 大小:264.97KB
下载 相关 举报
89C51单片机直流电机调速Word文件下载.docx_第1页
第1页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第2页
第2页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第3页
第3页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第4页
第4页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第5页
第5页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第6页
第6页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第7页
第7页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第8页
第8页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第9页
第9页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第10页
第10页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第11页
第11页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第12页
第12页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第13页
第13页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第14页
第14页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第15页
第15页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第16页
第16页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第17页
第17页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第18页
第18页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第19页
第19页 / 共26页
89C51单片机直流电机调速Word文件下载.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

89C51单片机直流电机调速Word文件下载.docx

《89C51单片机直流电机调速Word文件下载.docx》由会员分享,可在线阅读,更多相关《89C51单片机直流电机调速Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。

89C51单片机直流电机调速Word文件下载.docx

第7-8天:

去实验室进行调试,根据调试的出现的各种情况修改调整程序。

第9-10天:

写课程设计报告。

主要参考

资料

[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:

国防工业出版社,2004

[2]国家机械工业委员会.电机原理[M].北京:

机械工业出版社,1988.9

[3]宋戈黄鹤松员玉良蒋海峰.51单片机应用开发范例大全(第一版)北京:

人民邮电出版社,201002

[4]康华光.电子技术基础(模拟部分)第五版高等教育出版社

[5]邱关源.电路(第五版)高等教育出版社

[6]马忠梅.单片机的C语言应用程序设计[M].北京:

北京航空航天大学出版社,1997

[7]付家才,杨庆江,赵金宪.单片机控制工程实践技术[M].北京:

化学工业出版社,2004.5

[8]徐爱钧,彭秀华.KeilCx51V7.0单片机高级语言编程与μVision2应用实践[M].北京:

电子工业出版社,2004

审查意见

系(教研室)主任签字:

年月日

目录

1引言4

2总体方案设计5

2.1总体方案5

2.2原件选择及介绍6

3硬件电路设计10

3.1单片机及其外围整体电路10

3.3键盘扫描电路12

3.4LED显示模块电路18

3.5D/A转换器及其与MCU的接口电路13

4系统软件设计13

4.1主程序设计13

4.2中断服务程序设计15

4.3子程序的设计17

5系统调试与总结18

调试总结18

参考文献19

附录A系统原理图20

附录B源程序21

1引言

电动机作为最主要的机电能量转换装置,其应用范围已遍及国民经济的各个领域和人们的日常生活。

无论是在工农业生产,交通运输,国防,航空航天,医疗卫生,商务和办公设备中,还是在日常生活的家用电器和消费电子产品(如电冰箱,空调,DVD等)中,都大量使用着各种各样的电动机。

据资料显示,在所有动力资源中,百分之九十以上来自电动机。

同样,我国生产的电能中有百分之六十是用于电动机的。

电动机与人的生活息息相关,密不可分。

电气时代,电动机的调速控制一般采用模拟法,对电动机的简单控制应用比较多。

简单控制是指对电动机进行启动,制动,正反转控制和顺序控制。

然而近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。

直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。

而作为单片嵌入式系统的核心—单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。

随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。

这是因为单片机具有很多优点:

体积小,功能全,抗干扰能力强,可靠性高,结构合理,指令丰富,控制功能强,造价低等。

所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。

在自动化控制中,许多场合需要单片机控制直流电机进行变速,这里我们介绍一种低成本的简单实现方法。

经实践证明,运行稳定可靠。

直流电机变速原理

直流电机的变速主要有3种方式:

1.控制电枢电压改变电机的转速。

2.控制电机的励磁电流改变电机的转速。

3.在电枢回路中,串联电阻改变电机的转速。

使用单片机控制直流电机的变速。

一般采用调节电枢电压的方式

图1-1直流电机物理模型图

2总体方案设计

2.1总体方案

本课程设计所介绍的单片机控制直流电机调速系统,可通过键盘读取输入调节直流电速度并且显示档位功能,具有结构简单,操作方便、输出档位可显示,反映灵敏、控制精细等特点。

其输出档位采用三位数码管动态显示,方便操作与观察。

该设计控制器使用单片机AT89C51,8位并行数模转换DAC0832芯片,4*4的16位按键键盘、用三位共阳极LED数码管实现档位的显示,能准确达到以上要求。

AT89C51作为主控制器,不断扫描4*4共16位键盘,并通过数码管显示出输入数据,用三位数码管显示百、十、个位,数码管以并口传送数据,实现档位的显示,同时将数据通过P1口输给DAC0832芯片进行数/模控制,输出的电压直接控制直流电机的速度。

图2-1系统整体设计图

2.2元件选择及介绍

(1)DAC0832(数模转换器)

DAC0832是8分辨率的D/A转换集成芯片,与微处理器完全兼容。

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

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

a.主要特性参数:

分辨率为8位

电流稳定时间1us;

可单缓冲、双缓冲或直接数字输入;

只需在满量程下调整其线性度;

单一电源供电(+5V~+15V);

低功耗,200mW。

b.芯片结构:

D0~D7:

8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);

ILE:

数据锁存允许控制信号输入线,高电平有效;

CS:

片选信号输入线(选通数据锁存器),低电平有效;

WR1:

数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。

由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

XFER:

数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;

WR2:

DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。

由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

IOUT1:

电流输出端1,其值随DAC寄存器的内容线性变化;

IOUT2:

电流输出端2,其值与IOUT1值之和为一常数;

Rfb:

反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;

Vcc:

电源输入端,Vcc的范围为+5V~+15V;

VREF:

基准电压输入线,VREF的范围为-10V~+10V;

AGND:

模拟信号地

DGND:

数字信号地

图2-2DAC0832的引脚图

c.工作方式:

根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:

直通方式、单缓冲方式和双缓冲方式。

(2)AT89C51单片机

89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

其主要特性:

1000次写/擦循环;

数据保留10年;

全静态工作:

0HZ-24MHZ;

三级程序存储器锁存;

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的一些特殊功能口,如表2-1所示:

表2-1P3口各位的第二功能

P3口的各位

第二功能

P3.0

RXD(串行口输入)

P3.4

T0(定时/计数器0的外部输入)

P3.1

TXD(串行口输出)

P3.5

T1(定时/计数器1的外部输入)

P3.2

/INT0(外部中断0输入)

P3.6

/WR(片外数据存储器写选通道控制输出)

P3.3

/INT1(外部中断1输出)

P3.7

/RD(片外数据存储器读选通道控制输出)

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

RST:

复位输入。

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

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:

来自反向振荡器的输出

图2-389C51单片机引脚图

三,硬件电路设计

1,直流电机调速系统的整体电路图2-4

图2-4直流电机调速系统的整体电路图

2.显示和键盘接口电路2-5

采用4*4独立式按键键盘接入P0口,并加8个10k上拉电阻。

保证输出稳定的电平。

图2-5键盘接口设计图

3位动态led显示,段选段位P2口输出,位选端由P3.0、P3.1、P3.2分别控制动态轮流显示

图2-6LED显示接口电路设计图

3.直流电机与DAC0832的接口电路

DAC0832输出直流值经过电流电压转换电路输出0-12v电压值控制电机转速。

ILE接+5v高电平,片选段CS传送信号xfer连接低电平,写选通信号wr接地,

使DAC不断处于选通写入状态。

利用稳压电路产生稳定12vREF的基准电压。

图2-7直流电机与DAC0832的接口电路图

4系统软件设计

系统软件分为主程序、中断服务程序和子程序三部分。

4.1主程序设计

主程序是系统上电或复位后首先要执行的程序,主程序主要完成系统的初始化、扫描键盘等工作。

本系统上电或复位时,根据有没有按键按下以及有键按下时按下的是哪个键。

图4.1主程序流程图

1、不断扫描4*4键盘看是否有键按下。

向P0口写入0F0H,延时读取是否为0F0H,若有键按下,进行延时等待,再向P0口写入0F0H,读取是否为0F0H,消除抖动误差。

2、如果有键按下开始进行详细扫描。

向P0口写入0FH后,分别判断P0.0、P0.1、P0.2、P0.3看是否被拉低,相应位被拉低,在相应行数据存储单元写入相应数据

3、先进行逐行扫描,分别读取。

向P0口写入0F0H,分别判断P0.4、P0.5、P0.6、P0.7看是否被拉低,相应位被拉低,在相应列数据存储单元写入相应数据

4、将行号数与列号数相加即得到键盘输入数。

5、等待键松开,返回继续扫描。

按照上述分析,主程序流程图如图4.1所示。

系统上电或复位后,首先设置堆栈,系统初始化,设置定时器T0、T1工作于方式2,装入初值。

开启总中断定时器T0、T1中断,扫描键盘输入值,等待中断发生。

一旦检测有键按下,开始进行逐行逐列扫描,读取输入值并将其赋予一个内存单元,然后等键释放,继续扫描键盘。

4.2中断服务程序设计

定时器T0、T1都工作于定时器方式2,自动重装方式下,这样避免在每次中断服务程序中重装初值的麻烦。

显示模块:

其中定时器T0中断主要用于将存储档位的数据不断输出于LED进行不断显示,一方面这种动态显示可以及时的将最新的档位显示出来。

每次中断时,先将ACC保护起来,都将档位中数据分别分成百、十、个位分别存储于3个存储单元。

然后将三个存储单元内容分别查表后得到数码值送出,先送出位码再送出段码,判断是否送完,没有跳转下一次。

图4.2显示中断服务程序流程图

中断服务程序流程图如图4.2所示。

D/A转换模块:

利用中断,每隔一段时间即将制定存储器单元写入相应端口输出到DAC0832中进行转换,及时的将新得到数据送出,达到及时控制电机转速的目的

图4.3D/A中断服务程序流程图

4.3部分主要子程序的设计

系统主要子程序包括延时子程序。

如图4-4;

利用双重循环定义的10ms延时子程序;

已知晶振位6MHZ;

可知一个机器周期2us;

得出R6=7DH;

R7=0AH;

(1+1+2)*2*R6=1000us

图4.4延时子程序程序流程图

5系统调试与总结

在本次课程设计中,我主要负责的是软件的编程与调试.

对于这个直流电机调速系统的设计与搭建中深深的体会到软件对于一个系统来说是多么重要.软件可以说是一个系统的灵魂,在工作中指导硬件按照指定的方案运行.

对于刚学汇编的我来说,编制一个完整的系统软件可谓无任何经验可言.在教学过程中,我们主要学习单个模块的搭建与编程,例如显示子程序,键盘子程序,中断子程序等等,在这个系统搭建过程中,不但要将这些子模块有机的结合在一起,还要让他们完美协调起来,按照我们思路运行可以说是比较难的.

单片机编程是不能想当然的,我们最容易犯的就是按照我觉得可行的思路去进行,往往导致系统不能正常工作,因为我们刚开始没有任何经验,例如我在编制显示子程序时,必须将相应段码与位码相对照,但最后却忽视了实际硬件是共阴极还是共阳极.还有显示间隔时间的问题,我本以为长短无所谓,但却是如果大于10ms就会产生闪烁感,导致没有静态的效果,如果太短的话必须在显示下一个之前,将前一个位选清除,否则就容易产生'

串位'

导致显示的不正常.在键盘扫描子程序中,当有键按下做相应操作,必须当按键释放时才能继续扫描,否则将导致一次按下执行多次的错误情况.

在调试时,为了更好地找出错误的地方,我通常是各个模块分别调试,在调试某一块时,先将其他模块用"

//"

暂时屏蔽掉,直到各个子模块都健康运行后,再整体调试,这样我们更加方便找出错误,增加效率.

软件调试必须不断在单片机上执行看输出的结果,如果每次都在硬件上操作比较麻烦,不利于软件调试,我利用一款"

protues"

仿真软件,将我们的硬件电力搭建出来,再在这个平台上调试软件.获得比较好的效果,等到仿真测试稳定后再在实际电路中作最终的测试,达到比较好的效果.

通过这次直流电机调速调速系统的设计,我初步里了解了一个系统搭建的过程,更加详细了解了一个系统软件编程步骤为以后的学习工作打下一个良好的基础.

参考文献:

[3]宋戈黄鹤松员玉良蒋海峰.51单片机应用开发范例大全(第一版)北京:

附录A:

系统电路图

附录B:

ORG0000H

SJMPMAIN

ORG000BH

LJMPXIANSHI//定时器0不断显示

ORG001BH

LJMPDAC//写入DA

ORG0030H

MAIN:

MOVSP,70H

MOVTMOD,#22H//

MOVTH1,#0FH

MOVTL1,#0FH

MOVTH0,#00H

MOVTL0,#00H

SETBTR0

SETBTR1

MOVIE,#8AH

MOV40H,#0

MOV41H,#0

MOV42H,#0

LOOP:

MOVP0,#0FH

NOP

NOP

MOVA,P0

CJNEA,#0FH,DEL1

SJMPLOOP

DEL1:

LCALLDELAY

MOVP0,#0FH

CJNEA,#0FH,L0

LJMPMM

L0:

JBP0.0,L1

LJMPMM

L1:

JBP0.1,L2

MOV40H,#4

L2:

JBP0.2,L3

MOV40H,#8

SJMPMM

L3:

JBP0.3,LOOP

MOV40H,#12

MM:

MOVP0,#0F0H

JBP0.4,NX1

LJMPEE

NX1:

JBP0.5,NX2

MOV41H,#1

SJMPEE

NX2:

JBP0.6,NX3

MOV41H,#2

NX3:

JBP0.7,EE

MOV41H,#3

EE:

MOVA,40H

ADDA,41H

MOV42H,A

LJMPLOOP

//4位led显示子程序

XIANSHI:

PUSHACC

MOVA,42H

MOVB,#0FH

MULAB

MOVB,#100

DIVAB

MOV6AH,A

MOVA,#10

XCHA,B

MOV6BH,A

MOV6CH,B

NEXT:

MOVDPTR,#DDD

MOVA,6AH

MOVCA,@A+DPTR

CLRP3.2

CLRP3.1

MOVP2,A

SETBP3.0

LCALLDELAY

MOVA,6BH

CLRP3.0

SETBP3.1

MOVA,6CH

MOVP2,A

SETBP3.2

LCALLDELAY

POPACC

RETI

//da转换子程序

DAC:

PUSHACC

CLRP3.6

MOVA,42H

RLA

ORLA,#0FH

MOVP1,A

POPACC

RETI

DELAY:

MOVR3,#0AH

LP:

MOVR2,#0FdH

LPP:

DJNZR2,LPP

DJNZR3,LP

RET

//数码表

DDD:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

END

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

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

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

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