16乘16点阵设计

16乘16点阵设计
16乘16点阵设计

16X16点阵设计

摘要

本设计使用简单单片机AT89C51作为主控制模块,利用简单的外围电路来驱动16×16的点阵LED显示屏。在本设计中主要用两个74HC595来驱动16×16点阵显示屏的列,用AT89C51来驱动16×16点阵显示屏的行,可以最终实现——“十六乘十六点阵可调速显示屏设计” 十五个汉字的自动左移,而且它们的“进”和“出”是以滚动形式设计的。也就是说,硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。从而可以实现一个室内用的16×16点阵LED图文显示屏,在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰,图形或文字显示有静止、移入移出等显示方式。最后,利用烧录器可以很方便的实现单片机与PC机等外围存储设备的数据传输,并能利用软件方便的进行显示内容的多样变化,它在实际生活中具有广泛的应用。

关键词:单片机,16x16点阵,滚动显示

目录

1 绪论 (1)

1.1课题描述 (1)

1.2功能要求 (1)

1.3 方案论证 (1)

2 系统总体方案及硬件设计 (2)

2.1 显示屏总体设计方案 (2)

2.2 AT89C51的原理及说明 (2)

2.3 列驱动电路 (3)

2.4 行驱动电路 (3)

3 系统硬件电路的设计 (7)

3.1AT89C51单片机 (8)

3.2单片机系统及外围电路 (9)

4 系统程序的设计 (9)

4.1系统主程序 (10)

4.2 显示驱动程序 (10)

4.3单片机汇编程序 (11)

总结 (21)

致谢 (22)

参考文献 (23)

附录1.硬件原理图 (24)

附录2.元器件清单表 (23)

1 绪论

1.1课题描述

随着LED显示技术日趋成熟和普遍公共场合需求量增大,现代工业控制和一些智能化仪器仪表中,越来越多的场合所需要用点阵图形显示器显示汉字,广告屏等。所以研究LED显示有实用意义。

1.2功能要求

设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰,图形或文字显示有静止、移入移出等显示方式。

1.3 方案论证

16×16的点阵显示屏共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。

动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;第十六行之后又重新燃亮第一行,这样反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。

采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显

示两个部分。

解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,可以归纳出列驱动器电路应具备的主要功能。对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。

2 系统总体方案及硬件设计

2.1 显示屏总体设计方案

图1 总体设计方案

2.2 AT89C51的原理及说明

AT89C51是美国Intel 公司生产的低电压,高性能CHMOS8位单片机,片内含4k bytes 的可反复擦写的只读程序存储器(PEROM )和蔼可亲128 bytes 的随机存取数据存储器(RAM ),器件采用Intel 公司的高密度、非易失性存储技术生产,片内置通用4位中央处理器(CPU )和Flash 存储单元,功能强大AT89C51单片机适合于许多较为复杂控制应用场合[5]。

单 片 机

LED 显示点阵

行驱动器

列驱动器

图2 AT89C51引脚图

2.3 列驱动电路

列驱动电路有集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。

74HC595的外形及内部结构如图3所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因为QH受输出锁存器的打入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同步的级联输出。

2.4 行驱动电路

由于4点阵显示器有16行,为充分利用单片机的接口,本电路中运用了单片机AT89C51的P1口和P2口,其输入是一个16进制码,解码输出为低态扫描信号,单片机P1口和P2口输出生产16条行选通讯信号线,再经过驱动器驱动对应的线。

图3 74HC595的外形及内部结构如图

74LS241三态八缓冲器/线驱动器/线接收器(3S,两组控制)如图4

图4 74LS241引脚图

简要说明:

241为三态输出的八组缓冲器和总线驱动器,其主要电器特性的典型值如下(不同厂家具体值有差别)[1]:

型号t PLH t phl P D 54LS241/74LS241 12ns 12ns 110mW

引出端符号:

1A1~1A4,2A1~2A4 输入端

/1G, /2G 三态允许端(低电平有效)

1Y1~1Y4,2Y1~2Y4 输出端

逻辑图:

图5 双列直插封装

极限值:

电源电压………………………………………….7V

输入电压………………………………………….5.5V

输出高阻态时高电平电压…………………………. 5.5V

工作环境温度

54XXX ………………………………….-55~125℃

74XXX ………………………………….0~70℃

存储温度………………………………………….-65~150℃

功能表:

推荐工作条件:

54LS244/74LS244

单位

最小额定最大

电源电压Vcc 54 4.5 5 5.5

V 74 4.75 5 5.25

输入高电平电V iH 2 V

输入低电平电V iL 54 0.7

V 74 0.8

输出高电平电流

I OH 54 -12

mA 74 -15

输出低电平电流

I OL 54 12

mA 74 24

动态特性(T A=25℃)

参数测试条件LS244

单位最大

t PLH输出由低到高传输延迟时间Vcc =5V

C L=45pF

R L=667 Ω18 ns

t PHL输出由高到低传输延迟时间18 ns t PZH输出由高阻态到高允许时间23 ns t PZL输出由高阻态到低允许时间30 ns

t PHZ输出由高到高阻态禁止时间Vcc=5V C L=5pF

R L=90 Ω 18 ns

t PLZ输出由低到高阻态禁止时间25 ns

静态特性(TA为工作环境温度范围)[1]

参数测试条件

LS244

单位最小最大

V IK输入嵌位电压Vcc=最小,I ik=-18mA -1.5 V △V T滞后电压Vcc=最小0.2 V

V OH输出高电平电压Vcc=最小,V IL=最大,V IH=2V,

I OH=-3mA

2.4 V

V OL输出低电平电压Vcc=最小,V IL=最大,

I OL=最大

54 0.4

V

74 0.5

I I最大输入电压时输

出电流

Vcc=最大,V I=7V 0.1 mA I IH输入高电平电流Vcc=最大,VIH=2.7V 20 uA I IL输入低电

平电流

1A,2A Vcc=最大,V IL=0.4V -0.2 mA I OS输出短路电流Vcc=最大-40 -225 mA

I OZH输出高阻态时高

电平电流Vcc=最大,V IH=2V

V IL=最大,V O=2.7V

20 uA

I OZL输出高阻态时低

电平电流Vcc=最大,V IH=2V,V IL=最大

,V O=0.4V

-20 uA

Icc电源电流Vcc=

最大

1Y,2Y均为高电平27

mA 1Y,2Y均为低电平46

1Y,2Y均为高阻态54

测试条件中的“最小”和“最大”用推荐工作条件中的相应值。

3 系统硬件电路的设计

硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。

3.1AT89C51单片机

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器,(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器。

(1)AT89C51引脚图如图所:

图6 AT89C51单片机引脚图

(2)AT89C51单片机P口的特点:

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)这是由于上拉的缘故[3]。

3.2单片机系统及外围电路

单片机采用89C51或其兼容系列的芯片,采用24M或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。单片机的串口与列驱动器相连,用来送显示数据。P1口与P2口为行驱动器,送出行信号;P3.5~P3.7口则用来发送控制信号[4]。P0口空着,在有必要时可以扩展系统的ROM和RAM。16×16点阵显示屏的硬件原理图如图7

图7 16×16点阵显示屏硬件原理图

4 系统程序的设计

显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,我们可把显示屏的软件系统

分成两大层:第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其它控制信号,配合完成LED显示屏的扫描显示工作。显示驱动程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。

4.1系统主程序

系统主程序开始以后首先是对系统环境初始化,包括设置串口、定时器、中断和端口。然后以“滚动出”效果显示一个字,停留约3秒,接着向左滚动显示“十六乘十六点阵可调速显示屏设计”十五个汉字,停留约3秒,再向左滚动显示“十六乘十六点阵可调速显示屏设计”这十五个汉字,循环重复,由于单片机没有停机指令,所以我们可以设置系统程序不断地循环执行上述显示效果。图9是系统主程序的流程图。

4.2 显示驱动程序

显示驱动程序在进入中断后首先要对定时器T0重新赋初值以保证显示屏刷 新率的稳定,1/16扫描的显示屏的刷新率(帧频)的计算公式如下:

其中fosc 为晶振频率,t0为定时器T0初值(工作在16位定时器模式)[2]。

定时器赋初值

读取行号并增送新行显示数

消隐 切换显示数据 送新行号、打开显

进入中断 退出中断

图8显示驱动程序流程图

系统初始化

“滚动出”显示效“加速”显示效果 “减速”显示效果 “默认”显示效果

开始

图9系统主程序流程图

然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。

4.3单片机汇编程序

#include

sbit SET=P3^5;

sbit ADD=P3^6;

sbit SUB=P3^7;

sbit LOCK=P3^2;

sbit DAT=P3^0;

sbit CLK=P3^1;

unsigned char cnt,cnt2,line,xp,xold,shift,t[4];

char speed,i;

bit sec,key_mark;

unsigned char code Matrix001[32]=

{

/x---转换字符十---x/

0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00 ,

0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, };

unsigned char code Matrix002[32]=

{

/x---转换字符六---x/

0x02,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00 ,

0x04,0x40,0x04,0x20,0x08,0x10,0x08,0x08,0x10,0x08,0x20,0x04,0x40,0x04,0x00,0x00,

};

unsigned char code Matrix003[32]=

{

/x---转换字符乘---x/

0x00,0xF8,0x3F,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x09,0x24,0xF9,0x38,0x09,0x22 ,

0x39,0x22,0xCB,0x9E,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,0x01,0x0 0,

};

unsigned char code Matrix004[32]=

{

/x---转换字符十---x/

0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00 ,

0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, };

unsigned char code Matrix005[32]=

{

/x---转换字符六---x/

0x02,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00 ,

0x04,0x40,0x04,0x20,0x08,0x10,0x08,0x08,0x10,0x08,0x20,0x04,0x40,0x04,0x00,0x00, };

unsigned char code Matrix006[32]=

{

/x---转换字符点---x/

0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xFC,0x02,0x00,0x02,0x00,0x3F,0xF0,0x20,0x10 ,

0x20,0x10,0x20,0x10,0x3F,0xF0,0x00,0x00,0x24,0x88,0x22,0x44,0x42,0x44,0x80,0x04,

};

unsigned char code Matrix007[32]=

{

/x---转换字符阵---x/

0x00,0x40,0x7C,0x40,0x44,0x40,0x4B,0xFE,0x48,0x80,0x50,0xA0,0x49,0x20,0x49,0xF C,

0x44,0x20,0x44,0x20,0x44,0x20,0x6B,0xFE,0x50,0x20,0x40,0x20,0x40,0x20,0x40,0x20 ,

};

unsigned char code Matrix008[32]=

{

/x---转换字符可---x/

0x00,0x00,0x7F,0xFE,0x00,0x10,0x00,0x10,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10, 0x11,0x10,0x11,0x10,0x1F,0x10,0x11,0x10,0x00,0x10,0x00,0x10,0x00,0x50,0x00,0x20, };

unsigned char code Matrix009[32]=

{

/x---转换字符调---x/

0x00,0x00,0x47,0xFC,0x24,0x44,0x24,0x44,0x05,0xF4,0x04,0x44,0xE4,0x44,0x27,0xF C,

0x24,0x04,0x25,0xF4,0x25,0x14,0x2D,0x14,0x35,0xF4,0x24,0x04,0x04,0x14,0x08,0x08 ,

};

unsigned char code Matrix010[32]=

{

/x---转换字符速---x/

0x00,0x40,0x20,0x40,0x17,0xFC,0x10,0x40,0x03,0xF8,0x02,0x48,0xF2,0x48,0x13,0xF 8,

0x10,0xE0,0x11,0x50,0x12,0x48,0x14,0x44,0x10,0x40,0x28,0x00,0x47,0xFE,0x00,0x00

,

};

unsigned char code Matrix011[32]=

{

/x---转换字符显---x/

0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0 ,

0x04,0x40,0x44,0x44,0x24,0x44,0x14,0x48,0x14,0x50,0x04,0x40,0xFF,0xFE,0x00,0x00 ,

};

unsigned char code Matrix012[32]=

{

/x---转换字符示---x/

0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x01,0x00 ,

0x01,0x00,0x11,0x10,0x11,0x08,0x21,0x04,0x41,0x02,0x81,0x02,0x05,0x00,0x02,0x00,

};

unsigned char code Matrix013[32]=

{

/x---转换字符屏---x/

0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x3F,0xF8,0x24,0x10,0x22,0x20,0x2F,0xF8 ,

0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x42,0x20,0x44,0x20,0x84,0x20,0x08,0x20 ,

};

unsigned char code Matrix014[32]=

{

/x---转换字符设---x/

0x00,0x00,0x21,0xF0,0x11,0x10,0x11,0x10,0x01,0x10,0x02,0x0E,0xF4,0x00,0x13,0xF8 ,

0x11,0x08,0x11,0x10,0x10,0x90,0x14,0xA0,0x18,0x40,0x10,0xA0,0x03,0x18,0x0C,0x0 6,

};

unsigned char code Matrix015[32]=

{

/x---转换字符计---x/

0x00,0x40,0x20,0x40,0x10,0x40,0x10,0x40,0x00,0x40,0x00,0x40,0xF7,0xFE,0x10,0x40 ,

0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x14,0x40,0x18,0x40,0x10,0x40,0x00,0x40, };

unsigned char code Matrix016[32]=

{

/x---转换字符代---x/

0x08,0x90,0x08,0x88,0x08,0x88,0x10,0x80,0x10,0xBE,0x37,0xC0,0x30,0x80,0x50,0x4 0,

0x90,0x40,0x10,0x40,0x10,0x20,0x10,0x22,0x10,0x12,0x10,0x0A,0x10,0x06,0x10,0x02 ,

};

unsigned char code Matrix100[32]={0};

unsigned char code end;

void SendData(unsigned char xq)

{

unsigned char i,t;

t=xq;

for(i=0;i<16;i++)

{

if(i==8)

t=x(q+1);

if(t&1)

DAT=1;

else

DAT=0;

CLK=0;

CLK=1;

t>>=1;

}

LOCK=0;

LOCK=1;

}

void t0() interrupt 1 {

TH0=-50000>>8; TL0=-50000;

if(++cnt2>speed)

{

cnt2=0;

sec=1;

}

}

void t1() interrupt 3 {

TH1=-1000>>8; TL1=-1000;

if(++cnt>=0)

{

cnt=0;

if(++line>15)

line=0;

P1=P2=0xff;

t[0]=x(p+(line<<1));

t[1]=x(p+1+(line<<1));

t[2]=x(p+32+(line<<1));

t[3]=x(p+33+(line<<1));

if(shift<=7)

{

t[0]=(t[0]<>(8-shift));

t[1]=(t[1]<>(8-shift));

}

else

{

t[0]=(t[1]<<(shift-8))|(t[2]>>(16-shift));

t[1]=(t[2]<<(shift-8))|(t[3]>>(16-shift));

}

SendData(t);

if(line<8)

P1=~(1<

else

P2=~(1<<(line-8));

}

}

void delay()

{

unsigned char i,j;

for(i=0;i<4;i++)

for(j=0;j<100;j++)

;

}

void key()

{

if(!SET)

{

p=Matrix001;

shift=0;

}

else if(!ADD)

{

speed+=4;

}

else if(!SUB)

{

speed-=4;

if(speed<=1)

speed=1;

}

}

void init_t0()

{

TH0=-50000>>8; TL0=-50000;

TMOD|=0X01;

IE|=0X82;

}

void init_t1()

《16×16点阵LED字符显示器设计毕业论文初稿》

引言 LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。 LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法。 本文设计的是一个室内用16x16的点阵LED图文显示屏,图形或文字显示有逐字显示、向上滚动、向左滚动等显示方式。 它的优点:亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。

第一章设计要求与方案论证 1.1 设计要求 设计一个16×16点阵LED字符显示器,要求如下: 显示器采用AT89S52单片机作控制器,12MHz晶振,16×16点阵共阳LED显示器。16×16点阵LED字符显示器能显示“电气自动化”五个文字。显示方式可由S1、S2和S3选择,S1为逐字显示,S2为向上滚动显示,和S3为向左滚动显示。 1.2 系统基本方案的选择和论证 1.2.1 核心电路的选择 方案一:采用89C51单片机 采用89C51作为硬件核心,内部具有4KB Flash ROM存储空间,能运用于3V 的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具有ISP在线编程技术,当在对电路进行调试时,由于程序的过错修正或对程序的新增功能需要烧入程序时,对芯片的多次插拔会对芯片造成必定的损坏。 方案二:采用8051单片机: 8051单片机最早由Intel公司推出,内部具有4KB ROM存储空间。其后多家公司购买了8051的内核,使得以8051为内核的MCU系列单片机在世界上产量最大,应用也最广泛。有人推测8051可能最终形成事实上的标准MCU芯片。LG公司生产的GMS90系列单片机,与Intel MCS-51系列、Atmel 89C51/52,89C2051等单片机兼容,CMOS技术,高达40MHZ的时钟频率。应用于:多功能电话,智能传感器,电度表,工业控制,防盗报警装置,各种计费器,各种IC卡装置、DVD、VCD、CD-ROM。 方案三:采用AT89S52单片机 AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。该芯片且具备在线编程可擦除技术,当在对电路停止调试时,因为顺序的过错修正或对步伐的新删功能

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 ;行扫描信号

基于单片机的16乘16的点阵屏设计小彬

电子技术课程设计基于单片机的16×16点阵滚动屏设计 院(系)名称信息工程学院 专业班级 学号 学生姓名小彬 指导教师 2014年5月30日

基于单片机的16×16点阵滚动屏的设计 摘要 随着LED点阵屏显的技术日趋成熟,精致低功耗的点阵成为发展的一种趋势······本设计以单片机最小系统为核心,作为主控芯片。采用经济实惠的STC89C52系列单片机,来控制LED点阵电子显示屏的动态设计。16×16完全可以满足各种文字或单色图像,采用4块8×8点阵(SM421988共阴),采用阳码实现行输入(74hc595驱动),阴码实现列扫(74hc154列扫)。采用动态显示,使图像或文字能够实现静止、移入移出等多种显示方式。 基于C语言易植入,容易开发特点,采用C语言编程,文字图像取模用PCtoLCD2002取模软件。LED显示以其组构方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低等特点在车站、证券所、运动场馆、交通干道及各种室内、室外显示场合的信息发布,公益宣传,环境参数实时等等得到广范应用。 关键词:STC89C52,SM421988, 74hc595,74hc154, 点阵动态显示。 目录 1 绪论 ......................................................................................................................................... I 1.1课题描述 ......................................................................................................................... I 1.2基本工作原理及框图 ..................................................................................................... I 2 相关芯片及硬件电路设计 ..................................................................................................... I 2.1STC89C52芯片 .............................................................................................................. I 2.1.1 STC89C52的功能特性 ........................................................ 错误!未定义书签。 2.1.2 STC89C52的主要性能参数................................................................................. II 2.1.3 STC89C52最小系统电路 .................................................... 错误!未定义书签。 2.2点阵显示 ...................................................................................................................... I II 2.2.1 SM421988的功能特性.......................................................................................... I II

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点阵显示实验报告剖析

实验报告 实验名称: [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选择模块

LED16乘16电子显示器课程设计

目录 1. 前言................................................... 错误!未定义书签。 2. 方案设计............................................... 错误!未定义书签。 2.1. 系统功能要求...................................... 错误!未定义书签。 2.2. 硬件设计.......................................... 错误!未定义书签。 2.2.1. 8255A芯片................................... 错误!未定义书签。 2.3. 设计框图.......................................... 错误!未定义书签。 2.4. LED点阵介绍 ...................................... 错误!未定义书签。 2.5. LED显示方式 ...................................... 错误!未定义书签。 3. 测试与调试............................................. 错误!未定义书签。 4. 总结与体会............................................. 错误!未定义书签。 5. 程序清单............................................... 错误!未定义书签。 6. 参考文献............................................... 错误!未定义书签。

基于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周)修改毕业设计报告并整理装订 五、指导教师意见: 指导教师签名:年月日六、系部意见: 系主任签名:年月日 目录

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版

16X16LED点阵课程设计报告

清远职业技术学院课程设计报告 《4个16X16点阵LED电子显示屏》 姓名何渊乾 班级07电子(2)班 专业电子信息工程技术

报告主体参考《单片机课程设计指导》 一、功能设计要求 (3) 二、方案论证 (3) 三、系统硬件电路的设计 (4) 四、系统程序的设计 (6) 五、调试及性能分析 (7) 六、控制源程序清单 (7) 七、收获、体会、建议 (7) 八、焊接成品 (7) 九、附件 附件1 (8) 附件2 (15) 附件3 (15) 附件4 (16) 附件5 (17)

课题:4个16X16LED点阵电子显示屏 一、功能设计要求 设计一个能显示4个16X16点阵图文LED显示屏(由于经济问题,由4个8X8的LED 焊接成一个16X16的LED),要求能显示图形或文字,显示图形或文字应稳定、清晰,图形或文字显示有静止、左移或右移等显示方式。 二、方案论证 从理论上讲,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到想要的显示结果。这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。每个16X16的点阵共有256个发光二极管,显然单片机没有这么多端口。如果采用锁存器来扩展端口,那么按8位锁存器来计算,一个16X16的点阵需要256/8=32个锁存器。这个数字很庞大,因为这里仅仅是16X16的点阵,而在实际应用中的显示屏往往还要大得多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中,显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。 所谓动态扫描,简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(如16行)的同名列共用一套列驱动器。以16X16点阵为例,把所有同一行发光管的阳极连在一起,把所有同一列发光管的阴极连在一起(共阳的接法),先送出第一行发光管亮灭的数据并锁存,然后选通第一行使其点亮一定的时间,然后熄灭;再送出对应第二行的数据并锁存,然后选通第二行使其点亮相同的时间,然后熄灭……第十六行之后又重新亮第一行,这样反复轮回。当这样轮回的速度足够快(每秒24次以上)时,由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。 采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时,要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并行传输的方案是不可取的。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据逐位地传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序逐位地输出给列驱动器,只有当一行中的各列数据都已经传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间相对要长一些,在行扫描周期确定的情况下,行显示的时间就会缩短,以致会影响到LED的亮度效果。 解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方式来解决。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,可以归纳出列驱动器电路应具备的主要功能:对于列数据准备来说,应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示时间。

51单片机16X16LED点阵式汉字电子显示屏设计_毕业设计(论文)

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

基于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循环显示汉字汇编语言设计

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点阵,用于本次设计。

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”栏里面我们要填和左边“”栏里面一样的格式的状态符号,比如是

基于单片机的16×16LED点阵显示屏设计

编号 毕业设计(论文) 题目基于单片机的16×16LED点阵显示屏设计 二级学院电子信息与自动化学院 专业测控技术与仪器 班级测控一班 学生姓名丁徽徽 学号 11107030106 指导教师米曾真职称副教授 时间 2015年6月6日

目录 摘要 ................................................................................................................................................... I Abstract ............................................................................................................................................ II 第一章绪论. (1) 1.1 单片机的发展阶段 (1) 1.2 单片机的发展趋势 (1) 1.3 单片机的特点 (3) 1.4 LED简介 (4) 1.5 LED的特点 (5) 第二章功能要求及方案论证 (6) 2.1 功能要求 (6) 2.2 显示模块方案论证 (6) 第三章系统电路的硬件设计 (9) 3.1 设计框图 (9) 3.2 单片机的选择 (9) 3.3 AT89C51芯片简介 (10) 3.4 系统硬件电路的设计 (13) 第四章系统的程序设计 (22) 4.1程序的编写过程 (22) 4.2 程序设计流程图 (24) 第五章软件调试及硬件制作 (25) 5.1 软件调试及仿真 (25) 5.2 硬件制作 (28) 结束语 (29) 致谢 (30) 附录 (37) 附录A:16*16点阵显示屏设计程序 (37) 附录B:proteus ISIS 软件仿真图 (48) 附录C:供电以后16*16点阵实物效果图 (49) 附录D:元器件清单列表 (50)

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口

相关文档
最新文档