小直流电机调速控制系统1.docx
《小直流电机调速控制系统1.docx》由会员分享,可在线阅读,更多相关《小直流电机调速控制系统1.docx(13页珍藏版)》请在冰豆网上搜索。
小直流电机调速控制系统1
小直流电机调速控制系统设计
一、前言
(一)、单片机控制调速系统发展现状
单片微型计算机的诞生是计算机发展史上的一个新的里程碑。
近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。
直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。
而作为单片嵌入式系统的核心—单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。
随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。
这是因为单片机具有很多优点:
体积小,功能全,抗干扰能力强,可靠性高,结构合理,指令丰富,控制功能强,造价低等。
所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。
(二)、课题来源
直流电动机在冶金、矿山、化工、交通、机械、纺织、航空等领域中已经得到广泛的应用。
而以往直流电动机的控制只是简单的控制,很难进行调速,不能实现智能化。
如今,直流电动机的调速控制已经离不开单片机的支持,单片机应用技术的飞速发展促进了自动控制技术的发展,使人类社会步入了自动化时代,单片机应用技术与其他学科领域交叉融合,促进了学科发展和专业更新,引发了新兴交叉学科与技术的不断涌现。
现代科学技术的飞速发展,改变了世界,也改变了人类的生活。
由于单片机的体积小、重量轻、功能强、抗干扰能力强、控制灵活、应用方便、价格低廉等特点,计算机性能的不断提高,单片机的应用也更加广泛特别是在各种领域的控制、自动化等方面。
所以在本系统设计中我采用了由单片机控制单闭环直流电动机的调速控制系统。
二、总体设计方案:
(一)系统总体结构
本课程设计所介绍的单片机控制直流电机调速系统,具有结构简单,输出档位可显示,反映灵敏等特点,其输出档位采用数码管显示,方面操作与观察,该设计控制器使用单片机AT89S52,数模转换DAC0832芯片,用二位共阳极LED数码管以并口传送数据,实现档位的显示,能准确达到以上要求,同时在单片机最小系统中设计了总开关和按钮控制。
利用DAC0832芯片进行数/模控制,输出的电压经放大后驱动小直流电机的速度进行数字量调节,并显示运行状态DJ—XX和D/A输出的数字量。
按钮S1,S2分别完成减一加一的功能,和拨码开关配合使用,使控制电机转速的档位转换更加灵活,简便。
控制更加直接,易于掌握和操作。
1、总体设计框图
2、芯片选择
本次课程设计我们选择的芯片是DAC0832,8255和AT89S52
(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:
数字信号地
c.工作方式:
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:
直通方式、单缓冲方式和双缓冲方式。
(2)8255简介:
a.一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的口.
b.具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.
c.8255引脚功能:
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'
A0,A1:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.
当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;
当A0=1.A1=1时,控制寄存器被选择.
(3)AT89S52简介:
a.主要性能:
与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符
b.功能特性描述:
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INTO(外中断0)
P3.3
INT1(外中断1)
P3.4
TO(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
三、硬件电路设计
1、显示电路与AT89S52单片机接口电路设计
2、AT89S52单片机最小系统
利用AT89S52单片机、晶振电路、复位电路、电源构成单片机最小应用系统,在此基础上扩展显示电路、驱动电路。
3、DAC0832与AT89S52单片机接口电路设计
4、D/A转换0832电路
5、微型直流电机电路
四、软件设计
1、主程序框图
初始化寄存器R0(用于存储输出电压的值),R1(用于存储数码管显示值)。
初始化8255A设定其工作方式为0方式,PA口为数码管片选信号端,PB口接数码管显示端。
判断总开关K0的状态,若其为低电平则死循环(继续读取开关量),若为高电平,则程序顺序执行。
读取其他开关量,将读取的数值存储到R0,通过对DAC0832寻址,输出驱动电流,带动电机转动。
同时查表将档位值显示到数码管上。
五、调试与测试结果分析
1、实验系统连接图
2、硬件线路调试:
(1)按照系统硬件连线图在实验箱上连线,将开关k0~K7与AT89S52的P1.0~P1.7连接,与单片机进行数据交换。
使数码管能正确显示档位的变化
(2)利用KeiluVision2软件使程序处于单步运行状态,分别调试各子程序,验证子程序功能的正确性。
(3)通过拨动开关,观察电机的速度、数码管显示的变化。
六、程序清单与注释说明
程序清单:
ORG0000H;
LJMPSTART
ORG0003H
LJMPB0
ORG0013H
LJMPB7
ORG0100H
START:
SETBEA
SETBEX0
SETBIT0
SETBEX1
SETBIT1
MOVDPTR,#0FF23H;设置8255控制状态字
MOVA,#80H;给8255赋初值,8255工作于方式0
MOVX@DPTR,A
B3:
JNBP3.0,B4
M0T1:
MOVDPTR,#0FF80H;选中DAC0832
MOVP1,#0FFH;将P1设置为输入口
MOVA,P1;将拨码开关的状态送入A中
MOVX@DPTR,A;将拨码开关的状态送入DAC0832中
SUBBA,R5
ADDA,R6
ACALLDIS;调用显示子程序
LJMPB3;循环?
DIS:
MOVR0,A
MOVR3,#2FH;选中百位数码管
MOVA,R3
MOVDPTR,#0FF20H;将8255的PA口地址送入数据指针
MOVX@DPTR,A
MOVA,R0;将拨码开关送入A中
MOVB,#64H;(B)=100
DIVAB;A/B
MOVDPTR,#TAB;把表首地址送入数据指针
MOVCA,@A+DPTR;查表获得显示码
MOVDPTR,#0FF21H;将8255的PB口地址送入数据指针
MOVX@DPTR,A;把显示数据码送PB口
ACALLDELAY;调用延时子程序
MOVR3,#37H;选中十位数码管
MOVA,R3
MOVDPTR,#0FF20H;将8255PA口地址送入数据指针
MOVX@DPTR,A
MOVA,B;把余数送到A
MOVB,#10;(B)=10
DIVAB;取十位上的数
MOVDPTR,#TAB
MOVCA,@A+DPTR;查表取取十位的显示码
MOVDPTR,#0FF21H;把8255的PB地址送入数据指针
MOVX@DPTR,A;显示十位数据
ACALLDELAY;调用延时子程序
MOVR3,#3BH;选中个位数码管
MOVA,R3
MOVDPTR,#0FF20H;将8255PA的地址送入数据指针
MOVX@DPTR,A
MOVA,B;A=B
MOVDPTR,#TAB;将列表首地址送入数据指针
MOVCA,@A+DPTR;将要显示的个位数据对应的代码送入A中
MOVDPTR,#0FF21H;将8255的PB口地址送入数据指针
MOVX@DPTR,A;显示个位数
ACALLDELAY;调用延时子程序
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H
;01234
DB92H,82H,0F8H,80H,90H
;56789
DELAY:
MOVR7,#40
DEL3:
MOVR6,#123
NOP
DEL4:
DJNZR6,DEL4
DJNZR7,$
RET
B0:
INCR5
RETI
B7:
INCR6
RETI
B4:
MOVDPTR,#0FF80H
MOVA,#00H
MOVX@DPTR,A
ACALLDIS
LJMPB3
END
七、课程设计总结与体会
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:
汇编语言、模拟和数字电路知识等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
另外,这次课程设计让我感到了团队合作的重要性。
在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。
还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。
近一周的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
八、参考文献:
1、单片机原理与接口技术(第二版)(马淑华编著)北京邮电大学出版社。
2、单片机基础M(李广弟等编著)北京航空航天大学出版社。
3、数字电子技术基础(阎石编著)(第三版)高等教育出版社。
4、微型计算机原理与接口技术(第二版)清华大学出版社。
5、单片机原理与接口技术实验指导书
6、微型计算机原理与接口技术实验指导书