小直流电机调速控制系统设计一、前言(一)、单片机控制调速系统发展现状单片微型计算机的诞生是计算机发展史上的一个新的里程碑。
近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。
直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。
而作为单片嵌入式系统的核心—单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强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的负跳变时将输入数据锁存;AT89S52 变量K0~K7总开关K0 数码管显示速度输出电机转速按钮S1,S2XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于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),具体如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口也接收一些控制信号。
三、硬件电路设计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)利用Keil uVision2 软件使程序处于单步运行状态,分别调试各子程序,验证子程序功能的正确性。