毕业设计(论文)-基于单片机与超声波传感器的步进电机控制器设计.doc_第1页
毕业设计(论文)-基于单片机与超声波传感器的步进电机控制器设计.doc_第2页
毕业设计(论文)-基于单片机与超声波传感器的步进电机控制器设计.doc_第3页
毕业设计(论文)-基于单片机与超声波传感器的步进电机控制器设计.doc_第4页
毕业设计(论文)-基于单片机与超声波传感器的步进电机控制器设计.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。因此,步进电机以其精准的控制特性,广泛应用于执行器件中。本文设计了基于单片机的步进电机控制器,系统采用AT89S52型单片机作为主控制器电路。采用步进电机驱动芯片ULN2003趋动28BYJ-48型四相八拍步进电动机,设计了对应的按键控制电路和LCD状态显示电路。 AT89S52的控制指令通过光耦TLP521-4控制ULN2003,根据计算控制脉冲时序,算出电机转过的步数或圈数,用LCD1602A显示步进电机运行状态和转速。各控制按键功能用无线收发模块PT2262/2272作为辅助,共同实现步进电机的控制。同时整个系统作为一个执行部件,嵌入到其他的微机控制系统中。外部微机通过MAX232芯片将信号转化为RS232协议信号,与主控制器控制器进行通信。AT89S52通过内部程序识别外部微机的控制信号,对控制系统进行控制,使得本系统的应用范围与可靠性大大提高。关键词 单片机;达林顿管;步进电动机;串口通信Abstract Stepping motor is will signal into electrical impulses for angular displacement or line open loop control the displacement of stepping motor parts. In the overload of the cases, motor speed, stop depends only on the position of the pulse signal frequency and pulse count, and do not suffer the effect of load changes, when stepping drive to receive a pulse signal, it will drive stepping motor set according to turn a fixed Angle, called step from the corner, it is the point of view of the rotation of the fixed step by step of operation. Can through the control pulse to control the number of angular displacement quantity, so as to achieve the purpose of accurate positioning; At the same time can through the control pulse frequency to control motor rotation speed and acceleration, so as to achieve the purpose of speed. Therefore, stepping motor with its precise control characteristics, widely used in execution of the device.In this paper, based on SCM stepping motor controller, system adopts single-chip microcomputer as the main controller AT89S52 type circuit. The control instruction through light AT89S52 decoupling method-4 control ULN2003, according to computation control pulse timing, calculate efficiency or motor turned laps, with LCD1602A display stepping motor running state and speed. The control key function in a wireless transceiver module PT2262/2272 as the assistant to accomplish the step motor control. And the whole system as an executive components, embedded in other microcomputer control system. External microcomputer through the MAX232 chips will signal into RS232 agreement signals, and the main controller controller for communication. AT89S52 devices through the internal process of external microcomputer control signal to identify, for the control system to control, so the system application range and reliability is greatly increased.Key words: SCM; Optocoupler; Photo-Darling tons; Stepping motor; SPCP-Serial Port目 录1 概 述11.1 研究设计步进电机控制器的意义11.2 步进电机基础知识11.2.1 步进电机原理21.2.2 感应子式步进电机工作特点31.3 本文主要完成的工作42 系统整体方案的设计62.1 总体方案拟定62.2 步进电机控制器各功能模块介绍72.2.1 步进电机控制器模块设计72.2.2 输入控制模块设计72.2.3 驱动模块设计72.2.4 输出显示模块设计82.2.5 串口通讯模块设计83 硬件电路设计93.1 主控制器电路设计及芯片选型93.1.1 时钟电路设计93.1.2 复位电路103.1.3 主控制器最小系统设计113.2 输出驱动驱动电路设计123.3 输出状态显示电路设计133.4 串口通讯电路设计164 软件设计194.1 C51语言194.2 整体程序设计框图204.3 步进电机控制程序204.4 液晶显示1602程序设计224.5 微机通讯软件设计255 Proteus仿真分析285.1 步进电机趋动仿真285.2 LCD1602A应用仿真285.3 微机通讯仿真29结 论31致 谢32参考文献33附录34附录35主控制器源程序36从机源程序46IV1 概 述1.1 研究设计步进电机控制器的意义早在1920年,英国人开发了步进电机,1950年代后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更加容易。经过不断改良,使得今日步进电机已经广泛应用在需要高精度定位、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。再生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹。尤其以重视速冻、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。近十几年来,数字技术和电子计算机的迅速发展为MCU的应用开辟了广阔的前景。MCU广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。步进电机作为一种用于精准控制领域的感应式电机,在许多实际应用中起到了不可替代的作用。二者结合加上适当的控制及其他外围电路,便可实现步进电机的程序化控制。通过对步进电机的研究,我们发现比如28BYJ-48型四相八拍电机转一圈的步数是4的整数倍,转一圈的步数是相数的整数倍,查得其步距角度为5.625/64。我们可以精确到角度对它进行按照工程实际需要进行控制,这是其他电机所不能比的,也是他的设计优越性的体现。连接上适当的机械部件,步进电机可以做为一个执行元件。产生力矩来使其他器件动作。加上控制器和操作系统程序,步进电机可以做为一个具有人工智能的执行部件,来协调完成一系列的工作。我们知道,比如一些仪器仪表,工业流水线上的机械臂,都需要能产生精确的力矩和功的执行器件来完成。这足以说明步进电机应用的灵活性。因此,研究和发展步进电机的性能参数,拓展其在生产生活各领域中的应用范围是很有必要的。既应用了电机学和控制电机的理论知识,也考验了微机控制及单片机原理与应用的实际应用能力。从平凡中做出不平凡的成就来,就是我们的创造。1.2 步进电机基础知识步进电机分三种:永磁式(PM) ,反应式(VR)和混合式(HB)永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。1.2.1 步进电机原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的多相时序控制器。通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的。1.2.2 感应子式步进电机工作特点感应子式与传统的反应式相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。 感应子式某种程度上可以看作是低速同步的电机。一个四相电机可以作四相运行,也可以作二相运行。(必须采用双极电压驱动),而反应式电机则不能如此。例如:四相,八相运行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍运行方式.不难发现其条件为C=,D=. 一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。一般步进电机的精度为步进角的3-5%,且不累积。步进电机外表允许的最高温度。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。 步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途。伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。1.3 本文主要完成的工作功率驱动模块步进电机控制器步进电机图1-1 步进电机驱动器基本组成如图1-1所示,本文旨在设计一个基于AT89S52单片机的步进电机控制器,系统采用AT89S52型单片机作为主控制器电路。采用步进电机驱动芯片ULN2003趋动28BYJ-48型四相八拍步进电动机,设计了对应的按键控制电路和LCD状态显示电路。 AT89S52的控制指令通过光耦TLP521-4控制ULN2003,根据计算控制脉冲时序,算出电机转过的步数或圈数,用LCD1602A显示步进电机运行状态和转速。各控制按键功能用无线收发模块PT2262/2272作为辅助,共同实现步进电机的控制。同时整个系统作为一个执行部件,嵌入到其他的微机控制系统中。外部微机通过MAX232芯片将信号转化为RS232协议信号,与以AT89S52型单片机作为控制器的单片机进行通信。AT89S52通过内部程序识别外部微机的控制信号,对控制系统进行控制,使得本系统的应用范围与可靠性大大提高。基于AT89S52单片机的步进电机控制器设计可分为3个部分:单片机系统:控制步进电动机;外围电路:单片机和步进电动机的接口电路;程序:编写单片机控制步进电功机的接口程序,实现三角波信号的输出功能。步进电动机与单片机的接口。单片机是性能极佳的控制处理器,在控制步进电机工作时,接口部件必须要有下列功能。电压隔离功能。单片机工作在5V,而步进电机是工作在几十伏,甚至更高。一旦步进电机的电压串到单片机中,就会损坏单片机;步进电机的信号会干扰单片机,也可能导致系统工作失误,因此接口器件必须有隔离功能。信息传递功能。接口部件应能够把单片机的控制信息传递给步进电机回路,产生工作所需的控制信息,对应于不同的工作方式,接口部件应能产生相应的工作控制波形。产生所需的不同频率。为了使步进电机以不同的速度工作,以适应不同的目的,接口部件应能产生不同的工作频率。电压隔离接口专用于隔离低压部分的单片机和高压部分的步进电机驱动电路,以保证它们的正常工作。电压隔离接口可以用脉冲变压器或光电隔离器,现在基本上是采用光电隔离器。单片机输出信号可以通过TTL门电路或者直接送到晶体管的基极,再由晶体管驱动光电耦合器件的发光二极管。发光二极管的光照到光电耦合器件内部的光敏管上,转换成电信号,再去驱动步进电机的功率放大电路,电流放大接口是步进电机功放电路的前置放大电路。它的作用是把光电隔离器的输出信号进行电流放大,以便向功放电路提供足够大的驱动电流。工作方式接口和频率发生器用单片机控制步进电动机,需要在输入输出接口上用4条I/0线对步进电动机进行控制,这时,单片机用I/O口的P0口控制步进电动机的四相绕组。2 系统整体方案的设计2.1 总体方案拟定本设计目的是采用一定的功能模块设计一个开环控制系统,控制步进电机的运动状态。采用单片机最小系统作为步进电机控制器的主控制器模块,按键和无线收发模块作为输入控制部分。输入指令经单片机处理后发出控制指令,经过光耦的光电隔离作用控制步进电机驱动模块,以控制步进电机的运动状态。整个系统可以与外部控制器进行通信,作为一个开放式系统,嵌入到其他系统当中,作为一个智能终端设备。各功能模块如图2-1所示。输入控制模块(由按键和无线收发模块组成)驱动电路主控制器电路(由AT89S52组成的最小系统)输出显示电路通信电路外部控制器图2-1 步进电机控制器设计总体框图2.2 步进电机控制器各功能模块介绍2.2.1 步进电机控制器模块设计本设计采用51系列单片机作为控制器核心,它具有处理输入信号、发出输出控制信号以及与外部系统进行通信的的基本能力。51系列单片机一般具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.2.2 输入控制模块设计输入控制模块作为单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。矩阵连接键盘键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特点是键多时占用I/O口线少,但判键速度慢,多用于设置数字键。适用于键数多的场合。除采用按键控制外,还采用无线收发模块作为遥控。它具有一定的编解码能力,还要有一定的有效控制距离。2.2.3 驱动模块设计驱动模块作为整个系统对外输出的重要环节,它具备放大电流的能力,还有承担负载的能力。功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。在大型仪器仪表系统中,经常要用到伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的器件。高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围广。2.2.4 输出显示模块设计输出显示部分是在各个时段,显示出步进电机的运动状态各项详细信息。字符型液晶是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用。用于显示步进电机的运行状态。2.2.5 串口通讯模块设计具有串口通信能力,对整个系统的应用范围和方便程度是一个很大的扩展。MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,支持控制器间的串口通信。将设计整体作为一个系统执行元件,嵌入到其他微机系统当中。3 硬件电路设计3.1 主控制器电路设计及芯片选型本设计采用AT89S52作为主控制器核心。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 图 3-1 AT89S52引脚结构图 3.1.1 时钟电路设计单片机内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源即可构成时钟电路。单片机执行每一个指令都需要一个时序,其工作频率由时钟电路控制。时钟电路设计如图3-2所示。图3-2 单片机时钟电路设计3.1.2 复位电路设计 图3-3 复位电路在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。52系列单片机的复位引脚RST(第9管脚)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST 持续为高电平,单片机就处于循环复位状态。复位操作通常有两种基本形式:上电自动复位和开关复位。图2 中所示的复位电路就包括了这两种复位方式。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。3.1.3 主控制器最小系统设计本设计采用AT89S52单片机作为主控制器的核心,单片机加上时钟电路和复位电路便构成了单片机最小系统。图 3-4 单片机最小系统设计3.2 输出驱动驱动电路设计图3-5 ULN2003内部达林顿管结构图主控制器通过ULN2003输出放大电路来控制步进电机。功率电子电路大多要求具有大电流输出能力,以驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。在大型仪器仪表系统中,经常要用到伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的器件。ULN2000、ULN2800高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围广。因此,许多公司都生产高压大电流达林顿晶体管阵列产品,从而形成了各种系列产品,ULN2000、ULN2800系列就是美国Texas Instruments公司、美国Sprague公司开发的高压大电流达林顿晶体管阵列产品。美国Texas Instruments 公司、美国Sprague公司生产的ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。由于本文采用的两相混合式步进电机,可以实现两相单四拍和两相双四拍两种运行方式,本系统采用的是单四拍模式,相序为0001-1000-0010-0100。四步格雷码的频率由单片机提供的时钟脉冲频率来控制。驱动信号经过功率放大后驱动步进电机运行,硬件电路如图3-6所示。图3-6 输出驱动电路3.3 输出状态显示电路设计 LCD1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形(用自定义CGRAM,显示效果也不好),可以显示两行,每行16个字符液晶模块(显示字符和数字)。1602液晶也叫1602字符型液晶微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。操作控制字符集1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。以下是1602的16进制ASCII码表地址: 读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。指令集1602通过D0D7的8位数据端传输数据和指令。显示模式设置: (初始化)0011 0000 0x38 设置162显示,57点阵,8位数据接口;显示开关及光标设置: (初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1)N=0(读或写一个字符后地址指针减1 &光标减1)图 3-7 LCD1602字符集S=1 且 N=1 (当写一个字符后,整屏显示左移)S=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。图 3-8 LCD1602A与单片机连接电路设计3.4 串口通讯电路设计MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,支持控制器间的串口通信。将设计整体作为一个系统执行元件,嵌入到其他微机系统当中。MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。引脚介绍第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。 8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 17图 3-9应用电路图第三部分是供电。15脚GND、16脚VCC(+)。 主要特点a、符合所有的RS-232C技术标准 b、只需要单一 +5V电源供电 c、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压d、功耗低,典型供电电流5mA e、内部集成2个RS-232C驱动器 f、内部集成两个RS-232C接收器 g、高集成度,片外最低只需4个电容即可工作。在RS232的规范中,电压值在+3V+15V(一般使用+6V)称为0或ON。电压在-3V-15V(一般使用-6V)称为1或OFF;计算机上的RS232高电位约为9V,而低电位则约为-9V。RS232为全双工工作模式,其信号的电压是参考地线而得到的,可以同时进行数据的传送和接收。在实际应用中采用RS232接口,信号的传输距离可以达到15m。不过RS232只具有单站功能,即一对一通信。图3-10 主控制器与上位机通信电路设计4 软件设计4.1 C51语言C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。对于51单片机,现有四种语言支持,即汇编、PL/M、C和BASIC。BASIC通常附在PC机上,是早期初学编程时的第一种语言;PL/M是Intel从8080微处理器开始为其系列产品开发的编程语言;C语言是源于编写UNIX操作系统的语言,它是一种C语言作为一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。采用C语言对51单片机进行程序设计是单片机开发与应用的必然趋势。C语言的模块化程序结构特点,可以使程序模块大家共享,不断丰富。C语言可读性强的特点,更容易使大家可以借鉴前人的开发经验,提高自己的软件设计水平。采用C语言也不必对单片机和硬件接口有很深入的了解,编译器可以自动完成变量的存储单元的分配,这样一来,编程者就可以专注于应用软件部分的设计,大大加快了软件的开发速度。C语言程序本身并不依赖于机器硬件系统,基本上不作修改就可根据单片机的不同而较快的移植,有利于产品设计中的单片机的重新选型。本设计采用C51进行编程和软件调试,采用Keil C作为编译软件。Keil C支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。产业标准的Keil C编译器、宏汇编器、调试器、实时内核、单板计算机和仿真器,支持所有的51系列微控制器,用它作为开发工具,可以大大缩短开发周期,提高代码质量。4.2 整体程序设计框图否图4-1 程序流程图开始定时器和中断初始化液晶初始化显示当前电机状态检测是否有按键操作执行相应操作是4.3 步进电机控制程序步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机28BYJ48型四相八拍电机,电压为DC5VDC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行。图 4-2 减速步进电机28BYJ-48的原理图由原理图,我们可以知道步进电机的相序驱动方式。通过一次给不同的相变换电平,电机就能转。表4-1 步进电机相序选择导线颜色 1 2 3 4 5 6 7 8 5 红 + + + + + + + +4橙 - -3黄 - - -2粉- - -1蓝 - - - 其相序定义为:uchar code CCW8=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09; /逆时钟旋转相序表uchar code CW8=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08; /正时钟旋转相序表红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口。由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口。按键控制部分设置如下sbit K1=P33;/反转按键sbit K2=P34; /正转按键sbit K3=P35; /加速按键sbit K4=P36; /减速按键sbit K5=P37; /停止按键 由控制按键可以得知,步进电机有2*2共4种运行方式。每种运行方式采用分支程序结构来切入,执行步进电机的控制语句。至于遥控和串口通讯传送到主控制器的代码,由分支程序入口处切入调节相或来实现遥控和从机对步进电机的控制。4.4 液晶显示1602程序设计液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为两大类,一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单易控制且成本低。目前市面上的字符型液晶绝大多数是基于HD44780液晶芯片的,所以控制原理是完全相同的,为HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。液晶控制端口的基本操作时序为读状态、写指令、读数据、写数据。其流程图如图4-5所示。延时查忙写2F指令查忙写06H指令查忙写0CH指令结束图4-3 1602初始化过程字符型LCD通常有14条引脚线(市面上也有很多16条引脚线的LCD,多出来的2条线是电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。开始取一个字符写显示位置字符=0?查忙写一个字符结束图 4-4 主控制器写并在LCD显示字符串4.5 微机通讯软件设计串口通信是本次设计的一个关键应用,通过硬件及软件设计,实现单片机间的有序通信。根据通信内容,解码识别后形成控制指令,对相应设备进行驱动控制。初始化函数设计: SM0=0; SM1=1; /设定串口通信工作方式1,波特率由定时器控制 REN=1; /允许串行口接收 TI=0; /发送中断标志 RI=0; /接收中断标志初始化建立连接连接服务器产生波形数据传送数据读入数据写出数据显示波形NN退出循环退出循环YY关闭连接关闭连接图4-5 双机通信流程图PCON=0; /波特率不加倍,正常工作方式TH1=0xF3; /波特率由定时器设定为2400TL1=0XF3; TMOD=0X20;TR1=1; 发送程序:csh();while(1) if(K1=0) SBUF=tab0; while(!TI); TI=0; while(!TI); TI=0; 接收程序设计: void intrr() interrupt 4 while(RI) /判断是否接受完 RI=0;/接受完了,标志位清零 W=SBUF; ES=1; 单工通信使用一根导线,信号的传送方和接收方有明确的方向性。也就是说,通信只在一个方向上进行。若使用同一根传输线既作为接收线路又作为发送线路,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式称为半双工。采用半双工方式时,通信系统每一端的发送器和接收器,通过收发开关分时转接到通信线上,进行方向的切换。当数据的发送和接收,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传输。全双工方式无须进行方向的切换。串行通信可分为两种类型,一种是同步通信,另一种是异步通信。采用同步通信时,将所有字符组成一个组,这样,字符可以一个接一个地传输,但是,在每组信息的开始要加上同步字符,在没有信息要传输时,填上空字符,因为同步传输不允许有空隙。采用异步通信时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数据位来作为分隔位。比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式高,因为同步方式的非数据信息比例比较小。但是,从另一方面看,同步方式要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每一个信息位的位置。这样一来,如果采用同步方式,那么,在传输数据的同时,还必须传输时钟信号。而在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。在数据传输中,较为广泛采用的是异步通信。5 Proteus仿真分析5.1 步进电机趋动仿真 本仿真旨在测试电机相序、ULN2003以及程序。从上往下,按键依次定义为K1,K2,K3,K4,K5。当按下K1时步进电机逆时针方向转动,按下K3键时,步进电机加速,按下K4键时减速。当按下K5时,步进电机停止运动。当K2按下时,步进电机顺时针方向转动,按下K3键时,步进电机加速,按下K4键时减速。当按下K5时,步进电机停止运动。图5-1 步进电机、驱动芯片及控制程序仿真写步进电机程序是,曾误将单片机类型选择为AT89C51。程序中写的是从P1输出,仿真的时候居然从P0口有电平变化而P1口不变。费好大劲才把这个问题揪出来。5.2 LCD1602A应用仿真仿真液晶显示器LCD1602A时,经过初始化、溢出判断等程序后。可以以数组坐标的形式从某个位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论