本科毕业论文---基于51单片机485通讯步进电机系统设计.doc
毕业设计(论文)基于51单片机485通讯步进电机系统学生姓名XXX学院名称XXX专业名称XXX指导教师 完成时间XXX年X月X日目 录摘要4Abstract 5前 言6第一章 系统整体设计方案81.1硬件总体设计81.1.1 硬件系统子模块81.2软件总体设计9第二章 硬件系统设计102.1硬件电路分析和设计报告102.1.1 单片机最小系统电路102.1.2 键盘电路153.1.3 数码管显示电路153.1.4 485通信电路173.1.5 步进电机连接电路18第三章 软件系统设计193.1 系统软件设计整体思路193.1.1 主程序193.1.2 数码管显示203.1.2 485通讯收发函数213.1.3 步进电机控制函数23第四章 系统调试244.1硬件电路调试244.2软件调试24总结26参考文献:27致 谢28附录A:485通讯步进电机设计原理图29附录B:软件程序31摘要在工业控制自动化领域,智能装置之间的通信占有重要的地位RS485这种串行通信方式,在工控自动化领域应用非常广泛,这种远距离通信可以采集远程信息和远程数据,实现远程控制和远程调节。在工业控制自动化领域智能装置之间的通信占有重要的地位,RS485这种串行通信方式在工控自动化领域应用非常广泛,这种远距离通信可以采集远程信息和远程数据,实现远程控制和远程调节。本设计是由stc89c51单片机实现485通讯,控制步进电机的一个简易控制装置。有数码管显示步进圈数,并且可以按键控制。关键词:RS485 通讯 stc89c51单片机 步进电机Abstract In the field of industrial control automation, intelligent devices is very important for communication between way RS485 serial communication, is widely applied in the field of industrial control automation, this kind of long distance communication can remote information and remote data, to realize the remote control and remote control. intelligent devices in the field of industrial control automation occupies an important position, the communication between the serial communication interface RS485 is widely applied in the field of industrial control automation, this kind of long distance communication can remote information and remote data, to realize the remote control and remote control.This design is by the stc89c51 singlechip microcomputer 485 communication, a simple control stepper motor control device.With digital tube display stepper laps, and also can control buttons.Keywords: RS485 communication stc89c51 singlechip stepper motor前 言自动化技术是国家现代化的标志,作用突出自动化技术的作用体现在,它面向整个工业领域,是连接传统与现代工业的纽带,是把现代管理技术、信息技术转化为现实生产力的关键性手段。在矿山、石油、建材、化工、制药、轻工、电力、汽车制造业以及军工等行业,生产效率的提高无不依赖于控制技术自动化水平的提高。近十几年我国国民经济GDP 长期保持7%以上的增长率,近两年我国汽车工业保持15%以上的增长率,其原因之一就是源于自动化生产线的普及与提高,是自动化技术在起主导和支撑作用。特别是自第二次工业革命以来,电气及对电气的控制技术已成为人们生产、生活乃至生存所必需的一种技术支持,无论是在对大中型企业传统工业技术的技术改造,还是对高新技术产业高效节能的发挥,均起到了至关重要的作用,它已成为当今诸多高新技术系统中不可缺少的关键技术之一,其应用领域几乎涉及到各个工业部门,其地位的重要性,已经或正在对诸如一个国家工业的发展,一个企业参加国际大家庭的激烈竞争,乃至对国家国防军力的强大与现代化程度等中日益凸现出来。RS485又叫EIA-485,是美国电子工业协会EIA制定的一种串行物理接口标准。一般采用两线制传输,利用两线间的电压差进行数据传输。 RS485可以满足通信距离远、抗干扰能力大、传输速率高的要求。通过RS485总线连接的智能设备可以形成网络拓扑,满足了网络信息化的需要。一台主机可以同时控制多台从机,这种一对多的主从通信方式极大的提高了通信的效率,也节省了通信成本。单片机控制是工业生产中经常使用的控制方法.自从1976年Intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。第一章 系统整体设计方案1.1硬件总体设计设计并制作一个基于单片机的485通讯步进电机的电路其结构框图如图1-1所示图1-1 硬件框图1.1.1 硬件系统子模块(1) 单片机最小系统电路部分(2) 键盘扫描电路部分(3) 数码管数字显示(4) 485数据传输与接收部分(5) 步进电机驱动板连接部分1.2软件总体设计 良好的设计方案可以减少软件设计的工作量,提高软件的通用性,扩展性和可读性。本系统的设计方案和步骤如下:(1) 根据需求按照系统的功能要求,逐级划分模块。(2) 明确各模块之间的数据流传递关系,力求数据传递少,以增强各模块的独立性,便于软件编制和调试。(3) 确定软件开发环境,选择设计语言,完成模块功能设计,并分别调试通过。(4) 按照开发式软件设计结构,将各模块有机的结合起来,即成一个较完善的系统。首先通电后工作,注意是先通接收板步进电机12v电源,在通发送板5v单片机供电,开机后数码管显示的数字是0,在此期间可以设置数字,按下确认后经485传输数据,接收板处理后步进电机做出应答。本设计还可以自由移动,设有左右按键,步进电机自由移动。第二章 硬件系统设计2.1硬件电路分析和设计报告本设计硬件设计是有单片机通过IO口P2.3管脚进行485数据的传输。P1口按键,控制左右及定向移动。P2.7 、P2.6、P2.5控制步进电机,如果步进电机相序变反,那么移动也会变反。2.1.1 单片机最小系统电路本系统采用的单片机为STC89C52RC。STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。主要特性如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40+85(工业级)/075(商业级)PDIP封装STC89C52RC单片机的工作模式掉电模式:典型功耗<0.1A,可由外部中断唤醒,中断返回后,继续执行原程序空闲模式:典型功耗2mA正常工作模式:典型功耗4Ma7mA掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备STC89C52RC引脚图STC89C52RC引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流()。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:在对Flash ROM编程和程序校验时,P1接收低8位地址。表XX P1.0和P1.1引脚复用功能引脚号功能特性P1.0T2(定时器/计数器2外部计数输入),时钟输出P1.1T2EX(定时器/计数器2捕获/重装触发和方向控制)P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流()。在对Flash ROM编程或程序校验时,P3还接收一些控制信号。P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示:表XX P3口引脚复用功能引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。(29引脚):外部程序存储器选通信号()是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。单片机最小系统的原理图如图2-1所示,单片机最小系统主要由晶振电路和复位电路组成。单片机XIAL1和XIAL2分别接30PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路。ALE引脚悬空,复位引脚接到复位电路、VCC接电源、VSS接地、EA接电源。图2-1 单片机最小系统原理图2.1.2 键盘电路键盘是单片机应用系统中的主要输入设备,单片机使用的键盘分为编码键盘和非编码键盘。编码键盘采用硬件线路来实现键盘的编码,每按下一个键,键盘能够自动生成按键代码,并有去抖功能。因此使用方便,但硬件较复杂。非编码键盘仅仅提供键开关状态,由程序来识别闭合键,消除抖动,产生相应的代码,转入执行该键的功能程序。非编码键盘中键的数量较少,硬件简单,在单片机中应用非常广泛。电路如图2-2所示图2-2 按键电路3.1.3 数码管显示电路考虑到经济适用,方便关系,本系统采用数码管作为显示,数码管显示数字比较直观明了,一下是对数码管的介绍数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出需要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。本文数码管显示电路如图2-3所示图2-3 数码管显示电路3.1.4 485通信电路RS-485是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的Sony与松下对录像机的RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公开的,而ProLINK则是基于Profile上的。图2-4 连接器如下图2-5所示为485电路连接图图2-5 485通讯电路3.1.5 步进电机连接电路步进电动机是一种将电脉冲信号转换成相应角位移或线位移的电动机,它的运行需要专门的驱动电源,驱动电源的输出受外部的脉冲信号控制。每一个脉冲信号可使步进电机旋转一个固定的角度,这个角度称为步距角。脉冲的数量决定了旋转的总角度,脉冲的频率决定了电动机旋转的速度,改变绕组的通电顺序可以改变电机旋转的方向。在数字控制系统中,它既可以用作驱动电动机,也可以用作伺服电动机。它在工业过程控制中得到广泛的应用,尤其在智能仪表和需要精确定位的场合应用更为广泛。电路如图2-6所示图2-6 步进电机驱动板第三章 软件系统设计一个应用系统要完成各项功能,首先必须有较完善的硬件作保证,同时还必须得到相应设计合理的软件的支持。尤其是计算机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。因此充分利用其内部丰富的硬件资源和软件资源,采用与C51系列单片机相对应的51C语言和结构化程序设计方法进行软件编程。该设计的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。采用STC89RC52通用单片机,成本低,稳定性高。3.1 系统软件设计整体思路发送板的显示函数,485通讯发送函数,按键函数。接收板的485通讯接收函数,步进电机应答函数。3.1.1 主程序主程序包括,定时器初始化,485通讯初始化、以及显示、按键控制。首先是定时器初始化,485 25毫秒传输数据,接收板应答。主函数程序如图3-1、3-2所示图3-1 发送板主函数图3-2 接收板主函数 主程序的程序流程图如图3-3所示。图3-3主函数流程图3.1.2 数码管显示程序框图如图4-3所示图3-3 数码管程序框图数码管显示程序如图3-4所示图4-3 数码管显示函数3.1.2 485通讯收发函数如图4-4图4-5所示图4-4 485通讯接受函数图4-5 485通讯发送函数3.1.3 步进电机控制函数如图4-6 图4-7所示图4-6 步进电机接受函数图4-7步进电机发送函数第四章 系统调试4.1硬件电路调试仔细检查所接电路,按照硬件原理图接线,理论上是能实现的(1) 数码管不正常显示断选位选位置不对,扫描太快,检查线路是否正常(2)通讯协议不成功检查是否收发段SBUF收发正确(3) 步进电机不运行检查通讯是否正常步进电机是否12v电源供电4.2软件调试如果硬件电路检查后,没有问题却实现不了设计要求,则可能是软件编程的问题,首先应检查初始化程序,然后是读温度程序,显示程序,以及PWM控制程序,对这些分段程序,要注意逻辑顺序,调用关系,以及涉及到了标号,有时会因为一个标号而影响程序的执行,除此之外,还要熟悉各指令的用法,以免出错。还有一个容易忽略的问题就是,源程序生成的代码是否烧入到单片机中,如果这一过程出错,那不能实现设计要求也是情理之中的事。本人在设计的时候在伟福仿真软件进行调试,通过此软件进行调试可以很方便的观察单片机内部各个寄存器及内部存储器变化情况,以方便进行调试。图为单片机功能调试图:图4-1 单片机功能调试图硬件与软件调试相结合,仔细检查各个模块的设计,就能顺利完成任务,实现设计要求,在调试过程中必须认真耐心,不能有一点马虎,否则遗漏一个小的问题就会导致整个设计的失败。 总结 通过本次的设计,使我们不仅对单片机这门课程有了更深刻的认识,懂得了如何运用课本知识结合实际来完成定时器的显示和编程方法以及数码显示电路的驱动方法,使我们能够很快的适应现代控制技术发展的需求,同时也提高了我们的思维能力和实际操作能力,为以后更好的走上工作岗位奠定了坚实的基础。 另外,这次的设计还让我更进一步的认识了关于STC89C52等芯片的引脚功能以及使用方法,使我学会了应用不同的芯片来配合完成整个设计的操作。 在做硬件电路的这段时间里,从思考设计到对电路的调试经过了许多困难。同样在对软件进行设计时,也可为一路坎坷。但是通过对软硬件不断撞墙,不断思考解决问题的过程中,我学会了很多东西,同时对单片机也有了更深的认识。在做设计的时候,很需要耐心和对事物的细心,很多时候一个简单问题的一个简单的疏忽就会导致整个电路的不工作,只有不断的检查不断的调试,才能真正完成一个设计的制作。只有不断的发现问题解决问题,才能从问题中改变自己,提升自己对单片机的能力。 此设计虽然能够完成温度的显示和控制,但功能和温度功率的控制精度有待于进一步提高。参考文献:1 蔡美琴,张为民,沈新群,张荣娟.MCS-51系列单片机系统及其应用M. 高等教育出版社,1998,12 .2 熊江,杨凤年. 微机系统与接口技术.武汉:武汉大学出版社,2007. 3 孙育才. MCS-51系列单片微型计算机及其应用.南京:东南大学出版社,2004. 4 张弥左,王兆月. 微型计算机接口技术.北京:机械工业出版社,2004. 5 朱善君. 单片机接口技术与应用.北京:清华大学出版社,2005. 6 刘星. 计算机接口技术.北京:机械工业出版社,2002. 致 谢 经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个学生,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。首先感谢*老师出的这些论文选题,给了我这么一个展现自己能力的平台。在这一个论文设计之中,涉及到了方方面面的知识,没有大学期间各个学科老师的辛勤栽培,也不会有我见天的成果。所以要感谢所有的任课老师 。在这里也要感谢我的室友们,是他们在平时无微不至的照顾,才有了我更棒的身体,和更多的学习时间。三年的时间里,我们没有红过脸,我们一直保持着那份纯真的友谊,是我们的互相帮助,才有了今天的这份德业双修。所以在这里也要感谢我们的*学院,是学院给了我们这么宽广的一个交流平台,能够在获得知识的同时,也能得到同样珍贵的友谊。在论文即将完成之际,我的心情很是激动,那些埋头苦干和终日坐在电脑跟前的场景还是历历在目,辛勤劳动的付出,相信也能够给我带来同样分量的收获。从开始进入课题到论文的顺利完成,有太多太多的要感谢的朋友和老师,在这里请接受我真挚的感谢!