基于单片机的步进电机控制系统设计
用了电机驱动芯片L298及其外围电路构成了整个系统的驱动部分,再加上作为执行部件的步进电机来构成了一个基本的步进电机控制系统。系统的具体功能和要求如下: (1)单片机最小系统板的设计;
(2)设计兼有两相两拍和两相四拍的脉冲分配器; (3)实现步进电机的启停、正转、反转控制;
(4)驱动电路可提供电压为12V,电流为0.3A的驱动信号;
(5)能实现步进电机的转速调节,最低转速为25转/分,最高转速为100转/分; (6)步进电机的转速由数码管显示; (7)键盘扫描电路的设计。 4.1.2系统的组成及其对应功能简述
整个系统的组成包括单片机最小系统,电机驱动模块,串口下载模块,数码管显示模块,电机驱动电流检测模块,独立按键等模块组成。具体框图如图4-1所示:
计算机 独立按键控制模块 串口通信模块 单片机最小系统 电机驱动模块 步进电机 数码管显示模块 驱动电流显示模块
图4-1 系统总体框图
单片机最小系统作为整个系统的控制核心,它主要负责产生控制步进电机转动的脉冲,通过单片机的软件编程代替环形脉冲分配器输出控制步进电机的脉冲信号,步进电机转动的角度大小与单片机输出的脉冲数成正比,步进电机转动的速度与输出的脉冲频率成正比,而步进电机转动的的方向与输出的脉冲顺序有关。同时单片机系统还负责处理来自电机驱动电流检测模块检测到的电流值。与此同时,单片机将会把电机转速,电机的转动方向,以及电流检测模块检测到的电机驱动的电流通过数码管显示出来。
电机驱动模块负责将单片机发给步进电机的信号功率放大,从而驱动电机工作。 串口下载模块主要是负责实行计算机和单片机之间的通信,将在计算机里面编写好的程序下载到单片机芯片当中。
数码管显示模块就主要是显示电机转速,电机转向,和通过电机的电流等系统的实时信息。
电机驱动电流检测模块主要是检测通过电机驱动芯片的电流,然后通过运放将检测到的信号放大,最后将放大后的信号通过模数转换芯片ADC0804处理后送给单片机。
11
独立按键作为一个外部中断源,和单片机端口连接,通过它设置了电机的正转,反转,加速,减速,显示电机电流等功能。采用了中断和查询相结合的方法来调用中断服务程序,完成了对步进电机的最佳的及时的控制。
本节主要是在第一章和第二章的基础上引出了本论文将要采用的设计方案,并详细的清楚的一条条列出了设计要实现的基本设计要求。然后是基于我的设计方案,比较简单的但有条理的描述了系统的各个部分的组成以及其对应的基本功能。通过这一章的内容,我们能对本设计有一个简单的总体的把握,既是能清楚的知道本题目的设计内容,设计方法,以及最终的预期目标。 4.2单片机最小系统 4.2.1AT89S51简介
AT89S51是美国生产的具有低功耗,高性能的CMOS8位的单片机,片内含有4kbytes 的可以系统编程的Flash只读程序存储器。它的器件所采用的是ATMEL公司高密度,非易失性的存储技术来生产的,具有兼容标准的8051指令系统以及引脚[12]。它集Flash程序存储器一方面能够在线编程(ISP)另一方面也可以用传统的方法来编程和通用的8位的微处理器在单片机的芯片中,功能非常强大。
(1)主要的性能参数
2可以与MCS-51产品的指令系统完全的兼容在一起 24k字节的系统编程(ISP)Flash 闪速存储器 21000 次的擦写周期 2工作的电压范围是4.0-5.5V 2全静态的工作模式:0Hz-33MHz 2具有三级的程序加密锁 212838字节的内部RAM 2有32个可以编程的输入输出口线 2有2个16位的定时/计数器 2有6个中断源
2全双工的串行的UART 通道 2空闲功耗非常低以及掉电模式 2中断可以从空闲模式中唤醒系统 2看门狗(WDT)以及具有双数据的指针 2具有掉电标识以及快速的编程特性
2在系统中编程是很灵活的(ISP 字节或着是页写模式) (2)功能特性的概述
AT89S51提供以下的标准功能:4k字节Flash 闪速存储器,128字节的内部的RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16 位的定时/计数器,一个5 向
12
[13]
基于单片机的步进电机控制系统设计
量两级中断结构,一个全双工的串行通信口,片内振荡器及时钟电路。同时,AT89S51 可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM的内容,但振荡器会停止工作并且禁止其它所有部件的工作一直到下边的一个硬件复位的时候。
(3)引脚的功能说明
1234567891011121314151617181920P1.0VCCP0.0(AD0)40393837363534P1.7RSTP3.0(RXD)P3.1(TXD)P3.2(INT0)P3.3(INT1)P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL2XTAL1GNDP2.0(A8)P0.7(AD7)EA/VPPALE/PROGPSENP2.7(A15)33323130292827262524232221
图4-2 AT89S51引脚排列
该设计使用到的单片机芯片对应管脚名称位置等如图4-2的引脚功能图详细说明。 2VCC:电源电压 2GND:地
2P0口:P0口是一组具有8位的漏极开路型的双向I/0口,也就是地址/数据的总线的复用口。当作输出口时,每一位能够驱动8个TTL的逻辑门电路,对该端口写“l”时能当做高阻抗的输入端用。当数据总线的复用口时,在访问的期间会激活内部的上拉电阻。当F1ash 编程的时候,P0口会接收到指令字节,而程序校验时,会输出一些指令字节,当校验的时候,需要外接上拉的电阻。访问外部的数据或程序存储器的时候,这组口线会分时地转换地址(低8 位)。
2P1口:Pl口是一个带有内部的上拉电阻的8 位双向的I/O 口,P1输出的缓冲级能够驱动(吸收或着输出电流)4个TTL的逻辑门电路。对端口写“l”,可以通过内部上拉电阻把端口拉到高电平,这时候可以作输入口。作为输入口使用的时候,由于内部存在上拉电阻,某个引脚被外部信号拉低的时候会输出一个电流(IIL )。
13
2P2口:P2口是带内部的上拉电阻的8位的双向I/O口,P2口输出缓冲级可以驱动(吸收或着输出电流)4个TTL的逻辑门电路。对该端口写“1”,可以通过内部的上拉电阻把对应端口拉到相应高电平,这时候可以作输入口。当作输入口使用的时候,由于内部有上拉电阻,某个引脚被外部的信号拉低的时候会输出电流(IIL )。当访问外部程序存储器或着16位地址的外部数据存储器的时候,P2口会送出高8 位地址数据。当访问8 位地址外部的数据存储器的时候,P2上的内容在整个的访问期间是不会改变的。Flash 编程或着校验的时候,P2也会接收到高位地址以及其它控制信号的。
2P3口:P3口是含有内部的上拉电阻8 位双向的I/O口。P3口的输出缓冲级能够驱动(吸收或着输出电流)4个TTL逻辑门的电路。对P3口写入“l”的时候,它们会被内部上拉电阻拉高并可以作为输入端口。当作为输入端时,被外部拉低的P3口会用上拉电阻输出电流(IIL )。P3口除了可以作为一般的I/O口线之外,更重要的用途是它具有第二功能,如下表所示:P3口还可以接收一些用于Flash 闪速存储器编程和程序校验的控制信号。具体功能如表4-1所示
表4-1 P3口的引脚及功能
端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(定时/计数器0外部输入) T1(定时/计数器1外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通) 2RST:RST是复位信号输入端。当振荡器工作的时候,RST引脚会出现两个机器周期以上的高电平使单片机复位。WDT溢出使该引脚输出高电平,设置SFR AUXR 的DISRT0 位(地址8EH)可以打开或关闭该功能。DISRT0 位缺为RESET 输出高电平打开状态。
2ALE/PROG:地址锁存允许信号端。当89S51上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC的1/6。CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。ALE端的负载驱动能力为8个LS型TTL(低功耗甚高速TTL)负载。此引脚的第二功能PROG在对片内带有4KB Flash ROM的89S51编程写入(固化程序)时,作为编程脉冲输入端。
2PSEN:程序储存允许(PSEN)输出信号端。当AT89S51由片外程序的存储器取指令(或常数)时,每个机器周期两次PSEN有效(即输出2个脉冲)。但在此期间内,每
14
基于单片机的步进电机控制系统设计
当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN的端口同样可驱动8个LS型TTL负载。
2EA/VPP:外部程序存储器地址允许输入端/固化编程电压输入端[14]。
当EA接高电平的时候,CPU只能访问片内Flash ROM并且执行内部的程序存储器里的指令;但当PC(程序计数器)的值超过0FFFH(对89S51为4KB)时,将自动转去执行片外的程序存储器里的程序。
输入信号EA接低电平(接地)时,CPU只能访问片外ROM并执行片外的程序存储器里的指令,不管是否会有片内的程序存储器。然而需要注意的是,如果保密位LB1被编程,则复位时在内部会锁存EA端的状态。
当EA 端保持高电平(接VCC端)时,CPU则执行内部的程序存储器中的程序。 F1ash 存储器编程的时候,该引脚加上+12V 的编程电压Vpp。
2XTAL2:接外部晶体和微调电容的一端。在89S51片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。若须采用外部时钟电路,则该引脚悬空。要检查89S51的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。
2XTAL1:接外部晶体和微调电容的另一端。在片内,它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚输入外部时钟信号。
2存储器结构:MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具64KB外部程序和数据的寻址空间。
2程序存储器:若EA引脚接地(GND),全部程序都执行外部存储器。在AT89S51中,如果EA 接至Vcc(电源+),程序会首先执行地址从0000H-0FFFH(4KB)内部程序存储器,然后再执行地址为1000H-FFFFH(60KB)的外部程序存储器。
2数据存储器:AT89S51中的具128字节的内部RAM,这128个字节可以利用直接或间接的寻址方式访问,堆栈操作可以利用间接寻址方式进行,128个字节均可设置为堆栈区空间。
(4)晶体振荡器特性
AT89S51是一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是这个放大器的输入端和输出端。该放大器与作为反馈元件的片外石英晶体或着陶瓷谐振器一起构成自激振荡器。
它外边接石英晶体以及电容Cl、C2 接在放大器的反馈回路构成并联振荡电路。对外接电容Cl、C2 虽然没有十分严格的要求,但是电容容量的大小会轻微影响到振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度稳定性。如果要使用石英晶体,我们推荐电容使用30pF±10pF,而如果要使用陶瓷谐振器建议选择40pF±10pF。
用户还可以采用外部时钟。在这种情况下,外部时钟脉冲会接到XTAL1端,即内部时钟发生器的输入端,XTAL2就要悬空。
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的步进电机控制系统设计(3)在线全文阅读。
相关推荐: