基于51单片机的电机控制系统设计

发布者:自在逍遥最新更新时间:2011-11-26 关键字:51单片机  电机控制系统 手机看文章 扫描二维码
随时随地手机看文章
O 引言
    电机控制在监控器材、医疗器械、电动阀门、电动窗帘、家用电器、旋转灯具等方面有着广泛的应用,因此设计一款可控性好、精度高的电机控制系统是一件非常有意义的事。本文介绍的基于AT89S52单片机的电机控制系统的软硬件设计,在按键的操作下对时间进行设定,控制电机的转动,对工作状态及时间进行显示。

1 设计方案说明
    该系统先通过按键对电机的正、反向(即顺时针、逆时针)转动时间分别设置,时间显示在LCD上,格式为时:分:秒(通过改变程序可以选择不同的格式)。采用倒计时方式,正向时间完毕,立刻开始反向转动时间计时,反向时间结束,自动恢复到初始设定的时间。
    时间设定完成后,按下开始键,正向转动时间开始计时,电机工作指示灯闪烁,正向转动指示灯亮,同时电机正向转动;正向时间完毕,反向时间开始计时,正向转动指示灯熄灭,反向转动指示灯亮,同时电机反向转动。
    按下停止键,时间停止计时,电机停止工作,工作指示灯熄灭。
    系统采用的电机为60TDY-11可逆永磁电机,其内部采用两组绕组,用电容实现定向旋转,通过改变电容和电机输出引线的接法,能够可靠地实现电机定向旋转并控制旋转方向。

2 硬件电路设计
    整个系统硬件结构如图1所示。


2.1 按键输入和控制电路设计
    按键输入电路采用6个按键分别连接到单片机的P2.0~P2.5口,作为控制信号的输入。按下K0键,系统进入时间设定模式,连续按下K0键可以选择对不同的时间单位进行设置,通过K1,K2键对时间进行加1或减1。按下K3键退出时间设定模式,K4,K5键分别为启动和停止键。
    电机控制电路的控制芯片采用ATMEL公司的AT89S52,它有8 KB FLASH,256 B RAM,32位I/O口线,看门狗定时器,两个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。其内部资源丰富、性价比高,能够满足设计要求。
    PO.O~P0.2作为三个工作指示灯的控制信号输出,需要外接上拉电阻;P1.0~P1.2为液晶显示器的控制信号输出;P3.0~P3.1分别是控制电机正反向转动的控制信号输出。
2.2 LCD显示电路设计
    显示部分采用的是12864液晶,控制器是ST7920,这种控制器带中文字库,去除了编制字库的麻烦,该控制器的液晶还支持画图方式。该类液晶支持68时序8位和4位并口以及串口。ST7920的时钟SCLK有独立的操作时序,当多个连续的指令需要被送入时,需要考虑指令执行时间。
    一个完整的串行传输周期由以下部分组成:首先送入启动字节,送入五个连续的“1”用来启动一个周期,此时传输计数被重置,并且串行传输被同步。紧接的两个为制定传输方向(RW,确定读还是写)和传输性质(RS,确定是命令寄存器还是数据寄存器),最后的第八位是一个“O”。
    本设计中PSB引脚接地,选择串口工作模式,CS高电平有效,只用两根线SID和SCLK即可完成数据传输。
2.3 电机及驱动电路设计
    60TDY-11电机工作电压为220 V交流电,而单片机的输出高电平为5 V,因此电机需要一个驱动电路,采用继电器来作为较小的电流去控制较大电流的一种“自动开关”。[page]

    本次设计中继电器采用的是HUIGANG HRS2H-S-DC-12V型,SN74LS07N作为继电器的驱动电路,低电平输入有效,继电器还需要并联二极管电路,主要是为了保护SN74LS07N。当流经继电器线圈的电流迅速减小时,线圈会产生很高的自感电动势使晶体管被击穿,并联上二极管后,即可将线圈的自感电动势钳位于二极管的正向导通电压。P3.0低电平时,继电器1常闭触点断开,常开触点闭合,电机正向电路导通,开始正向转动。P3.1同理,P3.0和P3.1不可同时为低电平。

3 软件设计
3.1 程序说明

    在KeilμVision 3 IDE中进行程序的设计开发,用C语言编写。KeilμVision 3集成开发环境是Keil Soltware开发的基于80C51内核的微处理器软件开发平台,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程,尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平。它支持所有的Keil 80C51的工具软件,包括C51编译器、宏汇编器、链接器器/定位器和目标文件至Hex格式转换器。鉴于此,选择其为程序开发环境。
    系统程序由主程序、中断处理子程序、按键处理程序以及显示子程序等组成。对时间计时采用定时器定时中断产生,没有选择用软件延时的方式,这样不占用CPU的时间。定时器T0产生50 ms定时中断,在中断服务程序中有一个计数器,每产生20次中断,有一个1秒计数。按键扫描采用单个按键的扫描,有相应的按键处理子程序,程序中包括按键去抖动,按键的键后处理,去抖动采用延时去抖法。显示子程序在主程序中被调用对时间进行实时显示。
3.2 主程序流程图
    主程序流程图如图2所示,主要完成系统的初始化、按键扫描、显示程序及其他子程序调用等功能。


    初始化时关闭定时中断,P0.O~P0.2口输出高电平,状态指示灯熄灭,P3.0~P3.1口输出高电平电机停止转动,对LCD初始化显示,显示4行信息,2行显示时间,格式为时:分:秒,另外2行为时间的说明文字。将所有的初始化功能写成一个子程序,主程序只需调用它即可完成系统初始化。初始化完成之后,扫描按键,如有按键按下,调用相应的处理程序。时间设定键按下时,被选中的时间单位将会不断的闪烁,区别于其他没有被设置的时间单位,通过K1,K2键对时间进行改动,按下K3键退出时间设定。开始键被按下时,开启定时中断,LCD显示时间开始倒计时,PO.1口输出低电平,正向转动指示灯亮,P3.0输出低电平,电机开始正向转动,在中断服务程序中控制PO.0口输出电平,使正常工作指示灯1 s闪烁一次。停止键被按下时,P3.O~P3.1输出高电平,电机停止转动,P0.0~P0.2输出高电平,状态指示灯熄灭,关闭定时中断,停止计数。正向转动时间结束时,反向转动开始倒计时,P3.O输出高电平,P3.1输出低电平,电机反向转动,P0.1输出高电平,PO.2输出低电平,正向转动指示灯熄灭,反向转动指示灯亮。显示程序实时将时间的变化在LCD上显示。

4 结语
    该系统经实际运行,可以满足在功能键的操作下对时间进行设定,控制电机的启动、正反向转动、停止,状态指示灯正确显示工作状态,LCD正常的显示了时间。
    本系统将应用于一个阀门的自动打开闭合装置,正向转动时阀门打开,反向转动时,阀门关闭,实现对液体流量的控制,具体应用时还需要对阀门打开闭合的状态进行检测。

关键字:51单片机  电机控制系统 引用地址:基于51单片机的电机控制系统设计

上一篇:基于51单片机的FIash存储器坏块自动检测
下一篇:基于单片机控制的ADF4106锁相频率合成器设计

推荐阅读最新更新时间:2024-03-16 12:47

LCD1602液晶显示(51单片机c语言)
效果图: 电路图: #include reg52.h #include intrins.h //包含_nop_()函数定义的头文件 #define uchar unsigned char #define uint unsigned int sbit RS=P2^5; //寄存器选择位 sbit RW=P2^6; //读写选择位 sbit E=P2^7; //使能信号位 //sbit BF=P0^7; //忙碌标志位 const uchar string1 ={ mazirong }; const uchar string2 ={ TEL:13297961386 }; /**************************
[单片机]
LCD1602液晶显示(<font color='red'>51单片机</font>c语言)
51单片机汇编语言数字时钟
数字时钟proteus+ 51单片机+LCD1602+汇编语言+1602器件资料,适合做单片机课程结课作品 单片机汇编源程序如下: ;/******************************************************************************** ; LCD1602 时钟显示Cekong time测控何小双 ;********************************************************************************/ RS EQU P2.0; //控制端接口 R_W
[单片机]
<font color='red'>51单片机</font>汇编语言数字时钟
51单片机教程(三):单片机串口通信实例
简介:上讲介绍并应用了单片机内部定时器和中断,并给出了实例。这一讲将介绍单片机上的串口通信。通过该讲,读者可以掌握单片机上串口的工作原理和如何通过程序来对串口进行设置,并根据所给出的实例实现与PC 机通信。 一、原理简介 51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个
[单片机]
<font color='red'>51单片机</font>教程(三):单片机串口通信实例
51单片机-前期准备
1.学习前提 单片机是需要与程序打交道的,这个需要您先掌握很基础的C语言知识,即便我们讲解程序的执行过程尽量详细,但对于没有任何C语言知识基础的同学来说这将是举步维艰的。 所以您必须掌握以下最基本的知识 1.数据类型 2.十六进制,十进制,二进制之间的转换 3.程序的运行顺序 4.if,else,while,for,switch等语句 2.硬件 如果您对模电数电知识没有相关概念,以及对电子元器件尚不知晓,这些都不是学习单片机的困难,我们都会在教程里简单介绍硬件基础,您也可以参考学习宋老师的《手把手教你学51单片机》的前三章,这些只要您对中学物理电路和电路基础知识有一定的了解都可以看得懂。我们也鼓励大家学会在网上查找相关
[单片机]
基于51单片机和ADC0808 ADC0809的自动数字电压表设计
前言: 之前讲过基于数码管显示的自动数字电压表,接下来讲一下基于LCD1602显示的相关设计,分别利用的是TI公司的ADC0808和ADC0809。 硬件和软件设计 基于51单片机+ADC0808+LCD1602 测试电压范围为2.1~25V(超出这个范围,程序会卡死),精度<0.05 仿真图如下: 部分代码如下: #include AT89X52.H #define LEDDATA P0 #define v20_on {s3=0;s2=0;s1=1;} //宏定义不同量程,不同的开关状态 #define v2_on {s3=0;s2=1;s1=0;} #define v02_on {s3=1;s2=0;s
[单片机]
基于<font color='red'>51单片机</font>和ADC0808 ADC0809的自动数字电压表设计
使用51单片机应注意的
关于硬件 1、一定要记得接晶振和复位电路。即使在Proteus上仿真成功后,焊板子的时候要把晶振和复位电路接上,这样板子才回工作的。 2、一般没有特殊要求的话,选用11.0592MHZ的晶振。这样有利于得到没有误差的波特率。特别是当与PC机进行通信的话,选用这种晶振比较好。 3、复位电路的电容可以选择10uF或者22uF。如果是10uF的话,充电电阻R的值要高于4K欧姆,如果你的单片机工作速度很慢,可以选择8.2K欧姆。 4、每个大规模的数字IC旁边都要放一个0.1uF的电容(一端接电源,一端接地)来去除高频的干扰。 5、在板子上最好做一个ISP下载座子与单片机相连,这样调试改写程序的时候就不用把单片机拔来拔去
[单片机]
C51单片机利用74hc138扩展流水灯的仿真电路图+程序
C51单片机利用74hc138扩展流水灯程序 包含源代码,仿真电路 可以随意扩展多个LED 电路原理图如下: 单片机源程序如下: #define uint unsigned int #define uchar unsigned char void delay1(uchar y) { uchar i; uint j; for(i=0;i y;i++) { for(j=0;j 5000;j++); } } void led(void) { P3=0x01; //01 P2=0x00; delay1(20); P2=0x01; delay1(20); P2=
[单片机]
C<font color='red'>51单片机</font>利用74hc138扩展流水灯的仿真电路图+程序
80C51单片机中断的编程使用方法介绍
1、单片机中断: 找了一张 80C51 单片机的图如下: 其中,在 P3.2、P3.3 的位置,即 12 ,13 引脚处,标有 INT0 和 INT1,那两个引脚就是外部中断的输入。上面一个横杠代表低电平有效,给 P3.2、P3.3 赋值 0,就可以运行已经写好的中断服务程序。具体怎么用,还要熟悉一些中断寄存器的使用。 2、中断寄存器: (1)、IE (Interrupt Enable):中断允许控制寄存器 EA (IE.7):EA=0 时,所有中断禁止(即不允许中断) EA=1 时,各中断的产生由个别的允许位决定 ET2 (IE.5):定时器 2 溢出中断允许(8052 用,博主用的 STC89C54RD+ 也有) ES
[单片机]
80C<font color='red'>51单片机</font>中断的编程使用方法介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved