1、硬件实习报告第页 共 16 页硬 件 实 习 任 务 书一、设计题目步进电机转速控制及显示设计(LCD 显示转速)二、设计背景步进电机突出的优点是它可以在宽广频率范围内通过改变脉冲频率来实现调速,在需要精确定位的地方都要用到它,比如打印机、绘图仪等。而 LCD 显示屏在很多数码产品中有着广泛的应用,如计算器,IC 卡电话机,电子手表,掌上电脑,仪表显示屏等。三、设计内容及目标设计内容:利用实验平台上单片机 P0 口输出脉冲序列,74LS244 输出开关量,开关 K2K7控制步进电机转速, (分 6 档) ,K0,K1 控制转向。驱动方式分两种,四相四拍、四相八拍,通过软件设计,控制步进电机的转
2、速和方向。并将转速(16 档)和转向(正转“1” ,反转“0” ) 显示在 LCD 显示器上设计目的:1、了解步进电机控制的基本原理;2、掌握液晶显示图形的基本方法,从而对其它液晶屏的使用也能得心应手。四、进度安排周次 工 作 内 容 预 定 目 标第 1 周周一 选题,图书馆查阅相关资料写出该题的过去、现在、未来及应用场合第 1 周周二 系统硬件设计及软件设计 书面画出系统框图、软件框图并上交第 1 周周三 设计成果检查及指导 组长汇报方案,完善设计方案第 1 周周四、周五 完善硬件及软件设计; 画出系统硬件原理图、软件详细框图第 2 周一至周二完成硬件静态测试、软件调试 调试好系统,写出硬
3、件实习报告第 2 周三周至四 完成实习任务; 完善实习报告。第 2 周五 答辩并验收实习报告 答辩并上交实习报告五、设计时间: 12 年 4 月 20 到 12 年 6 月 20 日计算机应用 教研室 指导教师: 硬件实习报告第页 共 16 页目录硬 件 实 习 任 务 书 -1前言-31. 设计目标及内容-41.1 设计内容-41.2 设计目的-42. 硬件原理及设计分析-42.1 步进电机的工作原理-52.2 液晶显示原理 -52.3 步进电机转速控制及显示设计(LCD 显示转速)的硬件框图-62.4 总的硬件电路图-73. 软件分析及设计-83.1 软件需求分析-83.2 程序流程图-8
4、3.3 软件代码-94. 操作说明及结果分析-155. 调试过程中遇到的问题和解决方法-156. 硬件实习总结-167 参考文献-16硬件实习报告第页 共 16 页前言在电子科技不断飞速发展的今天,数字控制技术得到了广泛而深入的应用。步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件, 具有快速起动和停止的特点。因为步进电动机组成的控制系统结构简单,价格低廉,性能上能满足工业控制的基本要求,所以广泛地应用于手工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,投影仪、数码摄像机、大型望远镜、卫星天线定位系统、医疗器件以及各种可控机械工具等等。步进电机突出的优点是它可以
5、在宽广频率范围内通过改变脉冲频率来实现调速,在需要精确定位的地方都要用到它,比如打印机、绘图仪等。而 LCD 显示屏在很多数码产品中有着广泛的应用,如计算器,IC 卡电话机,电子手表,掌上电脑,仪表显示屏等。同时,单片机也广泛应用于实时控制、智能仪器、仪表通信和家用电器等各个领域,所涉及的内容非常广泛,是计算机科学、电子学、自动控制等基础知识的综合应用。单片机的应用系统有硬件和软件所组成。本次硬件实习是基于 51 单片机对步进电机转速进行控制,加之液晶的显示,使其转速的档位和方向显示在液晶上。硬件实习报告第页 共 16 页1. 设计目标及内容1.1 设计内容1.1.1 利用实验平台上单片机 P
6、0 口输出脉冲序列,74LS244 输出开关量,开关 K2K7 控制步进电机转速, (分 6 档) ,K0,K1 控制转向。驱动方式分两种,四相四拍、四相八拍,通过软件设计,控制步进电机的转速和方向。并将转速(16 档)和转向(正转“1” ,反转“0” ) 显示在 LCD 显示器上1.2 设计目的1.2.1 了解步进电机控制的基本原理;1.2.2 掌握液晶显示图形的基本方法,从而对其它液晶屏的使用也能得心应手。2. 硬件原理及设计分析2.1 步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图 1 是该四相反
7、应式步进电机工作原理示意图。图 1 四相步进电机步进示意图开始时,开关 SB 接通电源,SA、SC、SD 断开,B 相磁极和转子 0、3 号齿对齐,同时,转子的 1、4 号齿就和 C、D 相 绕组磁极产生错齿,2、5 号齿就和 D、A 相绕组磁极产生错齿。当开关 SC接通电源,SB、SA、SD 断开时,由于 C 相绕组的磁力线和 1、4 号齿之间磁力线的作用,使转子转动,1、4 号齿和 C 相绕组的磁极对齐。而 0、3 号齿和A、B 相绕组产生错齿,2、5 号齿就和 A、D 相绕组磁极产生错齿。依次类推,A、B、C、D 四相绕组轮流供电,则转子会沿着 A、B、C、D 方向转动。硬件实习报告第页
8、 共 16 页四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c 所示:a. 单四拍 b. 双四拍 c 八拍图 2 通电时序波形本实验使用的步进电机用直流+12V 电压,电机线圈由 A、B、C、D 四相组成。驱动方式为四相四拍方式,各线圈通电顺序如下表。表中首先向 A 线圈输入驱动电流, 接着 B、C、D 线圈驱动,最后又返回到 A 线圈驱动,按这种
9、顺序切换,电机轴按顺时针方向旋转。若通电顺序相反,则电机轴按逆时针方向旋转。(注:为提高步进电机负载能力和运行平稳,可使用四相八拍驱动方式。)顺序/相 A B C D 0 0 1 1 1 1 1 0 1 1 2 1 1 0 1 3 1 1 1 0表二:驱动方式2.2 液晶显示原理本实验用的是 1602 液晶,1602 液晶可以显示两行字符,其写入字符是根据时序特点,写指令,写数据等操作。以下是 1602 液晶的相关资料,读状态 输入 RS=L,R/W=H,E=H 输出 D0D7=状态字写指令 输入 RS=L,R/W=L,D0D7=指令码,E=高脉冲输出 无读数据 输入 RS=H,R/W=H,E
10、=H 输出 D0D7=数据写数据 输入 RS=H,R/W=L,D0D7=数据,E=高脉冲输出 无硬件实习报告第页 共 16 页表二:基本操作时序表读写操作时序如图所示图 3:读操作时序图 4:写操作时序 2.3 步进电机转速控制及显示设计(LCD 显示转速)的硬件框图如图 5 所示,整个硬件围绕 51 单片机,根据开关输入通过外接电路控制步进电机的转速和方向,并显示在液晶上。8051 单片机作为处理器,整个硬件功能围绕 8051 进行实现,首先,由开关通过扩展输入实现对整个硬件功能的控制。当开关设置为某个状态时,由 8051单片机输出相应的值,通过扩展输出对步进电机进行相应方向和转速的控制,并
11、由 1602 进行相应的显示。硬件实习报告第页 共 16 页8051单片机开关液晶LCD步进电机扩展输出 驱动电路LCD 驱动电路扩展输入图 5 硬件框图2.4 总的硬件电路图 如硬件电路图图 6 所示。其中,74LS373 为地址锁存器,74LS244 为带 3 态输出的八缓冲器,74LS273 为带清除的八触发器;74LS138 为三八译码器。开关由扩展输入对单片机进行输入相关变量,从而通过单片机对步进电机的转速和方向进行控制。再有液晶进行相应的显示。硬件实习报告第页 共 16 页3. 软件分析及设计3.1 软件需求分析本实习要求用开关控制步进电机的转速和方向,并将相应的数据显示在液晶上;
12、通过分析,我们只需将开关的输入量转换成相应的步进电机转速即可,然而,通过前面讲过的步进电机的相关驱动方式我们可以知道,转速可以通过设置延时子程序的时间长短来实现,而步进电机的方向则通过不同的时序来控制,从而加上很容易的实现步进电机的转速控制,在根据液晶的时序规则来显示相应的数据,很简单的实现了整个实习要求。3.2 程序流程图如图(图 7:程序流程图)所示,在程序开始后先进行各个参数的初始化,然后对开关量进行读取,根据读取的数值进行对步进电机的转速量和方向量进行设置,并同时在 LCD 上显示出相应的数据,定时,置输出地址,然后输出相应的参数,从而实现对步进电机和液晶的相应控制。图7:硬件实习报告
13、第页 共 16 页如下图(图 8:LCD 框图所示)为 LCD 液晶的显示子程序框图,程序先进行LCD 初始化,然后进行清屏,在需要写入时,对 LCD 进行写操作,最后就可以显示出来你想要的字符。3.3 软件代码/*P1 八位分别接开关开关的八个口,F208 接 38 译码器,PO 前四口分别接步进电机四口,F200 接液晶*/#include “reg52.h“#include “absacc.h“#include “intrins.h“#define PO XBYTE0xF208 /定义外部地址#define LCD_COMW XBYTE0xF200#define LCD_DATAW XB
14、YTE0xF201#define LCD_COM XBYTE0xF202#define LCD_DATA XBYTE0xF203#define uchar unsigned char#define uint unsigned intuchar code table=“ FX:“; /显示字符定义uchar code table1=“ SPEED:“;uchar code table2=“01“;uchar code table3=“123456“;void delay1(unsigned int t);/开关口定义sbit F1 = P10; /位定义sbit F2 = P11;图 8:LCD
15、 程序框图硬件实习报告第页 共 16 页sbit F3 = P12;sbit F4 = P13;sbit F5 = P14;sbit F6 = P15;sbit F7 = P16;sbit F8 = P17;/*LCD 显示程序*/uchar num;void delay(uint z) /延时程序uint x,y;for(x=z;x0;x-)for(y=500;y0;y-);void write_com(uchar com) /液晶写指令LCD_COMW=com;void write_data(uchar date) /液晶写数据LCD_DATAW=date;void init() /液晶初始化write_com(0x38);delay(1);write_com(0x0c);delay(1);write_com(0x06);delay(1);write_com(0x02);delay(1);write_com(1);