点阵显示汉字滚动图解

合集下载

最容易理解的点阵式12864LCD指令说明书

最容易理解的点阵式12864LCD指令说明书

点阵式128*64LCD显示原理(不带字库)

在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DO S前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的码。而剩下的低128位则留给英文字符使用,即英文的码。

那么,得到了汉字的码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示:

图1 “A”字模图

而中文的“你”在字模中的记载却如图2所示:

图2 “你”字模图

12864点阵型LCD简介

12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以显示8×4个(16×16点阵)汉字。管脚号管脚名称LEVER 管脚功能描述

1 VSS 0 电源地

2 VDD +5.0V 电源电压

3 V0 - 液晶显示器驱动电压

4 D/I(RS) H/L D/I=“H”,表示DB7∽DB0为显示数据

D/I=“L”,表示DB7∽DB0为显示指令数据

5 R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0

R/W=“L”,E=“H→L”数据被写到IR或DR

6 E H/L R/W=“L”,E信号下降沿锁存DB7∽DB0

点阵显示汉字滚动图解

点阵显示汉字滚动图解

点阵的汉字滚动实现其实很简单,用一句话概括就是:一边在行(列)上进行扫描,一遍循环依次取出显示代码输入到列(行)上。

以我们板上载有的8×8点阵为例,当要实现2个汉字的滚动时,我们把整个滚动的过程拆开,会发现每一次完整的滚动,点阵要显示2×8=16个状态。我们可以把两个汉字的行(或列)扫描代码通过字模提取软件提出后保存在数组里,然后顺序循环的去取数组里的数据放到行(或列)上就可。

我们用图示来解析一下整个过程。我们假设要显示两个汉字”人”和”天”的左右滚动。

首先我们假设在行和列的输入数据中,1代表亮,0代表灭。数组code里保存好从字模软件中按行提取出来的扫描码,假设code[15]=A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7(A代表“人”字的列扫描码,B代表“天”字的列扫描码)

思路是这样的:

第1个时段T1:(完整的汉字“天”)

时刻t0,R=0000_0001,L=A0,R0那一列显示;、

时刻t1,R=0000_0010,L=A1,R1那一列显示;

时刻t2,R=0000_0100,;L=A2,R2那一列显示;

…….

时刻t7,R=1000_0000,;L=A7,R7那一列显示;

然后又回到时刻t0的扫描状态,循环扫描。只要在这个T1时间段内按这样扫描的话,就形成了A0—A7所代表的数据,即汉字“人”

第2个时段T2:(开始滚入“天”字)

时刻t0,R=0000_0001,L=A1,R0那一列显示;、

时刻t1,R=0000_0010,L=A2,R1那一列显示;

点阵式汉字LED显示屏电路原理与制作(精)

点阵式汉字LED显示屏电路原理与制作(精)

点阵式汉字LED显示屏电路原理与制作

引言

随着现代科技的不断发展,点阵式汉字LED显示屏已经成为了人们常见的显示设备之一。它的使用范围广泛,包括交通信号灯、信息传递广告牌、计数器以及各种显示屏幕等。本文将介绍点阵式汉字LED显示屏的电路原理与制作方法。

电路原理

点阵式汉字LED显示屏电路由LED点阵驱动、字符编码、汉字存储等部分组成,其中最重要的是LED点阵驱动电路。LED点阵驱动电路的主要作用是将字符编码与点阵对应,控制LED点阵的纵横排列亮灭,从而完成汉字、数字和符号的显示。

LED点阵驱动原理

一般的LED点阵由数个单色LED灯组成,每个LED灯都是一对正负极相接的二极管。在LED点阵中,各个LED灯的安装形式分为共阳和共阴两种。如果LED 点阵的共阳端和各LED灯的阳极相接,共阴端和各LED灯的阴极相连接,则属于共阳形式。反之,如果LED点阵的共阴端和各LED灯的阴极相接,共阳端和各LED灯的阳极相连接,这种连接形式就属于共阴。

在LED点阵驱动电路中,常用的联系方式是行列驱动方式。行驱动是指将某一行的LED灯全部亮起,列驱动则是指依次将某一列的LED灯全部亮起。在LED点阵驱动电路中,使用逐行扫描和逐列扫描驱动方式。逐行扫描方式就是将控制信号送到一个行选通器中,由行选通器依次将行选通信号输入到LED点阵中,显示出字符内容;逐列扫描方式就是将控制信号送到一个列选通器中,由列选通器依次将列选通信号输入到LED点阵中,显示出字符内容。

字符编码的原理

汉字是由笔画组成的字符,每个汉字都有自己的字符编码。在计算机内存中,每个汉字的编码都是由二进制数字组成的,这些数字被称为“汉字编码”。汉字的编码方式有多种,常用的有GB2312、GB18030、Unicode、UTF-8等。在LED点阵驱动电路中,需要将字符编码和LED点阵对应起来,完成LED点阵的控制。

16×16LED点阵的内部结构及工作原理

16×16LED点阵的内部结构及工作原理

16×16LED点阵的内部结构及工作原理每一个字由16行16列的点阵组成显示。即国家标准汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。这里我们以“高”字说明,如图3-1所示。图3-1 16*16LED汉字显示用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。一般把它拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00—p07口。方向为p00到p07 ,显示汉字“高”时,p02点亮,由上往下排列,为p0.0 灭,p0.1 灭, p0.2 灭, p0.3 灭, p0.4 灭, p0.5 亮,p0.6灭,p0.7 灭。即二进制00000100,转换为16进制为 04h。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。然后单片机转向上半部第二列,仍为p01点亮,为00000100,即16进制04h.这一列完成后继续进行下半部分的扫描,p20点亮,为二进制00000010,即16进制02h.依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“高”的扫描代码为:0xA0,0x00, 0x60,0xFF, 0x20,0x82, 0x30,0x84, 0x2E,0xBC, 0x2E,0xB4, 0xAA,0xA4, 0x6B,0xE4, 0x2A,0xA4, 0x2B,0xE4, 0x2E,0xBC, 0x24,0x92, 0x28,0x89, 0x30,0xFE, 0x20,0x02, 0x40,0x01,由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。不过现在有很多现成的汉字字模生成软件,就不必自己去画表格算代码了。

88点阵显示汉子和数字

88点阵显示汉子和数字

湖南工业大学

课程设计

资料袋

电气与信息工程学院(系、部)2016~2-17 第 1 学期课程名称单片机应用系统指导教师职称副教授

学生姓名未知专业班级电气工程及其自动化学

题目8*8LED点阵显示文字_____________________

成绩起止日期2016 年11 月21 日~2016 年12 月2 日

目录清单

湖南工业大学

课程设计任务书

20 16—20 17第一学期

电气与信息工程学院电气工程及其自动化专业1404 班级课程名称:单片机应用系统____________________

设计题目:8*8LED点阵显示文字______________________

指导教师(签字):年月日系(教研室)主任(签字):年月日

(单片机应用系统)

设计说明书

8*8LED点阵显示文字

起止日期:2016 年11月21 日至2016年12 月2日

学生姓名哈哈

班级电气工程0000

学号000000000

成绩

指导教师(签字)

电气与信息工程学院(部)

2016年12月7日

目录

第一章系统概述 (1)

1.1设计任务及目的 (1)

1.2 设计发展前景 (1)

第二章系统硬件设计与分析 (3)

2.1 复位电路 (3)

2.2 晶振电路 (3)

2.3 显示电路 (4)

第三章程序设计 (6)

3.1 汉子与数字的编码 (6)

3.2 定时程序 (6)

3.3 完整程序 (6)

第四章软件仿真与测试 (11)

4.1 滚动循环显示 (11)

4.2 逐字切换显示 (11)

第五章总结 (13)

参考文献 (14)

附录(单片机源程序) (15)

第一章系统概述

88点阵LED显示屏的原理详解及汉字代码

88点阵LED显示屏的原理详解及汉字代码

首先我们看一下8*8led显示屏?的原理

从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;要实现显示图形或字体,只需考虑其显示方式。通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。例如:要实现一根柱形的亮法,如图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。一根横柱:对应的行置0,而列则采用扫描的方法来实现

下图是4个8*8LED组成的显示屏。

这里我把点阵LED显示屏制作的电路原理分成两个部分来介绍即显示屏电路和显示屏驱动电路。

一、显示屏电路

本人用的是共阴极的8*8点阵屏,在市场上是比较容易买到,下图是8*8点阵屏的实物图。

点阵屏有两个类型,一类为共阴极(左),另一类则为共阳极(右),下图给出了两种类型的内部电路原理及相应的管脚图。

LED阵列的显示方式是按显示编码的顺序,一行一行地显示。每一行的显示时间大约为4ms,由于人类的视觉暂留现象,将感觉到8行LED是在同时显示的。若显示的时间太短,则亮度不够,若显示的时间太长,将会感觉到闪烁。本文采用低电平逐行扫描,高电平输出显示信号。即轮流给行信号输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态,其它行都处于熄灭状态。

为了方便调试本文把4块8*8组成的16*16的点阵屏的行信号扫描输出管脚和列信号显示输出管脚分别引到显示屏的两边。

LED点阵显示程序(带汉字移动)

LED点阵显示程序(带汉字移动)

LED点阵显示程序(带汉字移动)#include unsigned int zimo,xx=0; //zimo是字模计数器,xx为分屏显示的时候的字数。unsigned char yid,h; //yid为移动计数器,h为行段计数器unsigned char code hanzi[]; //汉字字模unsigned char BUFF[18],BUFF2[18]; //左移显示的缓存void qing(void); void xianshi(void);void fen(void); void zuo(void);void in_data(void); //调整数据void rxd_data(void); //左移发送数据void out_rxd(unsigned char *d); //分屏、上移发送数据char code sw[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x00}; /*8行段码*//* 百强电子世界网: *//***********主程序******************/void main(void){ unsigned char ee;SCON=0;P1=0;yid=0;zimo=0;while(1){ fen(); //分屏显示for(ee=30;ee>0;ee--)//清屏幕3秒{qing();}zuo(); //左移显示for(ee=30;ee>0;ee--){qing();}}}/**********清屏幕*******************/void qing (void){ unsigned char zz,xx=0x0ff;for (zz=33;zz>0;zz--){out_rxd(&xx);}P1=0xff; P1=0; //锁存为高,74HC595锁存信号 P2=0; //清74LS138的使能端} /**********分屏显示***********/void fen(void){ do{ xianshi(); }while(xx++<=5); //调用单屏显示xx=0;}/************单屏显示*************/void xianshi(void){ unsigned char ii,jj; unsigned int kk,aa;for (kk=500;kk>0;kk--) //每屏显示500次{for(ii=1;ii<16;ii+=2) //每个汉字分8行扫描{for (jj=0;jj<8;jj++) //每次要发送8个汉字的2个字节,发送8次{ aa=(xx*8+jj)*32+ii;out_rxd(&hanzi[aa]); //从串口输出第1个字的第1字节。out_rxd(&hanzi[aa-1]); //从串口输出第1个字的第1字节。}for (jj=0;jj<8;jj++) //每次要发送8个汉字的2个字节,发送8次{ aa=(xx*8+jj)*32+ii;out_rxd(&hanzi[aa+16]); //从串口输出第1个字的第17字节。out_rxd(&hanzi[aa+15]); //从串口输出第1个字的第18字节}P2=0x0ff;P1=0xff; P1=0; //锁存为高,74HC595锁存信号 P2=sw[h]; //输出行信号h++; //行加一if(h==8)h=0;}}}/***************左移显示************/void zuo(void){ unsigned char i,d=5; //d为移动的时候一个汉字的扫描显示次数xianshi(); //调用单屏显示while(zimo<=1450){while(yid<16) //数据移位。{for(i=0;i{for(h=0;h<8;h++)

实验四 16X16点阵LED实验

实验四   16X16点阵LED实验

实验四 16X16点阵LED实验

一.实验目的

1.了解点阵显示的原理及控制方法;

2.学会使用16X16点阵LED,通过编程显示不同的字符。

二.实验原理及相关电路

16X16点阵了的由16X16列共256个发光二极管紧密排在一起构成,程序控制每个像素点(发光二极管)的亮灭,就能用来显示汉字或者图形。

LED的每一行的16列发光二极管都由一个4位的16进制数来控制,从左往右由低位到高位。将每一个字的显示都用16个16位进制数表示,称为字模。

本实验,分别控制LED灯行的动态扫描,高电平为灭低电平为点亮;用16进制数控制LED灯每一列的亮灭,高电平为亮,低电平为灭。

为了实现显示屏上字的滚动显示,则需要将所显示的字向右移,并取下一个字的最右边一位补充到显示屏的最左边,形成动态滚动的效果。

三.实验内容及程序

1.用单片机的端口控制16*16点阵的行与列,在点阵LED显示屏上显示“单”。

#include

void Delayms(unsigned int del)

{

unsigned int j;

while(del--)

for(j=0;j<1000;j++); } //定义Delaym函数

void IOInit() //初始化端口

{

AD1PCFG= 0xFFFF; //全部设置为数字

TRISD=TRISB= 0x0000; //D和B端口全部设为输出

TRISE=TRISF= 0x0000; //E和F端口全部设为输出

}

int main(void)

{

unsigned int state_E,state_F,temp_E,temp_F; IOInit();

单片机课程设计_16×16点阵式汉字显示

单片机课程设计_16×16点阵式汉字显示

目录

摘要 (1)

Abstract (2)

1设计原理 (3)

1.1 MCS-51单片机的结构及编程方法 (3)

1.2 16*16点阵LED原理 (5)

1.3 3-8译码器原理 (6)

2.设计方案介绍 (7)

2.1 设计总体思路 (7)

2.2 与题目相关的具体设计 (7)

2.3程序设计流程图 (8)

3.源程序,原理图和仿真图 (9)

3.1程序清单(见附录) (9)

3.2电路图 (9)

3.2.1电路原理图 (9)

3.2.2电路图分析 (9)

3.3仿真图 (10)

4性能分析 (11)

5.总结和心得 (12)

6.参考文献 (13)

附录:程序代码 (14)

摘要

LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。文章给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。在负载范围内, 只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。

关键词:MCS-51;LED;单片机

Abstract

As a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode). The LED dot-matrix display board can display the number or sign, and it is usually used to show time, speed, the state of system etc. This paper introduces a kind of simple 16x16 LED display screen design process based on MCS-51 single chip minicomputer . The detail hardware scheme, software flow and assemble language programmer design and so on is followed. The display part can be cascaded to meet the need. The practice proves the design is low-cost and effective.

8乘8(8x8)点阵汉字显示

8乘8(8x8)点阵汉字显示

单片机课程设计

题目:8*8点阵汉字显示器

专业班级:******

姓名:******

学号:*********

一.摘要:

用TOP-23088DH-U 8*8点阵块设计制作一个8*16点阵汉字显示器。通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供行数据,C口提供扫描列信息,通过74LS154译码后进行扫描,当点阵的行接高电平,列为低电平时,同时选通,则在该点的LED点亮。由于实验箱上所提供的驱动电流太低,不足以点亮二极管,所以在电路中增加一个74LS254芯片,以提供点亮LED 所需的驱动电流。同时在P1.0-P1.2口接3个开关,形成按键控制功能选择。

点阵模块图如下:

如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。当扫描到某列,则该列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。

点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。

二.设计任务和要求:

(1)基本要求:

1.能显示8*8的汉字,用两个8*8点阵,显示“大连”。

2.通过键盘控制可以改变显示的汉字与图形。

3.通过键盘控制,可以实现彩灯控制功能,发光管从内向外周期显示和相反显

示。

(2)发挥要求:

1.增加驱动电路,提高显示亮度。

三.方案选择和论证:

3.1:方案论证:

控制模块由8051、74LS154,8255组成,其中,采用51单片机制做一个最小系统,包含有时钟信号电路、复位电路等,154是4线转16线译码器,4线端接8255的PC.0-PC.3口,16线端低电平有效,控制点阵的16列,245是对列的驱动,8255的PA.0-PA.7用于将行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。显示模块由2块8×8点阵组成,通过相互并联转换成16×8点阵。

点阵式LED显示汉字

点阵式LED显示汉字

单片机课程设计

题目8×8点阵式LED显示汉字学院名称电气工程学院

指导老师黄智伟朱卫华

班级电子信息工程061班

学号20064470120

学生姓名胡含

二00九年六月

点阵式LED显示汉字

一、实验目的

利用8X8点阵循环移动显示“胡”字

二、芯片介绍

AT89S51是美国ATMEL公司生产的低功耗、高性能CMOS 8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。

主要性能参数:

※与MCS-51产品指令系统完全兼

※4k字节在系统编程(ISP)Flash

闪速存储器

※1000次擦写周期

※4.0—5.5V的工作电压范围

※全静态工作模式:0Hz~33MHz

※三级程序加密锁

※128×8字节内部RAM

※ 32个可编程I/O口线

※ 2个16位定时/计数器

※ 6个中断源

※全双工串行UART通道

※低功耗空闲和掉电模式

※中断可以从空闲模式唤醒系统

※看门狗(WDT)及双数据指针

※掉电标识及快速编程特性

※灵活的在系统编程(ISP—字节或

页写模式)

AT89S51功能特性概述:

AT89S51提供以下标准功能:4k字节Flash闪速存储器,128×8字节内部RAM,32个可编程I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电模式保存RAM中的内容,但振荡器停止工作并禁止其他所有硬件工作直到下一个硬件复位。

LED16×16点阵汉字显示设计(VHDL版)

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

8x8LED点阵汉字显示设计

8x8LED点阵汉字显示设计

重庆文理学院

基于单片机

的课程设计

题目:8x8LED点阵汉字显示设计

学院:电子电气工程学院

专业:电子信息科学与技术[职]

学生姓名:罗成芳、黄普娟

学号: 201020084027、201020084025

指导教师:杨保亮

2010级电子信息科学与技术[职]

二○一三年三月十四日

8x8LED点阵汉字显示设计

摘要

本文研究了基于P89C51单片机LED8×8点阵显示屏的设计并运用Proteus 软件进行原理图绘制,运用Keil软件进行仿真和调试。主要介绍了LED8×8点阵显示屏的硬件电路设计、c语言程序设计与调试、Proteus软件绘制原理图和实物制作等方面的内容。本显示屏的设计具有体积小、硬件少、电路结构简单及容易实现等优点。能帮助广大电子爱好者了解8x8点阵汉字显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。利用单片机来设计的系统,既能实现系统所需的功能,也可以满足计数的准确性、迅速性,并且电路简单、操作简单、通用性强。

目录

1 绪论 (1)

1.1 前言 (1)

1.2 选题背景 (1)

1.3设计要求 (2)

1.4此次设计研究的主要内容应解决的问题 (2)

2 总体设计方案 (2)

2.1 硬件电路组成 (2)

2.2 系统各单元电路设计 (3)

2.2.1 STC89C52单片机最小系统 (3)

2.2.2 按键控制电路 (4)

2.2.3 三极管驱动电路 (4)

2.2.4 8×8 LED点阵介绍 (5)

2.3 字符的点阵显示原理及字库代码获取方法 (6)

3 程序设计 (7)

点阵显示屏滚动显示程序

点阵显示屏滚动显示程序

逐行扫描,24M晶振脉冲,5V直流供电。16*64点阵滚动显示,滚动速度可调,从最快速到最慢速设置30级变速,以实现不同场合下的使用。显示内容可切换,可以将需要显示的不同内容分段写入单片机,然后可以自动定时切换内容,或者设置为手动切换显示内容。可以脱机工作,方便使用,不用总是连接电脑,板子上留有DS18B20数字温度传感器和1302时钟芯片的板载接口,可以实现时间、万年历、温度的实时滚动显示。留有备份电池接口实现掉电信息不丢失、时间不乱。设置八个轻触按钮,方便操作,预留有功能按钮可通过编程实现不同的操作#include #define uchar unsigned char#define uint unsigned int//#define SPEED 4 //移动数度快慢值uchar col,disrow;uint word;uchar SPEED=2;uchar xuan=0;uchar code HZ[5][960];uchar BUFF[10]; //buff[]为要显示的数字*2+2void loadoneline(void);void sendoneline(void);void delay(void);void key(void);/*******根据列指针,由双字节合并为单字节的子程序模块************/uchar two_onebyte(uchar h1,uchar h2){uchar temp,tempcol;if(col<8) tempcol=col;else tempcol=col-8;temp=(h1<>(8-tempcol));temp=255-temp;return temp;}/****************************主函数***************************/void main(void){uchar i;col=0;word=0;while(1){while(col<16)// 循环16次,点亮并移动一个汉字{for(i=0;i{key();for(disrow=0;disrow<16;disrow++)//扫描16行{loadoneline();//装载一线点阵数据sendoneline();//发送一线点阵数据P0_4=1; //消影。 E接在P2_4 ,=1; P0=0x10+disrow;// 点亮屏幕P0=0x20+disrow;}}col++; //列指针递增}col=0;word=word+32;// 一个汉字移动后,指向下一个汉字if(word>=832)word=0;// 移动50个汉字后,重新开始}}/**************装载一线点阵数据****************/void loadoneline(void){uchar s;for(s=0;s<5;s++) //s为要显示的数字+1 {BUFF[2*s]=HZ[xuan][word+32*s+2*disrow];BUFF[2*s+1]=HZ[xuan][word+1+32*s+2*disrow];}}/***************发送一线点阵数据*******************/void sendoneline(void){char s;uchar inc;if(col<8)inc=0;else inc=1;for(s=9+inc;s>=0+inc;s--) //s*2为要显示的数字+1{SBUF=~two_onebyte(BUFF[s],BUFF[s+1]);while(!TI);TI=0;}}void delay(void){uint i=1000;while(i--);}void key(void){P2_0=1;if(P2_0==0){delay();if(P2_0==0){while(!P2_0);if(SPEED>1)SPEED--;}}P2_1=1;if(P2_1==0){delay();if(P2_1==0){while(!P2_1);if(SPEED<30)SPEED++;}}P2_2=1;if(P2_2==0){delay();if(P2_2==0){while(!P2_2);if(xuan<4)xuan++;else xuan=0;col=0;word=0;}}P2_3=1;i

32x16点阵滚动显示

32x16点阵滚动显示

点阵(32x16)滚动显示

程序清单:

//****************************//

//取模方式:阴码,逆向,逐列式

//*****************************//

//****************************//

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit DS=P3^0;//595数据引脚定义

sbit SHCP=P3^1;

sbit STCP=P3^2;

sbit LDS=P1^2;//595列扫引脚定义

sbit LSHCP=P1^0;

sbit LSTCP=P1^1;

sbit K1=P3^5;//按键定义

sbit K2=P3^6;

sbit K3=P3^7;

uint zimuo;

uchar k=0,lies,shuj,sudu,liex,yid,tong,d=10;

//列扫数据,上选红色,下选绿色

uchar code liexuan[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x 80};

uchar code liexuana[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00};

//uchar code table[];

点阵式LED滚动汉字显示屏原理及设计思路

点阵式LED滚动汉字显示屏原理及设计思路

点阵式LED滚动汉字显示屏原理及设计思路

1.引言

点阵式LED组成的汉字显示屏在公共场所应用非常广泛。例如,车站发车时间提示、股票大厅中的股票价格显示板、商场的活动广告栏、候机厅的起飞时间表。点阵显示器的特点是可以按照需要的大小、形状和颜色进行组合,用单片机控制实行各种文字或图型的变化,达到广告宣传和提示的目的。

Proteus是一款新颖的嵌入式系统软硬件设计仿真平台,特别适用于单片机仿真,能够在线、实时仿真多种类型的单片机,诸如MCS-51系列单片机、PIC 单片机、AVR单片机等,能够像硬件仿真器一样进行软硬件调试,而没必要花钱去购买和维护价格不菲的仿真器,对于初学单片机的人来说,既减少了学习成本,又达到了良好的学习效果。

2.硬件电路设计

点阵式LED滚动汉字显示屏硬件电路设计框图如图1所示。电路包括单片机、电源电路、时钟电路、复位电路、驱动电路和LED点阵电路等。本设计的核心是利用单片机读取显示字型码,通过驱动电路对16×16 LED点阵进行动态列扫描,以实现汉字的滚动显示。本设计选用的单片机为ATMEL公司的AT89C52,显示屏采用16×16 LED点阵。电源电路通过变压整流元件为单片机和其他电路提供稳定的+5V工作电压。时钟电路是单片机的驱动电路,复位电路可在需要时,手动使单片机程序计数器复位清零。通过阳极驱动电路向16×16点阵送字型码,本设计采用74LS273。通过阴极驱动电路对16×16点阵进行列扫描,本设计采用74HC138。

图1 硬件电路设计框图

利用Proteus软件设计点阵式LED滚动汉字显示屏硬件电路原理图如图2

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

点阵的汉字滚动实现其实很简单,用一句话概括就是:一边在行(列)上进行扫描,一遍循环依次取出显示代码输入到列(行)上。

以我们板上载有的8×8点阵为例,当要实现2个汉字的滚动时,我们把整个滚动的过程拆开,会发现每一次完整的滚动,点阵要显示2×8=16个状态。我们可以把两个汉字的行(或列)扫描代码通过字模提取软件提出后保存在数组里,然后顺序循环的去取数组里的数据放到行(或列)上就可。

我们用图示来解析一下整个过程。我们假设要显示两个汉字”人”和”天”的左右滚动。

首先我们假设在行和列的输入数据中,1代表亮,0代表灭。数组code里保存好从字模软件中按行提取出来的扫描码,假设code[15]=A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7(A代表“人”字的列扫描码,B代表“天”字的列扫描码)

思路是这样的:

第1个时段T1:(完整的汉字“天”)

时刻t0,R=0000_0001,L=A0,R0那一列显示;、

时刻t1,R=0000_0010,L=A1,R1那一列显示;

时刻t2,R=0000_0100,;L=A2,R2那一列显示;

…….

时刻t7,R=1000_0000,;L=A7,R7那一列显示;

然后又回到时刻t0的扫描状态,循环扫描。只要在这个T1时间段内按这样扫描的话,就形成了A0—A7所代表的数据,即汉字“人”

第2个时段T2:(开始滚入“天”字)

时刻t0,R=0000_0001,L=A1,R0那一列显示;、

时刻t1,R=0000_0010,L=A2,R1那一列显示;

时刻t2,R=0000_0100,L=A3,R2那一列显示;

…….

时刻t7,R=1000_0000,L=B0,R7那一列显示;“天”字第1列

然后又回到时刻t0的扫描状态,循环扫描。只要在这个T2时间段内按这样扫描的话,就形成了A1—A7和B0所代表的数据,如下图:

第3个时段T3:

时刻t0,R=0000_0001,L=A2,R0那一列显示;、

时刻t1,R=0000_0010,L=A3,R1那一列显示;

时刻t2,R=0000_0100,;L=A4,R2那一列显示;

…….

时刻t6,R=1000_0000,L=B0,R6那一列显示;“天”字第1列

时刻t7,R=1000_0000,L=B1,R7那一列显示;“天”字第2列

然后又回到时刻t0的扫描状态,循环扫描。只要在这个T3时间段内按这样扫描的话,就形成了A1—A7和B0--B1所代表的数据,如下图:

第4个时段T4:

时刻t0,R=0000_0001,L=A2,R0那一列显示;、

时刻t1,R=0000_0010,L=A3,R1那一列显示;

时刻t2,R=0000_0100,;L=A4,R2那一列显示;

…….

时刻t5,R=1000_0000,L=B0,R5那一列显示;“天”字第1列

时刻t6,R=1000_0000,L=B1,R6那一列显示;“天”字第2列

时刻t7,R=1000_0000,L=B2,R7那一列显示;“天”字第3列

然后又回到时刻t0的扫描状态,循环扫描。只要在这个T4时间段内按这样扫描的话,就形成了A1—A7和B0—B2所代表的数据,如下图:

按如上的取数方法,我们依次可得到如下时间段的显示:第5个时段T5:

第6个时段T6:

第7个时段T7:

第8个时段T8:

第9个时段T9:(完整的“天”字)

时刻t0,R=0000_0001,L=B0,R0那一列显示;、

时刻t1,R=0000_0010,L=B1,R1那一列显示;

时刻t2,R=0000_0100,;L=B2,R2那一列显示;

…….

时刻t5,R=1000_0000,L=B5,R5那一列显示;

时刻t6,R=1000_0000,L=B6,R6那一列显示;

时刻t7,R=1000_0000,L=B7,R7那一列显示;

第10个时段T10:(开始滚入“人”字)

时刻t0,R=0000_0001,L=B1,R0那一列显示;、

时刻t1,R=0000_0010,L=B2,R1那一列显示;

时刻t2,R=0000_0100,;L=B3,R2那一列显示;

…….

时刻t5,R=1000_0000,L=B6,R5那一列显示;

时刻t6,R=1000_0000,L=B7,R6那一列显示;

时刻t7,R=1000_0000,L=A0,R7那一列显示;“人”的第1列

第11个时段T11:

时刻t0,R=0000_0001,L=B2,R0那一列显示;、

时刻t1,R=0000_0010,L=B3,R1那一列显示;

时刻t2,R=0000_0100,;L=B4,R2那一列显示;

…….

时刻t5,R=1000_0000,L=B7,R5那一列显示;

时刻t6,R=1000_0000,L=A0,R6那一列显示;“人”的第1列时刻t7,R=1000_0000,L=A1,R7那一列显示;“人”的第2列

第12个时段T12:

时刻t0,R=0000_0001,L=B3,R0那一列显示;、

时刻t1,R=0000_0010,L=B4,R1那一列显示;

时刻t2,R=0000_0100,;L=B5,R2那一列显示;

…….

时刻t5,R=1000_0000,L=A0,R5那一列显示;“人”的第1列时刻t6,R=1000_0000,L=A1,R6那一列显示;“人”的第2列时刻t7,R=1000_0000,L=A2,R7那一列显示;“人”的第3列

第13个时段T13:

第14个时段T14:

相关文档
最新文档