单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc

上传人:laozhun 文档编号:3936421 上传时间:2023-03-28 格式:DOC 页数:37 大小:4.35MB
返回 下载 相关 举报
单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc_第1页
第1页 / 共37页
单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc_第2页
第2页 / 共37页
单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc_第3页
第3页 / 共37页
单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc_第4页
第4页 / 共37页
单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc》由会员分享,可在线阅读,更多相关《单片机控制的平面旋转LED点阵显示屏设计与制作—毕业论文.doc(37页珍藏版)》请在三一办公上搜索。

1、单片机控制的平面旋转LED点阵显示屏设计与制作摘要LED显示屏已广泛应用于广告、车站、银行、商场等公共场所,它具有功耗小、寿命长、色彩好等优点。现在的 LED 显示屏的发光器件主要采用 LED 平板模块,这种类型的显示屏主要有两个问题有待改进:首先是整个显示屏全由LED 模块组成,器件数量多,成本高;另外,由于显示屏是一个平面,同时 LED 象素点有一定视角限制,使显示屏的可视范围被局限到正面某个范围之内,在应用中使显示屏的信息发布受到了一定的空间限制。本文给出了一种新型的基于单片机平面旋转LED显示屏,以旋转扫描方式代替逐行扫描,可视范围达到了360 度,成本大大降低,克服了LED平板显示屏

2、的不足。本文在简要介绍旋转LED显示屏工作原理的基础上,详细说明了旋转显示屏的方案选择和系统结构设计,以及具体硬件电路和软件设计流程。在此基础上,本文还讨论了旋转LED显示屏设计中需要注意的一些关键问题,给出了相应的解决方案,并提出了一些改进和完善本系统的思路和设想。 实际制作的LED旋转显示屏技术参数的测试结果,以及实际的运行效果表明,本文设计和制作的旋转显示屏符合设计要求,具有一定的创新性和实际应用价值。关键词:LED显示屏;旋转;单片机目录摘要2引言5第1章总体设计思路61.1系统的设计目标61.2总体设计6第2章方案论证82.1系统供电方案82.2 LED驱动芯片选择82.2.1 LE

3、D驱动芯片选取原则82.2.2 LED驱动芯片接口电路设计92.3 红外发射接收电路设计92.4 单片机其他外围电路102.4.1电机选择102.4.2 按键选择10第3章 LED显示技术及系统中的主要芯片113.1 LED以及旋转LED显示屏简介113.1.1 LED 应用简介113.1.2旋转LED显示屏简介123.2 AT89C51单片机简单概述143.2.1 AT89C51单片机的结构143.2.2 AT89C51管脚说明15第4章 系统硬件设计184.1 各功能实现原理184.1.1系统供电184.1.2重心调节184.2 具体硬件电路实现194.2.1电源设计194.2.2 单片机

4、最小系统设计204.2.3 LED旋转设计214.2.4 功能切换设计22第5 章系统软件设计235.1 系统编程语言和编程工具235.2 软件总体设计245.3 程序模块流程图255.4 程序节选25第6章 作品展示316.1 硬件展示316.2 效果展示336.3 整体演示34致谢35参考文献36附录37原理图:37引言 由于物理学的重大突破,电子技术在20世纪取得了惊人的进步。特别是近40年来,电子技术的发展突飞猛进,无论是工业、农业,还是国防领域都随之发生了重大变革,也为技术创新打下了坚实的理论基础。我们则应当具备开发和创新的能力,本文所介绍的旋转LED显示屏就是一个例子。通过单片机的

5、应用和普通直流电机的改装实现这一功能,通过良好的视觉效果激发我们对电子科学的兴趣。基于单片机平面旋转LED显示屏是一种新颖的显示屏,总的来看,成本低是一大优点,另外 360 度的可视角度使之非常适合于像大厅和候车室之类的场合。如果能较好的解决显示亮度问题,可应用于室外,尤其是一些广告塔、楼顶等场合,是LED显示屏的一个新品种、发展的新方向。此类显示屏如果更进一步,解决视频数据的传输,则可以做出旋转平面式视频显示屏,视频显示的控制电路较为成熟,显示器件只需换为 RGB 阵列即可,这样应用范围可大大增加。 本文所设计的旋转LED显示屏以AT89C52单片机为核心,最大限度的利用单片机的资源,与LE

6、D紧密结合来实现控制,实现显示功能。 本文分为五章,详细说明了LED旋转屏的原理、设计方法、以及设计流程。第1章主要介绍系统总体设计方案;第2章对系统设计方案作了较详细的论证和介绍。第3章主要介绍LED显示技术及系统中的主要芯片。第4章详细介绍了系统的硬件设计。本章对电路的设计原理、原件的选择和各功能的实现作了详细的介绍。第5章详细介绍了系统的软件设计方案及系统的开发平台。第6章讲解系统的调试过程和实现的主要功能。对系统软、硬件调试和调试中遇到的问题作了说明,并对各功能进行了测试和分析。第1章总体设计思路1.1系统的设计目标本设计要求进行旋转LED显示屏的研究和设计。系统以MCS-51系列单片

7、机作为核心控制器件,通过控制电机保持一定的速度稳定旋转,带动单排LED旋转,形成扫描显示屏;单片机根据LED旋转的速度,控制LED发光或熄灭,在视觉上形成平面图形点阵的显示效果。1.2总体设计旋转LED显示屏的系统总框图,如图1.1所示。系统由7个部分组成:系统供电模块、按键模块与单片机控制单元、显示模块、直流电机模块以及红外发射模块、红外接收模块。其中,LED显示由单片机和直流电机共同控制,键盘则用来实现人机交互的功能,系统供电是通过外接直流电源,然后通过整流滤波,给系统供电。用户可以通过按键输入命令到单片机去控制LED控制器控制LED的循环显示。AT89C51按键电源 直流电机 LED红外

8、发射红外接收图1.1 系统总框图第2章方案论证2.1系统供电方案方案1:采用固定电池供电。即在电路板上直接附带一个纽扣电池,为系统供电。这种供电方式比较简单且重量轻体积小;将其固定在摇摆面的一端与单片机构成平衡。但是,有一个问题难。就是高亮度LED的功耗比较大,而电池的蓄电量有限,这就难以实现系统的长期运作。但结合硬件此方法容易实现,并且一举两得,因此选用此方案。 方案2:采用电刷供电。即在电机的转轴上,手工增加一个电刷,通过电刷为系统供电。此方法能够让系统长期供电,但是由于增加了电刷,电机的摩擦增大,势必会使系统的功耗增加。故不采用此方法。方案3:从电机转子中引出电源线,为系统供电。此方法直

9、接在电机的转子中引出电源线,通过整流滤波后,可以作为系统供电,同时也可以作为系统控制时序的中断源。但由于硬件所致,故不采用此方案。2.2 LED驱动芯片选择2.2.1 LED驱动芯片选取原则LED驱动芯片关键的指标之一输出功率的大小。LED的亮度直接决定了显示屏的可见范围。采用大电流驱动芯片,使得可视距离更远。高功耗,同时意味着芯片的能够良好的散热。LED驱动芯片的另一个关键指标是工作频率,即工作的速度。为了能够更清晰的显示字体和图像,芯片的工作速度是不可忽视的。芯片必须能够快速响应和编码输出。方案 1:采用半导体固体发光器件LED,其发光二极管虽有很多的有点,如:耗电量低、使用寿命长、高亮度

10、、低热能、环保、坚固耐用等等,但由于需要进行圆周运动,由于体积问题,故不采用此方案。方案 2:采用贴片封装的LED,其特点与半导体固体放光二极管相同,但用于此LED采用贴片封装技术,所以体积相对较小,故采用此方案。2.2.2 LED驱动芯片接口电路设计方案1:采用数字信号处理单片机MSP430驱动LED,由于MSP430速度比较快,有较强的运算能力,大大提高了计算调整LED显示的时间,但MSP430引脚有限,如使用此方案使硬件变得复杂,故不采用此方案。方案2:采用单片机AT89C51驱动LED, AT89C51逻辑能力较强但速度比较慢,价格相对比较便宜,但工作量要比方案1大的多。综合考虑价格、

11、元件是否容易购买等因素,在此设计中选用方案2。2.3 红外发射接收电路设计方案1:采用普通的红外发光二极管和一体化接收器件,如SHoo38,此一体化接收头将红外接收管(光电二极管)、放大器、滤波器及解调器集成在个硅片上,无需外部元件,并且具有抗光电干扰性能好(无需外加磁屏蔽及滤光片)、并有接收角度宽等特点。但由于体积大会影响转轴平衡。故不采用此方案。方案2:采用一体化器件TCRT5000,此光电传感器模块是基于TCRT5000红外光电传感器设计的一款红外反射式光电开关。传感器采用高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出信号经施密特电路整形,稳定可靠。由于结构原因,可进行拆分,将其

12、拆分为接收和发射两部分使用,不仅体积小、重量轻、且价格便宜。故采用此方案。2.4 单片机其他外围电路2.4.1电机选择方案1:采用步进电机。步进电机能够准确的定向,但是图像或者文字的分辨率受到步进电机的步进角度的限制。并且步进电机以及控制电路成本较高,并且需要单片机控制,占用CPU的资源。方案2:采用普通的电机。此方案不占用单片机I/O口,节省单片机资源,使用方便,成本较低,通过简单的改装,可以给系统供电。综合各方面考虑,为了节省成本,简单系统电路,以及更方便的为系统供电,使系统能够长期工作,故采用方案2。2.4.2 按键选择选择普通的按键开关,其优点体积小,重量轻、使用方便。第3章 LED显

13、示技术及系统中的主要芯片3.1 LED以及旋转LED显示屏简介3.1.1 LED 应用简介LED(light emitting diode)是发光二极管的英文缩写,它是一种电致发光器件。目前,LED产业已经走过了它的发展初期和中期,普通LED的应用已经成为过去,高亮度LED的使用也已无需着力推广。另外,中小功率超高亮LDE亦已诞生,并正在以极快的速度走向应用。显示方面,LED被广泛应用于电子电器、工业设备等各类产品的状态性能显(指)示,也被越来越多地制作成多媒体平板显示屏、交通信号灯等等。LED的应用虽然已经具有了很广的范围、很大的规模,但是,由于LED拥有很多社会应用所需的优点、相关技术也有

14、很大的发展空间,因此,LED有着更为美好的前景。目前技术条件下,LED已经显示出了众多的优点与传统的显示媒介相比,有以下特点:一是寿命超长,业内公认的平均值达10万小时,可期望目标将会达到25万小时;二是色彩丰富,LED已经实现了多个波长的单基色,有红、琥珀黄、黄、绿、蓝等,基本满足了应用领域对LED色彩的要求,随着更多新材料的开发,还会实现更多的基色及至全彩色;三,稳定可靠,在LED的寿命期内,LED差不多都能稳定的工作,维护工作量极小;四,电气安全性高,LED一般工作在低电压(6-24V)、小电流(10-20mA)情况下,属弱电级工作器件,有较好的电气安全性能;五,节能环保效率高,在同等亮

15、度下,LED的耗电仅为普通白炽灯的1/10,而且不存在有害金属汞污染等问题,符合社会发展趋势;六,应用灵活性好,LED可进行低压供电,也可110V/220V电源供电,加上单粒LED的体积小(芯片更小),只用3-5平方毫米,大大方便了工程应用;七,受控制能力强,现有的技术已经可以实现LED的亮度、灰度、动态显示,分布控制等,是其它发光装置无可比拟的;八,抗震性能优越,LED的坚固、耐震、耐冲击性能,超过了目前所有其它类型的电光源产品;九,响应速度快,LED的响应速度在毫秒级,可以自如有效地应用于显示屏、汽车刹车灯、相机闪光灯等;十,显色性能良好,白色LED目前的显色指数Ra达到了70以上,色温范

16、围从3600K到11000K(随荧光粉不同而变),而且已经获得了实验室提高的方案;另外还有亮度高、无干扰、方向性好等等也是十分有用的优点。当然,LED产业内还有不少问题需要从根本加以解决。基色尚不十分丰富,理想的目标是可见光波段实现全覆盖,最好能达到自然光的水平;显色性仍显不高,理想水平是黑体相同,即达到Ra=100;亮度需要有效地提高,包括发光效率的两个方面(内量子效率和光输出效率)和功率的提高;另外还有体积、成本、专用集成电路、驱动器、“冷光”感等问题。纵观LED的发展,我们不难发现,LED产业的发展极大地缘于技术的进步,而技术进步的动力则是来自于应用的需求,亮度的提高、基色的丰富、功率的

17、增加等等无不如此。可以推想,未来的LED产业,一定会根据应用的要求,在亮度、功率、基色等技术方面进一步突破,使不同类型的LED更加广泛地被使用,并且还会逐步地建立起各自相对独立的应用领域,从而步入LED细分时代,我们有理由相信,亮饰、照明、显示将会首先独立出来,形成LED应用的专门领域。当然,从技术关联角度看,未来的LED产业会像一棵树,细分出来的专门领域,其源头仍会统一在芯片材料的生产上,不同领域的LED应用会得到不同技术支持。3.1.2旋转LED显示屏简介LED显示屏已广泛应用于广告、车站、银行、商场等公共场所。它具有功耗小、寿命长、色彩好等优点。现在的 LED 显示屏的发光器件主要采用

18、LED 平板模块,室内显示屏主要采用 16 行循环扫描的方法,即每16 行为一个单元,在每一帧中, 逐次每行亮十六分之一秒的时间,由于帧频一般大于 60Hz,我们并不觉察到扫描,而认为是一幅稳定的图像。这种类型的显示屏有两个问题有待改进:第一、显示屏整个面积全由LED 模块组成,器件数量多,成本高;第二、由于显示屏是一个平面,而且 LED 象素点有一定视角限制,使显示屏的可视范围被局限到正面某个范围之内,在应用中使显示屏的信息发布受到了空间的限制。新型的旋转柱式显示屏,克服了以上两个不足,以机械转动扫描方式代替逐行扫描,成本大大降低,可视范围做到了360 度。本文介绍了它的显示原理,系统组成,

19、指出了设计中要注意的几个核心问题,并提出了一些新的发展方向。旋转扫描的原理:由于人眼具有视觉暂留的特性,无法区分间隔小于0.1S的图像,当画面以一定速率刷新时,我们看到的就是连续的图像,电视机显示采用逐点扫描方式,每秒钟要刷新画面 50 场(25 帧),而在人眼中则是一幅完整的画面,传统 LED 显示屏一般采用 1/16 扫描,16 行进行逐行循环点亮,由于刷新速率足够大,看到的也是一幅稳定的画面。它的原理示意如图3. 1.2 所示,其中(a) (b) (c) (d) (e) 分别是不同时刻的显示状态,(f)为人眼看到的完整画面“3”。在这种LED显示屏中,采用的是逐行换位下移点亮器件的扫描方

20、式,每一行都必须有LED显示器件,这就使显示屏的成本偏大。图3.1 .2 传统LED显示屏的显示原理图旋转扫描方式显示器只有一列,由电机带动它进行旋转,运行到某一位置时就显示该位置的状态,到下一位置后又显示下一位置的状态,即一列显示器件要完成全部图像的显示,扫描过程由机械转动更换位置并通过红外来判断是否到达显示位置,若一到就送去显示信息,再利用视觉暂留的错觉我们就可以看见一幅完整的图片了。 由于旋转扫描成像是平面,而不是一个柱面,所以称之为平面旋转式显示屏,其观看视角是360。3.2 AT89C51单片机简单概述3.2.1 AT89C51单片机的结构 AT89C51单片机是美国Atmel公司生

21、产低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大3。AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。图3.2.1为AT89C51单片机的基本组成功能方块图。由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。下面介绍

22、几个主要部分。振荡器和时序OSC程序存储器4 KB ROM数据存储器256 B RAM/SFR定时器/计数器 2 16 AT89C51CPU64 KB总线 扩展控制器可编程 I/O可编程全双工串行口内中断外时钟源 外部事件计数 外部中断 控制 并行口 串行通信图3.2.1 AT89C51 功能方块图3.2.2 AT89C51管脚说明如图3.2.a 引脚排列ATMEL公司的AT89C51是一种高效微控制器。(如图3.2.a)采用40引脚双列直插封装形式。AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。VCC:供电电压。GND:接地。P0口:P0口为一个8位漏

23、级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出

24、4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流。P3口

25、也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断0)P3.3 INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时

26、,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。PSEN:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESE

27、T;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。第4章 系统硬件设计4.1 各功能实现原理4.1.1系统供电(1) 为了使系统能够长期稳定的工作,必须解决系统的供电问题。采用外接直流电源,通过整流、滤波、稳压得到系统供电电源。(2) 实现方法:外接直流电源。4.1.2重心调节重心调节是最困难的一个技术环节。旋转的重心直接关系到系统的稳定的运行,以及安全性问题。旋转的重心如果不在转轴上的话,在高速的旋转中,会产生剧烈的抖动,在巨大的离心力下,会使整个

28、系统分解,产生安全隐患。所以,重心调节是必须解决的问题。下面介绍重心调节的方法。首先是电路板的外观设置。根据物理质心计算方法,可知道,均匀的圆盘的重心就在圆盘的中心。但是,由于电子器件的封装,重量都是不同的,圆盘电路板的重心是不均匀分布的,比较难调节,故不采用这种方法。根据杠杆原理,当支点两端的物体的质量与力距乘积相等时,杠杆就处于平衡。因此我采用了长条方型的电路板结构。M2M1L2L1图4.1.2 杠杆原理示意图如上图4.1.2所示,只要M1*L1 = M2*L2时,在布PCB的同时,只要通过简单的测量和计算便可以使得杠杆处于平衡。4.2 具体硬件电路实现4.2.1电源设计将两个3V的纽扣电

29、池串联得到6V直流电压,经过整流、滤波然后经7805稳压后得到系统所学的供电电压。图4.2.1所示为具体的设计电路。图4.2.1 电源原理图4.2.2 单片机最小系统设计图4.2.2为单片机及最小系统,他采用外接12M晶振作为单片机的时钟,并采用上电复位作为单片机的复位电路,以保证单片机能正常工作。图4.2.2 单片机及最小系统4.2.3 LED旋转设计采用红外发射模块及接收模块,如图4.2.3(a)所示。红外发射模块用于确定显示信息的位置,当红外接收模拟旋转到该位置是单片机就送入需要显示的信息,从而到达图像稳定的目的。图4.2.3(a) 红外发射和接收电路如图4.2.3(b)为LED显示模块

30、,他有16个LED一字行排列组成。如图4.2.3(b)LED显示模块4.2.4 功能切换设计采用中断的控制方式进行功能切换,采用外部中断0。图4.2.4 为原理图。图4.2.4 功能切换原理图第5 章系统软件设计5.1 系统编程语言和编程工具在单片机的开发应用系统中,汇编语言作为传统的嵌入式系统的编程语言,己经不能满足实际需要,高级语言被逐渐引入,C语言就是其中之一。C语言是一种通用的计算机程序设计语言,它既有高级语言的各种特征,又能直接操作系统硬件。对于大多数S系列单片机,使用C语言与使用汇编语言相比具有如下优点:(1) 不需要了解处理器的指令集,也不必了解存储器结构。(2) 寄存器分配和寻

31、址方式由编译器进行管理。(3) 指定操作的变量选择组合提高了程序的可读性。(4) 可使用与人的思维更相近的关键字和操作函数。(5) 程序的开发和调试时间大大缩短。(6) C语言中的库文件提供了许多标准的例程。(7) 可实现模块化编程技术,从而可将己编制好的程序加入到新程序中。(8) C语言可移植性好且非常普及。8051系列单片机作为工业标准地位,从80年代开始就有了51单片机的C语言编译器。C语言可以调用汇编语言的子程序或子函数。因本系统界面比较庞大,控制较多且单片机的工作时序没有严格要求,故在本系统中,单片机程序采用C语言编写。5.2 软件总体设计系统监控程序是控制单片机系统按照预定操作方式

32、运转的程序,是整个系统程序的框架。在本系统中,单片机的主要任务是用来显示和操作者按下不同的按键后,执行相应的任务,各个任务执行的先后顺序取决于键码。根据这样的功能和操作方法,程序总体结构采用键码分析作业调度型,即作业调度完全服从操作者的意图,操作者通过键盘发出作业调度命令,监控程序接收到控制命令后,通过分析启动对应的作业。 系统软件设计采用模块化设计的方法,它是把一个功能完整的较大的程序分解为若干个功能相对独立的较小的程序模块,对各个程序模块分别进行设计、编程和调试,最后把各个调试好的程序模块联成一个大的程序。模块化程序设计的优点是单个功能明确设计和调试比较方便、容易完成。一个模块可以为多个程

33、序所共享。模块化编程的具体体现是把各个功能相对独立的模块作为子函数,主程序是一个不断循环检测结构。当系统上电自检、初始化后,进入信号输出的循环,并自动查询面板按键的状态,以检测用户可能输入的指令,确定程序将要执行的功能。本系统软件由主监控程序模块、命令翻译模块、信号产生模块、人机交互模块构成。其中主监控程序是系统软件的主程序,是整个系统软件的核心,上电复位后系统首先进入监控主程序。它的任务是识别命令、发送命令,起着引导仪器进入正常工作状态,协调各部分软件有条不紊地工作的重要作用 。5.3 程序模块流程图初始化系统自检判断按键值Key=1Key=2当key值大于3同心圆显示字体显示Key等于0图

34、5.3 程序模块流程图如图 5.3为系统程序流程图5.4 程序节选#include#define uint unsigned int#define uchar unsigned char sbit button=P32;sbit pin=P11;uint key=0;uchar keychange=0;/*显示字符*/code uchar dat= 0x00,0x00,0xFC,0x1F,0x04,0x08,0x04,0x08, /*叶*/ 0xFE,0x1F,0x44,0x00,0x40,0x00,0x40,0x00, 0x40,0x00,0xFF,0xFF,0x40,0x00,0x40,0

35、x00, 0x40,0x00,0x60,0x00,0x40,0x00,0x00,0x00, 0x20,0x00,0x20,0x00,0xFF,0xFF,0x20,0x00, /*博*/ 0x24,0x08,0xF4,0x0B,0x54,0x19,0x54,0x29, 0x54,0x09,0xFF,0x4B,0x54,0x89,0x55,0x7D, 0x56,0x09,0xF4,0x0B,0x04,0x08,0x00,0x00, 0x80,0x00,0x84,0x08,0x44,0x08,0x44,0x08, /*李*/ 0x24,0x09,0x14,0x49,0x04,0x89,0xFF,0x

36、7D, 0x04,0x0D,0x14,0x0B,0x24,0x09,0x24,0x08, 0x46,0x0C,0xC4,0x08,0x40,0x00,0x00,0x00, 0x00,0x01,0x02,0x01,0x02,0x01,0x1A,0x01, /*平*/ 0x62,0x01,0x02,0x01,0x02,0x01,0xFE,0xFF, 0x02,0x01,0x02,0x01,0x62,0x01,0x1A,0x01, 0x03,0x01,0x82,0x01,0x00,0x01,0x00,0x00, 0x00,0x04,0x80,0x04,0xFF,0x05,0x88,0x04, /*毕

37、*/ 0x48,0x04,0x48,0x04,0x28,0x04,0x00,0xFF, 0x7F,0x04,0x88,0x04,0x88,0x04,0x84,0x04, 0x84,0x04,0xE0,0x06,0x00,0x04,0x00,0x00, 0x00,0x40,0x10,0x40,0x60,0x40,0x80,0x47, /*业*/ 0x00,0x40,0xFF,0x7F,0x00,0x40,0x00,0x40, 0x00,0x40,0xFF,0x7F,0x00,0x44,0x00,0x43, 0xC0,0x40,0x30,0x60,0x00,0x40,0x00,0x00, 0x40

38、,0x00,0x40,0x00,0x42,0x00,0xCC,0x7F, /*设*/ 0x00,0xA0,0x40,0x90,0xA0,0x40,0x9F,0x43, 0x81,0x2C,0x81,0x10,0x81,0x28,0x9F,0x26, 0xA0,0x41,0x20,0xC0,0x20,0x40,0x00,0x00, 0x40,0x00,0x40,0x00,0x42,0x00,0xCC,0x7F, /*计*/ 0x00,0x20,0x40,0x10,0x40,0x08,0x40,0x00, 0x40,0x00,0xFF,0xFF,0x40,0x00,0x40,0x00, 0x40,

39、0x00,0x60,0x00,0x40,0x00,0x00,0x00;/*延时函数*/void delay()uchar i,j;for(i=250;i0;i-)for(j=110;j0;j-); void delay1()uchar i,j;for(j=20;j0;j-)for(i=0;i10;i-); void delay1S()uchar i;for(i=0;i20;i+) TH0=0x3c;TL0=0xb0;TR0=1;while(!TF0);TF0=0; TR1=0;void delay_3S()uchar i;for(i=0;i7;i+) TH1=0x3c;TL1=0xb0;TR1

40、=1;while(!TF1);TF1=0; TR1=0;/*自检程序*/void start()uchar w,j;w=0x01;for(j=0;j8;j+) P0=w; w=1; delay1S(); P0=0xff;w=0x01;for(j=0;j8;j+) P2=w; w=1; delay1S();P2=0xff; /*同心圆函数*/void clockwise()uchar w,j,i;w=0x01;for(j=0;j8;j+) P0=w;w=1;delay_3S(); P0=0xff; P2=0xff; w=0x01;for(i=0;i8;i+) P2=w; w=1; delay_3

41、S(); P2=0xff; w=0x80;for(j=0;j=1; delay_3S(); P2=0xff;w=0x80;for(j=0;j=1;待添加的隐藏文字内容2 delay_3S(); if(keychange=1)break; P0=0xff; delay_3S(); /*字符显示函数*/void ziti() uchar j;P0=0xff;P2=0xff;for(j=0;j128;j+)P0=datj*2;P2=datj*2+1;delay1();P0=0xff; P2=0xff; P0=0xff; P2=0xff; delay();/*主函数*/void main()TMOD=0x11; EA =1; EX0=1; IT0=1;P0=0xff;P2=0xff;start();while(1) switch(key)case 1:clockwise(); break; case 2:if(pin=0) ziti(); default :P0=0xff; P2=0xff; /*中断函数*/void int_0() interrupt 0key+; i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号