基于单片机的LED点阵设计(毕业论文)
xxxx大学
毕 业 论 文,设计,
题 目: 基于单片机的LED点阵设计 名: 姓
学 院: 机电工程学院 专 业: 班 级: 200602 学 号: 20060741 指导教师: 2010年 3 月 18 日 毕业论文,设计,诚信声明
本人声明:所呈交的毕业论文(设计)是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资料均已作明确标注,论文中的结论和成果为本人完成,真实可靠,不包含他人成果及已获得青岛农业大学或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
论文(设计)作者签名: 日期: 年 月 日 毕业论文,设计,版权使用授权书
本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借阅。本人授权青岛农业大学可以将本毕业论文(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文(设计)。本人离校后发表或使用该毕业论文(设计)或与该论文(设计)直接相关的学术论文或成果时,单位署名为青岛农业大学。
论文(设计)作者签名: 日期: 年 月 日 指 导 教 师 签 名: 日期: 年 月 日 目 录
摘
要 ................................................................................................................................................................. I
ABSTRACT ........................................................................................................................................................ II 1、绪
论 ................................................................................................................................................................ 1 1.1 课题的意
义................................................................................................................................................. 1 1.2 国内发展现
状 ............................................................................................................................................. 1 1.3 本课题的任
务 ............................................................................................................................................. 3 1.4 数学模型与方案论
证 ................................................................................................................................. 3 2、系统总体方案设计概
述 .................................................................................................................................. 7 2.1 单片
机的选择及基本功能的概
述 ............................................................................................................. 7 2.2 其余硬件的概
述 ....................................................................................................................................... 9 2.3 软件方案设计的概
述 ...............................................................................................................................10 3、LED点阵显示系统硬件的设
计.......................................................................................................................12 3.1 电源电
路 ..................................................................................................................................................12 3.2 单片机系统及外围电
路 ...........................................................................................................................13
3.2.1 脉冲时钟电
路 ...................................................................................................................................13
3.2.2 复位电
路 ..........................................................................................................................................13
3.2.3 程序及数据存储器设
定 ...................................................................................................................14
3.2.4 串行通讯接
口 ...................................................................................................................................15 3.3 列驱动电
路................................................................................................................................................18
3.3.1 总体规划及实验电
路 .......................................................................................................................18
3.3.2 串入并出移位寄存
器 .......................................................................................................................19 3.4行驱动电路 ................................................................................................................................................20
3.4.1 总体规划及实验电
路 .......................................................................................................................20
3.4.2 3-8线译码器
74LS138 ......................................................................................................................21
3.4.3 双向八位数据缓冲器
74LS245 ...........................................................................................................22 3.5 小
结 ...........................................................................................................................................................23 4、系统软件设
计 ................................................................................................................................................24 4.1 显示驱动系
统 ..........................................................................................................................................25 4.2 部分源程
序 ..............................................................................................................................................26
4.2.1 ...................................................................................................................................26 移位寄存程序
4.2.2 .....................................................................................28 将移位寄存器内的数据锁存到输出寄存器
4.2.3 将显示数据送入74HC595内部移位寄存
器 ....................................................................................28 5、结
论 ...............................................................................................................................................................29 致
谢 .................................................................................................................................................................31 附录
1 ..................................................................................................................................................................32 附录
2 ..................................................................................................................................................................34
基于单片机的LED点阵设计 摘 要
随着社会的不断进步,传统的LED灯在显示效果、耗电量还是可修改性上都无法满足当前社会的需求,然而随着单片机技术的迅速发展,用单片机控制的动态LED灯的出现显示出巨大的优势。
本设计介绍了基于MSC-51单片机的LED汉字点阵滚动显示的基本原理、硬件组成与设计,,语言程序编写与调试、Protel软件仿真等基本环节和相关技术进行设计的系统。该系统利用低成本的单片机系统实现汉字的固定显示。本文重点介绍了基于单片机系统的单色LED显示屏的控制电路、驱动电路的设计方法,并针对一
个16*32屏的显示特点,对其软件实现的算法给出了具体的分析。此设计具有体积小、硬件少、电路结构简单等优点。使我们更容易了解汉字的点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。
关键词:点阵显示;LED;驱动电路;扫描 I
Based on a single chip design LED matrix display Abstract
As society progresses, the tradition LED light need having no way to satisfy current society on effect , power consumption be still modification sex in display, but with the fact that monolithic machine technology promptness developing , appearing using the dynamic LED light that the monolithic machine controls has demonstrated gigantic advantage.
This design introduces single chip based on MSC-51 character dot matrix LED display scrolling the basic principles of hardware design, C language programming and debugging, Protel software simulation and related technologies such basic aspects of the design of the system. The system uses low-cost single chip system to achieve a fixed display of Chinese characters. This paper focuses on a single chip system based on color LED display control circuit, driving circuit design method, and for a 16 * 32 screen display features, its software algorithms are given detailed analysis. This design is small, less hardware, and simple circuit structure. Make it easier to understand the principles of Chinese characters dot matrix display, understanding the basic structure
of SCM, working principle and application of methods and technologies to improve knowledge and ability to use single chip.
Keywords: dot matrix display; LED; driver; scan II 1、绪论 1.1 课题的意义
随着社会的发展,人们的消费水平不断提高,户外广告扮演着越来越重要的宣传角色,不论是汽车站,火车站,股市交易市场,还是学校都离不开它,普通的LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。然而传统的霓虹灯广告牌不论是在显示效果、耗电量还是可修改性上都无法满足当前社会的需求。
近些年以来由于单片机技术的不断发展和高亮度LED发光管的出现使得大屏幕高亮度LED电子显示屏成为可能,与传统的霓虹灯广告在显示效果以及可修改性上都有着无法比拟的优势,而且单片机的日益平民化以及LED技术的不断创新,使得高亮度高清晰的LED点阵广告牌与传统霓虹灯广告牌的成本日益接近。
这种新兴的大屏幕显示技术成为众人目光的焦点。与传统的显示设备相比,首先,LED 显示屏色彩丰富,发光二极管可以显示全彩色,显示显示方式变化多样(文字、图形、动画等)、亮度高,可用来显示文字、多种变化的图形。其次,LED 显示屏的象素采用LED发光二极管,将多个发光二极管以序列的形式构成LED显示阵列,这种显示屏具有耗电省、成本低、亮度清晰度高、寿命长等优点,而且 LED 显示屏以其受空间较小,并可以根据用户要求设计屏的大小,具有全彩色效果,视角大,是信息传播设施划时
[1]代的产品。再次,LED 显示屏应用广泛,金融证券、银行利率、商业广告、文化娱乐等方面,显示效果清晰稳定,越来越多的地方开始使用LED电子显示
屏,有巨大的社会效益和经济效益。本文介绍一种是可以改变显示内容的显示屏,这种显示屏显示内容非常灵活而且可以随意修改,它需要与一台单独的微机控制显示,这微机在显示的时候不能再做其他的工作。本课题研究意义在于了解汉字的点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。
1.2 国内发展现状
如今,中国LED大屏幕广告市场得到空前的发展。 1
从各方面显示,至2009年初,中国LED大屏幕广告市场规模又一次飞越,其资金估计已达1.8亿元,中国LED大屏幕广告将进入新的发展阶段。
中国LED大屏幕市场是中国户外电子屏广告市场中的主流市场。在科技的推动下,户外LED大屏幕技术创新使表现形式更强,能耗更小,制造成本更低。LED显示发展迅速,随着信息化的普及,LED显示系统广泛应用于银行、商店等,在信息发布、广告中
[2]应用更为广泛。LED显示屏是利用发光二极管点阵模块组成的平面式显示屏幕。它具有发光率高、使用寿命长、色彩丰富以及对室内外环境适应能力强等优点。用点阵方式构成文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。因而对于文字经常需要变化的信息,采用LED汉字点阵显示系统是非常有效的。
发光二极管具有单向导电性。只有当外加的正向电压使得正向电流足够大时才发光,
[3]它的开启电压比普通的二极管大,红色的在1.6—1.8V,绿色的约为2V。正向电流愈大,发光愈强。使用时,应特别注意不要超过最大功耗,最大正向电流和最大反向击穿电压等参数。此设计中,我们应运用点接触性二极管,由一根金属
丝经过特殊工艺与半导体表面相接形成PN结。因而结面积小,不能通过较大电流。但其结电容较小,一般在1pF以下,
[4]工作频率可达100MHz以上。
LED点阵显示系统由计算机、单片机控制电路和LED点阵显示电路构成,计算机与单片机之间以RS232串口方式进行通讯。计算机将所要显示的汉字的内码经串口发送给
[5]控制电路,控制电路从字库中取出汉字排列组合好后发送给显示电路输出显示。
LED点阵显示系统有多种显示模式,基本归类为静态与动态显示,这其中最为简单的是静态显示模式,动态模式的文字可以变动。动态显示显示屏可以改变显示的内容,在单片机内ROM区储存了128个常用的汉字。从中挑选需要显示的汉字。如果要显示的汉字不在字库中。系统安排了256个EEP—ROM存储字库中没有的汉字。通过通信程序随
[6]时修改其中的内容,这样就基本能满足各种不同的需要。从理论上、系统上全面对单片机进行了研究改进,促使LED的发展更加完善。当需要显示的信息比较多的时候,应在电
[7]路中扩展外部数据存储器,把汉字的字模存储在外部的数据存储器中。 本次软件的编程用的是C语言。C语言是一种源于编写UNIX操作系统的语言,是一种结构化语言,可产生紧凑代码口。C语言可以进行许多机器级函数控制而不用汇编语言。用C语言来编写目标系统软件,会大大缩短开发周期,且明显的增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。
2
1.3 本课题的任务
设计一个室内用16*32点阵LED单色图文显示屏,要求在目测条件下LED显示屏各点亮度均匀,可显示图形和文字,显示图形或文字稳定、清晰即可达到效果。图形或文字显示有静止和移入移出等显示方式。本设计基于MSC-51单片机的LED汉字点阵滚动显示的基本原理、硬件组成与设计,,语言程序编写与调试、Protel软件仿真等基本环节和相关技术进行设计的系统。该系统利用低成本的单片机系统实现汉字的固定显示、水平移动、垂直移动和对角线移动。本显示屏的设计具有体积小、硬件少、电路结构简单等优点。能帮助初学者了解汉字的点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。本文重点介绍了基于单片机系统的单色LED显示屏的控制电路、驱动电路的设计方法,并针对一个16*32屏的显示特点,对其软件实现的算法给出了具体的分析。
1.4 数学模型与方案论证
对于点阵型LED显示可以采用两种方法,一种是共阴极的接法,另一种是共阳极的接法,本系统采用共阳极,其硬件电路如图1-1所示。当行上有一正选通信号时,列选端四位数据为0的发光二极管便导通点亮。这样只需要将图形或文字的显示编码作为列信号和对应的行信号进行逐次扫描,就可以逐行点亮点阵。只要扫描速度大于24Hz,由于扫描的速度很快,而人眼睛的视觉有暂留效应,就可以看到显示的是完整的图形或文字。
列 1列 2列 3列 4 行 1
C1C2C9C10LEDLEDLEDLED 行 2
C3C4C11C12LEDLEDLEDLED 行 3
C5C6C13C14LEDLEDLEDLED行 4
C7C8C15C16LEDLEDLEDLED 图1-1 4*4共阳极LED点阵 3
例如,若要图中所示16个LED显示一个“口”字的方框,则首先在列1,,上写入列编码信号,接着应将对应的行上加选通信号,即在行、列的信号端分别加上如表1-1所示数据:
表1-1 在点阵上所加的行信号以及列选择信号 列1 列2 列3 列4 行1 0 0 0 0 行2 0 1 1 0 行3 0 1 1 0 行4 0 0 0 0
这样,当第一行选通时列信号为0000;第二行选通时列信号为0110;第三行选通时列信号为0110;第四行选通时列信号为0000;再选通第一行送列信号0000„„如此循环下去,当刷新频率足够高时(大于24Hz),由于人眼的视觉暂留特性,便可观察到稳定的
[8]方框。
如果从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发
[9]光点亮灭的方法称为静态驱动显示方式。16*32的点阵共有512个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16*32的点阵需要个锁存器。这个数字显然也是很庞大的,而且成本很昂贵,我们仅仅是16*32的2个汉字点阵,然而在实际应用中需要的数量是很
巨大的,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用静态驱动显示方式,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如4行)的同名列共用一套列驱动器。具体就16*32的点阵来说,把所有同一列的发光二极管的阴极连在一起,再去驱动这一列LED (共阳接法),每一列先送出对应第1行发光管对应的数据并锁存,再选通第1行使其点亮一定的时间,然后熄灭;再送出第2行的数据并锁存,再选通第2行使其点亮相同的时间,然后熄灭„„第4行之后,又重新点亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
4
显示数据通常存储在单片机的程序存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用串行方式。
采用串行传输的方法,控制电路可以只用2根线:数据线、时钟线。将行数据一位一位传往行驱动器,在硬件方面是非常经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给行驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两个部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给显示的时间就太少了,以致用眼观察到的LED的亮度降低。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行数据的同时,传送下一行的数据。为了达到重叠处理的目
的,列数据的显示驱动电路就需要具有锁存功能。经过上述分析,可以归纳出列驱动器电路应具备的主要功能:对数据准备来说,它应能实现串入并出的移位功能;对数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打人并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。同时为了LED显示的亮度,采用4行扫描,每个汉字上面有2个16列驱动器驱动,列驱动器的位置应该是在第1行,第5行,第9行与第13行,即每个16*16的汉字点阵是有4个8*8的点阵组成的阵列,扫描的时候同时扫描显示第1行,第5行,第9行与第13行,第二次扫描的时候显示第2行,第6行,第10行与第14行,以此类推,最后显示第4行,第8行,第12行与第16行,如图1.1所示:
第1行全亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第2行不亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第3行不亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第4行不亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第5行不亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第6行不亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第7行不亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第8行不亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 5
第9行全亮 ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第10行不亮? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第11行不亮? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第12行不亮? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第13行不亮? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第14行不
亮? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第15行不亮? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? 第16行不亮? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ?
图1-2 LED点阵顺序点亮
综合上述可以看出整个点阵显示的实现电路结构应该如图1-3所示: 列驱动 MCS-51
行 LED点阵序列 驱动
图1-3显示屏电路框图
硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路以及
LED点阵阵列三大部分。
在实际应用中的大屏幕LED点阵显示屏,都是采用很多的显示模块组成,每个模块
一般是有32*个点阵组成,每个模块负责自己那部分LED的显示。 6
2、系统总体方案设计概述
本章分阐述了LED点阵控制系统的单片机的各种动作功能和控制要求、型号的原则和单片机的概述性的介绍。并且给出控制系统操作流程,介绍了部分软硬件及功能。 2.1 单片机的选择及基本功能的概述
在进行此设计之前,我们首先要明确使用哪个型号的单片机,通过性能与实际情况的对比,在此我选择MCS—51系列单片机。
MCS—51系列单片机的典型产品为8051,8751,8031。它们的组成与基本性质都是相同的。通常我们所说的MCS—51这个术语,泛指以8051为内核的单片机。图2-1是8051的引脚图。
8051有40个引脚。其中有两条主电源引脚,两条外接晶体引脚,4条控制或其他电源复用的引脚,32条I/O引脚。
图2-1 8051的引脚图 7
8051是ROM型单片机,内部有4KB的掩膜ROM,及单片机出厂时,程序已有生产厂家固化在程序存储器中,它的内部结构有以下特性:
(1)面向控制的8位CPU; (2)128B的片内数据存储器;
(3)可以寻址KB的片外数据存储器; (4)32根双向和可单独寻址的I/O线; (5)两个16位定时/计数器;
(6)含基本指令111条,其中单机器周期指令种。
图2-2所示为MCS-51单片机的基本结构,它由八个部件组成,即处理器(CPU)片内数据存储器(RAM),片内程序存储器(ROM),输入输出接口,可编程串行口,位定时/计数器,中断系统及特殊功能寄存器(SFR),各部分通过内部总线连接。
RAM 程序存储P0口 P1口 器 微处理 B 器 特殊功
XTAL1 串中断能寄存定时/ 系统 控制部行器计数 分 口 XTAL2 (SFR) 器 P1口 P3口 PSEN ALE EA RESET
图2-2MCS-51单片机基本结构
[10]MCS-51单片机由处理器、存储器和I/O接口组成。
CPU是单片机的核心部分,它的作用时度如何分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。MCS-51单片机内部有一个8位的CPU,它是由运算器和控制器组成的。运算器主要来实现数据的传送、数据的算术运算和逻辑运算。控制器是用来统一指挥和控制计算器进行工作的部件。它的功能是从程序存储器中提取指令,送到指令寄存器,在进入指令译码器进行译码,并通过定时和控制电路,在规定的时间发出各种操作所需要的全部内部控制信息及CPU外部所需的控制信号,使各部分协调工作,完成
8
指令所规定的各种操作。
MCS-51单片机有4个存储空间:片内程序存储器和片外程序存储器,片内数据存储器和片外程序存储器。8051内有4KB的程序存储器和128B数据存储器。此外还可以在片外扩展KB的程序存储器和KB的数据存储器。图2-3示出了8051存储器结构。
FFFF FFFF FF SFR
外部RAM 80 RAM RAM 外部30 位寻RAM 1000 址 区
工作0FFF 20 寄存内部外部器0-3ROM ROM 组 0000 EA=1 EA=0 00 0000 图2-3 8051存储器结构示意图
8051有4个八位并行I/O,记作P0,P1,P2和P3,共32根线。实际上它们就是特殊功能寄存器中的四个,在此不作一一介绍。
在单片机工作时,供电电源如果发生停电或瞬间停电,将会是单片机停止工作。电源恢复时,单片机重新进入复位状态,停电前RAM中的数据全部丢失。这种现象对于一些重要的单片机应用系统是不允许发生的。在这种情况下,需要进行掉电保护处理,这样就可以避免不必要的麻烦发生了。
2.2 其余硬件的概述
根据上述所要求的控制任务决定由8051来完成后,下一步我们选择外围硬件。对此的选择我们要考虑到下面两个问题:
(1)功能方面
所有硬件即芯片一般都具有常规的功能,但对某些特殊要求,就要知道所选用的芯片
9
是否有能力控制任务。对计算速度、用户程序容量等有特殊要求;或对8051的位置控制有特殊要求等。这就要求用户对市场上流行的芯片有一个详细的了解,以便做出正确的选择。
(2)价格方面
不同厂家的芯片价格相差很大,有的能相差40%以上。在使用芯片较多的情况下,这样的差价当然是必须考虑的因数。
在此设计中,我主要用到了74LS245芯片,74LS138芯片,74HC595芯片和4953芯片,我主要对前三种新片介绍一下,4953芯片只具有控制行电路的功能,在这我就不介绍了。 2.3 软件方案设计的概述
1. 单片机控制系统设计的基本原则
任何一种电气控制系统都是为了实现被控对象(生产设备或生产过程)的工艺要求,以提高生产效率和产品质量。因此,在设计单片机控制系统时,应遵循以下基本原则:
(1)最大限度地满足被控对象的控制对象。设计前,应深入现场进行调查研究,收集资料,并于机械部分的设计人员和实际操作人员密切配合,共同拟订电气控制方案,协同解决设计中出现的各种问题。
(2)在满足控制系统要求的前提下,力求使控制系统简单、经济,使用及维修方便。
(3)保证控制系统的安全、可靠。 (4)考虑到生产的发展和工艺和改进。 2. 控制系统设计应用软件
本次软件的编程用的是C语言。C语言是一种源于编写UNIX操作系统的语言,是一种结构化语言,可产生紧凑代码口。单片机控制系统是由计算机与用户输入、输出设备连接而成的,因此,单片机控制系统设计的基本内容应包括:
(1)用户输入设备(按钮、计算机的键盘等)、输出设备(LED灯)。
(2)单片机的选择。单片机是此控制系统的核心部件,正确选择单片机对于保证整个控制系统的技术经济性能指标起到重要的作用。选择单片机,应包括机型选择、容量的选择、I/O模块的选择、电源模块的选择等。
(3)分配I/O点,用ProtelSe99绘制I/O连接图。
(4)设计控制程序。控制程序设计必须经过反复调试、修改,直到满足要求为止。
10
(5)编制控制系统的技术文件。 3. 控制系统设计的一般步骤
(1)根据生产的工艺过程分析控制要求。
(2)根据控制要求确定所需的用户输入、输出设备。 (3)选择单片机系统。
(4)分配单片机的I/O点,设计I/O连接图。 (5)进行单片机的程序设计。 4. 画电路图的注意事项
(1)输入/输出接口可以重复使用,无需复杂的程序结构来减少触点的使用次数。 (2)电路图的节点不要出现虚点,否则在PCB图上会出现不必要的错误。 (3)芯片的接口必须一一对应,不要出现单个的闲置接口。
5.程序设计的步骤
(1)对于较复杂的控制系统,需绘制系统控制流程土,用以清楚地表明动作的顺序和
条件。
(2)着手用C语言编写程序。
(3)用编程器将程序输入到单片机的存储器中,并检查输入的程序是否正确。 (4)对程序进行调试和修改,直到满足要求为止。
(5)待控制台及现场施工完成后,就可以进行联机调试。若没有满足要求,再从新修
改程序或检查接线,直到满足为止。 (6)编写技术文件。 (7)交付使用。 11
3、LED点阵显示系统硬件的设计
本章介绍部分LED点阵显示控制系统主要硬件的器件选择和电路的设计方案,各部分功能模块的设计比较,完成LED点阵显示控制系统的部分电路的设计。 3.1 电源电路
本设计采用的是电脑开关电源,它的主控芯片是TL494。TL494是一种固定频率脉宽调制电路,它包含了开关电源控制所需的全部功能,广泛应用于单端正激双管式、半桥式、全桥式开关电源。TL494的管脚如图3-1所示。其引脚功能如下:
图3-1 TL494外部管脚
1、2,16、15脚分别为2个误差比较放大器的同相输入端和反相输入端。3脚为控制比较放大器和误差比较放大器的公共输出端,输出时表现为或输出控制特性,也就是就在两个放大器中,输出幅度大者起作用;当3脚的电平变高时,TL494
送出的驱动脉冲宽度变窄,当3脚电平低时,驱动脉冲宽度变宽。4脚为死区电平控制端,从4脚加入死区控制电压可对驱动脉冲的最大宽度进行控制,使其不超过180度,这样可以保护开关电源电路中的三极管。5、6脚分别用于外接振荡电阻和电容。7脚为接地端。8、9脚和11、12脚分别为TL494内容末级两个输出三极管的集电极和发射极。12脚为电源供电端。13脚为功能控制端。14脚为内部5V基准电压输出端。我们的设计使用电脑开关电源提供的12V,5V,3.3V 3路电压。
12
3.2 单片机系统及外围电路
由于LED点阵显示屏由单片机控制部分和显示驱动部分组成,单片机我选择8051单片机。此单片机由4K字节可重擦写Flash闪速存储器,128*8字节内部RAM,32个可编
[11]程I/O口线,2个16位定时/计数器和6个中断源。并且该单片机经济实用,使用广泛。
我们使用的是8051的最小系统电路,包括:电源、时钟脉冲、复位电路和程序存储器设定电路,暂时只是显示很少的几十个汉字,不用外接存储扩展。 3.2.1 脉冲时钟电路
8051单片机的最高时钟脉冲频率已经达到了24MHz ,它内部已经具备了振荡电路,只要在8051的两个引脚(即19、18脚)连接到简单的石英振荡晶体的2个管脚即可,同
[12]时晶体的2个管脚也要用30pF的电容耦合到地。如图3-2所示。 8051 XTAL1 C1 晶1 振
C2 XTAL2
至内部时钟电路 图3-2振荡电路 3.2.2 复位电路
8051的复位引脚(RESET)是第9脚,当此引脚连接高电平超过2个机器周期,即可产生复位的动作。
13
复位操作可以使单片机初始化,也可以使死机状态下的单片机重新启动,因此非常重要。
图3-3是上电复位电路,保证在RESET引脚上提供10ms以上的稳定高电平,这种上电复位利用电容器充电来实现。当加电时,电容C充电,电路有电流通过,构成回路,在电阻R上产生压降,RESET引脚为高电平;当电容C充满电后,电路相当于断开,RESET的电位与地相同,复位结束。复位的时间与充电的时间有关,充电时间越长复位时间越长,增大电容或增大电阻都可以增加复位时间。
Vcc 8051 C VCC +
22μF RESET,,,, R 1k VSS
图3-3 上电复位电路 3.2.3 程序及数据存储器设定
因为单片机内部数据存储器只有128 Byte,非常有限,运行大一点的程序就显得捉襟见肘;而且程序存储器空间也只有4K,大一点的程序就存储不下,尤其是在存储汉字点阵信息的时候,每个汉字32Byte,100个汉字就到了3.1KB,程序也只有不到1KB的容量了。 在这时候必须外接存储器来扩展,那单片机怎么知道我们当前使用的是内部程序存储器还是外部程序存储器呢,所以就需要设定单片机是使用外部程序存储器还是内部程序存储器,8051把31脚设定为此功能,如果把31脚接地,则采用外部程序存储器,如果把31脚接VCC,则默认采用内部程序存储器。我们暂时只是显示几十个汉字研究原理,所以仅仅用内部存储器就足够了,所以把31脚接高电位,就仅仅使用内部的4K程序
14
存储空间。如图3-4所示。但是在现实大屏幕显示应用中,一般要扩展RAM,比如HY62256A(32K*8bit RAM),因为大量的数据是由电脑传送过来的,每个单片机只是负责自己控制的一行字符,这些数据是要随时更新的,采用RAM可以随时更新内容;而且一般的显示程序优化以后的代码4K也够用了。
图3-4 8051的基本外部电路 3.2.4 串行通讯接口
计算机与单片机之间以RS-232C串口方式进行通讯,经由一个转换模块将RS232转换成RS485通讯方式,以该方式作为显示模块与排队系统中其他模块的通讯方式。计算机将所要显示的汉字的内码经串口发RS-232C的通信模块,实现计算机与单片机之间通信, 2 RS-232C 是由美国电子工业协会 EIA(Electronic Industry Association)在1969年颁布的一种串行物理接口标准。RS(Recommended Standard)是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232C 总线标准设有25条信号线,包括一个主通道和一个辅助通道。
在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。
RS-232C 标准规定的数据传输速率为每秒150、300、600、1200、2400、4800、9600、19200波特。
RS-232C 标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。
15
串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0,20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。
EIA-RS-232C 对电器特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上: 逻辑1(MARK)=-3V,-15V 逻辑0(SPACE)=+3,+15V
在RTS、CTS、DSR、DTR和DCD等控制线上: 信号有效(接通,ON状态,正电压),+3V,+15V 信号无效(断开,OFF状态,负电压)=-3V,-15V
以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3,+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在?(3,15)V之间。
RS-232C 与TTL转换:EIA RS-232C 是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在 RS-232C 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC14、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL??EIA双向电平转换。
在工程当中经常会用到232口,一般是圆头8针与D型9针两种串口。在一定的条件下,必须要自己制作一个相应的\"圆头或者是D型的\"232串口。
RS232C串口通信接线方法(三线制):
首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的 16
接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。 同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;
两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) DB9-DB9 2-3,3-2,5-5 DB25-DB25 2-3,3-2,7-7 DB9-DB25 2-3,3-2,5-7
上面是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接。
8针圆形串口接线:2\"逻辑地\",4\"TXD\。 9针D型串口:2\"RXD“,3”TXD“,5\"逻辑地\"。
RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。
RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。
RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。
下表3-1是RS-232C的九芯引脚功能
表3-1 RS-232九芯引脚功能 针 脚 定义 符号 1 载波检测 DCD 2 接收数据 RXD 3 发送数据 TXD 4 数据终端准备好 DTR 17
5 信号地 SG 6 数据准备好 DSR 7 请求发送 RTS 8 清除发送 CTS 9 振铃提示 RIPin
虽然RS-232C提供了许多方便,但RS-232C也存在着缺点:
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps;因此在“南方的老树51CPLD开发板”中,综合程序波特率只能采用19200,也是这个原因。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。 3.3 列驱动电路
在此次设计中,我应用到74HC595芯片,此芯片的性能非常稳定,是点阵系统中必不可少的。
3.3.1 总体规划及实验电路
每个汉字需要4个8*8的LED点阵,要想实现4行扫描驱动,每个汉字是按照16*16取模,所以需要8个74HC595来驱动一个汉字,我的电路设计的是2个汉字,所以需要8*2=16个74HC595来实现4行扫描显示。设计好的列驱动电路的部分如下图3-5所示:
18
图3-5 列驱动电路硬件连接 3.3.2 串入并出移位寄存器
列驱动电路由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器,而且移位寄存器和输出锁存器的控制是各自的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
图3-6 74HC595外形及内部逻辑结构图 19
74HC595的外形及内部结构如图3-6所示。它的输入端有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入到输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则输出端为高阻状态。SCLR信号是移位寄存器的清0输入端,当其为低时移位寄存器的输出全部为0。由于SCK和RCK两个信号是互相的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QA,QH,最高位QH可作为多片74HC595级联应用时向上一级的级联输出。但因QH受输出锁存器打人控制,所以还从输出锁存器前引出了QH’,作为与移位寄存器完全同步的级联输出。
图3-7 74HC595在不同的工作电压下的时钟频率
由于74HC595在4.5V供电的情况下(25?),可以达到21MHz以上的时钟频率,而我们采用的8051的时钟频率只有24MHz,串口方式0的时钟频率只有
fosc/12=2MHz,所以74HC595完全胜任;由于74HC595输出高电平时每个管脚的驱动电流只有20mA,而每个LED发光管的驱动电流也是20mA,要是8个发光管同时轮流点亮的时候瞬间电流必定大于20mA,所以我们采用是采用吸收电流的方式直驱LED发光管。
3.4行驱动电路
3.4.1 总体规划及实验电路
单片机P2口低4位输出的行选信号经74LS245八位数据缓冲器将数据缓冲后送往3/8译码器74LS138译码的输入端,生成行选通信号线,再经过反相器将信号取反后使二极管导通再去驱动对应的行LED显示。其硬件电路如图3-8所示:
20
图3-8 行驱动电路硬件 3.4.2 3-8线译码器74LS138
我们前面的列驱动电路里面只是用了单片机的串口跟P1口,还剩下P0以及P2口可以直接接到8个LED的行选端,但是为了整个大屏幕方便以后扩展控制,防止直接驱动损坏单片机以及隔离外界干扰信号,使用了74LS138这个3—8译码器作为行选芯片。
74LS138译码器的引脚图,逻辑图及真值表如下图3-9、表3-2所示:
图3-9 74LS138的内部原理图与引脚图 21
表3-2 3线-8线译码器74LS138的真值表 输 入 输 出
S1 S2+S3 A1 A2 A3 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 0 X X X X 1 1 1 1 1 1 1 1
X 1 X X X 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0
由上看以看出,只要在信号输入端A,B,C输入特定组合的1、0的组合序列,就可以在输出端轮只有一个流输出低电压0,这样我们就可以有选择的控制行电路。 3.4.3 双向八位数据缓冲器74LS245
我们为了隔离外界的干扰信号,使用了74LS245八位数据缓冲器。因为任何时候74HC595里面的数据是不确定的,只要显示屏只要稍微有一点外界干扰,导致74LS138使能端E变低, 74LS138就是会有输出信号的(通过它的真值表可以看到全0全1都有一行是被选中输出低电位的),这样显示屏就显示一些不确定的图案,就不符合我们的设计要求了。74LS245是一个常用的八缓冲器,它的管脚图如图3-10所示:
22
图3-10 74LS245的管脚图
74LS245 类似于单片机的端口,其口线能做输出,也能做输入。由于51单片机的数据,地址,控制总线端口都有一定的负载能力,如果负载超过单片机负载能力一般应加驱
[13]动器,所以总线驱动器可以使用TTL型三态缓冲门电路。 3.5 小结
本章介绍了硬件的连接方法以及原理,并且包含了部分电路图,此电路已经试验证明可以显示汉字信息,并且可动态显示,其中运用了74HC595以及74LS245芯片,74HC595的功能是串入并出,并且带有锁存和移位的功能;而74LS245的作用就是完全屏蔽掉外界的干扰,只有单片机发出的正确的信号才被它选择通过,一般的电路干扰,电磁干扰不会对显示屏造成乱码。而行驱动则是使用了3,8线译码器74LS138驱动,因为如果用单片机直接连接LED点阵,引脚不够,同时驱动能力也不行,而用了这个译码器,可以节省引脚,并且方便以后扩展。
23
4、系统软件设计
显示屏软件的主要功能是向显示屏提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可把显示屏的软件系统分成两大层:第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向点阵屏传送特定组合的显示数据,并负责产生行扫描信号和其它控制信号,配合完成LED显示屏的扫描显示工作。显示驱动程序由显示子程序实现;系统环境设置(初始化)由系统初始化程序
[14]完成;显示效果处理等工作,则由主程序通过调用子程序来实现。一般来说,控制系统设计的基本原则为:
1. 单片机控制系统设计的基本原则
任何一种电气控制系统都是为了实现被控对象(生产设备或生产过程)的工艺要求,以提高生产效率和产品质量。因此,在设计单片机控制系统时,应遵循以下基本原则:
(1)最大限度地满足被控对象的控制对象。设计前,应深入现场进行调查研究,收集资料,并于机械部分的设计人员和实际操作人员密切配合,共同拟订电气控制方案,协同解决设计中出现的各种问题。
(2) 在满足控制系统要求的前提下,力求使控制系统简单、经济,使用及维修方便。
(3)保证控制系统的安全、可靠。 (4)考虑到生产的发展和工艺和改进。 2. 控制系统设计应用软件
本次软件的编程用的是C语言。C语言是一种源于编写UNIX操作系统的语言,是一种结构化语言,可产生紧凑代码口。C语言可以进行许多机器级函数控制而不用汇编语言。用C语言来编写目标系统软件,会大大缩短开发周期,且明显的增加软件的可读性,便于
[15]改进和扩充,从而研制出规模更大、性能更完备的系统。
单片机控制系统是由计算机与用户输入、输出设备连接而成的,因此,单片机控制系统设计的基本内容应包括:
(1)用户输入设备(按钮、计算机的键盘等)、输出设备(LED灯)。
(2)单片机的选择。单片机是此控制系统的核心部件,正确选择单片机对于保证整个控制系统的技术经济性能指标起到重要的作用。选择单片机,应包括机型选择、容量的选择、I/O模块的选择、电源模块的选择等。
(3)分配I/O点,用ProtelSe99绘制I/O连接图。 24
(4)设计控制程序。控制程序设计必须经过反复调试、修改,直到满足要求为止。
(5)编制控制系统的技术文件。 3. 控制系统设计的一般步骤
(1)根据生产的工艺过程分析控制要求。
(2)根据控制要求确定所需的用户输入、输出设备。 (3)选择单片机系统。
(4)分配单片机的I/O点,设计I/O连接图。 (5)进行单片机的程序设计。 4. 画电路图的注意事项
(1)输入/输出接口可以重复使用,无需复杂的程序结构来减少触点的使用次数。
(2)电路图的节点不要出现虚点,否则在PCB图上会出现不必要的错误。 (3)芯片的接口必须一一对应,不要出现单个的闲置接口。 5.程序设计的步骤
(1)对于较复杂的控制系统,需绘制系统控制流程土,用以清楚地表明动作的顺序和条件。
(2)着手用C语言编写程序。
(3)用编程器将程序输入到单片机的存储器中,并检查输入的程序是否正确。 (4)对程序进行调试和修改,直到满足要求为止。
(5)待控制台及现场施工完成后,就可以进行联机调试。若没有满足要求,再从新修改程序或检查接线,直到满足为止。
(6)编写技术文件。 (7)交付使用。 4.1 显示驱动系统
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等数据发送完毕后输出74HC595的锁存信号,将显示数据打入输出锁存器并锁存,然后再输出新的行号,并打开显示。图4-1为显示驱动程序(显示屏扫描函数)流程图。
25
图4-1 显示驱动程序流程图 4.2 部分源程序
以下是16*32点阵LED电子显示屏的源程序,采用C语言编写,在Keil μ VisionV2.38a(C51.Exe V7.06)以及MedWin 3.0版环境下均测试通过。 4.2.1 移位寄存程序
for(j=0;j<2;j++) {
for(z=0;z<4;z++) {
WR_595(word1[8*z+j+2*i]); } 26 }
for(j=0;j<2;j++)
{
for(z=0;z<4;z++) {
WR_595(word2[8*z+j+2*i]); } }
for(j=0;j<2;j++) {
for(z=0;z<4;z++) {
WR_595(word3[8*z+j+2*i]); } }
for(j=0;j<2;j++) {
for(z=0;z<4;z++) {
WR_595(word4[8*z+j+2*i]); } }
OUT_595(); 27
for(j=0;j<16;j++) {
WR_595(0xff); }
OUT_595();
4.2.2 将移位寄存器内的数据锁存到输出寄存器 void OUT_595(void) { RCK_595=0; _nop_(); _nop_();
RCK_595=1; //上升沿将数据送到输出锁存器 _nop_(); _nop_(); _nop_(); RCK_595=0; }
4.2.3 将显示数据送入74HC595内部移位寄存器 void WR_595(uchar temp) { uchar j;
for(j=0;j<8;j++) {
temp=temp<<1; SDATA_595=CY;
SCLK_595=1; //上升沿发生移位 _nop_(); _nop_(); 28
SCLK_595=0;
} } 5、结论
本文通过设计单片机控制单色LED显示屏的方法,对LED显示模块单元如何进行行列
29
信号控制及信号传输中的驱动问题进行了研究。介绍了硬件的原理以及连接的方法,软件的设计流程以及部分代码,并在附录1给出了完整的电路图,经焊接并调试后可以正常显示汉字、图片信息,并且可动态显示。
硬件部分的设计保证了点阵的正常工作。列驱动电路中的74HC595实现了串入并出,并且带有锁存和移位的功能;而74LS245则是防止外界的干扰会对显示屏造成乱码,只有单片机发出的正确的信号才被它选择通过;行驱动电路使用了3,8线译码器74LS138驱动,因为如果用单片机直接连接LED点阵,引脚不够,同时驱动能力也不行,而用了这个译码器,可以节省引脚,并且方便做大屏幕的时候扩展。
软件部分的设计跟硬件完美配合实现汉字、图形的显示。通过LED点阵显示原理,我们知道只要合理的安排行选信号以及列信号同时导通的组合顺序就可以显示任何的图形、文字。软件的设计就是完成将汉字点阵数据通过一些特殊的算法调整,得到跟LED点阵相对应的数据,并将这些数据以及控制信号传送到LED点阵屏,来实现分屏扫描显示以及左移扫描显示的效果。
参考文献
[1]张立科.单片机通信技术与工程实践.北京:人民邮电出版社,2005,4 [2]张迎新(单片机初级教程[M](北京:北京航空航天大学出版社,2000 30
[3]Theodore F.Bogart Jr,Jeffrey S.Bersley,Guillermo Rico.Electronic Devices
and Circuits.6th ed.2006:-65
[4]Allan R.Hambley. Electronics.2nd ed.Prentice Hall Inc.2000 [5]简献忠,虞箐等. 基于80C51和KEIL C51的LED点阵显示系统. 《仪器仪表学报》 ISTIC EI PKU -2005年21期
[6]张红,于平,程文播(基于单片机控制的LE D点阵显示屏系统,2004,6 [7]马忠梅(单片机的C语言应用程序设计[M](北京:北京航空航天大学出版社,2006
[8]楼然苗,李光飞.51系列单片机设计实例.北京:北京航空航天大学出版社,2003,7:17-18
[9]诸昌钤.LED显示屏系统原理与工程技术.成都:电子科技大学出版社,2000,8:24-25
[10]朱宇光编著.单片机应用新技术教程.北京:电子工业出版社,2000,5 [11]张有顺编著.MCS-51/96系列单片机简明教程.北京:中国脊梁出版社,1998 [12]宋晖,高小明(基于AVR的LED数字大屏幕的设计与实现[J](微计算机信息,2006,7:17-19
[13]张红,于平,程文播(基于单片机控制的LE D点阵显示屏系统 中科院长春光学精密机械与物理研究所,2009,01,03
[14]唐霞,谢利民.基于单片机的LED汉字显示屏的设计与Proteus仿真.《电子技术》 -2009年2期
[15]徐爱钧,彭秀华(单片机及高级语言C51 Windows环境编程与应用(北京:电子工业出版社(2005,2:77-78
致 谢
本文是在杨老师的悉心指导下完成的,在完成设计和论文的过程中,从课题的选取、
31
资料的搜集、方案的改进以及论文的指导,杨老师都给予了我最大的帮助。无论是从理论知识还是在实践部分她都尽心尽力、精心讲授,悉心指导,杨老师务实严谨、精益求精的治学态度和一丝不苟的工作作风,给了我很大启示,为我今后的工作和学习树立了榜样。在此,谨向导师致以深深的谢意~
设计和论文的顺利完成同样离不开机电工程学院电自化专业所有老师四年来的指导和帮助,在此表示感谢。同时要感谢实验室一起做设计的同学们,在整个过程中给了我很多帮助,希望你们能在今后的工作中开心、顺利~
在毕业论文答辩结束之前,同样向本次答辩的各位评审老师表示诚挚的谢意 附录1 整体电路图: 32
33
由于图形太大,在此把二极管的矩阵略去了。 附录2 全部程序:
#include #define uchar unsigned char #define uint unsigned int sbit A=P1^0; sbit IB=P1^1; sbit SDATA_595=P2^1; //串行数据输入 sbit SCLK_595 =P2^0; //移位时钟脉冲 sbit RCK_595 =P2^2; //sbit OE=P0^3; /********************************************************/ /* */ /*将显示数据送入74HC595内部移位寄存器 */ /* */ 34 /********************************************************/ void WR_595(uchar temp) { uchar j; for(j=0;j<8;j++) { temp=temp<<1; SDATA_595=CY; SCLK_595=1; //上升沿发生移位 _nop_(); _nop_(); SCLK_595=0; } } /********************************************************/ /* */ /*将移位寄存器内的数据锁存到输出寄存器 */ /* */ /********************************************************/ void OUT_595(void) { RCK_595=0; _nop_(); _nop_(); RCK_595=1; //上升沿将数据送到输出锁存器 _nop_(); _nop_(); _nop_(); RCK_595=0; } /********************************************************/ void main() { uchar i,Y,j,z; uchar word1[32]={ 0xFB,0x7F,0xF7,0x7F,0xF7,0x7F,0xC0,0x01,0xFF,0x7F,0xEF,0x7B,0xF7,0x77,0 xFA,0x6F,0xFD,0x7F,0xFB,0x5F,0xF7,0x6F,0x8F,0x77,0xDF,0x79,0xFF,0x7F,0xFF,0x5F,0xFF ,0xBF};/*-- 文字: 求 --*/ 35 uchar word2[32]={ 0xFF,0x7F,0xFE,0xFF,0x80,0x01,0xDF,0xFD,0xEE,0xEE,0xFE,0xDF,0xFE,0xD F,0xFE,0xF7,0xFE,0xEF,0xFE,0xEF,0xC0,0x01,0xFD,0x7F,0xFB,0xBF,0xF7,0xDF,0xCF,0xE7 ,0xDF,0xF9};/*-- 文字: 实 --*/ uchar a[8]={0x00,0x80,0x40,0xc0}; SCLK_595=0; RCK_595=1; while(1) { for(i=0;i<4;i++) { Y=a[i]; Y=Y<<1; A=CY; Y=Y<<1; IB=CY; for(j=0;j<2;j++) { for(z=0;z<4;z++) { WR_595(word1[8*z+j+2*i]); } } for(j=0;j<2;j++) { for(z=0;z<4;z++) { WR_595(word2[8*z+j+2*i]); } } OUT_595(); for(j=0;j<16;j++) { WR_595(0xff); } OUT_595(); } } } 36 for(j=0;j<2;j++) { for(z=0;z<4;z++) { WR_595(word1[8*z+j+2*i]); } } for(j=0;j<2;j++) { for(z=0;z<4;z++) { WR_595(word2[8*z+j+2*i]); } } for(j=0;j<2;j++) { for(z=0;z<4;z++) { WR_595(word3[8*z+j+2*i]); } } for(j=0;j<2;j++) { for(z=0;z<4;z++) { WR_595(word4[8*z+j+2*i]); } } OUT_595(); for(j=0;j<16;j++) { WR_595(0xff); } OUT_595(); 37 38
因篇幅问题不能全部显示,请点此查看更多更全内容