毕业设计(论文)基于AT89S52单片机的激光灯控制器控制系统设计_第1页
毕业设计(论文)基于AT89S52单片机的激光灯控制器控制系统设计_第2页
毕业设计(论文)基于AT89S52单片机的激光灯控制器控制系统设计_第3页
毕业设计(论文)基于AT89S52单片机的激光灯控制器控制系统设计_第4页
毕业设计(论文)基于AT89S52单片机的激光灯控制器控制系统设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要激光灯以它显示的图案鲜明光亮、变幻神奇、内容丰富等独特的魅力特效吸引了越来越多的人的目光,成为很多聚会或场景的一道亮点。随着usb接口的蓬勃发展并成为一种标准的pc外围接口,本课题将usb传输和单片机控制相结合,设计出一种新型的基于usb接口的激光灯控制器,使usb传输和单片机控制的各自优势都得以发挥。设计主要由光学系统、控制器和驱动电路组成,其中控制器是核心部件;它利用单片机从u盘中读取已有的图形数据,作为显示图像的依据;再编程实现对电机的旋转方向及速度的控制,改变激光反射镜的偏转角度,从而实现对激光束的调制,得到预想的各种图案。关键词:激光灯;单片机;控制器;电机控制目 录1. 绪

2、论11.1 引言11.2 目前激光灯控制系统的结构特点及发展状况11.3 本课题研究的目的与意义22. 总体结构分析及原理框图32.1 总体结构分析33.整机硬件电路设计43.1 光学系统43.1.1 激光发生器43.1.2 光学控制台43.2 控制电路53.2.1 at89s52的cpu的组成63.2.2 at89s52的总线结构73.3 驱动电路83.3.1 驱动电路方案论证83.3.2 驱动模块电路83.3.3 电动机控制93.4 usb接口电路113.4.1 接口模块设计113.4.2 接口芯片 ch375123.4.3 usb总线协议143.4.4 固件程序及枚举154. 程序流程图

3、与软件介绍164.1 程序流程图164.1.1 控制数据流程图164.1.2 电机控制流程图164.1.3 单片机读u盘流程图174.2 仿真软件介绍174.2.1 keil软件174.2.2 proteus介绍204.2.3 演示软件说明225. 总 结25致 谢26参考文献27附 录28程序清单28原理图581. 绪 论1.1 引言激光是20世纪以来,继原子能、计算机、半导体之后,人类的又一重大发明,被称为“最快的刀”、“最准的尺”、“最亮的光”和“奇异的光”。 它的亮度为太阳光的100亿倍。它的原理早在 1916 年已被著名的物理学家爱因斯坦发现,但要直到 1958 年激光才被首次成功制

4、造。激光是在有理论准备和生产实践迫切需要的背景下应运而生的,它一问世,就获得了异乎寻常的飞快发展,激光的发展不仅使古老的光学科学和光学技术获得了新生,而且导致整个一些新兴产业的出现。在科技高速发展的今天,激光显示工业日趋成熟,激光显示的应用逐渐广泛。这一方面是由于激光光源所产生的效果能满足人们的追求新奇的心理,并带来一定的视觉冲击;另一方面,由于这种光源可方便地被计算机控制,通过编程,即可产生丰富的变化,极具智能化特点。激光显示光色纯正,能量集中,系统方便地被计算机控制,能表现出应时应景的主体内容和艳丽奇特的效果魅力,其应用的场合非常广泛。如主题公园、城市建设、舞台灯光、盛大集会、迪斯科舞厅、

5、俱乐部、展示会、太空馆。我们在电视屏幕上,观看到在汉城举行的第i4届亚运会开幕式上,布满了五彩的激光光束,随音乐声在夜空中扫描,为开幕式增添了光彩。我国庆祝建国五十周年的国庆之夜,天安门广场上空的激光表演,把节日气氛推向又一个欢乐的高潮。从激光特点来分析,它是点状光束,具备了随意性和可塑性。比如扫描成像,显示字形,显示动态图像,全息成像和各种变形玻璃创造的畸变。再通过电子计算机的编程和程序控制,表现力是十分丰富。随着计算机控制技术以及激光器技术的发展,激光显示技术必然越来越显示其活力。1.2 目前激光灯控制系统的结构特点及发展状况目前国内外的激光扫描系统的系统结构从根本上来说都很相似,一般由激

6、光器(包括光学系统、激光电源、声光电源、制冷系统)和扫描系统(包括控制计算机、图形输入设备、数据转换d/a卡、振镜驱动、振镜)组成,其变动之处也就是在于振镜性能的提高,或者某个环节改动一下,或者加点什么附件(光学调制器、分光镜等以实现不同的效果),整个系统的组装技术还是没有什么根本的变化。其中控制计算机是系统中枢,用户在上面编排制作节目,演示时计算机根据用户编排节目内容发出控制指令信号(数字量),经d/a转换成模拟信号同时控制x -y二维振镜的偏转,将激光束投射到指定的位置。当光点在屏幕上沿图形轮廓快速运动达到视觉暂留,就形成稳定的图形。随着高速扫描器和计算机技术的发展,利用单片机控制激光扫描

7、己经成为现实,微机控制激光灯技术也越来越成熟,扫描的效果也越来越有艺术性。现在最新的激光显示技术,该系统的结构组成也是继承了以往的激光显示系统结构,也具备以往激光显示的效果,随着单片机的性能越来越强大,不仅可以控制激光扫描,还可以控制激光器的功率,在激光器工作参数(电压、电流、水温、水流)不正常时可以自动关闭激光器。而且该系统表演时还可以与音乐效果相结合,更增添了艺术效果。1.3 本课题研究的目的与意义本激光灯控制器设计是针对各种场合激光灯的应用,灵活应用单片机及电机控制技术,通过单片机从u盘中读取图形数据,利用pwm实现对电机的旋转方向及速度的控制,实现对激光束的调制,得到预想的图案。以往最

8、简单的控制方式是将表演节目固化在单片机系统的eprom里,由于其内存受限,这种表演方式主要是针对光束扫描,而且节目不易改动。随着usb总线技术的发展,usb数据传输技术越来越完善,采用带u盘存储的单片机控制系统便可弥补上述不足,激光扫描系统可以直接通过单片机读取u盘图形数据,实现图案图形显示。且我们可以方便的利用图象处理软件进行图形文字的输入、实时扫描输出,以实现不同节目的调整。现在一般微机控制激光显示系统的结构,利用图形处理文件(coreldraw,photoshop等)输入图形到计算机,根据软件提供的程序界面编排节目,然后把节目程序数据传输到u盘,通过控制电路完成激光的扫描。利用这种系统可

9、以扫描出各种各样的二维甚至三维图形和文字,以及动画效果。相比前面的计算器软件控制,成本大大降低,控制电路简单,更易于推广、应用。本设计集光学、电子、计算机等知识于一体,是多学科技术综合的应用。2. 总体结构分析及原理框图2.1 总体结构分析激光灯控制器主要由光学系统、驱动电路、接口电路、控制电路四部分组成。光学系统包括激光器和两个平面反射镜,反射镜倾角可调,采用全反射,以保证获得良好的激光投射光斑;驱动电路由电压放大和功率放大两级组成,其作用是提供电机带动镜面转动所需要的功率。其中驱动电路和控制电路使用不同且不共接地的电源,用数字控制模拟开关连接,以割断控制对象对控制电路的干扰;接口电路包括数

10、字控制模拟开关、数模转换器和usb读写接口,其主要作用是将控制电路的数字量转换为电压模拟量送给驱动电路和对u盘数据的读取;控制电路主要是at89s52最小系统完成,其作用是对电机运转状态编程,协调控制整个系统工作。2.2 整机原理框图数字控制模拟开关控制电 路导光系统电机x1#d/a转换电机y2#d/a转换驱动电路 数据读取 图1.1 整机原理框图本设计的显图工作原理是:分别安装在量电动机转轴上由之驱动不断旋转的有一定倾角的反射镜,先后反射激光器发出的亮度光束,当两反射镜的转速成一定比例和按一定的转向组合时,实现了光束的空间动态合成,在接收屏幕上得到某一稳定图形。若改变两电动机电枢上所加电压的

11、大小及正负极性,即对电机进行可逆调速,或手工调节附设于镜面即电机壳座上的微调旋钮,改变两反射镜面倾角,则可以得到诸如三叶玫瑰线等一系列形态各异、内容丰富的几何图形来。3. 整机硬件电路设计3.1 光学系统3.1.1 激光发生器激光发生器是整个系统的光源,根据激光显示的环境、幕体和要求达到的效果配置不同颜色、不同功率的激光器。一般在室内显示、幕体与发射点距离越近,要求的功率越低,而由于人眼对红光的敏感度较高,相同条件下选择红色激光发生器的功率可比其它颜色的激光发生器的功率较低。激光器用于显示,其光亮强度8001200流明,已能满足大多数人的要求,故显示系统的激光器的功率在几十mw20w。本激光器

12、采用波长为0.63um的半导体激光器,因其波长与0.6328um相近,故而可以取代he-ne激光器产生红光,小型牢固,不易损坏,弥补了he-ne激光器的不足。3.1.2 光学控制台光学控制台是激光显示系统中控制光路的部分,包括导光系统和控制系统。导光系统对激光束进行光路切换、扫描,使激光束产生丰富多彩的效果。控制系统对导光系统的光学器件的位移、转动进行驱动控制。光路单元在光学控制台的前端,由驱动电机和反射镜、单片机的控制信号控制电机的转角,带动反射镜将入射激光束反射到屏幕形成图案。光路扫描信号来自图文文件。通过一般的图形图像处理软件制作出要显示的图文轮廓线,在制作轮廓线时要注意轮廓线的封闭和简

13、洁。根据显示图文的失真度取出轮廓线上的锚点,锚点取得越多,图形越接近原稿,但显示文件越大,一幅图的扫描周期增加。锚点的坐标(x,y)经 d/a转换输出,通过光学控制台驱动板分别控制反射镜的方向,将锚点映射到幕体。由于振镜的扫描频率很大,可以作到 25 帧图/秒,因此,激光扫描显示的质量可以保障。激光动画显示的原理与一般动画显示类似,一个动画文件由多幅动作相关的图片组成,依次取锚点坐标进行定位扫描。光路扫描单元是整套系统产生图文效果的直接执行机构。3.1.3 x-y工作平台光学控制台的导光系统光路切换是由电机带动反射镜变化转角完成的。根据预先编排的节目,单片机通过 d/a卡输出切换信号至分光单元

14、的电机驱动板,经放大后驱动电机转动。要在投射面上得到几何图形 ,关键在于两个电机的转速和转向的组合 ,实现对激光束的空间动态组合。由于光的连续性 ,当在反射镜转动时,必然在两个点之间连成一条线 ,所以要在屏幕上投射出图形,就可以把图形分割为一段段直线段 ,只要控制反射镜把激光束在每个端点之间按顺序快速移动就可以了。在屏幕上作一坐标轴 ,通过反射镜的光路分析 ,可以认为 x向电机控制的反射镜1和 y向电机控制的反射镜2分别控制投射图形的x方向和 y方向。以正方形为例,如图所示 ,取正方形的中心为坐标原点(也就是光路的起始点) ,正方形的四个顶点分别为 a、b、c、d。要在屏幕上投射出这样的正方形

15、 ,两个步进电机的转动方向和顺序为:先将屏幕上的投影点移到e点 ,即步进 y向电机正转3步;然后 x向电机正向转动3步(a点);y向电机反向转动 6 步(b 点) ;x向电机反向转动6步(c点) ;y向电机正向转动6步(d点) ;x向电机正向转动3步(e点)。由此可见,要在屏幕上得到某种图形,只需将图形在 xy平面上分割成一段段相互连接的直线段,再计算出各端点的位置,就可以编程控制电机了。但是,由于电机的旋转速度的限制,要使屏幕上投射的图形没有闪烁,则图形就不能太复杂。 图2.1 动态组合坐标图3.2 控制电路3.2.1 控制模块 作为设计的控制核心,单片机无疑起到了举足轻重的作用。通过它来完

16、成外部图形数据的读取、软件的编程产生脉冲序列实现对电机方向与速度的控制,最终达到对激光灯光束转向的控制而获得图案图形。基于性能优越、程序下载方便、价格低廉等优点,我们这里选用的单片机为at89s52。 图3.1 整体控制电路图3.2.1 at89s52的cpu的组成 at89s52的 cpu能处理8位二进制数或代码。cpu是单片机的主要核心部件,在 cpu里面包含了运算器、控制器以及若干寄存器等部件给成。 内部数据存储器(ram): at89s52 单片机芯片共有 256 个 ram 单元,其中后 128 单元被专用寄存器占用,能作为寄存器供用户使用的只是前 128 单元,用于存放可读写的数据

17、。因此通常所说的内部数据存储器就是指前128单元,简称内部ram。地址范围为00hffh(256b)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。 内部程序存储器(rom): at89s52 内部有 4kb/8kb 字节的 rom(51 系列为 4kb,51 系列为 8kb),用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部ram。地址范围为0000hffffh(64kb)。 定时器/计数器 at89s52共有2个 16位的定时器/计数器(52系列共有3个 16位的定时器/计数器),以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠

18、内部分频时钟频率计数实现,做计数器时,对 p3.4(t0)或p3.5(t1)端口的低电平脉冲计数。 并行i/o口 at89s52共有4个 8位的 i/o口(p0、p1、p2、p3)实现数据的输入输出。 串行口 at89s52有一个可编程的全双工的串行口, 以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。rxd ( p3.0)脚为接收端口,txd(p3.1)脚为发送端口。 中断控制系统 : at89s52单片机的中断功能较强,以满足不同控制应用的需要。51系列有5个中断源(52系列有 6 个中断源),即外中断 2 个,定时中断 2

19、 个,串行中断 1 个,全部中断分为高级和低级共二个优先级别。 定时与控制部件: at89s52 单片机内部有一个高增益的反相放大器,基输入端为 xtal1 输出端为 xtal2。mcs-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。3.2.2 at89s52的总线结构at89s52的管脚除了电源、复位、时钟接入、用户i/o口部分p3外,其余管脚都是为实现系统扩展而设置的。这些管脚构成了三总线形式,即: (1)地址总线(ab):地址总线宽度为16位,因此,其外部存储器直接地址外围为64k字节。16位地址总线由p0经地址锁存器提供低8位地址(a0a7);

20、p2口直接提供高8位地址(a8a15)。 (2)数据总线(db):数据总线宽度为8位,由p0口提供。 (3)控制总线cb):由部分p3口的第二功能状态和4根独立控制线reset、,ale、组成。at89s52结构框图如图2-2所示:时钟电路romram定时/计数器cpu并行接口串行接口中断系统p0p1p2p3txdrxd/int0/int1t0t1图3.2 at89s52结构图t2复位电路3.3 驱动电路3.3.1 驱动电路方案论证方案一:采用mos管放大方案,利用pwm产生高低电平来控制mos管的g极,从而控制d极和s极之间的通断,当d极和s极导通时,电极正极接电源,负极接地。当d极和s极断

21、开时,电极正极和电源相连,而负极通过二极管通向电容的正极,给电容充电,形成回路。这样就可以达到一种平衡状态,调节pwm方波的占空比就可以调节电极两端的电流,从而控制电极的转速。但二极管续流会严重影响电源,对电源要求比较高,不宜选取。方案二:采用集成芯片l298 ,l298是st公司生产的一种高电压、大电流电机驱动芯片。该芯片的主要特点是:工作电压高,最高工作电压可达46v;输出电流大,瞬间峰值电流可达3a,持续工作电流为2a;内含两个h桥的高电压大电流全桥式驱动器,可以用来驱动二个直流电动机;采用标准ttl逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一

22、个逻辑电源输入端,使内部逻辑电路部分在低电压下工作。l298采用15脚multiwatt塑料封装,通过散热片可用螺钉固定在散热器上。l298内部包含:两个h桥的高电压大电流全桥式驱动器a与b(每个全桥由4只npn型三极管构成);逻辑电路供电稳压器;逻辑控制电路等。其内部电部如图3.3所示。 图3.3 l298内部原理图3.3.2 驱动模块电路电机驱动模块采用电机专用驱动芯片l298,其电路如图3.4图3.4 直流电机驱动电路此设计电路能同时驱动两个直流电机,既实现低电压小电流信号控制较高电压和强电流。由于电机的大功率、高电平会对单片机产生较严重的干扰,不能直接把单片机产生的控制信号直接连在电机

23、上,需要进行强弱电隔离。在实际运用中, 对于强弱电隔离一般采用电子开关方法或光电隔离的方法。由于电机工作需要较大的功率,所以通常需要使用功率放大器来提供电机的工作电流,将光电隔离器送来的弱电信号变为强电信号,可以采用集成功放也可以采用分立元件。在这里,采用了成本少、电路简单且可靠性高的光电耦合芯片4n25,通过此设计能使单片机的供电电源同电机的供电电源隔开,大大地提高了系统的稳定性。3.3.3 电动机控制(1)直流电机工作原理直流电机由定子和转子两大部分组成,在定子上装有一磁极,电磁式直流电机的定子磁极上绕有励磁绕组。其转子由硅钢片叠压而成,转子外圆有槽,槽内嵌有电枢绕组,绕组通过换向器和电刷

24、引出。 图 3.5 直流电机结构图在励磁式直流伺服电机中,电机转速由电枢电压决定,在励磁电压和负载转矩恒定时,电枢电压越高,电机转速就越快;电枢电压降至0v时,电机停转;改变电枢电压的极性,电机转向随之改变。因此,小功率直流电机的调速可以通过控制电枢平均电压来实现。(2)电机调向调速 本设计采用的是直流电动机,功率要求不高,股选用结构简单,成本低的gtr-m系统,gtr-m系统即晶体管放大器-直流电动机调速系统,它是应用线性放大原理构成的,功率晶体管处于放大工作状态。dac0832输出的电流经运放后转换成电压输出,为了获得足够的功率以驱动电机,在电压放大后又进行了功率放大。第一级接成电压跟随器

25、形式,第二级是两射极输出器组成的乙类互补对称式功率放大电路,分别给电机提供不同方向的电流,以实现电机的正反转。 图3.6 直流电机可逆调速电路电路中,两个三极管是性能完全对称的npn和pnp型功放管,并组成上下两个完全对称的射极输出器,向同一感性负载输送电压与电流。当输入信号为0时,两只管子都无偏置而截止,电路中无电流,电机不转。当电压为正电压时,t1导通,t2截止,电流经t1自左到右流入电机;而当电压为负电压时,t2导通,t1截止,电流经t2自右向左流入电机。两者电机旋转方向相反,实现了电机的调向。若再改变电压的数值大小,则可以实现电机的调速。3.4 usb接口电路3.4.1 接口模块设计

26、图3.7 单片机与usb接口电路图ch375在本地端可工作在usb主机方式下,可以采取串行接口和并行接口两种方式。为了节约单片机的i/o 引脚,本文采用并行接口,其接口电路原理图如图2-11所示。模块具有两个外部接口:p1 是usb 插座,可以直接插入u 盘或者通过usb 延长线连接u 盘, 当进行程序升级或者重新配置时应该通过usb 对连线连接计算机的usb 端口;p2 是16 脚的双排针或者插座,用于连接单片机系统。 在串口方式下,单片机与模块的p2 端口相连接,只需要使用高8 脚(第9 脚到第16脚),其余引脚可以不连接。模块可以通过串行输入sin、串行输出sout 连接到单片机的异步串

27、口,除此之外,启动输入sta#还应该连接到单片机的一个i/o 引脚,而中断输出int#可以根据需要决定是否连接到单片机的中断引脚。 模块的串口是1 位起始位、8 位数据位、1位停止位的异步串口,串口的通讯波特率可以在功能配置时设定,如果未设定那么默认是4800bps(与晶体x2 的频率有关),单片机系统可以根据需要通过cmd_baudrate 命令设定更高的波特率。如果在功能配置时选择检查串口超时,那么在通过串口输入命令包时,模块会检查串口数据输入超时,如果连续两个数据字节之间的间隔大于串口输入超时时间,则模块将放弃该命令包。4+1 线串口是指gnd、sin、sout、sta#和可选的int#

28、,p2 引脚定义如下:模块还支持三线制串口,在这种方式下,单片机与模块之间只需要连接sin 和sout 两根信号线及公共地线,单片机通过串口发送两个同步码字节(57h、abh)代替原来向模块的sta#引脚提供的启动信号,实现与模块的命令同步。在通过串口输入两个同步码字节时,模块会检查串口数据输入超时,如果连续两个数据字节之间的间隔大于串口输入超时时间,则模块将放弃该同步码及命令包。3.4.2 接口芯片 ch375(1)概述ch375 是一个usb总线的通用接口芯片,支持usb-host主机方式和usb-device/slave设备方式。在本地端,ch375具有8位数据总线和读、写、片选控制线以

29、及中断输出,可以方便地挂接到单片机/dsp/mcu/mpu等控制器的系统总线上。在usb主机方式下,ch375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/dsp/mcu/mpu 等相连接。 ch375的usb 主机方式支持常用的usb 全速设备,外部单片机可以通过ch375 按照相应的usb 协议与usb 设备通讯。ch375 还内置了处理mass-storage 海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的usb 存储设备。 ch375 芯片可以工作于usb-host 主机方式或者usb 设备方式。 ch375的usb 主机方式支持并行接

30、口和串行接口。 在usb主机方式下,ch375支持各种常用的usb全速设备,外部单片机需要编写固件程序按照相应的usb协议与usb 设备通讯。但是对于usb 存储设备,ch375 内置了相关协议,通常情况下,外部单片机不需要编写固件程序,就可以直接通讯。 (2)串行接口 串行接口只能用于usb 主机方式,ch375 芯片的usb 设备方式不支持串口。 串口信号线包括:串行数据输入引脚rxd、串行数据输出引脚txd、中断输出引脚int#。通过串行接口,ch375 可以用最少的连线与单片机、dsp、mcu 进行较远距离的点对点连接。ch375芯片的rxd 和txd可以分别连接到单片机的串行数据输出

31、引脚和串行数据输入引脚。int#输出的中断请求是低电平有效,用于通知单片机。 ch375 的串行数据格式是1个起始位、9个数据位、1个停止位,其中前8个数据位是一个字节数据,最后1个数据位是命令标志位。第9位为0时,前8位的数据被写入ch375芯片中,第9位为1时,前8位被作为命令码写入ch375芯片中。ch375的串行通讯波特率默认是9600bps,单片机可以随时通过set_baudrate 命令选择合适的通讯波特率。 图3.8 ch375串口连接图中的p3 端口就是连接模块的端口。由于是串口连接,所以连接信号线较少,只需要三个信号线:sin,sout 和sta#,模块的中断信号线int#是

32、可选的,如果采用中断通知方式,那么可以连接int0 或者int1,否则不必连接模块的int#信号线。建议参考该图,将模块端口的14 脚(原并口的cs#引脚)接vcc,避免并口被选中。(3) 内部结构ch375 芯片内部集成了pll 倍频器、主从usb 接口sie、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等。pll 倍频器用于将外部输入的12mhz 时钟倍频到48mhz,作为usb 接口sie 时钟。 主从usb 接口sie是usb主机方式和usb设备方式的一体式sie,用于完成物理的usb数据接收和发送,自动处理位跟踪和同步、nrzi编码和解码、

33、位填充、并行数据与串行数据之间的转换、crc数据校验、事务握手、出错重试、usb 总线状态检测等。数据缓冲区用于缓冲usb 接口sie 收发的数据。 被动并行接口用于与外部单片机/dsp/mcu 交换数据。异步串行接口用于代替被动并行接口与外部单片机/dsp/mcu 交换数据。命令解释器用于分析并执行外部单片机/dsp/mcu 提交的各种命令。控制传输的协议处理器用于自动处理常用的控制传输的多个阶段,简化外部固件编程。通用的固件程序包含两组:一组用于usb 设备方式,自动处理usb默认端点0 的各种标准事务等;另一组用于usb 主机方式,自动处理mass-storage 海量存储设备的专用通讯

34、协议。(4)引脚说明 表2-1 ch375 引脚说明3.4.3 usb总线协议 在单片机上实现usb数据移动存储功能,具体包括usb主机接口的硬件设计和整机usb驱动固件的设计。其中驱动固件的设计具体又包含几个协议的实现:usb1.1控制传输协议、usb bulk传输协议、usb海量存储类协议、ufi磁盘操作命令和fat文件系统标准等。usb(通用串行总线)用于将usb接口的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构,是一种快速、灵活的总线接口,usb的传输类型有控制(control)、批量(bulk)、中断(interrupt)和同步(synchron

35、ous)传输4种,它最大的特点是易于使用,即插即用,主要是用在中速和低速的外设。 控制数据用于在usb接入总线时对其进行配置,其他的驱动软件可以根据具体的应用来选择使用控制传输,这种数据传输不会丢失数据。典型的批量数据包括象使用打印机或扫描仪时所出现的大数据量的数据,这种批量数据是连续的,通过在硬件中实现差错检测功能,并且有选择地进行一定的应进重试操作,可以在硬件层次上保证数据的可靠交换。由设备自发产生的数据传输是中断数据传输,这类数据传输可以由usb设备在任意时刻发起,而且usb总线以不低于设备说明的速率进行传输。同步数据在产生、传送和处理过程中是连续的和实时的,在稳定的同步数据发送和接收速

36、率中包含了相应的时钟信息,为了保持定时关系,同步数据必须按照接收的速率进行传输。 3.4.4 固件程序及枚举 所有的传输都是由主机开始的,固件设计成完全的中断驱动,当cpu处理前台任务时,usb的传输可在后台进行。这就确保了最佳的传输速率和更好的软件结构。usb主机系统固件的编写比较繁琐,主要涉及到usb控制传输、usb批量传输、海量存储类协议、ufi磁盘操作命令和fat文件系统的编写,全部都是最底层的程序操作,没有现成的类库支持,故程序整体框架的搭建和具体协议的数据结构的组织是非常关键的。该模块设计的主要难点在于软件程序的编写,由于牵涉的协议多,在编写程序时要重视模块化的思想,每一个具体的协

37、议尽量都编写在一个源文件里,数据结构和常量、变量最好定义在每个模块的头文件中。在调试usb 底层的控制传输时,可以充分利用bus hound工具抓取usb移动存储刚插入计算机时与计算机通信的数据来分析、对比和参考开发,加深对usb整个底层信息交互的理解。任何usb设备连上usb主机后,都必须经过usb主机的枚举配置后才能正确使用。usb总线枚举的步骤和方法,对于所有usb设备来说都是一样的,必须遵守标准的usb协议过程,通过控制传输的“一问一答”来实现主机和从机必要的几个数据交流:获取设备描述符、分配设备地址和配置设备。形象点讲usb主机枚举的过程就是:首先获取设备属性,设备会返回18个数值(

38、值中对固件有用的是最大包端点长度),然后为设备分配一个操作地址,地址范围可以根据实际情况而定,并且配置设备,最后列举设备端点,获取设备的每一个端点号(地址)。枚举的实质目的就是想获取设备的端点地址,靠它来完成数据包的收发。4. 程序流程图与软件介绍4.1 程序流程图4.1.1 控制数据流程图 图 3.1 控制数据流程图 4.1.2 电机控制流程图 图3.2 电机控制流程图4.1.3 单片机读u盘流程图 图3.3 单片机读u盘流程图 4.2 仿真软件介绍4.2.1 keil软件 keil软件是德国keil公司开发的单片机编译器,是目前最好的51单片机开发工具之一,可以用来编译c源代码和汇编源程序

39、、连接和重定位目标文件和库文件、创建hex文件、调试目标程序等,是一种集成化的文件管理编译环境。在proteus中,可以直接与keil编程软件进行联调,进而实现对所设计电路的验证。 (1) keil µvision中的源程序设计与编译对于刚刚使用keil的用户,一般可以按照下面的步骤来创建一个自己的应用程序:一个工程项目文件 选择目标器件 设置软硬件调试环境 创建源程序文件并输入程序代码 保存创建的源程序项目文件 把源程序文件添加到项目中。(2) 具体建立应用程序并进行仿真调试操作1. 建立一个项目双击桌面快捷图标即可进入如图6-7所示的集成开发环境编辑操作界面,主要包括三个窗口:工

40、程项目窗口、编辑窗口和输出窗口。单击 project 菜单,在弹出的下拉菜单中选中“new project”选项,新建一个项目,下图1所示: 图4.1然后选择要保存的路径,输入工程文件的名字,然后单击“保存”按钮。这时会弹出一个对话框,要求选择单片机的型号。这里可以根据所使用的单片机来选择,keil几乎支持所有51核的单片机,这里以atmel的89c51来说明,下图2所示:图4.2首先选择atmel公司,然后单击左边的“+”号选择at89c51 之后,右边栏的“options”对话框中选择“output”标签栏,并按如下图3所示设置其中各项。 图4.32. 建立一个新的asm汇编语言程序并编译

41、 在菜单栏中,单击“file”菜单,再在下拉菜单中单击“new”选项,或直接单击工具栏的快捷图标来建立了一个新的编辑窗口。此时光标在编辑窗口里闪烁,这时可以输入用户的应用程序了。建议首先保存该空白文件,单击菜单上的“file”,在下拉菜单中选中“save as”选项,在弹出对话框的“文件名”栏右侧编辑框中,输入欲使用的文件名,同时,必须输入正确的扩展名,如“text1.asm”,然后,单击“保存”按钮。 (注意:如果用语言编写程序,则扩展名为“.c”;如果用汇编语言编写程序,则扩展名为“.asm”,且必须添加扩展文件名。) 回到编辑界面后,单击“target 1”前面的“”号,然后在“sour

42、ce group 1”上单击右键,弹出如下图4所示的快捷菜单。 图4.4然后单击“add file to groupsource group 1”,打开如下图所示对话框,在“文件类型”处默认为“c source file(*.c)”,因为前面我们保存的是汇编语言的文件,故需要选择“asm source file(*.s*;*.src;*.a*)”,这样在上面就可以看到刚才保存的汇编语言文件“xianshi.asm”,双击该文件则自动添加至项目,单击“close”关闭对话框。 然后就可以在右侧的编辑区输入汇编源程序了。在输入指令时,读者可以看到事先保存待编辑文件的好处:keil会自动识别关键字,

43、并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后别忘了再次保存。 程序文件编辑完毕后,单击“project”菜单,选中“built target”选项(或者使用快捷键 f7),或者单击工具栏的快捷图标来进行编译, 如果有错误,则在最后的输出窗口中会出现所有错误所在的位置和错误的原因,并有“target not created”的提示。双击该处的错误提示,在编辑区对应错误指令处左面出现蓝色箭头提示,然后对当前的错误修改。 将所有提示过的错误进行修改,然后再次重复的操作进行编译,直至出现“"shiyan1" - 0 error(s), 0

44、 warning(s)”,说明编译完全通过。4.2.2 proteus介绍proteus isis 是英国labcenter 公司开发的电路分析与实物仿真软件。它运行于windows 操作系统上, 可以仿真、分析( s p ice ) 各种模拟器件和集成电路, 该软件的特点是: 实现了单片机仿真和spice 电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、rs232 动态仿真、i2c 调试器、spi 调试器、键盘和lcd 系统仿真的功能;有各种虚拟仪器, 如示波器、逻辑分析仪、信号发生器等。 支持主流单片机系统的仿真。目前支持的单片机类型有: 68000 系

45、列、8051 系列、avr 系列、pic12 系列、pic16 系列、pic18 系列、z80 系列、hc11系列以及各种外围芯片。 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态, 因此在该软件仿真系统中, 也必须具有这些功能;同时支持第三方的软件编译和调试环境,如keil c51 uvision2 等软件。具有强大的原理图绘制功能。总之, 该软件是一款集单片机和spice分析于一身的仿真软件,功能极其强大。本节介绍proteus isis 软件的工作环境和一些基本操作。 图4.5 protues操作界面(1) 建立程序文件打开

46、keil µvision3,新建keil项目,选择at89c51单片机作为cpu;新建汇编源文件,编写程序并将其导入到“source group 1”中;在“options for target”对话框中,选中“output”选项卡中的“create hex file”选项和“debug”选项卡中的“use:proteus vsm simulator”选项;编译源程序,修改程序中的错误直至通过。 (2) 加载目标代码文件在proteus isis中,左键双击at89c51元件打开“edit component”对话框,设置单片机的频率为12mhz;在该窗口的“program file

47、”栏中,选择先前在keil中编译产生的“.hex”文件;在proteus isis菜单栏中选择【file】【save design】选项,保存设计;在proteus isis菜单栏中,打开“debug”下拉菜单,在菜单中选择“use remote debug monitor”选项,以支持与keil的联调。(3) 进行调试与仿真在keil的菜单栏中选择【debug】【start/stopdebug session】选项,或者在工具栏中直接单击图标,进入调试环境。(4) 进行调试与仿真在keil的菜单栏中选择【debug】【start/stop debug session】选项,或者在工具栏中直接

48、单击图标,进入调试环境;按“f5”键或图标,顺序执行程序;在proteus isis界面中,按动开关,可看到显示结果。4.2.3 演示软件说明由于图形处理算法复杂,必须借助图形处理软件才能完成, 图形处理部分由计算机完成, 计算机完成对所需打标的 plt, bmp 或 pcx 格式的图形图像文件的生成、数据处理后将生成的图形文件通过usb标准接口传输给单片机。单片机将接收到的图形文件数据存储到外部数据存储器,控制信号经驱动电路放大后驱动步进电机旋转进而控制扫描镜头偏转角度从而控制光点的位置、移动速度和加速度,最后完成图案扫描。由于激光演示的图形是由一支或多支光笔打点形成的,所以设计激光表演的图

49、形设计要点的是图形的轮廓线和锚点。常用的软件有 coreldraw、photoshop、autodesk animator pro等。下面介绍一款国内的演示软件:大普激光演示系统,通过此系统绘制的图形图像经过数据转换便可生成程序代码。软件系统功能简介一、异想天开编辑器主要通过界面强大的编辑窗口编辑制作激光演示文件,其类型为动画节目文件(.bgd)。如上图所示:1. 菜单栏1.1、 文件: 新建、打开、保存、另存为动画节目文件。(注意:打开文件时,要在和软件执行文件同一个目录中的bgdlib文件夹中选取)。1.2、 编辑:进入和退出编辑文件、提取和优化轮廓、输入位图、进行单帧动画编辑。1.3、

50、演示:播放和停止文件,预览和停止预览文件。1.4、 实时书写:进入和退出实时书写环境,另外可保存实时书写数据。2工具栏从左到右按钮有:新建、保存、播放/停止、预览/停止、提取轮廓、单帧动画编辑、复制单帧画面、粘贴单帧画面、进入/退出实时书写、优化图形。这些按钮功能和菜单栏中的菜单是相对应的,只是多了一个优化图形按钮、一个复制单帧画面按钮、一个粘贴单帧画面按钮,当提取轮廓后,觉得轮廓不合自已的要求,可单击优化图形按钮对图形的单点进行编辑。3工具箱顺序从左到右,从上到下依次说明如下:31、选取:选取图形。32、画笔:提供四种不同粗细的画笔。33、橡皮擦:提供四种不同大小的橡皮擦。34、文字:单击后

51、在文字编辑栏中输入文字,然后用在窗口中选取输出位置后弹出一个字体选择窗口,选择好字体单击确定即可。35、画圆:画一个圆。36、画矩形:画一个矩形。37、画直线:画一个直线。二、迷你播放器主要进行播放支动画节目文件(.bgd)。5. 总 结通过这次实践,我了解了激光灯控制器的工作原理,熟悉了单片机的设计步骤,锻炼了工程设计实践能力,培养了自己独立设计能力。此次毕业设计是对我专业知识和专业基础知识一次实际检验和巩固,同时也是走向工作岗位前的一次热身。 毕业设计收获很多,比如学会了查找相关资料相关标准,分析数据,提高了自己的绘图能力,懂得了许多经验公式的获得是前人不懈努力的结果。同时,毕业设计也暴露

52、出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,对材料的不了解等等。这次实践是对自己大学三年所学的一次大检阅,使我明白自己知识还很浅薄,虽然马上要毕业了,但懂得自己的求学之路还很长,以后更应该在工作中不断学习,努力使自己成为一个对社会有所贡献的人。致 谢我之所以能顺利完成本次设计,是和指导我的指导老师是有关。我首先谢谢我的指导教师雷军老师。在整个设计完成期间,从原理上的可行到实际硬件电路上出现的的问题,以及后期软硬件的改进,不管是什么时候遇到困难,只要和刘老师一说他就会给我们讲,从不厌其烦。这一点我深表感谢。我很想说一句“谢谢您,您辛苦了” !再一个就是我要感谢的就是电气与信息工

53、程学院给我们提供这么多的支持。不管是从老师还是其它的辅助设施上,我深表感谢,给我们带来了极大的方便。第三 我也很感谢论文答辩的各位评委老师,感谢他们在百忙之中抽出时间帮我们答辩。我心里深深知道不管他们提出什么样的问题,难也好,容易也好,其目的只有一个,那就是帮助我们提高,在这我也想说一声谢谢您们!谢谢您们帮助我们提高,欢迎你们提出宝贵的意见。第四:我要感谢我的室友在精神上给我的支持与鼓励。每次遇到困难时,他们都能给予我帮助,不管知道也好,还是不知道也好,总是对我充满信心,没有他们的精神鼓励,设计也许是断断续续。参考文献1 李朝青.单片机原理及接口技术m,北京:北京航空航天大学出版社,19982

54、 何立民.单片机应用技术选编1.北京:北京航空航天大学出版社,20013 李翰荪.电路分析m,北京:中央广播电视大学出版社;4 杨素行.模拟电子技术基础简明教程m,北京:高等教育出版社,1998.10;5 全国大学生电子设计竞赛作品选,1999年;6 电子系统设计,浙江大学出版社2000;7 谢自美.电子电路设计,华中理工出版社期20008 周立功.基于arm7设计,北京:北京航空航天大学出版社,2005.3;9 李军.51系列单片机高级实例开发指南,北京:北京航空航天大学出版社,2004.6;10 李朝青 .pc单片机&dsp数据通信技术选编,北京:北京航空航天大学出版社,2003.

55、5;11林远方等.一种通过对电机可逆调速获得合成图案的激光投射仪j,电子应用技术 ,1999 .附 录程序清单#include<reg52.h>#include<stdio.h>#define uint unsigned int#define uchar unsigned char#define nosport 0#define move_up_r 1#define move_down_r 2#define move_left_r 3#define move_right_r 4#define move_round 5#define zoom_up_r 6#define zoom_down_r 7#define zoo

温馨提示

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

评论

0/150

提交评论