16×16点阵

16×16点阵
16×16点阵

第八届“蓝天超市杯”电子产品设计竞赛(电子产品论文)

『16*16点阵时钟显示屏』

作品:时钟显示屏

成员:叶勇健、赵云忠

时间:2011/11/19

摘要:点阵显示屏,它最大的特点在于功能的多样化,为我们带来了极大的方便。而LED点阵式显示屏,具有亮度高、功耗小、寿命长等优点。若以LED点阵来作为显示数字、符号的显示屏,则可实现远距离、大视角的时钟显示。从而非常适合于在公共场所中显示时间。

本设计的重点在于对点阵式显示屏的显示研究。从宏观上来上,显示屏可分为两个部份:显示器件和微控制器。由微控制器控制显示器件的亮灭、颜色变化,从而组合出所需要的图相。在此次设计中,采用了4块8X8个单色LED作为显示器件,用主芯片89c51、译码器74ls154、ds1302作为微控制器,以动态的方式进行图面显示。由于充分考虑了软硬件的易扩充性,用本设计的构架思想可很方便地进行点阵扩充和多个汉字或图形的显示。

设计中所涉及的知识点主要有:点阵显示原理,字模提取,显示左移算法的实现,单片机、译码器和ds1304的使用。以及在软硬件设计调试过程中的各种现象及解决方案。

关键词:点阵显示原理;LED点阵;单片机;74ls154;ds1302;

Abstract:Dot matrix display, its biggest characteristic is that the function of diversification, bring us a great convenience. While the LED dot matrix display, has the advantages of high brightness, low power consumption, long life etc.. If the LED dot matrix display, symbols as digital display, it can realize long-distance, large visual angle clock display. Thus very suitable for public display time.

The design focuses on the dot matrix screen display research. From a macro point, displays can be divided into two parts: display device and a micro controller. The micro controller control display device, light color change, thus combined the chart. In this design, using 4 8X8 LED as a monochrome display device, with the main chip, 89C51 decoder 74ls154, ds1304 as the microcontroller, in a dynamic way to map display. Because of fully considering the hardware and software expandability, the design framework of thought can be conveniently lattice expansion and a plurality of Chinese characters or graphics display.Involved in the design of the knowledge point are: dot matrix display principle, abstraction, showed a left shift algorithm, single chip microcomputer, the decoder and the use of ds1304. And in the software and hardware design and debugging process of a variety of phenomena and solutions.

Keywords: Dot matrix display principle; LED matrix; single chip microcomputer; 74ls154; ds1304

目录

摘要 (2)

Abstract (3)

目录 (4)

第一部分产品分析 (5)

1.1 8051系列单片机介绍 (6)

1.2 74LS154介绍 (7)

1.3 DS1302芯片 (8)

1.4 点阵屏工作方式 (9)

第二部分产品设计 (10)

2.1 设计目的 (11)

2.2 相关软件的使用 (12)

第三部分设计草图及电路图 (13)

3.1 PROTEUS仿真图 (14)

3.2PROTEL原理图 (15)

3.3 PROTEL PCB图 (16)

3.4C语言程序 (17)

第四部分产品的显示效果(具体看展示) (18)

第六部分:实验总结与体会 (19)

小结 (20)

附录程序代码 (21)

第一部分:产品分析

主要芯片介绍

1.18051系列的单片机

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图片见下图附录1。

(1).管脚说明

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL

门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当

P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

口管脚备选功能

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/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次

/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出

1.2 74ls154功能简介

54/74154 为4 线-16 线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。如果将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,74LS154还可作1线-16线数据分配器。

附录2 74LS154管脚图

(2)引脚功能介绍

A、B、C、D 译码地址输入端(低电平有效)

G1、G2 选通端(低电平有效)

0-15 输出端(低电平有效)

(3)74ls154真值表:

1.3、DS1302时钟芯片

DS1302时钟芯片是美国DALLAS公司推出的一种高性能、低功耗是实时芯片,附加31字节静态RAM,采用SPI三线接口,与CPU进行同步通信,实时时钟可以提供秒、分、时、日、星期、月和年。工作电压 2.5~5.5V,采用双电源供电,可设置备用电源从电方式,提供了对备电源进行涓细电流进行充电能力。DS1302用于重要的数据记录,能实现数据与出现该数据的时间同时记录,

各引脚功能:

VCC1:备用电源;VCC2主电源;在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电

SCLK:串行时钟,输入;

I\O:三线接口时候的双向数据线;

CE:输入信号,在读写时候必为高电平,功能有:CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节传输的访问。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST 必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。SCLK为时钟输入端。

1.4、点阵屏工作方式介绍

点阵显示器显示可分为静态显示和动态扫描显示两种方式。(我以动态为例进行介绍) 动态显示,就是一位一位地轮流点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次,但由于人的视觉暂留现象,所以仍然感觉所有的显示器件都在同时显示。

其优点是线路简单,价格便宜,适合大批量生产。缺点是占用CPU的时间长,只要单片机不执行显示程序,就立刻停止显示。

汉字显示的原理:在中文宋体字库中,每一个字由16行16列的点阵组成显示。

即国标汉字库中的每一个字由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。

我们以显示汉字“单”为例,来说明其扫描原理,在中文宋体字库中,每一个字由16行16列的点阵组成显示。如果用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。一般我们把它拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。

上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从P0.7向P0.0方向扫描,从上图可以看到,这一列P0.3亮,即为00001000,16进制则为08h。然后单片机转向上半部第二列,仍为P1.2点亮,为00001000,即16进制08h,这一列完成后继续进行下半部分的扫描,P0.4点亮,为二进制00010000,即16进制10h.依据这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“单”

“单”的扫描代码为:

08H,08H,04H,02H,04H,02H,04H,04H

04H,08H,04H,30H,05H,0C0H,0FEH,00H

05H,80H,04H,60H,04H,10H,04H,08H

04H,04H,0CH,06H,04H,04H,00H,00H

由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。

我们把行列总线接在单片机的io口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。在这个例子里,由于一共用到16行,16列,如果将其全部接入89c51单片机,一共使用32条io口,这样造成了io资源的耗尽,系统也再无扩充的余地。实际应用中我们使用4-16线译码器74ls154来完成列方向的显示。而行方向16条线则接在P1口和P0口电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉,为提供负载能力,接16个2n5551的NPN三极管驱动。列方向则由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3控制。

同样,驱动部分则是16个2N5401PNP三极管驱动。

第二部分:产品设计

2.1、设计的目的:

1掌握单片机的运用

2培养综合运用所学知识与实践的能力

3掌握基本元器件的识别和测试

4熟悉仪器的使用,及电路调试

5培养学生综合电子电工知识,解决电子技术方面的实际问题,在巩

固的基础上,注意设计、训练技能、追求创新、走向实用。

2.2、使用相关软件

1、C语言程序Kile编辑器

2、ProtelDXP绘图软件

3、Proteus仿真软件

4、Mep Win烧写程序软件

第三部分:设计草图及电路图

3.1 Protenus单片机仿真软件

件调试环境——Proteus电路分析实物仿真系统。

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、A VR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

工作界面是一种标准的Windows界面,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。

在主菜单中的“文件”可新建存储打开DSN文件,“库”中可查找元件,在“系统”中可设置页面网格大小;用绘图工具栏可快速的查找基本元件,特别是接地与接高;主要在图形编辑窗口中放置元件和连线;仿真进程栏中用三角形键开始仿真,正方形键结束;预览窗口可在电路图形较大时移动浏览区域;在对象选择窗口中可快速选择已用元件;其它复制粘贴或返回等基本Windows功能都通用;

其它移动翻转元件、连线或设置属性等功能操作与PROTEL或MultiSim类似。下图是Proteus ISIS的工作界面:

图Proteus ISIS的工作界面

3.2 调试步骤

3.2.1 Proteus硬件电路图绘制

Proteus在单片机仿真中,其主要目的用于程序逻辑的正确性仿真,仿真中电压电流与实物制作时不一定相同,在仿真时,可以不对LED点阵屏接驱动三极管,但是在做实物的时必须连接好。

为了方便用户,Proteus元器件的电源与接地都不需要连接,单片机的晶振也不需要连接,仅在单片机配置时加入所需的晶振频率即可。

仿真流程如下:

1 进入Proteus ISIS,建立工程iarLed1664.DSN 文件。

2 在元件库中查找所用元件AT89C51、74HC154、等Proteus中只有5×7和8×8等LED点阵,所以需要先将8*8点阵构建为16*16点阵。

3 要构造16*16点阵,可先构造8*8点阵。再将点阵的行控制(R0~R15)连在一起,列控制编号一共16个,这样就可以得到16*16共阳极点阵。

由8*8连接成的16*16点阵如下,实物的连接方法见附录3:

图连接好的16*16点阵屏

利用网络标号,将16*16点阵与单片机连起来得点阵图,如下图所示:

注:Protues仿真图

3.3 ProtelDXP 设计PCB的一般流程:

本次设计用ProtelDXP进行的PCB制作,ProtelDXP是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。

利用Protel制作PCB的一般流程为:

1 制作SCH元件库.

SCH元件库中的元件用于原理图制作,也可用ProtelDXP自带的元件库。

2 制作PCB元件库。

PCB元件库为元件的封装,在这里要注意SCH元件库中的元件封名必须与PCB元件库对应元件同名。

3 画原理图:包括层次图

原理图表明了元件间的连接关系,用于PCB元件间连接的生成和检查。

4 制作PCB:

最终生成PCB文件,可交付厂家制作PCB板。

在本次设计中,涉及的元件较少,用到的SCH元件库、PCB元件库均为自行制作,在画PCB时,采用双层布线。

3.3 PCB原理图:

注:Protel原理图

注:Protel PCB图

总原理图

第五部分:产品的显示效果(请看具体展示)

第六部分:实验总结与体会

经验总结

本设计的是一个16x16的点阵LED显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。

总结本文的工作,主要做了下面几点工作:

一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。并证实了自己的思路:“查资料→思考总结→运用→找出差错,再查资料和向别人询问→再次运用”的正确性。

二,本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。

三,本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言\C语言程序设计与调试等方面。

四,在这次课程设计的过程中学会了PROTEUS 的基本使用,感到PROTEUS对电子专业的同学来说是一个很有用的软件。在运用PROTEUS时可以运用一些快捷的标号,总线的方法画图,这样既能使电路图清晰,简单,更能大大提高画图速度学习电路的基本设计方案,使对我们抽象的理论有了具体的认识,加深对课堂知识的理解和运用。理论联系实际,实现书本的知识到实践的过渡,

五,通过这次课程设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的。通过自己的动手实践,对自己的动手能力有了一定的提高,及做制作要有耐心,不是任何产品一次性就可以成功的,都要加工在加工,加已改变电路以提高其性能。通过制作,也学会了仿真软件的运用(没有学习过的),懂得了怎么连接电路,掌握了常用元器件的识别和测试,及元器件仪器的使用,电路连接注意事项,没有的元器件可以找相同规格的替换。在一定程度上也提高了同学之间的合作能力等。

六,存在问题:没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致在仿真软件中能良好运行的程序,出现显示问题,经过排查和合理的器件摆放焊接,问题解决。

总体来说这次的课程设计很成功,达到了预想的目的:学到了知识,提高了能力,完成了任务。有点缺憾是时间有限,不能进一步深入和扩散学习和研究。希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动,对角线移动,三色显示等。

小结

本系统主要由硬件和软件两部分构成,硬件部分采用89c51单片机作为核心控制芯片,3个控制按键实现人机交互功能,PD3通过整个4—16译码器对点阵的16行线进行控制,完成16*16点阵屏上的汉字的显示。软件部分利用C语言进行编程,主要包括按键的读取和处理程序,汉字正常和左移显示程序,时间处理程序。

通过这次设计,基本上走过了嵌入式开发的整个流程,从下载器的制作、程序编写、程序的软件仿真、硬件仿真到PCB制作,最后完成所需要的功能。在这个过程中将大学里所学的专业知识由点连成片,学到了很多东西,如文献查找、软件模块划分、软件的工程管理、硬件焊接、实物制作、PCB制作等等,收获很大

致谢

首先要感谢院领导老师及系办老师给了自己一个实践的机会对单片机进行深入了解,从一开始的开题报告到最后设计的完成,感谢大学里我所有的老师们,没有你们的教导,我不可能有今天的收获。

感谢北航马潮老师,您的《A VR单片机嵌入式系统原理与应用实践》一书对我学习A VR单片机和完成设计有很大帮助。

感谢https://www.360docs.net/doc/426694574.html,/提供的Protel视频教程。

感谢网站https://www.360docs.net/doc/426694574.html,/提供的学习平台和众多网友们。

感谢Protel实用教程一书对我的帮助。

感谢新概念51单片机c语言教程一书对我的帮助(https://www.360docs.net/doc/426694574.html,)。等

附录1 程序源代码

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar l,l1;//l:要显示的字,l1:要显示多少个字

uchar code a[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,

0x00,0x1C,0x00,0x1C,0x00,0x1C,0x02,0x1C,0x06,0x1C,0xFC,0x7F,0x00,0x00,0x00,0x00,//L

0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0x18,0x1C,0x0C,0x38,0x0E,0x70,0x0E,0x70,

0x0E,0x70,0x0E,0x70,0x0E,0x30,0x0C,0x38,0x18,0x1C,0xF0,0x07,0x00,0x00,0x00,0x00,//O

0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x7C,0x08,0x38,0x18,0x1C,0x10,0x1C,0x30,0x0E,

0x60,0x0E,0x60,0x06,0x40,0x07,0xC0,0x03,0x80,0x03,0x00,0x01,0x00,0x00,0x00,0x00,//V

0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x7F,0x0E,0x18,0x02,0x18,0x10,0x18,0xF0,0x1F,

0xF0,0x1F,0x10,0x18,0x00,0x18,0x02,0x18,0x0E,0x18,0xFC,0x7F,0x00,0x00,0x00,0x00,//E //上移0x00,0x41,0xC0,0x40,0x30,0x42,0x1E,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0xFF,0x7F,

0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x43,0x18,0x42,0x10,0x60,0x00,0x40,0x00,0x00,//生

0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,

0x82,0x20,0x82,0x20,0x82,0x20,0xFF,0x7F,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//日

0x80,0x00,0x70,0x00,0x00,0x00,0xFF,0xFF,0x10,0x82,0x20,0x42,0x10,0x22,0x10,0x1A,

0xFF,0x07,0x10,0x0A,0x10,0x12,0x10,0x22,0xF8,0x43,0x10,0xC2,0x00,0x42,0x00,0x00,//快

0x00,0x00,0x80,0x40,0xC0,0x20,0xBC,0x10,0x84,0x0C,0x84,0x40,0x84,0x80,0xF4,0x7F,

0x82,0x00,0x82,0x00,0x83,0x04,0x82,0x08,0x80,0x30,0xC0,0x60,0x80,0x00,0x00,0x00,//乐//左移

0x01,0x20,0x22,0x22,0x24,0x13,0x94,0x08,0x00,0x00,0xFC,0x0F,0x04,0x08,0x04,0x08,

0x04,0x08,0xFC,0x1F,0x40,0x08,0x40,0x00,0xC0,0x3F,0x40,0x10,0x40,0x00,0x40,0x00,//点

0x02,0x04,0x02,0x04,0x02,0x04,0x02,0x04,0xEA,0x7F,0x16,0x24,0x12,0x04,0x12,0x04,

0xD2,0x3F,0x8A,0x14,0x86,0x04,0x0A,0x05,0x0A,0x01,0xF2,0x7F,0x1E,0x21,0x00,0x01,//阵

0x20,0x10,0x20,0x28,0xA4,0x20,0x64,0x21,0x24,0x21,0x24,0x25,0x24,0x25,0xFC,0x25,

0x20,0x24,0xFF,0x27,0x22,0x25,0x24,0x24,0xFC,0x25,0xA4,0x20,0x24,0x20,0x20,0x20,//制

0x08,0x01,0x08,0x01,0x08,0x01,0x08,0x01,0x08,0x3F,0x08,0x11,0x08,0x01,0x08,0x01,

0x19,0x1F,0x2A,0x09,0x4C,0x01,0x48,0x01,0x88,0x7F,0x90,0x20,0x90,0x00,0x90,0x00,//作xia

0x00,0x00,0x00,0x00,0x0E,0x00,0x02,0x10,0xE2,0x3F,0x42,0x12,0x42,0x12,0x42,0x12,

0x42,0x12,0xFC,0xFF,0x40,0x12,0x40,0x12,0x40,0x12,0x40,0x12,0xE0,0x1F,0x00,0x00,//电

0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x61,0x00,0x51,0x00,0x49,0x00,0x45,

0xFE,0x47,0x01,0x41,0x02,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x01,0x00,0x01,//子

0x00,0x00,0xC0,0x00,0x00,0x09,0xFE,0x1F,0x01,0x08,0x02,0x08,0x00,0x08,0xC0,0xFF,

0x38,0x08,0x04,0x08,0xC2,0x01,0x20,0x08,0x00,0x08,0xFF,0xFF,0x00,0x08,0x00,0x08,//协

0x00,0x00,0x00,0x02,0x00,0x03,0x40,0x02,0xC3,0x04,0x46,0x0A,0x4A,0x12,0x42,0x22,

0x42,0xC2,0x72,0x22,0x4A,0x12,0x46,0x0A,0x42,0x04,0x40,0x02,0x00,0x01,0x00,0x01 //会you

};

sbit E2=P1^0;

sbit S2=P3^6;

sbit DS_CE=P3^1;

sbit DS_CLK=P3^2;

sbit DS_IO=P3^3;

sbit ACC0=ACC^0;

sbit ACC7=ACC^7;

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=80;y>0;y--);

}

void write_8bit(uchar DS)

{

uchar i;

ACC=DS;

for(i=8;i>0;i--)

{

DS_IO=ACC0;

DS_CLK=1;

_nop_();

DS_CLK=0;

ACC=ACC>>1;

}

}

uchar read_8bit(void)

{

uchar i;

for(i=8;i>0;i--)

{

ACC=ACC>>1;

ACC7=DS_IO;

DS_CLK=1;

_nop_();

DS_CLK=0;

}

return(ACC);

}

void write_ds1302(uchar add,uchar dat) {

DS_CE=0;

DS_CLK=0;

_nop_();

16×16点阵显示设计

16×16点阵显示设计

课程设计 课程名称嵌入式系统课程设计 课题名称 16X16的点阵显示设计 专业 班级 学号

姓名 指导老师 2016年12月20日 电气信息学院 课程设计任务书 课题名称16×16的点阵显示设计 姓名专业班级学号 指导老师 课程设计时间2016年12月18日-2016年12月30日(17、18周) 教研室意见意见:同意审核人:刘望军 一、任务及要求 CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。并最终完成电路的编程调试。具体要求如下: 用一个16×16的点阵使用逐列循环扫描的方式不间断的显示你姓名的全部大写拼音字母。 二、进度安排 第一周: 周一:集中布置课程设计相关事宜。

周二~周三:子模块程序设计,顶层电路程序设计。 周四~周日:子模块,顶层电路仿真。 第二周: 周一~周三:编程下载,系统调试。 周四~周五:设计报告撰写。周五进行答辩和设计结果检查。 三、参考资料 1. 张原编著,可编程逻辑器件设计及应用,机械工业出版社。 2.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。 3. 刘洪喜,陆颖编著. VHDL电路设计实用教程清华大学出版社。 目录 1.总体设计思路与功能设计 (1) 1.1.基本原理 (1) 1.2.总体设计框图 (2) 1.3.顶层文件设计 (2) 2.单元电路设计 (3) 2.1列循环扫描模块 (3) 2.2字符样式设计模块 (3)

2.3循环扫描及延时模块 (4) 2.4整个程序 (5) 3.系统调试与仿真 (9) 3.1 开发环境介绍 (9) 3.2.1 创建工程 (9) 3.2.2 编译前设计 (9) 3.2.3 全程编译 (11) 3.2.4时序仿真 (12) 4.下载调试 (13) 5.心得体会 (14) 6.参考文献 (14)

微机接口实验-16x16点阵显示

实验04·LED显示器 王梦硕 0930******* 实验目的: 在理解LED点阵工作原理的基础上,实践使用点阵显示字符。 实验原理: 1·点阵式显示器: 发光二级管排列成矩阵,由亮与暗来产生字符或图形。 每一样的阳极连在一起,每一列的阴极连在一起,如右图所 示。 点阵显示器每一列的阴极连在一起,对每一列而言相当 于一个共阴显示器。同时每一行的阳极连在一起,相当于七 段显示器的比划。可采用动态显示电路,以笔画锁存器控制 行信号,以位锁存器控制列信号。 2·74HC595 实验中使用两片8位输出锁存移位寄存器74HC595(三态输出、串入并出),将单片机I/O口发出的串行数据转换为并行数据LD_QA~LD_QP,作为16x16 LED点阵显示器的行线,使用另外两片8位74HC595作为16x16 LED点阵显示器的列线LD_1~LD_16。当行输出高电平、列输出低电平时,可以点亮点阵。74HC595的工作时序图和推荐的连接方法如下: 下图中: ?LD-QA~LD-QP:点阵行控制信号 ?LD-1~LD-16:点阵列控制信号 ?SER(14脚):串行数据输入端 ?-SCLR(10脚):低电平时将移位寄存器的 数据清零。通常将它接Vcc。 ?SCK(11脚):上升沿时将串行数据移入移 位寄存器。 ?RCK(12脚):上升沿时移位寄存器的数据 锁存入数据寄存器。 ?-G(13脚): 高电平时禁止输出(高阻态)。

实验内容: 在16×16LED点阵上分别用静态方式和滚屏方式显示自己的姓(行扫描)。 两个实验部分的电原理图是相同的,如下所示:

1·静态方式: 流程图: 程序代码: L_DAT_H BIT P1.0 L_DAT_L BIT P1.1 L_STR BIT P1.2 L_CLK BIT P1.3 L_OE BIT P1.4 ROWH EQU 40H ;字模信号(顺向取膜,高位在前)ROWL EQU 41H SELH EQU 42H ;行扫描信号

基于FPGA的LED16×16点阵汉字显示设计(VHDL版)

毕业设计(论文)开题报告 设计(论文)题目基于FPGA的LED 16×16点阵汉字显示设计 一、选题的背景和意义: LED点阵显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。受到体育场馆用LED显示屏需求快速增长的带动,近年来,中国LED 显示屏应用逐步增多。目前,LED已经广泛应用在银行、火车站、广告、体育场馆之中。而随着奥运会、世博会的临近,LED显示屏将广泛的应用在体育场馆以及道路交通指示中,LED显示屏在体育广场中的应用将出现快速增长。 因此,本设计是很有必要的,之所以基于FPGA设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。并且采用编写灵活的VHDL 语言编写主程序。本设计可以方便的应用到各类广告宣传中。 二、课题研究的主要内容: 1. 实现16×16点阵的汉字显示; 2. 实现有限汉字显示; 4. 实现汉字的滚动显示; 5. 完成方案论证。 三、主要研究(设计)方法论述: 通过去图书馆查阅书籍收集资料,同时在搜索引擎上检索资料,分析借鉴已有类似产品、设计方案与成功经验,选择几种可行方案比对,最后确定最切实可行的方案展开设计。 通过Multisim或Quartus软件对系统进行模拟仿真,对电路功能进行改进与完善。 在EDA试验箱上进行调试。 四、设计(论文)进度安排:

时间(迄止日期)工作内容 2010.5.17-5.23 理解并确认毕业设计任务书,撰写完成毕业设计开题报告(第1周) 2010.5.24-5.30 完成调研与资料收集、整理 (第2周) 2010.5.31-6.6 设计方案及原理框图确定 (第3周) 2010.6.7-7.4 电路资料收集,单元电路设计 (第4、5、6、7周) 2010.7.5-7.18 电路仿真与改进、完善 (第8、9周) 2010.19-8.1 资料整理 (第10、11周) 2010..8.2-8.8 书写毕业设计报告 (第12周) 2010.8.9-8.16 (第13周)修改毕业设计报告并整理装订 五、指导教师意见: 指导教师签名:年月日六、系部意见: 系主任签名:年月日 目录

16×16点阵显示屏电路印制板图的设计

《基础强化训练》报告 题目:16×16点阵显示屏电路印制板图的设计专业班级: 学生姓名: 指导教师: 武汉理工大学信息工程学院 2010 年7 月13 日

基础强化训练任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 16×16点阵显示屏电路印制板图的设计 主要目的就是对学生进行基础课程、基本技能、基本动手能力的强化训练,提高学生的基础理论知 识、基本动手能力,提高人才培养的基本素质。 一、训练内容和要求 1、基础课程和基本技能强化训练 (1)设计一个16 ×16点阵显示屏电路; (2)对所设计电路的基本原理进行分析; 2、文献检索与利用、论文撰写规范强化训练 要求学生掌握基本的文献检索方法,科学查找和利用文献资料,同时要求学生获得正确地撰写论文的基本能力,其中包括基本格式、基本排版技巧和文献参考资料的写法、公式编排、图表规范制作、中英文摘要的写法等训练。 3、基本动手能力和知识应用能力强化训练 (1)学习PROTEL软件; (2)绘制电路的原理图和PCB版图,要求图纸绘制清晰、布线合理、符合绘图规范; 4、查阅至少5篇参考文献,按《武汉理工大学课程设计工作规范》要求撰写基础强化训练报告书,全文用A4纸打印。 二、初始条件 计算机;Microsoft Office Word 软件;PROTEL软件 三、时间安排 1、20010年7 月12日集中,作基础强化训练具体实施计划与报告格式要求的说明;学生查阅相关资料,学习电路的工作原理。 2、2010 年7 月12 日,电路设计与分析。 3、2010 年7 月13日至2010 年7 月15日,相关电路原理图和PCB版图的绘制。 4、2010年7 月16日上交基础强化训练成果及报告,进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

EDA 16x16点阵显示

课程设计报告 课程名称数字系统与逻辑设计 课题名称16*16点阵显示 专业通信工程 班级 学号 姓名 指导教师乔汇东胡瑛 2012年7月2日

湖南工程学院课程设计任务书 课程名称数字系统与逻辑设计课题16*16点阵显示 专业班级通信工程1001班 学生姓名 学号 指导老师乔汇东胡瑛 审批乔汇东 任务书下达日期2012 年6月23日 任务完成日期2012 年7月2日

《数字系统与逻辑设计》课程设计任务书 一、设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求 1、设计正确,方案合理。 2、程序精炼,结构清晰。 3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 4、上机演示。 5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 三、进度安排 第二十周星期一:课题讲解,查阅资料 星期二:总体设计,详细设计 星期三:编程,上机调试、修改程序 星期四:上机调试、完善程序 星期五:答辩 星期六-星期天:撰写课程设计报告 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

16 16点阵LED循环显示汉字汇编语言设计

LED16X16点阵显示 课程设计报告 学院信息工程学院 专业通信工程 班级0801 学生姓名 指导老师 二0一0年十二月 一、设计目的 本次课程设计目的剖析试验箱,利用微机接口芯片8255,并行控制LED点阵显示;其次就是掌握8088微机系统与LED点阵显示模块之间接口电路设计及编程,了解LED点阵显示的基本原理和如何来实现汉字的的循环左移显示。 二、设计内容 利用598H试验系统扩展接口CZ7座,在控制板MC1上以并行通信的方式控制LED点阵显示。要求自建字库,编制程序实现点阵循环左移显示汉字,并要求通过protues仿真软件画出电路图,运行程序。 三、硬件电路设计 整个电路由8088CPU,两片8255,1个74ls373,1个74LS138,1个16×16的LED,5个7407。该电路可静态显示1个16*16位的汉字,也可循环显示。 1、8255 Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理据设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。其中含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。 2、138译码器 译码器是组合逻辑电路的一个重要的器件,74LS138的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,74LS138与前面不同,其有使能端,故

使能端必须加以处理,否则无法实现需要的逻辑功能。发光二极管点亮只须使其正向导通即可,根据LED的公共极是阳极还是阴极分为两类译码器,即针对共阳极的低电平有效的译码器;针对共阴极LED的高电平输出有效的译码器。 3、373锁存器 74LS373是低功耗肖特基TTL8D锁存器,内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。工作原理:74LS373的输出端O0—O7可直接与总线相连。当三态允许控制端OE为低电平时,O0—O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0—O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。 4、LED动态显示原理 LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。 点阵式LED绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。 以8×8点阵模块为例,说明一下其使用方法及控制过程。图2.1中,红色水平线Y0、Y1……Y7叫做行线,接内部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。相邻两行线间绝缘。同样,蓝色竖直线X0、X1……X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。 在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。则行线和列线的交叉点处的LED就会有电流流过而发光。比如,Y7为1,X0为0,则右下角的LED点亮。再如Y0为1,X0到X7均为0,则最上面一行8个LED 全点亮。 现描述一下用动态扫描显示的方式,显示字符“B”的过程。其过程如图3.1 图3.1用动态扫描显示字符“B”的过程 Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本次设计。

16乘16点阵显示实验报告剖析

实验报告 实验名称: [16×16点阵显示实验] 姓名: [] 学号: [201] 指导教师: [解*] 实验时间: [2013年4月25日] 信息与通信工程学院

16×16点阵显示实验 1实验要求 任务1:将所给程序改正使结果为正显示; 任务2:使显示四个字、八个字。 2实验原理 2.1 LED显示器结构和原理 1>8*8LED点阵的结构 图1 8*8LED点阵结构图 从图1中可以看出,8*8LED点阵共由64个发光二极管组成,每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1高电平,且某一列置0低电平,则相应的发光二极管就亮;因此要用8*8LED点阵来显示一个字符或汉字,只需要根据字符或汉字图形中的线条或笔画,通过点亮多个发光二极管来勾勒出字符或汉字的线条或笔画就行了。当要比较完美的显示一般的汉字,单个8*8LED点阵模块很难做到,因为LED的点数(也称为像素点)不够多,因此要显示汉字的话,需要多个8*8LED点阵拼合成一个显示屏。假如用4个8*8LED点阵模块拼成16*16的点阵,即能满足一般汉字的显示。但要显示信息量大的图形,则需要n个多个8*8LED点阵,拼装成一个大屏幕才行。

LED点阵显示器最大的特点是亮度高、功耗较低、寿命长、容易控制等,因此它的应用很广,常用在广场、车站、商业广告等室外的显示。 2>8*8LED点阵的封装和引脚规律 64个发光二极管按照行共阳、列共阴4个一组的方式封装成一个模块,这样8*8LED 点阵模块就有8行、8列共16个引脚。其实物图如图2,电路模块符号图如图3。 图2 8*8LED点阵实物图图3 8*8LED点阵符号图但8*8LED点阵的16个引脚并不是很有规律,千万不要想象成1~8个引脚是行,9~16个引脚是列。而且不同产品的点阵外部引脚排列规律还可能不一样。以下是NLB1388SRA 和LDM1388SRA两个型号点阵引脚对应行、列的关系表: 行号H0 H1 H2 H3 H4 H5 H6 H7 引脚号9 14 8 12 1 7 2 5 列号L0 L1 L2 L3 L4 L5 L6 L7 引脚号13 3 4 10 6 11 15 16 假如你买到一块新的8*8LED点阵,又没有关于它的相关资料,那你只有自己用万用表或通过VCC电源串接一个510欧姆的电阻来检测了。 2.2 LPM_ROM的应用 该模块为逻辑宏模块存储器。其应用过程如下。 1选择模块

16X16点阵LED显示

毕业设计说明书 课题名称: 16乘16点阵显示电路的电路原理图及pcb绘制 学生姓名 专业 班级 时间 指导教师

姓名 设计题目16乘16点阵显示电路的原理图及pcb 绘制 指导教师 设计目的利用单片机控制显示屏,显示相应字幕掌握PROTEL99SE软件的操作和应用 理解和运用芯片 设计摘要 本设计是一16×16点阵LED电子显示屏的设计。 整机以单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器 74LS168和两个列驱动器74LS164来驱动显示屏显示。采用4块8×8点阵LED显示模块来组成16×16点阵显示模式。 单片机控制系统程序采用单片机以C语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。 论文着重介绍点阵显示的制作过程,即元器件的制作,单个封装,原理图的绘制以及PCB版布线的过程 设计规划1.建立库原件里面的没有的原件,并做出封装 2.绘制点阵点阵显示的原理图 3.对原理图里面的原件进行封装 4.创建链接表 5.导入到PCB里面,并排列连接 6.制造PCB版 7.

姓名 设计题目16乘16点阵显示电路的原理图及pcb绘制指导教师 设计目的利用单片机控制显示屏,显示相应字幕掌握PROTEL99SE软件的操作和应用 理解和运用芯片 设计摘要 本设计是一16×16点阵LED电子显示屏的设计。 整机以单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器 74LS168和两个列驱动器 74LS164来驱动显示屏显示。采用4块8×8点阵LED显示模块来组成16×16点阵显示模式。 单片机控制系统程序采用单片机以C语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。 论文着重介绍点阵显示的制作过程,即元器件的制作,单个封装,原理图的绘制以及PCB版布线的过程 设计规划1.建立库原件里面的没有的原件,并做出封装 2.绘制点阵点阵显示的原理图 3对原理图里面的原件进行封装 4创建链接表 5导入到PCB里面,并排列连接 6制造PCB版

16-16点阵LED显示汉字汇编语言

LED16X16点阵显示课程设计报告 学院 专业 班级 学生 指导老师

一、设计目的 本次课程设计目的剖析试验箱,利用微机接口芯片8255,并行控制LED点阵显示;其次就是掌握8088微机系统与LED点阵显示模块之间接口电路设计及编程,了解LED点阵显示的基本原理和如何来实现汉字的的循环左移显示。 二、设计容 利用598H试验系统扩展接口CZ7座,在控制板MC1上以并行通信的方式控制LED点阵显示。要求自建字库,编制程序实现点阵循环左移显示汉字,并要求通过protues仿真软件画出电路图,运行程序。 三、硬件电路设计 整个电路由8088CPU,两片8255,1个74ls373,1个74LS138,1个16×16的LED,5个7407。该电路可静态显示1个16*16位的汉字,也可循环显示。 1、8255 Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理据设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。其中含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。 2、138译码器 译码器是组合逻辑电路的一个重要的器件,74LS138的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,74LS138与前面不同,其有使能端,故使能端必须加以处理,否则无法实现需要的逻辑功能。发光二极管点亮只须使其正向导通即可,根据LED的公共极是阳极还是阴极分为两类译码器,即针对共阳极的低电平有效的译码器;针对共阴极LED的高电平输出有效的译码器。 3、373锁存器 74LS373是低功耗肖特基TTL8D锁存器,有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。工作原理:74LS373的输出端O0—O7可直接与总线相连。当三态允许控制端OE为低电平时,O0—O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0—O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。 4、LED 动态显示原理 LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。 点阵式LED绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视

基于FPGA的16×16点阵汉字显示设计

EDA课程设计 题目: 16*16点阵显示器的设计 班级:08电子信息工程(应电方向) 院系:应用技术学院 姓名:学号: 实验地点:应用技术学院综合实验室 指导老师:王悦善职称:讲师 成绩: ( 2011年6月2日 )

目录 1. 前言 (2) 1.1本设计的研究背景和研究目的 (2) 1.2LED点阵显示特点 (2) 1.3FPGA设计的特点 (2) 2 系统设计 (3) 2.1.1设计任务与要求 (3) 2.1.2 设计要求 (3) 2.2设计原理 (3) 2.3扫描控制模块 (3) 2.4方案选择 (3) 2.4.1 方案一: (3) 2.4.2方案二汉字的存储 (4) 2.5实现 (4) 2.5.1列循环扫描 (4) 2.5.2字符样式设计 (5) 3. 系统调试与仿真 (8) 3.1开发环境介绍 (8) 3.2调试与仿真 (8) 3.2.1 创建工程 (8) 3.2.2 编译前设置 (8) 3.2.3 全程编译 (10) 3.2.4功能仿真 (10) 4 结束语 (12) 5 参考文献 (12) 6 附录:程序 (13)

1. 前言 1.1 本设计的研究背景和研究目的 随着我国经济的高速发展,对公共场合发布信息的需求日益增长,利用LED点阵滚动显示汉字的出现正好适应了这一市场需求,已经成为信息传播的一种重要手段。采用传统方法设计的汉字滚动显示器,通常需要使用单片机、存储器和制约逻辑电路来进行PCB板级的系统集成。尽管这种方案有单片机软件的支持较为灵活,但是由于受硬件资源的限制,未来对设计的变更和升级,总是难以避免要付出较多研发经费和较长投放市场周期的代价。随着电子设计自动化(EDA)技术的进展,基于可编程FPGA器件进行系统芯片集成的新设计方法,也正在快速地到代基于PCB板的传统设计方式。因此,本设计的研究是很有必要的,之所以基于FPGA设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。并且采用编写灵活的VHDL 语言编写主程序。 1.2 LED点阵显示特点 (1)可以显示各种数字、文字、图表、曲线、图形; (2)采用纯红、高绿作双基色发光器件,发光亮度高,色彩鲜艳、丰富; (3)显示效果清晰、稳定、功耗低、寿命长; (4)优质铝合金结构,磨沙、银镜或钛金不锈钢包边。尺寸和规格可根据需要灵活组合; (5)支持各种计算机网络,编辑软件丰富、易用; (6)适用于室内、外所有信息发布及广告宣传场所。如:银行、证券交易所、商场、市场、宾馆、洒楼、电信、邮政、医院、车站、机场等。 1.3 FPGA设计的特点 FPGA 通常被认为是ASIC 实现的一种替代手段. 一般ASIC 包括三种, 既全定制、半定制(含标准单元和门阵列) 以及可编程器件。对于前两种, 需要支付不可重复使用的工程费用NRE (Non recurring Engineering) , 主要用于芯片的流片、中测、分析的工程开销, 一次费用一般在1 万 至数万美元以上。如果一次不成功、返工、甚至多次返工,NRE 费用将要上升。成本高、风险大, 而通常对每个ASIC 品种的需求量往往不大,NRE 费用分摊到每个产品上价太高, 用户无法接受。而对于可编程器件PLD (Programmable Logic Device) 正是可以解决上述问题的新型ASIC, PLD 以其操作灵活、使用方便、开发迅速、投资风险小等突出优点, 特别适合于产品开发初期、科研样品研制或小批量的产品. FPGA 是一种新型的PLD, 其除了具有PLD 的优点外, 其规模比一般的PLD 的规 模大。目前,Xilinx 推出的XC4025 可以达到25000 门的规模,Altera 公司的FLEX10K100 系列芯 片可达到十万门的规模,完全可以满足用户的一般设计需要。 FPGA 的主要特点是: 寄存器数目多, 采用查找表计数,适合时序逻辑设计。但是互连复杂, 由于互连采用开关矩阵,因而使得延时估计往往不十分准确。FPGA 也有其自身的局限性, 其一就是器件规模的限制,其二就是单元延迟比较大。所以, 在设计者选定某一FPGA器件后, 要求设计者对器件的结构、性能作深入的了解, 在体系结构设计时, 就必须考虑到器件本身的结构及性能, 尽可能使设计的结构满足器件本身的要求. 这样就增加了设计的难度。 离开对FPGA 结构的详细了解, 设计人员就不可能优化设计。因而设计人员必须了解FPGA 器件的特性和限制, 熟悉FPGA 的结构。在了解FPGA 结构特点的基础上, 就可以利用VHDL 语言描写出高效的电路描述实现性能优化的电路。

16×16点阵LED显示汉字

以下程序在16×16点阵LED上依次显示“梅川酷子”四个字,分别用正向显示和反向显示,间隔两秒钟变换一次,电路图和效果图下图所示。 AT89c52晶振频率为24MHz,用T0定时,改变变量flag值,从而让程序确定显示哪个汉字和显示方式(正向or反向)。 #include 或者#include #define int8 unsigned char #define int16 unsigned int #define int32 unsigned long int8 flag; /* flag变量 MSB 7 6 5 4 3 2 1 0 LSB × ×× Bit5=1,Bit4=0 时,负向显示 Bit5=0,Bit4=1 时,负向显示 Bit[2..0]74HC138的片选信号 */ int8 n; int8 code table[][32]={ {0x88,0x00,0x88,0x00,0x88,0x7F,0x48,0x00,0xDF,0x1F,0xA8,0x10,0x9C,0x1 2,0xAC,0x14,0xEA,0x7F,0x8A,0x12,0x89,0x14,0x88,0x10,0x88,0x7F,0x08,0x 10,0x08,0x14,0x08,0x08},/*"梅",0*/ {0x08,0x20,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x2 1,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x04,0x 21,0x04,0x20,0x02,0x00},/*"川",1*/ {0x00,0x08,0xFE,0x08,0x28,0x0A,0x28,0x7E,0xFE,0x0A,0xAA,0x09,0xAA,0xF F,0xEA,0x00,0x86,0x00,0x82,0x7E,0xFE,0x42,0x82,0x42,0x82,0x42,0xFE,0x 7E,0x82,0x42,0x00,0x00},/*"酷",2*/ {0x00,0x00,0xF8,0x1F,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x0 1,0x00,0x41,0xFE,0xFF,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x 01,0x40,0x01,0x80,0x00}/*"子",3*/ }; void delay(void); void main(void){ int8 i; int8 j; int8 index;

PROTEUS16X16点阵制作教程详解版

PROTEUS16*16点阵(元件)制作 首先,新建一个工程,保存,并在PROTEUS元件库里找到一个8X8点阵 点击右键,选择Decompose(元件分解) 这时元件旁边出现了一个“原点”和“NAME=…”的内容,说明元件已经进入可编辑状态

双击“NAME…”字段,可以打开元件的脚本文件,里面包含元件的诸多定义,不要随便修改 接下来,将鼠标指向点阵边缘位置,鼠标变成“手形”,点击右键,即可“Drag Objecet”拖动点阵的发光背景板

接下来,点击工具栏“”,就可以看到很多标记符号,这些符号是用来代表LED点阵每个点的状态的,即每个点有两个状态,例如LEDMATRIX_G_0_0表示第一行灯灭的状态,LEDMATRIX_G_1_1表示第二行灯亮的状态 随意点击一个,然后在电路设计区再点一下,就会出现一个亮点或者是暗点 然后单击右键,选择“Decompose”

这时小点上方便会出现一个“”然后将小点和“原点”一起拖拽到下图的状态: 我们便会知道这个点是第几行的点,本例中这个点就是LEDMA TRIX_G_1_1了,知道了这一点,下面的工作便会很简单,比如我想产生一个第11行的点,就在上图的基础上将小点拖拽到第11行的位置,如下图情况

记住,在此过程中,我们要将所有的原点都托至同一水平线,如上图,对于8X8的点阵来说,已经有了第8行了,所以要做一个16X16的点阵,我们需要产生的是9—16行的点的状态符号,在上图中任意选择一个点以及其上的原点(一定不能掉哦),然后右键选择“Make symble”(如下图)

在“symble name”栏里面我们要填和左边“”栏里面一样的格式的状态符号,比如是

8 16X16LED点阵显示程序

16×16按字显示程序: ;P0和P2口输出字型码,P1口输出列线扫描。 ORG 0000H SJMP LOOP ORG 0080H LOOP:MOV A,#00H ;开机初始化,清除画面MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口 MOV R2,#200 D100MS: MOV R3,#250 ;延时100毫秒 DJNZ R3,$ DJNZ R2,D100MS

MOV 20H,#00H ;字型码指针赋初值 L100: MOV R1,#10 ;每个字的停留时间 L16: MOV R6,#16 ;每个字16个16位码 MOV R4,#00H ;列线扫描指针清零,接4-16译码器,。 MOV R0,20H ;字型码指针存入R0 L3: MOV A,R4 ;列线扫描指针存入A MOV P1,A ;列线扫描输出 INC R4 ;扫描指针加1,指向下一列 MOV A,R0 ; 取码指针存入A MOV DPTR,#TABLE ;取数据表的上半部分的代码 MOVC A,@A+DPTR MOV P0,A ; 输出到P0 INC R0 ;取字型码指针加1,取下一个码。 MOV A,R0 MOV DPTR,#TABLE ;取数据表下半部份的代码 MOVC A,@A+DPTR MOV P2,A ;输出到P2口 INC R0 ;取字型码指针加1,取下一个码。 MOV R3,#02 ;扫描1毫秒 DELAY2:MOV R5,#248 DJNZ R5,$ DJNZ R3,DELAY2 MOV A,#00H ;清除屏幕 MOV P0,A ANL P2,#00H DJNZ R6,L3 ;一个字16个码是否完成? DJNZ R1,L16 ;每个字的停留时间是否到了? MOV 20H,R0 ;取码指针存入20H(静态显示) CJNE R0,#224,L100 ;7个字224个码是否完成? JMP LOOP ;反复循环 16×16滚动显示程序: ORG 0000H SJMP LOOP ORG 0080H LOOP:MOV A,#00H ;开机初始化,清除画面 MOV P0,A ;清除P0口

16x16点阵显示LED

开封大学 学生毕业设计 题目点阵式汉字电子显示屏设计 年级 11级专业电子信息工程技术 班级电子3班 学生姓名苗本朋起止时间 2013.11,4-2014,05.26指导教师肖兴达职称副教授 2014年 5 月 26 日

摘要 电子显示屏的应用范围越来越广泛,它作为一个重要的宣传平台,已经受到全社会的普遍认可。本课题以单片机为控制核心,通过8x8 LED电子显示屏及相关的外围电路,设计制作了一个16x16 点阵LED电子显示屏。 本文介绍了基于AT89C51单片机点阵显示屏的设计方案,阐述了16×16点阵LED 显示屏的设计原理与思路,详细叙述了系统硬件、软件设计的具体实现过程。论文重点阐述了显示模块及相关驱动模块等的模块化设计思路与制作方法。软件部分同样也采用模块化的设计思想,显示模块,并采用简单流通性强的汇编语言编程实现。系统能实现清晰的图文伴随左移出显示功能。在实际设计调试过程中,通过肉眼观察该显示屏显示的图文是否稳定、清晰无串扰,查找造成图文不清晰的根源,确定调整方案,尽可能的使显示图文与要求相符合。 关键词:单片机;LED显示屏

目录 1 引言 (3) 1.1 课题的背景 (3) 1.2 研究目的和意义 (4) 1.3 研究内容 (5) 2 系统方案论证 (5) 2.1 方案论证 (6) 2.2模块方案确定 (6) 2.2.1 电源模块 (6) 2.2.2 单片机控制模块 (6) 2.2.3 时钟信号电路 (6) 2.2.4 复位电路 (7) 2.2.5 显示驱动模块 (7) 3 系统硬件电路设计 (8) 3.1硬件电路设计 (8) 3.2各单元电路说明 (8) 3.2.1 单片机主控模块的设计 (8) 3.2.2 16X16点阵显示模块设计 (11) 3.2.3 驱动模块电路设计 (13) 3.2.4 电源电路设计 (15) 4 系统软件设计 (18) 4.1点阵显示原理 (18) 4.2系统程序流程图 (20) 4.3系统程序 (22) 5 单片机I/O口分配 (26) 6 结果分析及总结 (26) 6.1结果分析 (26) 6.2总结 (26) 参考文献 附录1:电路图 附录2:元件清单

16乘16点阵屏仿真(4个74hc595)+程序

直接上图吧,51控制,4个74hc595连接。,前面的图片是整体的,后面的是局部放大,以免看不清

直接复制代码即可运行 #include #include #define uchar unsigned char #define uint unsigned int #define NUM 1 #define NUN 9 sbit SH_CP=P2^0; sbit DS=P2^1; sbit ST_CP=P2^2; uchar temp=0x80; uint tem=0; uchar code tab[NUN][32]= { 0x10,0x08,0x04,0x3F,0x21,0x21,0x3F,0x21,0x21,0x3F,0x01,0x01,0xFF,0x01,0x01,0x01, //单0x10,0x20,0x40,0xF8,0x08,0x08,0xF8,0x08,0x08,0xF8,0x00,0x00,0xFE,0x00,0x00,0x00, 0x00,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x20,0x20,0x40, //片0x40,0x40,0x40,0x40,0x40,0xFC,0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x20,0x20,0x20, 0x10,0x11,0x11,0x11,0xFD,0x11,0x31,0x39,0x55,0x55,0x91,0x11,0x11,0x12,0x12,0x14, //机0x00,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x12,0x12,0x12,0x0E,0x00, 0x20,0x20,0x20,0x20,0xFB,0x20,0x20,0x22,0x22,0x24,0x28,0x20,0x21,0x21,0x22,0x24, //协0x80,0x80,0x80,0x80,0xF0,0x90,0x90,0x98,0x94,0x92,0x92,0x90,0x10,0x10,0x50,0x20,

Proteus仿真1616LED点阵显示汉字.docx

例.利用Proteus仿真一块16×16LED点阵,并在其上循环显示汉字“郑州大学”。 Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本例的显示任务。 首先,从Proteus元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90°,使其水平放置,那么此时它的左面8个引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。然后我们将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16个LED,列线也相同。并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。 连接好的16×16点阵如下图所示: 连接成如上图的16×16点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的两块8×8点阵,然后拖动并使其与左侧的两块相并拢,如下图所示: 我们可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如下图所示: 可以看到,原来杂乱的连线现在已经几乎全部隐藏了,一块16×16的LED点阵做成了。需要注意,做成的LED点阵的行线为左侧的16个引脚,下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。然后,我们将其保存,以便以后使用。 制作好16×16LED点阵,我们接下来来进行本例的实验。 由于本例的软件程序需要首先注意硬件连接,所以,我们首先来看一下本例的电路图。电路图中用到了74159集成芯片,其效用是将4位输入译为16输出(低电平有效),刚好满足我们的要求。电路图中的其他元器件我们在以前的仿真实例中都已介绍过,此处不再赘述。最终完成的电路图如下所示:

16x16点阵显示汉字并移动原理图程序

16x16点阵显示汉字并移动原理与源程序(简单) 周渴望南阳理工学院QQ418084696 本次设计中首先在做了8x8点阵汉子显示基础之上做的,其实点阵原理很简单,就像数码管动态显示一样简单,只要你分清楚行控制,与列控制,某段时间某列可以点亮,哪几行亮,动态扫描一个循环自然组成不同的图像。 这里取模方式是先最左边的一列选通,然后控制控制两个74ls164分别点亮16行中的几行,然后是从左向右第二列依次下去,形成动态扫描。本文程序非常简单,虽然没注释,认真看几十分钟就全明白了,说白了,数码管动态显示一回事(呵呵其实我自己做的时候下了不少功夫建议先做8x8)。

源程序: #include unsigned char i; sbit DA TA1=P3^7; sbit DA TA2=P3^5; sbit CLCK1=P3^6; sbit CLCK2=P3^4; #define uchar unsigned char #define uint unsigned int void shuru_1();

unsigned char num,k,temp1,temp2,zuo=0; unsigned int timecount; unsigned char code lie[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, };/*74hc154显示代码从左到右16列依次选通*/ unsigned char code hang[288]={0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0 xFE,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,/*"电",0*/ 0x01,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x02,0x41,0x01,0x47,0xFE,0x 45,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x00,0x00,/*"子",1*/ 0x00,0x00,0x00,0x42,0x44,0x44,0x4C,0xC8,0x54,0xD0,0x65,0x42,0x45,0x41,0x46,0x7E,0 x84,0x40,0x88,0x40,0x90,0x50,0x81,0x48,0x80,0xC4,0x00,0x62,0x00,0x00,0x00,0x00,/*"系",2*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0x11,0x22,0x31,0x22,0x51,0x22,0x91,0x22,0x1 1,0x22,0x11,0x22,0x11,0x22,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"自",3*/ 0x02,0x08,0x22,0x3C,0x23,0xC8,0x22,0x08,0x22,0x28,0x22,0x1D,0x02,0x02,0x08,0x0C,0 x08,0x70,0xFF,0x80,0x08,0x02,0x08,0x01,0x08,0x02,0x0F,0xFC,0x00,0x00,0x00,0x00,/*"动",4*/ 0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x00,0x20,0x00,0x40,0x00,0x80,0x FF,0xFC,0x02,0x02,0x04,0x02,0x08,0x02,0x10,0x02,0x20,0x02,0x00,0x1E,0x00,0x00,/*"化",5*/ 0x00,0x08,0x00,0x08,0x1F,0xC8,0x92,0x48,0x52,0x48,0x32,0x48,0x12,0x48,0x1F,0xFF,0x 12,0x48,0x32,0x48,0x52,0x48,0x92,0x48,0x1F,0xC8,0x00,0x08,0x00,0x08,0x00,0x00,/*"单",6*/ 0x00,0x00,0x00,0x01,0x00,0x06,0x7F,0xF8,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x0 4,0x40,0xFC,0x40,0x04,0x7F,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,/*"片",7*/ 0x08,0x20,0x08,0xC0,0x0B,0x00,0xFF,0xFF,0x09,0x00,0x08,0xC1,0x00,0x06,0x7F,0xF8,0 x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFC,0x00,0x02,0x00,0x02,0x00,0x1E,0x00,0x00,/*"机",8*/ }; void shuru_1() /*74ls164进行输入数据*/ { uchar t; for(t=0;t<8;t++) { temp1<<=1; DA TA1=CY; CLCK1=1; CLCK1=0; } }

相关文档
最新文档