基于单片机的步进电机控制器的设计 下载本文

计算机独立按键控制模块串口通信模块单片机最小系统电机驱动模块步进电机数码管显示模块驱动电流检测模块 图3.1 系统总体框图

单片机最小系统作为整个系统的控制核心,它主要负责产生控制步进电机转动的脉冲,通过单片机的软件编程代替环形脉冲分配器输出控制步进电机的脉冲信号,步进电机转动的角度大小与单片机输出的脉冲数成正比步进电机转动的速度与输出的脉冲频率成正比,而步进电机转动的的方向与输出的脉冲顺序有关。同时单片机系统还负责处理来自电机驱动电流检测模块检测到的电流值。与此同时,单片机将会把电机转速,电机的转动方向,以及电流检测模块检测到的电机驱动的电流通过数码管显示出来。

电机驱动模块负责将单片机发给步进电机的信号功率放大,从而驱动电机工作。

串口下载模块主要是负责实行计算机和单片机之间的通信,将在计算机里面编写好的程序下载到单片机芯片当中。

数码管显示模块就主要是显示电机转速,电机转向,和通过电机的电流等系统的实时信息。

电机驱动电流检测模块主要是检测通过电机驱动芯片的电流,然后通过运放将检测到的信号放大,最后将放大后的信号通过模数转换芯片ADC0804处理后送给单片机。

独立按键作为一个外部中断源,和单片机端口连接,通过它设置了电机的正转,反转,加速,减速,显示电机电流等功能。采用了中断和查询相结合的方法来调用中断服务程序,完成了对步进电机的最佳的及时的控制。

本节主要是在第一章和第二章的基础上引出了本论文将要采用的设计方

14

案,并详细的清楚的一条条列出了设计要实现的基本设计要求。然后是基于我的设计方案,比较简单的但有条理的描述了系统的各个部分的组成以及其对应的基本功能。通过这一章的内容,我们能对本设计有一个简单的总体的把握,既是能清楚的知道本题目的设计内容,设计方法,以及最终的预期目标。

3.2 单片机最小系统 3.2.1 AT89C51简介

AT89C51是美国ATMEL 公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes 的可系统编程的Flash只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,功能强大。

1、主要性能参数

·与MCS-51 产品指令系统完全兼容

·4k 字节在系统编程(ISP)Flash 闪速存储器 ·1000 次擦写周期

·4.0-5.5V 的工作电压范围 ·全静态工作模式:0Hz-33MHz ·三级程序加密锁 ·128×8 字节内部RAM ·32 个可编程I/O口线 ·2 个16 位定时/计数器 ·6 个中断源

·全双工串行UART 通道

15

·低功耗空闲和掉电模式 ·中断可从空闲模唤醒系统 ·看门狗(WDT)及双数据指针 ·掉电标识和快速编程特性

·灵活的在系统编程(ISP 字节或页写模式) 2、功能特性概述

AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128 字节内部RAM,32 个I /O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

3、引脚功能说明

图3.2 AT89S51

该设计使用到的单片机芯片对应管脚名称位置等如图3.2的引脚功能图详细说明。

·VCC:电源电压

16

·GND:地

·P0 口:P 0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8 个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在和数据总线复用,在访问期间激活内部上拉电阻。在F1ash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)。

·P1 口:Pl 是一个带内部上拉电阻的8 位双向I /O 口,Pl 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL )。

·P2 口:P2 是一个带内部上拉电阻的8 位双向I /O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL )。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX@Ri 指令)时,P2 口线上的内容 (也即特殊功能寄存器(SFR)区 P2 寄存器的内容),在整个访问期间不改变。Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。

· P3 口:P3 口是一组带有内部上拉电阻的8 位双向I /O口。P3口输出缓冲级可驱动 (吸收或输出电流)4 个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流 (IIL )。P3口除了作为一般的I /O口线外,更重要的用途是它的第二功能,如下表所示: P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。具体功能如表3.1所示

17

表3.1 P3口的引脚及功能

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

·RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AUXR 的DISRT0 位(地址8EH)可打开或关闭该功能。DISRT0 位缺 为RESET 输出高电平打开状态。

·ALE /PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1 /6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对F1ash 存储器编程期间,该引脚还用于输入编程脉冲 (PROG)。如 必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只一条M0VX 和M0VC 指令ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 无效。

·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,

当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN

18

第二功能 RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(定时/计数器0外部输入) T1(定时/计数器1外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通)