已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
桂林電子科技大学毕业设计(论文)报告用纸目 录1 绪论11.1 课题研究背景11.2 课题开发的意义11.3 课题主要研究内容11.4 课题研究步骤22 绘图仪控制系统的总体设计32.1 概述32.2 系统设计要求32.3 系统的总体方案和要求32.3.1绘图仪控制系统的功能组成与控制参数32.3.2系统硬件结构框图42.4 控制器42.4.1芯片的选择42.4.2单片机介绍52.5 显示电路设计72.5.1 1602资料介绍72.5.2 显示电路设计102.6电机112.6.1步进电机的相关参数112.6.2 应用中的注意点122.7 电机驱动的设计132.7.1 L298驱动原理132.7.2 电机驱动电路设计163 系统软件设计183.1 键盘扫描模块183.2 插补计算模块183.3.1 直线插补184 硬件制作及调试294.1 系统PCB板的设计294.2 硬件调试305 总结32谢 辞33参考文献34附录35桂林電子科技大学毕业设计(论文)报告用纸 第47页 共48页1 绪论1.1 课题研究背景进入90年代以来,由于计算机技术的飞速发展,推动绘图仪控制技术更快的更新换代。世界上许绘图仪系统生产厂家利用PC机丰富的软硬件资源开发开放式体系结构的新一代控制系统。开放式体系结构使绘图仪控制系统有更好的通用性、柔性、适应性、扩展性,并向智能化、网络化方向大大发展。开放式体系结构可以大量采用通用微机的先进技术,如多媒体技术,实现声控自动编程、图形扫描自动编程等。绘图仪控制系统继续向高集成度方向发展,每个芯片上可以集成更多个晶体管,使系统体积更小,更加小型化、微型化。可靠性大大提高。利用多CPU的优势,实现故障自动排除;增强通信功能,提高进线、联网能力。开放式体系结构的新一代绘图仪控制系统,其硬件、软件和总线规范都是对外开放的,由于有充足的软、硬件资源可供利用,不仅使绘图仪系统制造商和用户进行的系统集成得到有力的支持,而且也为用户的二次开发带来极大方便,促进了控制系统多档次、多品种的开发和广泛应用,既可通过升档或剪裁构成各种档次的控制系统,又可通过扩展构成不同类型绘图仪控制系统,开发生产周期大大缩短。1.2 课题开发的意义绘图仪的种类繁多,形式各异,有传统的平行四杆式,还有各种精度和规格的轨道式绘图仪,更有与PC机配合使用的机器绘图仪,这些科学技术的结晶给广大工程技术人员的设计及制图到来了极大的便利。但他们大多或是分量太重,不便携带,或是价格昂贵不能普遍应用,因此急需一种既便于携带又价格便宜的绘图仪,本系统就是为了实现这些功能而设计出来的。1.3 课题主要研究内容本课题拟以AT89C52单片机为核心,设计一套以绘图笔为控制对象的绘图仪控制系统。本课题的主要任务是研制一套单片机系统,并使这套单片机系统可实现对绘图笔进行控制和管理。整套系统能够完成绘图及相应的显示。根据系统要求和拟完成的功能特点,本课题研究的主要内容有:(1)总体设计:首先按照系统的应用场合,工作环境,控制对象等确定合理的设计方案,仔细划分软件部分和硬件部分各自应完成的功能,形成系统的研究模型。(2)硬件设计:由于现在市场上各种芯片种类繁多,而且不断在推陈出新,因此必须按照系统要求,根据“性价比最高”原则,选择既适合于本系统,又运行可靠的芯片和元器件,从而设计出最合理的硬件电路,并用PROTEL电路设计软件画出正确的电路图,然后在单片机开发装置的面包板上搭出实验电路,通过实验随时对电路图进行修改,最终调试无误后,再制成印制电路板。(3)软件设计。利用模块化的程序设计方法,把系统应用程序按照整体功能划分为若干相对独立的程序模块,绘出程序流程图,各个模块单独进行设计,利用单片机C语言编程。(4)系统的调试与运行。在单片机开发装置上,用调试软件对程序进行调试,查错和修改,然后把调好的程序联成一个完整的系统程序,再进行联机调试,在线仿真,最后组装样机,脱机运行,通过试运行对系统进行检测,以验证系统的功能。1.4 课题研究步骤在设计开发过程中,严格遵循科学的研究方法,从课题的选择、系统功能规划、电路原理图设计、电路板设计、软件程序设计以及样机制作调试,整机运行测试等几大步骤逐一完成。2 绘图仪控制系统的总体设计本系统的硬件由输入输出部分和控制部分组成。输入输出部分工作主要由键盘来完成;控制部分主要完成系统参数和控制参数的设定、电机的控制、复位、时钟电路、LCD显示和按键处理以及各路输入和输出指示等。2.1 概述单片微型计算机简称单片机,又称微控制器或嵌入式控制器。它将计算机的基本部件微型化,使之集成在一块芯片上的微机。片内含有CPU,ROM,RAM,并行I/O口,定时计数器,中断控制,时钟系统及总线等。它是工业控制和智能化控制系统中应用最多的一种模式。这种模式的最大特点是设计者可根据自己的实际需要开发,设计一个单片机系统,因而更加方便,更加灵活,成本更低。其基本方法是在单片机的基础上扩展一些接口,如用于模拟/数字转换的A/D,D/A接口,用于人机对话的键盘处理接口,LED和LCD接口,用于输出控制的电机接口等。然后再开发一些应用软件就可组成完整的单片机系统。单片机有着体积小,功耗低,功能强,性能价格比高,易于推广应用等显著特点,在自动化装置,智能化仪器仪表,过程控制和家用电器等许多领域获得了广泛的应用。2.2 系统设计要求系统的总体设计要求如下:(1)键盘输入:由于绘图仪需要输入各种参数及命令才会按照相关参数及指令要求进行相应的操作,参数包括:所绘曲线的类型、坐标、直径等;指令则包括:开停机、复位加减速等。(2)实时显示所绘曲线类型,绘图笔坐标、所绘长度、速度,当前操作状态及当前系统时间等。(3)是用驱动芯片,实现对单片机输出信号进行放大,使其能够驱动步进电机工作。(4)步进电机带动绘图笔按照单片机输出的控制信号,带动绘图笔进行相应图形的绘制。2.3 系统的总体方案和要求2.3.1绘图仪控制系统的功能组成与控制参数该系统的开发是在充分了解并分析目前各类绘图仪控制器的前提下进行的,整个系统共分为以下几个模块:即键盘输/LCD显示/电机驱动/步进电机等。这些子模块都有各自的信号检测输入以及控制输出功能,并结合系统的时钟电路、复位电路以及各子系统的功能参数的设置,共同集成为一套功能完善的绘图仪控制系统。该系统的控制对象为步进电机,控制的目的是使系统通过对步进电机发出驱动指令,带动绘图笔移动,以会出各种不同的图形。2.3.2系统硬件结构框图本系统以单片机为核心CPU,组成一个可独立运行,实现各种控制信号输出的控制系统,从总体上讲,该系统硬件设计共包括两大部分:控制部分和输入输出部分,如图2.1所示。单片机1602显示电路光耦L298驱动芯片步进电机按键输入晶振电路图2.1 原理框图2.4 控制器最为一个系统的核心,控制的选取时尤为重要的,我们不仅要考虑性能、速度等问题,还要考虑成本、可行性等问题。2.4.1芯片的选择单片机按照其基本操作处理的位数可分为:1位机、4位机、8位机、16位机、32位机等。其中1位机和4位机结构简单,成本很低,但指令不丰富,且编程复杂,可用于简单的校制:16位机和32位单片机集成度高,性能优越,但是其价格目前比较贵,从而限制了广泛的应用;而8位单片机小巧灵活,指令丰富,性价比极高的优势使其产品占领目前整个单片机市场的60%以上份额,可以说8位单片机将在今后一段时间内仍是工业检测控制的主流机型。现在世界上比较著名的单片机生产厂家有美国INTEL公司,MOTOROLA公司,TI公司,MAXIM公司,NS公司,ATMEL公司等。近年来,随着美国ATMEL公司的AT89系列单片机的推出和单片机C语言的广泛应用,MCS-51单片机有了进一步的活力。AT89系列以MCS-51为内核,兼容了MCS-51的硬件和软件,其主要优点在于:片内的程序存贮器采用闪烁存贮技术,具有电可擦除,电可编程,且编程和擦除时间短(4K字节存贮器编程约3秒,擦除时间10ms),并可反复编程,数据不易挥发,而且加密功能也大大增强了,能有效的防止用户程序被复制。时钟频率的提高使运算速度也加快了。产品中的20脚封装形式的机种,使其体积更小,更具应用灵活性,可方便的应用于家电产品及小型仪器仪表。经综合考虑,本系统决定选用美国ATMEL公司生产的AT89S52型单片机作为主控制器主芯片,AT89S2051作为输入输出控制器的主芯片。这两种机型是该公司近几年推出的机型,其市场价仅几元/片左右,性价比极高,所以一经推出就得到了广大用户的青睐。2.4.2单片机介绍(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内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 , P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。2.5 显示电路设计在单片机应用系统中,显示器是单片机应用系统中实现人机对话的一种基本方式。常用的显示器主要有:发光二极管显示器,简称LED(Light Emitting Diode);液晶显示器,简称LCD(Liquid Crystal Display);荧光管显示器。近年来也开始实用简易的CRT(Cathode Ray Tube)显示器,显示一些汉字及图形。前三种显示器都有两种显示结构:段显示(7段,“米”字型等)和点阵显示(57,58,88点阵等)。LED显示器价廉,配置灵活,与单片机接口方便,控制简单,寿命长,可靠性高,驱动电路灵活。显示亮度适中;不足之处是只能显示09以及几个字母信息。LCD显示器微功耗、体积小、显示内容丰富、超薄轻巧,可进行图形显示,但接口较复杂,成本也较高;荧光显示器可显示图形,显示亮度是三者最高的,但其结构复杂,价格昂贵。综合本自动拨号报警系统需求,因为要记录报警时间,故不能用LED显示管。并考虑价格,显示效果,电路焊接等条件,因此对显示器件的选择为LCD1602。2.5.1 1602资料介绍(1)LCD1602基本结构:LCD模块主要是由LCD控制器、LCD驱动器、LCD显示装置三部分组成。目前大多数的LCD液晶显示器的控制器都有采用一颗型号为HD44780的集成电路作控制器。HD44780是集控制器,驱动器于一体,专用于字符显示控制驱动集成电路。HD44780是字符型液晶显示控制器的代表电路。HD44780的工作原理:在HD44780的内部与显示操作有关的部件有DDRAM、CGROM、CGRAM、IR、DR、BF、AC等,各自的名称及功能为:DDRAM-数据显示用的RAM。该存储区域是用来存放我要LCD显示的资料,只要将标准的ASCLL码放入DDRAM,内部控制线路会自动将资料传送到显示器上。例如,要LCD显示字符“A”,则只需将A的ASCLL码41H存入DDRAM即可。DDRAM有80B空间,共可显示80个字(每个字为一个字节),其记忆体地址与实际显示位置的排列顺序与LCD的型号有关。CGRAM-字型、字符产生器的RAM。该存储区是供使用者自行定义设计特殊字型、字符码的RAM。CGRAM共有512bit。一个57点矩阵字型需88bit,所以CGRAM最多可存8个造型。IR-指令寄存器。IR寄存器负责存储CPU要写给LCD的命令。DR-资料寄存器。DR寄存器负责存储CPU要写到CGRAM或DDRAM的资料,或存储CPU要从CGRAM或DDRAM读出的资料,因此DR寄存器可视为一个资料缓冲区。BF-忙碌信号。BF的功能为告诉CPU LCD内是否正忙着处理资料,当BF=1时,表示LCD内部正在处理资料,不能接受CPU送来的指令或资料。设置BF的原因主要是解决LCD与CPU的速度差别。AC-地址计数器。AC的任务是负责技术写到CGRAM或DDRAM的资料的地址,或从DDRAM或CGRAM读出资料的地址。(2) LCD1602管脚功能1602采用标准的16脚接口,其中: 第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:空脚 LCD1602自带ASCII码1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 LCD1602的控制器指令1602液晶模块内部的控制器共有11条控制指令,如表2-1所示它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据表2-1 控制指令表指令序号指令动作指令编码执行时间RSRWEDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01清屏001 0 0 0 0 0 0 0 11.64ms2光标归位001 0 0 0 0 0 0 1 *1.64ms3进入模式设定001 0 0 0 0 0 1 I/D S40us4显示器开关控制001 0 0 0 0 1 D C B40us5显示器或光标移动方向设定001 0 0 0 1 S/C R/L * *40us6功能设定0010 0 0 DL N F * *40us7CGRAM地址的设定001 0 1 CGRAM的地址(6位元)40us8DDRAM地址的设定001 1 DDRAM的地址(7位元)40us9忙碌信号或AC地址的设定011BF AC的内容AC0AC6(7位元)40us10写资料到DDRAM或CGRAM101要写到LCD的资料D7D0(8位元)40us11从DDRAM或DDRAM读出资料111读出资料D7D0(8位元)40us2.5.2 显示电路设计显示模块设计原理图图2.2 显示模块原理图如图2.2所示,排阻作为上拉电阻,D0D7接P0口,作为数据传输口用。VO接可变电阻R1以调整显示对比度。P3口做数据输出端口,给LCD1602的E、RS、R/W输出所需电平。2.6电机2.6.1步进电机的相关参数步进电机有步距角(涉及到相数)、静转矩、及电流三大要素组成。一旦三大要素确定,步进电机的型号便确定下来了。1) 步进电机步距角电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,每个当量电机应走多少角度(包括减速)。电机的步距角应等于或小于此角度。目前市场上步进电机的步距角一般有0.36度/0.72度(五相电机)、0.9度/1.8度(二、四相电机)、1.5度/3度 (三相电机)等。2) 步进电机静力矩步进电机的动态力矩一下子很难确定,我们往往先确定电机的静力矩。静力矩选择的依据是电机工作的负载,而负载可分为惯性负载和摩擦负载二种。单一的惯性负载和单一的摩擦负载是不存在的。直接起动时(一般由低速)时二种负载均要考虑,加速起动时主要考虑惯性负载,恒速运行进只要考虑摩擦负载。一般情况下,静力矩应为摩擦负载的2-3倍内好,静力矩一旦选定,电机的机座及长度便能确定下来(几何尺寸)3) 步进电机电流静力矩一样的电机,由于电流参数不同,其运行特性差别很大,可依据矩频特性曲线图,判断电机的电流(参考驱动电源、及驱动电压) 综上所述选择电机一般应遵循以下步骤:4) 步进电机力矩与功率换算步进电机一般在较大范围内调速使用、其功率是变化的,一般只用力矩来衡量,力矩与功率换算如下:P= M =2n/60 P=2nM/60其P为功率单位为瓦,为每秒角速度,单位为弧度,n为每分钟转速,M为力矩单位为牛顿米 P=2fM/400(半步工作)其中f为每秒脉冲数(简称PPS)综合上面几项,决定选用两相混合式步进电机39BYG250B,它的各项数据如表2-2: 表2-2 39BYG250B参数规格型号相数步距角( 。)相电流(A)保持转矩(N.m)转动惯量(g.cm2)重量(Kg)外形尺寸(mm)39BYG250B-005120.9/1.80.50.065110.1239*39*20图2.3 选择电机应考虑的步骤2.6.2 应用中的注意点1) 步进电机应用于低速场合-每分钟转速不超过1000转,(0.9度时6666PPS),最好在1000-3000PPS(0.9度)间使用,可通过减速装置使其在此间工作,此时电机工作效率高,噪音低。2) 步进电机最好不使用整步状态,整步状态时振动大。3) 由于历史原因,只有标称为12V电压的电机使用12V外,其他电机的电压值不是驱动电压伏值 ,可根据驱动器选择驱动电压(建议:57BYG采用直流24V-36V,86BYG采用直流50V,110BYG采用高于直流80V),当然12伏的电压除12V恒压驱动外也可以采用其他驱动电源, 不过要考虑温升。4) 转动惯量大的负载应选择大机座号电机。5) 电机在较高速或大惯量负载时,一般不在工作速度起动,而采用逐渐升频提速,一电机不失步,二可以减少噪音同时可以提高停止的定位精度。6) 高精度时,应通过机械减速、提高电机速度,或采用高细分数的驱动器来解决,也可以采用5相电机,不过其整个系统的价格较贵,生产厂家少,其被淘汰的说法是外行话。2.7 电机驱动的设计本电路采用L298作为电机的驱动,它是一种恒压恒流桥式2A驱动芯片。L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达到50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。2.7.1 L298驱动原理L298的内部结构为两个H桥电路,H桥电路原理如2.3所示。图2.3中所示为一个典型的直流电机控制电路。电路以为酷似字母H而被人们称为 “H桥驱动电路”。4个三极管组成H的4条垂直褪,而电机线圈则是H中的(图2.3及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。图2.3 H桥驱动电路如图2.3所示,H桥式电机驱动电路包含4个三极管和一个电机。要使用电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。要使电机运转,必须使对角线上的一对三极管导通。如图2.4所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经过Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。图2.4 H桥电路驱动电机顺时针转动图2.5所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。图2.5 H桥驱动电机逆时针转动驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。如果三极管Q1和Q1同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三极管外没有其他任务负载,因此电路上的电流就可能达到最大值(该电流仅收点原性能限制),甚至烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便的控制三极管的开关。图2.6所示就是基于这种考虑的改进电路,它在基于H桥带南路的基础上增加了4个与门和2个非门。4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。而2个非门通过提供一种方向输入,可以保证任何时候在H桥的同侧腿上都只有一个三机关能导通。(与本节千米那的示意图一样,图2.6所示也不是一个完整的电路图,特别是图中与门和三极管直接连接时不能正常工作的。)图2.6 具有使能控制和方向逻辑的H桥电路采用以上方法,电机的运转就只需要用三个信号控制:两个方向信号和一个使能信号。如果DIR-L信号为0,DIR-R信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机(如图2.7所示);如果DIR-L信号变为1,而DIR-R信号变为0,那么Q2和Q3将导通,电流则反向流过电机。L298N中已经将其封装好集成在一个芯片中,在额定的电压和电流内使用非常方便可靠。图2.7 使能信号与方向信号的使用如图2.8所示,L298N可接受标准TTL逻辑电平信号Vss,Vss可接4.57V电压。4脚Vs接电源电压,Vs电压范围VIH为2.546V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便介入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。表2-2是L298N功能模块。图2.8 L298N内部功能模块表2-2 L298N 功能模块EaAIn1In2运行状态0停止110正传101反转111刹停100停止In3,In4的逻辑图与表2-2相同。由表2.2可知EnA为低电平是,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正传或反转。同为低电平时电机停止,同为高电平电机刹停。图2.9是其引脚图:1、15脚是输出电流反馈引脚,其它与L298相同。在通常使用中这两个引脚也可以直接接地。2.7.2 电机驱动电路设计在电路原理图中,电机驱动芯片L298的输入接光耦,输出的脉冲信号驱动步进电机。其电路接法如图2.10。图2.9 L298引脚图散热片与8脚连通 图2.10 电机驱动电路原理图3 系统软件设计本系统的软件主要包括:键盘扫描和插补计算模块。3.1 键盘扫描模块每个按键有它的值,它的值就是识别这个按键的编码。键盘直接与单片机通信。 其程序流程图如图3.1所示。开始给P1口赋值0x0f按键按下延时按键按下把P1口赋值key按键抬起返回key值NNYYNY图3.1 键盘程序流程图3.2 插补计算模块在本系统的软件设计中,对插补的编程时主要的难点,插补算法的选取不仅会影响到系统的速度,而且还影响所绘图形的精度。因此,对插补算法的选择要做诸多考虑。3.3.1 直线插补1) 直线插补法 直线插补法是在绘图系统中常用的一种逐点比较算法。它的原理是:执行机构每走一步,都要和给定轨迹上的坐标值进行一次比较,看当前位置和轨迹位置的关系,从而确定下一步的进给方向。如果当前位置在给定轨迹的下方,下一步向给定轨迹的上方走,反之则相反。如果当前位置在给定轨迹的里面,下一步向给定轨迹的外面走,反之则相反。这样走一步看一步,决定下一步走向,形成“逐点比较”,使走线逼近给定轨迹。 设置偏差初值F=0设置运行总步数SUM=Xe+YeF=0?F=F+XeF=F-Ye+Y走步+X走步SUM=SUM-1SUM=0?结束YNYN图3.1 第一象限直线插补计算子程序图插补计算四个节拍终点判断坐标进给插补计算四个节拍差别判别图3.1为第一象限直线插补计算的程序示意流程图,图中用F表示偏差计算量,用Xe,Ye表示直线终点坐标(直线起点默认为原点),SUM表示直线终点坐标Xe和Ye之和。这种方法来加工直线需要分成四步:首先进行偏差判别,然后利用相应的偏差计算公式进行偏差计算,根据偏差值再给出下一步的进给方向,最后判断终点是否到达,如此循环来逼近给定轨迹。12432134560A(Xe,Ye)23456781图3.2 第一象限直线插补走步轨迹图910表3-1是加工第一象限的起点为(0,0),终点为(6,4)的直线的计算过程:从起点(坐标原点)出发,当F0时,沿+X轴方向走一步,当F0时沿+Y轴方向走一步,当两方向所走的步数与终点坐标(Xe,Ye)相等时,直线到终点,停止插补。走步轨迹如图3.2所示。表3-1 第一象限直线插补过程表步数偏差符号辨别进给方向偏差计算终点判断起点F0=0=101F=0+XF1= F0- Ye=0-4=-4=10-1=92F0+XF3= F2- Ye =2-4=-2=8-1=74F0+XF5= F4- Ye =4-4=0=6-1=56F=0+XF6= F5- Ye =0-4=-4=5-1=47F0+XF8= F7- Ye =2-4=-2=3-1=29F0+XF10= F9- Ye =4-4=0=1-1=0前面我们看到的是第一象限的插补程序和走步轨迹图,如果我们把轨迹扩充到整个平面,可得到表3-2和图3.3。表3-2 直线插补公式表终点象限偏差符号识别进给方向偏差计算公式坐标位置修改第一象限Fi=0+XFi+1=Fi-|Ye|Xi+1=Xi+1Fi =0-XFi+1=Fi-|Ye|Xi+1=Xi-1Fi =0-XFi+1=Fi-|Ye|Xi+1=Xi-1Fi =0+XFi+1=Fi-|Ye|Xi+1=Xi+1Fi 0-YFi+1=Fi-|Xe|Yi+1=Yi-1(其中Xe和Ye为直线终点坐标,Xi和Yi为轨迹点的当前坐标)-yA(Xe,Ye)A(Xe,-Ye)A(-Xe,Ye)A(-Xe,-Ye)y-xxF0F0F0F=0F=0F=0F=0图3.3 四个象限直线偏差符号和进给方向 但是在实际应用中,由于表3-2没有体现直线终点在数轴上的情况,造成数轴上的直线不能正确画出。补充如表3-3所示:表3-3 直线在数轴上插补表数轴 进给方向 坐标位置修改 X轴正向+X Xi+1 = Xi1 X轴反向-X Xi+1 = Xi1 Y轴正向+Y Yi+1 = Yi1 Y轴反向-Y Yi+1 = Yi1 此算法在实际程序编写时程序代码多,程序复杂,执行速度慢,为了提高计算速度,加快系统的反应速度,笔者经过实践总结,概括出一种直线算法,这里称之为直线简易算法。 2) 直线简易算法 这种直线简易算法是根据计算机图形学中直线的显示方法改变而来。基本原理也是“逐点比较”,执行机构根据当前位置和轨迹位置的关系,从而确定下一步的进给方向。但是数据的处理过程不同。在直线插补法中,一次循环只能确定一个走向(X向或Y向),而在直线简易算法中,一次循环可以走两步,这样可以大大提高效率。同时,直线插补法要考虑象限的问题,不同的象限有不同的计算公式,而直线简易算法绕开了象限的问题,可以节省很多代码。直线简易算法的流程图如图3.4所示。其中Xe和Ye为直线终点坐标;incx和incy为Xe和Ye符号标志;Distance为Xe和Ye绝对值的最大值;xerr和yerr为中间变量;T为循这种直线简易算法简单,易于编写和调试、维护,在处理数据长度在一个到两个字节范围内的直线时使用该算法优点突出,运行速度很快。 在实际应用中,如果系统采用相对坐标,数据较小,我们可以用直线简易算法,如果系统的数据都较大,用插补的算法速度相对比第二种快,当然,如果系统的数据有大有小,我们可以两种算法同时使用,根据数据的大小选择相应的算法,使系统具有更好的处理效果和更高的运行速度。开始Xe=0?incx=-1Ye=0?incx=1incy=-1incy=1Xe=|Xe|,Ye=|Ye|Distance=MAX(Xe,Ye)T=0;xerr=0;yerr=0TDistance?xerrDistance?xerr=xerrXe;yerr=yerrYexerr=xerrDistanceincx0 +X进给incxDistance?yerr=yerr-Distanceincy0 +Y进给incy=0-YF i+1=Fi2Yi1Xi+1=XiYi+1=Yi1第二象限-Y第三象限+Y第四象限+Y第一象限Fi =0-XF i+1=Fi2Xi1Xi+1=Xi1 Yi+1=Yi第二象限+X第三象限+X第四象限-X第一象限Fi 0,Ye0 二象限 Xe0,Ye0 三象限 Xe0,Ye0 四象限 Xe0,Ye0 这种画圆的算法在实际程序编写时因为要考虑圆的象限问题,对应不同的象限有不同的计算方法。程序编写时复杂烦琐,可用性不高,我们同样可以利用画线的简易算法来实现画圆的过程。2) 多边形逼近画圆 一个正多边形,当其边数n足够大,即每边所对的圆心角足够小时,就非常接近一个圆。这样,画圆的问题就变成画多边形、画直线的问题了,只要确定n和角的大小,多边形顶点的坐标位置,我们就可以绕开烦琐的象限问题,直接利用上面的画线的简易算法来实现画圆。 a. n和角的大小的确定 在用正多边形逼近一个圆时,我们假设多边形的各个顶点落在圆周外侧,而各边中点落在圆周内侧,并假设它们偏离圆周的绝对误差均为,如图7所示,只要0.5,则边线与弧线的差别就可以忽略。图7中,R为圆半径,正多边形的边数n与每边所对圆心角的关系为 n=2/ (1)根据图7的几何关系,不难得到 (R+)-(R+)cos(/2)=2 一般远小于1弧度,cos(/2)1-()2/8,故上式可简化为:(R+)()2/8=2 (2)由式1和式2解得:若取0.4,代入式(3)可得 可见,n和R的平方根成正比,为了避免开方运算,可用分段的直线来近似表示n与R的关系,分段直线的方程为n=iR+i,在不同的R区间,可选择不同的i和i,一般我们选择下面的近似公式求n. (4)(5)b. 多边形顶点坐标的确定 设所求圆的圆心在原点,半径为R,根据上面所述,逼近该圆的多边形的外接圆的半径应为R+,令r=R+,有 xi=rcosi (6)yi=rsini (7)为了算出多边形所有顶点的坐标,我们可以设计一个循环程序,从 i=0开始,每次增加,利用上式求出一系列的P i (xi,yi),直到=2为止。但这个程序中用到了费时的三角
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械制造业安全操作规范试题及答案详解
- 康复科心理测试常见误区及正确做法
- 经济金融投资模拟题与答案解析
- 环境科学知识问答及答案分析
- 机器人探索之旅少儿知识测试与答案指南
- 环保工程师实战指南废水处理技能测试答案集
- 开学复习计划表与测试指导手册
- T∕CISA 528-2025 AlNiCo45 6铸造永磁合金
- 2025年低空经济无人机载货能力报告
- 惠安馆考试复习策略与计划
- 网络安全市场2025年市场竞争格局变化可行性分析报告
- PRP技术治疗骨关节疼痛
- 口腔门诊护士培训课件
- 高压用电安全培训课件
- 2025至2030中国高模量碳纤维行业产业运行态势及投资规划深度研究报告
- 轮机安全操作培训内容课件
- 2025年兰州市初中语文学业水平考试卷附答案解析
- 2026届安徽省江南十校化学高一第一学期期中考试模拟试题含解析
- 2025年沈阳市事业单位教师招聘考试教育心理学试题
- 民警法制培训课件
- 酒店行业员工绩效考核方案模板
评论
0/150
提交评论