带液晶显示的实时地形沙盘软件设计 毕业论文.doc_第1页
带液晶显示的实时地形沙盘软件设计 毕业论文.doc_第2页
带液晶显示的实时地形沙盘软件设计 毕业论文.doc_第3页
带液晶显示的实时地形沙盘软件设计 毕业论文.doc_第4页
带液晶显示的实时地形沙盘软件设计 毕业论文.doc_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

毕业论文中文摘要带液晶显示的实时地形沙盘软件设计摘 要实时地形沙盘就是利用现代电子设备模拟出实时地形来作为楼盘实时演示等的模型。本文通过利用51单片机驱动步进电机阵列实现地形变化,同时在液晶显示模块上显示当前地形数据。51单片机控制74hc154 416线译码器扩充51单片机的输出接口,从而控制uln2003an芯片带动微型步进电机4*4阵列,使步进电机能够按照预设地形数据有规律的运转,带动步进电机上的螺丝转动从而能够使螺帽上下运动从而实现点的上下振动,模拟出地形的显示,再而在液晶显示模块上显示出地形相关数据。本文软件部分是通过c语言完成的,主要驱动步进电机的正反转,用选择语句判断电机是正转还是反转,然后用for语句来同时控制16个电机的转动。关键词:单片机 步进电机 液晶显示毕业论文外文摘要the software design of real-time terrain sand table with lcd abstractreal-time terrain sand table used modern electronic equipment simulate real-time terrain as the model building real-time demo.this article through the use of 51 scm drive stepping motor array realize terrain change, at the same time in lcd module on terrain data show the current. 51 single-chip microcomputer control 74hc154 4-16 line 51 single-chip microcomputer decoder expansion of output interface, so as to control uln2003an chip micro stepping motor driven 4*4 array, make stepping motor can according to preset terrain data regular operation, drive screws on the stepper motor rotation thus can make nuts movement up and down the fluctuation vibration so as to realize the point, simulate the terrain is displayed, then showing data of terrain in lcd module.the software was finished by c language, main drive stepping motor positive &negative, judge motor with select statements are turn or reverse, then use “for” statements to control 16 motor rotation simultaneously.keywords: scm step-motor lcd display目 次1 引言12 课题研究的基本内容和意义 13 硬件介绍 23.1译码器74hc154 23.2驱动芯片uln2003 33.3 步进电机43.4 液晶显示模块44 软件设计思想54.1 编程语言的选用54.2 电机正反转的c语言控制64.3 液晶显示模块软件设计75 程序流程 85.1 电机正传流程85.2 电机反转流程95.3 总流程 10结论 11参考文献 12致谢 131 引言在军事题材的电影、电视作品中,我们常常看到指挥员们站在一个地形模型前研究作战方案。这种根据地形图、航空像片或实地地形,按一定的比例关系,用泥沙、兵棋和其它材料堆制的模型就是沙盘。沙盘还常用来制作经济发展规划和大型工程建设的模型,其形象直观,颇受计划决策者和工程技术人员的青睐。步进电机是现代数字控制技术中最早出现的执行部件 ,其特点就是可以将数字脉冲控制信号直接转换为一定数值的机械角位移,并且能够自动产生定位转矩使转轴锁定1。本文则是利用步进电机能够按照预设的数字信号来有规则的运转,通过单片机来设计和开发步进电机的控制系统,可以很好地满足这一要求。本文设计了以单片机为核心的步进电机的控制系统 ,单片机 at89c51通过译码器74hc154来扩充单片机输出接口,然后控制带uln2003an的二相步进电机,通过 i /o口输出具有一定时序的方波作为步进电机的控制信号,从而实现了步进电机有规则的运转,在每个电机上面装上螺丝螺帽,电机正转反转的时候会带动螺帽的上下移动,从而在空间上有高度之差,再把16个电机摆成44的阵列,模拟显示出方块地形,通过液晶屏显示出来。2 课题研究的基本内容和意义电动地形沙盘能够根据实际的三维地理信息数据,以缩微实体的方式还原地形。本设计利用单片机驱动步进电机阵列实现地形变化,同时在液晶显示模块上显示当前地形数据。根据实际电路及选用硬件,编写液晶显示模块的驱动程序、步进电机的驱动程序等。课题研究的意义有:1 电动沙盘在实际中,如楼盘结构图,战地沙盘图等起到重要作用,具有重大的现实意义。2 综合性地运用几年内所学知识去分析、解决一个问题。使自己的实践动手、动笔能力得到锻炼。3 为工作时候的产品开发、改进打下基础;4 掌握文献检索、资料查询的基本方法以及获取新知识的能力。3 硬件介绍3.1 译码器74hc15474hc154是一款高速cmos器件,74hc154引脚兼容低功耗肖特基ttl(lsttl)系列。74hc154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出。74hc154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。该使能门电路包含两个“逻辑与”输入,必须置为低以便使能输出端。任选一个使能输入端作为数据输入,74hc154可充当一个1-16的多路分配器。当其余的使能输入端置低时,地址输出将会跟随应用的状态24。译码器的引脚功能如表3.1所示。表3.1引脚端symbol符号name and function名称及功能1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17y0 to y15outputs输出(active low)低电平18,19g1, g2enable inputs(active low)使能输入(低电平)23,22,21,20a to daddress inputs地址输入12gndground接地(0v)24vccpositive supply voltage电源电压译码器的引脚图如图3.1所示,图3.1 74hc154译码器引脚图3.2 驱动芯片uln2003uln2003是一种高耐压、大电流的达林顿陈列,由七个npn达林顿管组成。每一对达林顿都串联一个2.7的基级电阻,在5v的工作电压下与ttl和coms电路相连,可以直接处理需要标准逻辑缓冲器来处理的数据。uln2003的内部结构如图1所示,灌电流可达500ma,并且在关态是能够承受50v的电压,可以在高负电流下并行输出运行58。图3.2 uln2003内部结构驱动芯片uln2003a的引脚功能表如下:引脚功能17号cpu脉冲输入端,端口对应一个信号输出端。8号接地9号该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,实现续流作用。如果该脚接地,实际上就是达林顿管的集电极对地接通。1016号脉冲信号输出端,对应7脚信号输入端。3.3 步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。为了达到4-16译码器控制步进电机的四条引线的有序变化,我们要给译码器的输入口一次赋值0000 0001 0010 0011对应译码器的输出口y0,y1,y2,y3依次点亮,以驱动第一个电机,同理,我们再依次赋值0100 0101 0110 0111驱动第二个电机,以此类推。若把赋值顺序反过来就能实现电机的反转912。3.4 lm3033b液晶显示模块 lm3033b系列液晶显示模块是深圳topway公司生产的中文显示模块中的一员。采用了台湾的st7920控制芯片,并提供了中文字库,为中文显示开发方面带来了更多的方便。现以lm3033bobr3为例说明lm3033b系液晶显示模块的应用。该模块的主要特性有: 汉字显示:内置汉字字库、提供8192个1616点阵汉字(简体) 半宽字型显示:内置128个168点阵字符 绘图显示:绘图显示画面提供一个64256点的绘图区域gdram 自定义字符显示:含cgram提供2组软件可编程的1616点阵造字功能 电源电压:5v单电源供电 显示分辨率:12864点 显示方式:stn、正显、半透 显示颜色:白底蓝字 驱动方式:1/33duty、1/5bias通讯方式:8/4位并行方式或串行方式该模块可满足系统各种工作电压及便携式仪器低功耗的要求。广泛用于各种仪器仪表、家用电器和信息产品上作为显示器件。液晶显示模块管脚功能:1号vss,2号vdd,3号nc,4号rs(cs),五号r/w(sid),六号e(scid),714号db0db7,15号psb,16号nc,17号/rst,18号nc,19号bla,20号blk13。4 软件设计思想4.1 编程语言的选用 当初构想是用汇编语言写,汇编语言给译码器赋值来驱动步进电机,通过给步进电机每根线依次赋值,使步进电机有个循环的脉冲,从而导致步进电机内部磁铁的旋转,来控制电机的运转。步进电机的控制方法有如下:(1)控制换相顺序 首先要确定步进电机运行的工作方式,然后根据所选用工作方式的换相顺序进行脉冲分配。 table_f: ;正转脉冲输出时序表 db 0f1h,0f3h,0f2h,0f6h,0f4h,0fch,0f8h,0f9h db 00 ;正转结束 table_r: ;反转脉冲输出时序表 db 0f9h,0f8h,0fch,0f4h,0f6h,0f2h,0f3h,0f1h db 00 ;反转结束 (2)控制步进电机的转向 程序按照步进电机正反转的要求依次将存储在内存 rom 区域相应的脉冲输出时序表的内容取出去驱动步进电机,就可实现步进电机运行方向的转换。mov dptr,#table_f ;选择转向(正转) movc a,a+dptr mov p1,a ;发送驱动脉冲 mov dptr,#table_r ;选择转向(反转) movc a,a+dptr mov p1,a ;发送驱动脉冲(3)步进电机的速度控制 控制步进电机的运行速度实际上就是控制单片机发出脉冲的频率,输出频率的高低是由延时时间的长短来决定的。 delay: mov r5,rate del2: mov r7,#5 del3: mov r6,#250 djnz r6,$ djnz r7,del3 djnz r5,del2 ret用汇编语言可以很好的控制单个步进电机的运转,但是本题用的是16个步进电机,用汇编语言就显出其局限性。如果控制16个电机,汇编语言的程序将会非常的复杂。故采用c语言代替汇编语言驱动步进电机,使步进电机正转反转14。4.2 电机正反转的c语言控制开始判断按钮是否按下,如果按下则电机正转,用一个for循环,让16个电机依次赋值,让p0和p2口同时赋值,首先p0和p2赋值a1=00,延时,在给p0和p2口赋值,a2a1+0x11,再延时,同时再给p0和p2口赋值a3a2+0x11,这样就给电机的4根线轮流的给脉冲,这样步进电机就可以以一个方向转动起来。如果在正转的时候,按下按钮,则程序则转为反转程序,反转的时候和正转的原理是一样的,只是给步进电机方向赋值就可以了,开始时,同样给p0和p2口赋值a100,延时,再给p0和p2口附上a2a1ox11,再延时,再给p0和p2口赋值a3a20x11,这样一直下去,就可以不停给16个步进电机的64根引线轮流赋值,给脉冲,这样16个电机就可以按照相反的方向转动起来。4.3 液晶显示模块的软件设计写命令到lcdvoid wrcmd(uchar cmdcode)chk_busy(); 判断忙位rs=0;rw=0;e=1;lcd_bus=cmdcode;e=0;写数据到lcdvoid wrdata(uchar dispdata)chk_busy();rs=1;rw=0;e=1;lcd_bus=dispdata;e=0;首屏显示文本void showtext()wrcmd(0x30); wrcmd(0x01); wrcmd(0x81); printstr(河北工业大学); wrcmd(0x92); printstr(理学院); wrcmd(0x89); printstr(物理c072 班); wrcmd(0x9a); printstr(); wrcmd(0xb1); printstr(年月日); wrcmd(0xab); printstr(星期)1516;5 程序流程5.1 电机正转流程判断按钮是否按下,没有按下,马上进入电机正转程序,for循环对16个电机进行16轮赋值,p0和p2口同时依次赋值0x00,0x11,0x22,0x330xff,这样16个电机就可以依次的运转起来。当循环里检测到按钮一旦按下,退出正转循环。图5.1.1 电机正转程序流程图电机正转c语言程序如下:2for(num=0;num16;num+)if(num=0)p0=p2=a1=a1;elsep0=p2=a1=a1+0x11;delay(300);if(s1=0)break;硬件电路图5.1.2所示,图5.1.2 硬件设计电路图5.2 电机反转流程判断按钮是否按下,按下,马上进入电机反转程序,for循环对16个电机进行16轮赋值,p0和p2口同时依次赋值0x00,0xff,0xee,0xdd0x11,这样16个电机就可以依次的反转起来。当循环里检测到按钮一旦松开,退出反转循环。图5.2 电机反转程序流程图电机反转程序如下:2for(num=0;num0;x-)for(y=110;y0;y-);void init()p0=0;p2=0;a1=0x00;s1=1;10结 论本文主要介绍了如何用单片机驱动步进电机阵列来完成模拟地图显示,电动沙盘在实际中,如楼盘结构图,战地沙盘图等起到重要作用,具有重大的现实意义,通过对本论文以及实物制作的完成,使我们了解了现代电动沙盘的现状,理解了单片机、译码器、继电器等硬件的接口原理,学习了用c语言驱动单片机的方法,强化了我们的动手实践能力,为以后的产品设计中打下了良好的基础。本论文所描述的步进电机驱动程序,只

温馨提示

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

评论

0/150

提交评论