平面绘图仪的研制.docx
《平面绘图仪的研制.docx》由会员分享,可在线阅读,更多相关《平面绘图仪的研制.docx(56页珍藏版)》请在冰豆网上搜索。
![平面绘图仪的研制.docx](https://file1.bdocx.com/fileroot1/2023-2/9/91a037b4-a115-4256-b631-271d95145a95/91a037b4-a115-4256-b631-271d95145a951.gif)
平面绘图仪的研制
目录
1绪论1
1.1课题研究背景1
1.2课题开发的意义1
1.3课题主要研究内容1
1.4课题研究步骤2
2绘图仪控制系统的总体设计3
2.1概述3
2.2系统设计要求3
2.3系统的总体方案和要求3
2.3.1绘图仪控制系统的功能组成与控制参数3
2.3.2系统硬件结构框图4
2.4控制器4
2.4.1芯片的选择4
2.4.2单片机介绍5
2.5显示电路设计7
2.5.11602资料介绍7
2.5.2显示电路设计10
2.6电机11
2.6.1步进电机的相关参数11
2.6.2应用中的注意点12
2.7电机驱动的设计13
2.7.1L298驱动原理13
2.7.2电机驱动电路设计16
3系统软件设计18
3.1键盘扫描模块18
3.2插补计算模块18
3.3.1直线插补18
4硬件制作及调试29
4.1系统PCB板的设计29
4.2硬件调试30
5总结32
谢辞33
参考文献34
附录35
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所示。
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字节在系统可编程FlashAT89S52,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.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
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.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,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(LightEmittingDiode);液晶显示器,简称LCD(LiquidCrystalDisplay);荧光管显示器。
近年来也开始实用简易的CRT(CathodeRayTube)显示器,显示一些汉字及图形。
前三种显示器都有两种显示结构:
段显示(7段,“米”字型等)和点阵显示(5×7,5×8,8×8点阵等)。
LED显示器价廉,配置灵活,与单片机接口方便,控制简单,寿命长,可靠性高,驱动电路灵活。
显示亮度适中;不足之处是只能显示0——9以及几个字母信息。
LCD显示器微功耗、体积小、显示内容丰富、超薄轻巧,可进行图形显示,但接口较复杂,成本也较高;荧光显示器可显示图形,显示亮度是三者最高的,但其结构复杂,价格昂贵。
综合本自动拨号报警系统需求,因为要记录报警时间,故不能用LED显示管。
并考虑价格,显示效果,电路焊接等条件,因此对显示器件的选择为LCD1602。
2.5.11602资料介绍
(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。
一个5×7点矩阵字型需8×8bit,所以CGRAM最多可存8个造型。
IR--指令寄存器。
IR寄存器负责存储CPU要写给LCD的命令。
DR--资料寄存器。
DR寄存器负责存储CPU要写到CGRAM或DDRAM的资料,或存储CPU要从CGRAM或DDRAM读出的资料,因此DR寄存器可视为一个资料缓冲区。
BF--忙碌信号。
BF的功能为告诉CPULCD内是否正忙着处理资料,当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端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15~16脚:
空脚
②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控制指令表
指令序号
指令动作
指令编码
执行时间
RS
RW
E
DB7DB6DB5DB4DB3DB2DB1DB0
1
清屏
0
0
1
00000001
1.64ms
2
光标归位
0
0
1
0000001*
1.64ms
3
进入模式设定
0
0
1
000001I/DS
40us
4
显示器开关控制
0
0
1
00001DCB
40us
5
显示器或光标移动方向设定
0
0
1
0001S/CR/L**
40us
6
功能设定
0
0
1
000DLNF**
40us
7
CGRAM地址的设定
0
0
1
01CGRAM的地址(6位元)
40us
8
DDRAM地址的设定
0
0
1
1DDRAM的地址(7位元)
40us
9
忙碌信号或AC地址的设定
0
1
1
BFAC的内容AC0~AC6(7位元)
40us
10
写资料到DDRAM或CGRAM
1
0
1
要写到LCD的资料D7~D0(8位元)
40us
11
从DDRAM或DDRAM读出资料
1
1
1
读出资料D7~D0(8位元)
40us
2.5.2显示电路设计
显示模块设计原理图
如图2.2所示,
排阻作为上拉电阻,D0—D7接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Ω=2π·n/60P=2πnM/60
其P为功率单位为瓦,Ω为每秒角速度,单位为弧度,n为每分钟转速,M为力矩单位为牛顿·米
P=2πfM/400(半步工作)
其中f为每秒脉冲数(简称PPS)
综合上面几项,决定选用两相混合式步进电机39BYG250B,它的各项数据如表2-2:
表2-239BYG250B参数
规格型号
相数
步距角(。
)
相电流(A)
保持转矩(N.m)
转动惯量(g.cm2)
重量(Kg)
外形尺寸(mm)
39BYG250B-0051
2