ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:2.86MB ,
资源ID:6275784      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6275784.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(毕业课程设计--光立方.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

毕业课程设计--光立方.docx

1、 摘 要 本设计制作出一个三维立体显示图案的LED光立方。本产品不仅可以像发光二极管点阵一样显示平面的静态或动态画面,还可以显示立体的静态或动态画面,打破了传统的平面显示方案。同时又增加了显示的花样和立体图案显示效果,可以广泛用于传媒信息显示和各种装饰显示,为将来显示技术的进步和发展指导了方向,光立方显示比发光二极管点阵更具有视觉效果,而且画面图案更加非富多彩。 本设计是采用AT89S52单片机为核心控制器,八D边沿触发器(三态)74LS573扩展I/O口,完成硬件电路设计。通过软件编程控制数据下载到单片机完成设计图案的显示。软件采用自上而下的模块化设计思想,使系统朝着分布式

2、小型化方向发展,增强系统的可扩展性和运行的稳定性。 关键词: 52单片机;74HC573锁存器;8*8*8LED显示; ABSTRACT This design produced a three-dimensional pattern of the LED light cube. This product can not only like a light-emitting diode dot matrix display plane static or dynamic scr

3、een can also display three-dimensional static or dynamic images,and to break the traditional program.While increasing the display patterns and three-dimensional effect can be widely used to display and decorative display for future progress and development to guide the direction,light cube display m

4、ore visual effects than the light-emitting diode dot matrix,and the picture is more rich colorful. With a combination of graphics and characters more perfect display characteristics. The design is AT89S52 MCU core controller,eight D edge flip-flop 74LS574 (tri-state) expansion I/O port completion o

5、f the hardware circuit design. Programmed by software to control the data is downloaded to the MCU to complete the designs of the show. This design software is a top-down modular design,the system moving in the direction of distributed,small development,enhance the stability of the system's scalabil

6、ity and running. KEY WORDS: 52single-chip;74HC573latch;8*8*8 3DLED; 目录 1、 设计要求与方案…………………………………………………………………1 1.1设计目的……………………………………………………………………1 1.2设计要求……………………………………………………………………1 1.3设计思路……………………………………………………………………1 1.4设计的总体要求及方案选择……………………………………………2

7、2、 工作原理………………………………………………………………………3 2.1模块的简介…………………………………………………………………3 2.2 3DLED光立方工作原理……………………………………………………4 3、方案选择…………………………………………………………………………5 3.1电源的选择…………………………………………………………………5 3.2 3D显示核心控制器…………………………………………………………5 3.3 I/O口扩展芯片的选择……………………………………………………6 3.4 LED发光显示二级管…………………

8、……………………………………6 4、硬件整体设计概述及功能分析…………………………………………………8 4.1 系统概述 …………………………………………………………………8 4.2 系列单片机简介……………………………………………………………9 4.3 时钟电路设计………………………………………………………………9 4.4 复位电路设计……………………………………………………………10 4.5 74HC573芯片连接电路图与介绍…………………………………………11 5、 主程序设计思路………………………………………………………………13 5

9、1程序流程框图………………………………………………………………13 5.2显示程序的设计……………………………………………………………13 5.2.1 LED显示屏的数据传送……………………………………………13 5.2.2 显示程序的设计……………………………………………………14 6、 硬件电路设计…………………………………………………………………15 6.1 单片机与74HC573连接线路图……………………………………………15 6.2 LED焊接方法………………………………………………………………15 6.2.1焊

10、前准备工作……………………………………………………15 6.2.2焊接…………………………………………………………………16 6.3 整体实物图………………………………………………………………17 7、 程序设计分析与选择…………………………………………………………18 7.1单片机C语言主要特点……………………………………………………19 7.2单片机C语言与标准语言的区别…………………………………………19 7.3数据类型的选用…………………………………………………………20 7.4算法设计问题……………………………………………………………

11、20 7.5数据存储器的分配…………………………………………………………21 7.6单片机C语言与汇编语言的混合编程……………………………………21 7.7程序分析选择……………………………………………………………23 8、 程序设计………………………………………………………………………24 9、 设计结果分析…………………………………………………………………28 总 结………………………………………………………………………………30 致谢…………………………………………………………………………………31 参考文献……………………………………………………………………

12、………32 1、设计要求与方案 1.1 设计目的 在当今现代信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的大屏幕显示设备将代替传统电视机成为人们享受信息和多媒体内容的中心。为追求舒适、逼真、清晰的3D视频显示,为此制作出一个三维立体显示图案的LED光立方。该设计方案将打破了传统的平面显示视频的方法,该方案设计的LED显示屏显示画面色彩鲜艳,立体感强,静如油画,

13、可以广泛应用于广告公司、交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。 1.2 设计要求 (1)毕业设计(论文)中心突出,内容充实,论据充分,论证有力,数据可靠,结构紧凑,层次分明,图表清晰,格式规范,字迹工整,结论正确。 (2)设计制作一个8*8*8的三维的发光二极管显示方阵,能够通过编写程序来实现对每一个发光二级管控制,从而来显示多种多样的图案。控制显示输出至少二十种显示效果。 (3)通过大量编写程序调试实验现象结果分析研究数据形成规律,对规律总结得出结论并初步确定算法。 1.3 设计思路 本设计根据二极管点阵的原理由单片机

14、I/O口控制点亮不同的二极管从而组成出不同的画面,根据人眼的视觉暂留现象即当物体移去时视觉神经对物体的印象不会立即消失而是要延续0.1-0.4秒的时间 ,来设置每幅画面的延迟时间使连续的一系列画面呈现动态。每一个层面的二极管阳极接在一起受一路I/O口控制,实际电路中该路I/O口输出的控制信号通过5V继电器的吸合和断开来控制的,再输入发光二极管的阳极使其驱动。每一个二极管的阴极分别受单片机扩展后的I/O控制。每个灯都是由片选端口和控制端口共同决定亮或灭。因此,我们可以随意的来点亮立方体中任意一处的灯,来构建多种多样的图案。 1.4 设计的总体要求及方案选择 本次设计制作一个8*8*8的三

15、维的发光二极管立方显示体,能够通过编写程序来实现对每一个发光二级管的亮灭控制,从而可以显示多种多样的图案。为了吸引观众增强显示效果,可以有多种显示模式。最简单的显示模式是静态显示。与静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够变化的。按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。产生不同显示显示模式的方法,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。这样程序书写就不会过于繁琐和重复,而且对核心控制器的内存空间要求不高。 借鉴单片机控制LED点阵显示的原理,通过系统分析,确定该系统该具有哪些功能,有哪些模块,各个模块之

16、间是怎样连接,以及怎样组合电路是最合理最简单的,即硬件方案设计。编写硬件电路的相对应软件程序部分,利用仿真软件对程序进行测试修改。电路系统焊接完毕后,测试整个的系统模块的功能,看各个功能是否能正常运行,并依据实验结果找出程序中的错误,改正这些错误至测试成功完成毕业设计要求。 2、工作原理 2.1模块的简介 有8个8*8点阵,再用8个引脚来当充当各个8*8点阵的“开关”。只要将

17、64个灯阳极连在一起,在连到这个引脚上。采用了HC573暂存的方法,来分别把64个灯的亮灭信息存到这个上面,然后再一起输出到灯上,573的64个输出引脚控制前面所述每一个面的64个灯;而每层灯的阴极全连接在一起接入单片机,由单片机控制的每一个层灯。通过单片机主控芯片AT89S52来控制所有灯的亮灭,从而控制P0、P1、P2实现控制X、Y、Z空间立体控制来显示我们所需要显示的现象。如图2.1和2.2所示。整个设计主要分为三个模块分别是主控模块、驱动模块、显示模块. 图2.1 层面 图2.2 64个灯孔

18、 2.2 3DLED光立方工作原理 本设计介绍一个3D LED光立方显示屏的制作,在单片机的P0口输出显示代码,然后把扫描片选择锁存器送入74HC573,通过片选哪一列对应的芯片就可以把显示的内容送到显示屏显示。考虑到P0口必需设置上拉电阻,我们采用4.7 kΩ排电阻作为上拉电阻。 设计原理:利用单片控制LED点阵显示的原理和控制技术,来制作控制光立方显示。通过编写程序控制不同LED的显示,显示所要显示的内容。根据人眼的视觉暂留效应,设置每幅画面的延迟时间使连续的一系列画面呈现动态。最终达到所要显示的内容。每个灯都是由层控制端和列控制端共同决定亮或灭。 单片机 层驱动器 LED光

19、立方 列驱动器 图2.2 LED光立方整体显示框图 在三维光立方中采用动态扫描显示,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。现简单描述一下用动态扫描显示的方式,显示字符“B”的过程。 图2.3 用动态扫描显示字符“B”的过程 3、方案选择 3.1电源的选择 方案一:采用普通干电池作为LED系统的电源,由于点阵系统耗电量

20、较大,点阵系统一般悬挂在高处上,一直不停的工作。使用干电池需经常换电池,不符合节约型社会的要求。 方案二:采用一块LM7805三端集成稳压器。把市电经变压器降压输入电路,而后整流送到LM7805三端稳压器稳压输出作为工作电压。不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。 方案三:采用5V电源的移动充电宝。 基于以上分析,决定选取5V电源的移动充电宝供电电源。 3.2 3D显示核心控制器 控制部分是整个系统的核心部分,其功能可以实现与上位机通信接收上位机发送的数据和控制指令经处理过后控制显示屏显示内容。其常用的电子设计方法有单片机、DSP、及EDA技术。

21、 方案一:单片机 单片机是集成了CPU,ROM,RAM和I/ O口的微型计算机。它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU)。单片机品种齐全,型号多样 CPU 从8,16,32到64位,多采用RISC 技术,片上I/O非常丰富,有的单片机集成有A/ D,“ 看门狗”,PWM,显示驱动,函数发生器,键盘控制等。它们的价格也高低不等,这样极大地满足了开发者的选择自由。除此之外单片机还具有低电压和低功耗的特点。随着超大规模集成电路的发展,单片机在便携式产品中大有用武之地。 方案二:DSP 芯片 DSP 又叫数字信号处理器。顾名思义,DSP主要用于数字信号处理领域,非常适

22、合高密度,重复运算及大数据容量的信号处理。现在已经广泛应用于通信、便携式计算机和便携式仪表、雷达、图像、航空、家用电器、医疗设备等领域。 DSP区别于一般微处理器的另一重要标志是硬件乘法器以及特殊指令,一般微处理器用软件实现乘法,逐条执行指令,速度慢。DSP 依靠硬件乘法器单周期完成乘法运算,而且还具有专门的信号处理指令。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。芯片内置544字的高速SRAM。外部可寻址64K字程序/数据及I/O,令周期在25ns~50ns之间,实时性处理比16位单片机快2倍以上,可取代一般的单片机。 方案三:EDA EDA(即Electronic Des

23、ign Automation) 即电子设计自动化,它是以计算机为工具,在EDA 软件平台上,对用硬件描述语言HDL 完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑影射和编程下载等。而且MCU和DSP都是通过串行执行指令来实现特定功能,不可避免低速,而FPGA/CPLD则可实现硬件上的并行工作,在实时测控和高速应用领域前景广阔;另一方面,FPGA/CPLP器件在功能开发上是软件实现的,但物理机制却和纯硬件电路一样,十分可靠。 基于以上分析,三种设计方式相比较各有优点且都能够实现控制功能,但单片机的技术门槛较低开发

24、成本也较低非常适合初学者进行学习和锻炼使用。现在市场上常用的单片机主要有MCS-52、AVR、ARM、PIC等。其中应用最广泛的单片机首推Intel的52系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势常作为单片机学习的教材。所以决定选取52系列单片机作为控制部分的核心器件。 3.3 I/O口扩展芯片的选择 方案一:选取串口输入并口输出芯片74LS164,虽然I/O口使用较少,由于本次设计共需要72路I/O口,列驱动电路就需要8块74LS164。显示数据是先后顺序给送去的,显示会有延迟,而LED动态显示的刷新的时间控制大约10ms,实时性差,效果不好。 方

25、案二:74HC573 跟74LS573的管脚一样。器件的输入是和标准CMOS 输出兼容的;加上拉电阻,他们能和HC/ALSTTL 输出兼容。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。8块74HC573共用64个I/O口,数据可以并行写入芯片,延迟时间少,满足设计要求。 综合以上比较,决定选取74HC573作为列线驱动I\O口扩展芯片。 3.4 LED发光显示二级管 LED是一种固体光源,当它两端加上正向电压时就可以发光。采用不同的材料,可制成不同颜色的发光二极管。作为一种新的光源,广受欢迎而得以快

26、速发展。从而在各种各样的传媒信息的宣传中得以体现。简述其分类方法如下。 1)按颜色分类 单基色显示屏:单一颜色(红色、绿色、黄色、蓝色等等)。 双基色显示屏:红和绿双基色,256级灰度、可以显示65536种颜色。 全彩色显示屏:红、绿、蓝三基色,256级灰度的全彩色显示屏可以显示一千六百多万种颜色。 2)按使用场合分类 室内显示屏:发光点较小,一般Φ3mm--Φ8mm,显示面积一般零点几至十几平方米。 室外显示屏:面积一般几十平方米至几百平方米,亮度高,可在阳光下工作,具有防风、防雨、防水功能。 3)按发光点直径分类 室内屏:Φ3mm、Φ3。75mm、Φ5mm。 室外

27、屏:Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm。 基于以上分析结果,加上由于成本和控制的难易程度,决定选取单色Φ3mm绿光LED作为本次设计显示色彩,亮度高,显示效果很好。 4、硬件整体设计概述及功能分析 4.1 系统概述 3D LED光立方总体框图如图3.1所示。电路大体上可以分成核心控制电路、显示驱动电路、串信通信电路三部分。核心控制电路部分包括一个52系统CUP和一些外围电路。在整个电路当中此电路部分可以相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC

28、机的串行通讯、以及给显示屏部分发送命令。单片机根据编写好的内容和指令通过I/O口扩展后驱动8*8*8 LED光立方显示屏。本次设计将以此方案为指导思想展开具体的硬件电路设计。 显示电路采用动态扫描方式进行显示时,每列有一个列驱动器,各列的同名行共用一个行驱动器。由单片机给出的行选通信号,从第一列开始,按顺序依次对各列进行扫描选通,根据锁存器的特性可以把数据锁存输出。这样就可以把八列的数据输出显示,完成列线数据的传送。另一方而,根据各列层面要显示的数据,通过三极管驱动继电器来控制相应层面的电平,列与层面的数据结合共同来显示图案。 AT89S52 行 驱

29、 动 器 列驱动器 8*8*8LED 点阵 显示屏 电 源 复位 电路 时钟 电路 图4.1 系统结构设计总图 4.2 系列单片机简介 单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。单片机最小系统包括时钟电路和复位电路。 时钟电路用于产生AT89S52单片机工作时必需的控制信号。单片机的内部电路正是在时钟信号的控制下,严格地按照时序执行指令进行工作。复位电路是为单片机初始化操作准备的。

30、只要单片机的复位引脚RST上的复位信号要持续两个机器周期(24个时钟周期)以上,就可以使AT89S52单片机复位。如图3.2所示。 图4.2 单片机最小系统电路图 4.3 时钟电路设计 AT89S52单片机各功能部件的运行都以时钟信号为基准,有条不紊、一拍一拍地工作。因此时钟频率直接影响单片机的处理速度,时钟电路的质量也是直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。本次采用外部时钟方式。 AT89S52单片机芯片内部设有一个由反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡电路的的输入端和输出端,时钟可有内部或外部

31、生成,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就会产生自激振荡。系统采用的定时元件为石英晶体和电容组成的并联谐振回路。时钟频率fosc采用12MHZ,C1、C2的电容值取30pF,电容的大小起频率微测的作用。如3.3图所示。 图4.3 时钟电路图 4.4 复位电路设计 AT89S52单片机在启动运行时或者出现死机时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,PC初始化为0000H。单片机从这个状态开始执行程序。除了进入系统的正常初始化之外,当程序行出错(如程序“跑飞”)或操作错误使系统处于 “死锁”状态时,也需要按复位键即RST脚为高电平,使

32、AT89S52摆脱“跑飞”“死锁”状态而重新启动程序。 单片机有多种复位方式,常用的复位操作有上电复位和手动按键电平复位方式。本设计采用手动按键电平复位方式,电路搭建图见图4.4。上电复位是通过外部复位电路的电容充电来实现的,复位电路产生的复位信号(高电平有效)由RST通过复位电路相连,手动输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号对AT89S52单片机进行复位。当上电时,C3相当于短路,有时碰到干扰时会造成错误复位,可在复位端加个去耦电容,可以复位电路更加可靠。 图4.4 按键电平复位电路图 4.5 74HC573芯片连接电

33、路图与介绍 图4.5 74HC573芯片连接电路图 74HC573 跟74LS573的管脚一样。器件的输入是和标准CMOS 输出兼容 的;加上拉电阻,他们能和HC/ALSTTL 输出兼容。 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同 步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。 输出能直接接到CMOS,NMOS 和TTL 接口上操作电压范围:2.0V~6.0V,低输入电流:1.0uA,CMOS 器件的高噪声抵抗特性。 管脚功能图: 管脚功能图 74HC573功能表 IN

34、PUTS 输入 Outputs输出 OE LE D Q (HC573) H X X Z L L X NO CHANGE * L H L L L H H H 74HC573逻辑图 5、主程序设计思路 5.1 程序流程框图 系统软件采用汇编语言编写,按照模块化的设计思路设计程序。首先分析程序所要实现的功能,程序要实现可静态显示、动态显示、三维立体显示。通过按键控制程序选择不同的显示程序进行显示。 图5.1 主程序流程图 程序开始时首先必须对单片机进行初始化设置,其中初始化设置的内容包括:中断优先级的设定,中断初始化,

35、定时器初始化,串行通信时通信方式的选择和波特率的设定,各IO口功能的设定等。把各子程序写为一个可单独执行的完整子程序段。各子程序编译没有错误后再下载到单片机进行仿真验证,这两项都通过后再将所有的程序整合到一起,形成一个完整的程序再进行编译和仿真验证。 5.2 显示程序的设计 5.2.1 LED显示屏的数据传送 动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面显示过程是显示完一部分后,又显示第二部分……直到显示完最后一部分又重新开始显示第一部分,重复循环进行。在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的静态画面。也就是说采用动态扫描显示需要不断进行画面的刷新。

36、动态扫描分为行扫描和列扫描,两种方式区别在于选通端和数据输入端分别是行还是列。先选通列然后再从行送入对应列的数据,这样从第1列到第8列循环往复,只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的画面。 5.2.2 显示程序的设计 显示采用的是扫描显示方式,选通一列后按照列对应的数据表的数据第i列对应的列数据为数组中的第i和第i+7个元素。将对应数据由低至高位依次从控制端口输出显示。向右逻辑移位所得结果通过单片机端口输出到锁存器,通过片选需要显示对应的锁存器在输出显示。如此依次循环选通各列来显示所需画面。 Y N 显示数据送0 选通列,送锁存输出 送下一

37、列数据,选通信号左移 左移次数>8 显示完成后 程序初始化 开始 子程序返回 动态显示程序流程图见5.2.2。把显示的数据送到P0口,相应的锁存器接收数据,再把片选锁存器的数据送到端口,相应锁存器接收数据并锁存输出显示,接着把下一组数据送到P0口,改变片选锁存器的数据,送到相应锁存器输出显示,直到把所有的数据局输出传送完毕后,显示完成后,退出显示程序,等待指令。输出形式多种多样,可以静态输出图案,也可以动态、左移、右移、循环等花样显示。

38、 图5.2.2 显示程序流程图 6、硬件电路设计 6.1 单片机与74HC573连接线路图 首先在porter平台里画出单片机AT89S52与芯片74HC573的连接图,变换成PCB图,转印在PCB板上面,然后再根据图把各个元器件焊接上去。但考虑到PCB板太小,不能满足灯座的占地面积,所以把PCB板重新固定在20*22的万能板上。如图5.1所示。 图6.1 单片机与74HC573连接线路图 6.2 LED灯焊接方法 6.2.1 焊接前准备工作 准备好烙铁、焊锡丝、钳子等工具,以及LED。

39、LED的正负极很好判别,长的引脚为+,短的为-。LED最好选用直径3mm的LED,推荐选绿色。长脚的LED可以省很多工作量。实际测量长脚是29mm,短脚为27mm,由于LED光立方板子灯的间距决定了,每个LED的间距是20mm。这样长短引脚都符合这个尺寸。由于所有LED框架焊接好后,一旦有LED损坏更换难度很大,所以焊接前要测试所有LED,用一般数字显示万用表打到二极管量程,用万用表红表笔接长引脚,黑的接短引脚。LED正常发光并且亮度基本一致,这样的LED就是好的,否则是坏灯。如果为了确保可靠也可以焊接好一层后测试LED是否能点亮。 6.2.2 焊接 将8个LED

40、焊接为一组,可以通过2种方法完成。 方法一:需要用钳子将LED的正极扭弯,这个弯,一定要小,正好露出LED外围打弯正合适,LED的正极折弯后留下的引脚长度必须大于LED的间距20mm,以确保有足够的重合位LED灯脚全部折好后,就可以焊接了,为了方便焊接可以在万能板上面钻几个2mm的孔,间距为 8个洞洞置以便焊接。焊接细节,将一个LED正极的引脚靠近到另一个LED正极的打弯处,然后上焊锡焊接,焊接要光亮可靠,有一定机械强度。这样将全部LED焊接成8个一组的LED灯排待用。焊接时避免用过多助焊剂,要不会粘到LED表面,影响外观。焊机避免正负2极短路。注意每一层的二极管都是共阴的

41、 方法二:需要借助一个工艺设备,这个东西可以自己动手制作,用这个辅助焊接当然要容易些。焊接方法也是一样的,将一个LED正极的引脚靠近到另一个LED正极的打弯处,然后上焊锡焊接,焊接要光亮可靠,有一定机械强度。这样将全部LED焊接成8个一组的LED灯排待用。焊接小经验,由于LED灯脚有一定弹性,一个LED的引脚靠近到另一个LED正极的打弯处时,一松手就又弹远了,所以建议焊接时多掰一点,掰过了之后利用弹性将两个要焊接的引脚 靠进,这样焊接会容易许多。如图6.2.2所示。 图6.2.2 灯焊接模具 6.3整体实物图 整个光立方的连接是用排线和杜邦线连

42、接而成,这样方便拆和安装,但过程比较繁琐,也很容易出错误,有事也会产生接触不良。整体图如图6.3.1和图6.3.2所示。 图6.3.1 排线和杜邦线连接图 6.3.2 整体实物图 7 程序设计的选择与分析 作为一种结构化的程序设计语言,C语言的特点就是可以使你尽量少地对硬件进行操作,具有很强的功能性、结构性和可移植性,常常被优选作为单片机系统的编程语言。但是基于单片机的C语言和标准C语言有很大区别,如何结合单片机的系统资源,用C语言开发符合实际工程需要的单片机系统,对用编程者来说具有十分重要的意义。 7.1单片机C语

43、言主要特点 用C 编写程序比汇编更符合人们的思考习惯,开发者可以摆脱与硬件无必要的接触,更专心的考虑功能和算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。C语言具有良好的程序结构,适用于模块化程序设计,因此采用C语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,将功能模块化,由不同的模块完成不同的功能[1],这样可使整个应用系统程序结构清晰,易于调试和维护。不同的功能模块,分别指定相应的入口参数和出口参数,对于一些要重复调用的程序一般把其编成函数,这样可以减少程序代码的长度,又便于整个程序的管理,还可增强可读性和移植性。 在实际单片机程序设计中,程序结

44、构一般均采用如下结构: #include /*头文件说明部份*/ unsigned char x1,x2; /*全局变量声明部份*/ …Function1(… ){ /*功能函数定义部份*/ ……} main() { inti,j; /* 整型变量声明部份*/  Function1(…); /* 功能函数说明部份*/ ……} 7.2 单片机C语言与标准C语言的区别 由于现在越来越多的产品都采用单片机开发,所完成的计算和控制工作也日趋复杂,但是单片机系统是一种资源十分有限的系统,这主要表现在程序存储器资源

45、的不足,因此在程序设计时如何使用好这些有限的资源就显得十分重要。用C语言编程虽然具有许多的优点,但是生成的代码相对要长,要是编程技术不好,生成的代码甚至有可能比汇编语言生成的代码长几倍,因此对编程者来说,应该注意到单片机C语言和一般意义上的标准C语言的区别,对程序进行适当的优化。 7.3 数据类型的选用 单片机C语言编程不同于一般的C语言编程的显著的一个特点,就是要和程序存储器资源结合起来,虽然其提供的数据据类型十分丰富,但是只有bit和char等数据类型是是机器语言直接支持的数据类型,用此类数据类型的语句所生成的代码较短;而其它的数据类型如整型、浮点型等数据要有一定的内部程序或

46、内部函数的支持,相对来说用该类数据类型的语句生成的代码要长。有些C语言程序表面上看起来十分的简单,但在在实际编译时,生成的代码却相当长。因此我们要按照实际需要,合理地选用数据,可以大大的减少所生成的代码长度。例如在S52中每种数据类型变量所占用存储器字节数和经编译后生成的代码长度如表1所示: 通过表1我们知道,不同的数据类型所生成的机器代码长度相差很多,相同类型的数据类型有无符号对机器代码长度也有影响。在程序编译时生成机器代码长的数据类型的优先级越高,不同的数据类型在进行程序运算时要转化为高优先级的的数据类型,相应的代码长度也会增长[2]。因此我们应尽可能地使用bit,char等

47、机器语言直接支持的数据类型,无符号数的变量应声明为无符号数,尽可能地减少程序中使用的数据类型的种类。 7.4算法设计问题 单片机C语言和标准C语言存在着很大差别,在计算机上进行C语言程序设计时由于不必考虑程序代码的长短,只需考虑程序功能实现,但是在单片机上进行C语言程序设计就必须考虑系统的硬件资源。有时并不是程序的算法越简单、长度越短越好,因为有一些算法要调用一些内部的子程序和函数,生成的机器代码长度非常长。不同的算法对程序代码长度影响十分大,因此在进行程序设计时,就尽量采用程序生成代码短的算法,在不影响程序功能实现的情况下可以采用一些优化算法[2]。 在单片机C语言编译

48、成机器代码时,不同的运算生成的机器代码的长度相差很大,尽可能地减少程序中对某种数据类型的运算种类,越复杂的数据类型效果越明显。在进行数据计算时,在一定的精度范围内,可以用一些近似的计算来完成一些运算,既不损失精度又能减少大量的代码。比如:用逻辑AND/&取模比MOD/%操作更有效。 在用热敏电阻测量温度时,可根据热敏电阻—温度特性公式来求值。数学表达式表示为:RT=RT0expB(1/T-1/T0) 如果直接按照公式温度时程序结构简单,算法复杂度不高,但是程序将调用文件中的对数函数,在编译成机器码时函数有1K多字节,对于一般只有几K字节的单片机系统来说,这是

49、十分不合适的。考虑到系统资源问题可以用一种替代方法—查表法来实现算法。只要给出一定温度范围内不同温度值对应热敏电阻的电阻值,然后建立表格,只要按照系统求出的阻值,进行查表,插值,就可以求出相应的温度值。这种算法相比前面的的公式法的算法复杂高,C语言程序代码也长,但在编译成机器码时,代码长度却很短,只有一、二百字节。 7.5 数据存储器的分配 单片机内部数据存储器RAM只有几百字节,如果扩展外部存储器RAM来提高数据存储量话必将会增加了硬件成本,使系统更加的复杂,访问外部存储器比访问内部存储器所需的代码也要长得多。有效地使用片内存储器、提高存储器空间的利用率对开发者来说十分关键。

50、 内部处理器、内部堆栈、压缩栈、所有程序变量和所有包含进来的库函数都将使用数量有限的内部数据存储器RAM。因为C语言采用了存储器的覆盖技术[2],可以在程序进行连接时,它将那些已经被其它程序段释放了的存储器空间重新定义给另一个程序段的变量使用,当这个程序运行结束时再将这些存储器释放以供其它程序段使用。全局变量的作用范围是整个程序,因此不能被释放;静态变量由于在函数的调用中专用不变,也不能被释放;只有局部变量中的动态变量可以被释放。 因此在进行程序设计时应该尽量的使用局部变量,提高内部数据存储器的使用率。在C语言中程序中间结果及参数传传递是通过内部的寄存器来完成的,要是内部的存储

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服