手写点阵屏设计硬件原理图

合集下载

书写点阵屏设计

书写点阵屏设计

LED点阵书写显示屏摘要本系统以51单片机为核心,设计并制作了一个基于16×16点阵LED模块显示屏。

该点阵可以实现扫描微亮和显示点亮两种工作模式,能够通过自制光笔检测在点阵处于扫描微亮状态时获取其行列坐标信息,并能通过液晶显示出来,同时能依据功能要求控制检测点处LED的亮灭,在屏幕上实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能,并且通过按键可以实现不同功能之间的切换。

设计方案运用了74HC164驱动点阵的行和运用74HC595驱动点阵的列,通过单片机的控制实现各种显示功能。

关键词:16×16点阵LED显示屏、单片机、74HC164、74HC595、光笔目录一、设计任务及要求 (2)1.1设计任务 (2)二、方案论证与比较 (2)2.1核心控制模块 (2)2.2光笔设计的方案选择 (2)2.3人机交互模块 (2)三、系统硬件设计 (3)3.1系统的总体设计 (3)3.2单元模块的设计及参数计算 (3)(1)光笔的设计及单元参数的设计 (3)(2)16×16LED点阵的连接及驱动控制电路 (4)(3)键盘的使用及设计 (5)四、软件设计 (6)4.1 主程序流程图 (6)图4.1 系统菜单程序图 (6)图4.2.2程序功能流程图 (7)4.2 子程序流程图 (7)图4.2所示为光笔检测流程图 (7)4.3 程序 (8)五、测试结果 (10)六、总结 (10)附表一 (11)一、设计任务及要求1.1设计任务设计并制作一个基于16×16点阵LED 模块的书写显示屏,其系统结构如图1所示。

在控制器的管理下,LED 点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可见的显示点亮模式下;当光笔触及LED 点阵模块表面时,先由光笔检测触及位置处LED 点的扫描微亮以获取其行列坐标,再依据功能需求决定该坐标处的LED 是否点亮至人眼可见的显示状态,从而在屏上实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。

LED点阵原理图

LED点阵原理图

LED点阵书写显示屏的设计2011-12-23 22:51:14 来源:21IC关键字:STC89C58LED双色点阵红外光电三板管光笔近年来,点阵LED显示屏利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,已成为众多显示媒体以及户外作业显示的电子工具,广泛地应用于车站、宾馆、金融、证券、邮电、体育等广告发布或交通运输等行业。

目前LED显示屏的设计已经有多种方法可以实现,本设计是基于STC89C58单片机利用自制的光笔中红外光电三极管检测光笔触及位置处红色LED灯的点亮,计算出光笔位置的行列坐标,并根据按键设置的不同工作模式控制LED显示,从而实现点亮、划亮、反显、清屏、笔画拖动、轮流显示等功能。

1 系统设计方案用双色LED点阵(红色和绿色)模块组合成32×32的LED点阵屏。

其中红色LED作微亮扫描检测用,绿色LED作显示用,用红外光电三极管自制光笔。

在检测时依次点亮红色LED,当点亮到某个LED时,如果此时光笔放在该LED时,这时红外光电三极管的阻值会发生变化,通过相应的检测电路可以得出一个高低电平的变化,单片机检测到信号变化时就可以判断光笔的当前位置。

该方案简单易行,对光笔位置判断的灵敏度较高,抗外界干扰能力强。

采用双色点阵和红外光电三极管能够有效地减少环境可见光和显示LED(绿色)所发的光线对光笔中光电三极管的干扰。

2 系统结构及单元模块设计2.1 系统总体框图系统主要由微处理器STC89C58,32×32双色LED点阵显示、光笔及检测电路、外界光照强度检测电路、按键输入电路、液晶显示模块等几个部分组成。

系统硬件结构框图如图1所示。

单片机STC89C58片内有1 KB的片外RAM,能够满足保存四屏显示信息要求,该单片机性价比很高。

系统原理图如图2所示。

2.2 光笔及检测电路用红外光电三极管自制光笔,光笔检测电路如图3所示。

汉字点阵显示屏

汉字点阵显示屏

1概述目前,可编程字符图案显示应用十分广泛,在火车站、飞机场、商场、体育馆等都配有这种字幕显示屏。

一个屏幕内的像素点越多,其所能描述的图像和文字就越逼真。

当然,所用发光器的数量也就越多,耗电及总成本也会剧增,所以设计者应全面考虑,从而设计出最适合的方案。

当然,在这里,我们并不是使用编程来实现汉字的显示。

我们只是简单来模拟一下,学习如何利用LED点阵来显示汉字。

在本次设计中,主要利用了集成移位寄存器74LS199来实现并行数据的设置和输出,并将设置的数据编码传送到LED点阵序列,以实现指定行的二极管发光,从而可以得到一个完整的汉字。

同时还利用NE555设计出一定频率的CP脉冲输出信号,使人眼观察到一个稳定的汉字。

2方案认证8*9汉字点阵显示屏设计主要从如下两方面考虑。

方案一:方案原理简单说明:利用CB555振荡器得到一定频率的序列脉冲信号,供移位寄存器工作使用。

移位寄存器主要利用其并行置数的功能,实现汉字序列的暂时存储,当CP 端有序列脉冲信号输入时,并行输出存储的二进制代码,以实现指定行的二极管发光。

通过控制9片移位寄存器的工作与否,实现点阵列的控制。

方案二:方案原理简单说明:同方案一,CB555振荡器产生一定频率的序列脉冲信号。

九进制循环计数器控制九进制自然序列的循环,通过4线-16线译码器实现多通道的选择,从而控制移位寄存器的工作状态。

移位寄存器使用并行置数,并行输出地功能,将设置的二进制编码送入到由发光二极管构成的LED 汉字显示屏。

通过计数器的循环计数实现循环扫描汉字显示屏,从而循环实现指定行的二极管发光,再通过控制移位寄存器的工作与否,实点阵现列的循环。

控制一定的脉冲频率,就可以在显示屏上观察到一个稳定的汉字。

最终方案确定为方案二。

方案二切实可行,且经济合理。

3元器件的功能介绍及单元电路的设计3.1CB555振荡器如图3.1所示为CB555振荡器的管脚排列。

图3.1 CB555振荡器的管脚排列性能参数:CB555用于单稳态定时电路,可构成多谐振荡器,且CB555构成的振荡器最高频率约为500kHz。

16×16点阵汉字设计-左移-右移-翻页-上移-下移-多种方式

16×16点阵汉字设计-左移-右移-翻页-上移-下移-多种方式

一、设计依据16x16点阵需要32个驱动,分别为16个列驱动及16个行驱动。

每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。

每次显示一行后再显示下一行。

本设计是利用实验仪上的16×16 LED点阵显示器,编写显示英文、汉字字符程序并进行显示,最好能移动显示。

要求在本设计过程中,通过设计合适的硬件电路及对应的软件,实现上述的控制过程,同时写出合格的课程设计说明书。

二、要求及主要内容1.硬件电路设计(1)完成89C51应用系统设计(晶振电路,上电复位电路等)(2)利用单片机I/O口或以扩展锁存器的方式控制点阵显示。

掌握单片机与16×16点阵块之间接口电路的设计方法。

2.程序设计掌握单片机与16×16点阵块之间接口电路的设计方法及编程要求完成主程序的设计及对应的子程序设计。

3.选芯片, 元件按设计连线4.完成子程序调试5.完成总调试三、途径和方法综合运用单片机和电子电路相关知识,实现本次设计。

进行程序设计时先画流程图再进行程序设计。

子程序调试按以下步骤进行:(1)实验板与PC机联机。

(2)利用实验系统16×16点阵实验单元,以两种方式控制点阵显示。

要求编制程序实现汉字点阵循环显示。

点阵时钟摘要LED点阵显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。

它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。

并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。

LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。

LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。

文章给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。

点阵LED显示屏的原理与制作硬件

点阵LED显示屏的原理与制作硬件

点阵LED显示屏的原理与制作汉字显示屏到处可见,被广泛应用于与汽车报站器,广告屏等。

(图1)网上也有很多关于汉字显示屏的制作原理的材料,本文是本人参考《例说51单片机(C语言版)》(人民邮电出版社)并在其基础上加以修改制作成功的单个字16*16LED显示屏的一些经验总结。

本文中的16*16LED显示屏是采用4块8*8LED合并而成的。

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

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

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

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

(图5)LED阵列的显示方式是按显示编码的顺序,一行一行地显示。

每一行的显示时间大约为4ms,由于人类的视觉暂留现象,将感觉到8行LED是在同时显示的。

若显示的时间太短,则亮度不够,若显示的时间太长,将会感觉到闪烁。

本文采用低电平逐行扫描,高电平输出显示信号。

即轮流给行信号输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态,其它行都处于熄灭状态。

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

Protel原理图如下:(图6)如图6 所示的原理图中的Si(i=1,2,3,…,16) 代表行扫描信号输出,Di(i=1,2,3,…,16)代表列显示信号输出。

实物电路图的正反面如下:二、显示屏驱动电路显示屏驱动电路的原理图如下:(图7)(图8)显示屏驱动电路主要由主芯片控制电路、电源电路、控制信号放大电路等组成。

1、主芯片控制电路该部分电路主要由AT89S52和74LS154组成。

单片机的P0和P2号控制显示信号的输出,P1号的低4位控制74LS154的译码输入,从而控制扫描信号的输出。

89S51单片机的16×16点阵汉字显示的设计

89S51单片机的16×16点阵汉字显示的设计

• 134•针对LED 点阵显示汉字需要占用单片机多个并行口的问题,提出了基于89S51单片机的16×16点阵汉字显示设计,利用74HC138和74HC595对单片机并行口进行扩展,从硬件设计、软件设计方案等关键环节,分别进行了详细讨论。

随着单片机技术的发展,LED 点阵屏作为文字和图形显示的新型媒体,由于亮度高、耗能低、色彩鲜艳、寿命长等特点,迅速出现在学校、医院、车站等场所。

但LED 点阵显示需要占用单片机多个并行口,而通用移位寄存器74HC595T 和译码器74HC138,可以实现对单片机IO 的扩展,从而节约了大量的并口资源。

本设计详细介绍了74HC138和74HC595芯片在1616×16点阵LED 显示屏的应用。

1 电路总体设计16×16点阵汉字显示电路如图1所示,它由一片16×16点阵LED 显示屏、两片74HC138构成的行控制单元、两片74HC595构成的列控制单元及AT89S51单片机构成。

列控制单元用于输入数据,而行控制单元用于逐行扫描。

图1 系统总体结构1.1 16×16点阵工作原理本设计采用的是共阴16×16点阵显示模块。

它由256只发光二极管按一定规律安装成方阵,从内部结构如图2所示,可以看出,总共有16行和16列,每行的发光二极管阴极相连,每列的发光二极管阳极相连。

在行和列的交叉处有一个发光二极管,要使其中任一个二极管发光,则其对应行为低电位,而对应的列为高电位即可。

1.2 行控制单元行控制单元的控制原理是:先使第一行Y 0为低电平,其余行为高电平,显示第一行数据;然后第二行Y 1为低电平,其余行电平,显示第二行数据。

按照这个规律每行以较快的速度不断进行刷新,由于发光二极管的余辉效应和人的视觉暂留现象两个因素,给人的印象就是一组静态的数据,不会产生闪烁感。

动态显示能够节省I/O 端口,且功耗低。

本设计采用74HC138三位译码器。

1608点阵屏原理图+程序+实物照片

{0x22,0xAC,0xFF,0xA8,0x1C,0x01,0xFF,0x00}, //27利
{0x00,0x00,0x70,0xFD,0x70,0x00,0x00,0x00}, //28 !
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//29
{0x22,0xFC,0x21,0x3E,0x00,0x7E,0x42,0x7E}, //30加
void delay_ms(int z)
{
int x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
/****************************IO口镜像函数**************************************/
//用的字符码是以前的,这次硬件数据口和上次的相反,没有重新取模而是写了一个IO口镜像函数
{0x00,0x7E,0x81,0x81,0x81,0x42,0x00,0x00},//19 C
{0x00,0xFF,0x10,0x28,0x44,0x82,0x00,0x00}, //20 K
{0x00,0x00,0x70,0xFD,0x70,0x00,0x00,0x00}, //21 !
{0x08,0x10,0x20,0x10,0x08,0x04,0x08,0x10}, //22 ~
w=0xfe;for(j=0;<8;j++)
{
w=_cror_(w,1);
duan_port = mirror(~table[CHAR_NUM-1][j]);
wei_port2 = w;
delay_ms(1);
}

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


0xA0,0x00, 0x60,0xFF, 0x20,0x82, 0x30,0x84,
0x2E,0xBC, 0x2E,0xB4, 0xAA,0xA4, 0x6B,0xE4,
0x2A,0xA4, 0x2B,0xE4, 0x2E,0xBC, 0x24,0x92,
图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,1点亮,为00000100,即16进制04h.这一列完成后继续进行下半部分的扫描,p20点亮,为二进制00000010,即16进制02h.依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“高”的扫描代码为:
0x28,0x89, 0x30,0xFE, 0x20,0x02, 0x40,0x01,
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。不过现在有很多现成的汉字字模生成软件,就不必自己去画表格算代码了。
16×16LED点阵的内部结构及工作原理
每一个字由16行16列的点阵组成显示。即国家标准汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。这里我们以“高”字说明,如图3-1所示。

LED点阵书写显示屏(文稿最终)-11.21

LED点阵书写显示屏的设计摘要以ARM系列主流32位微处理器STM32为控制核心设计LED点阵书写显示屏系统。

系统主要包括主控模块、光笔模块、键盘输入模块、液晶显示模块、电源模块和32×32LED点阵屏。

系统通过键盘进行功能切换,光电三极管作为光笔的感应器件,在STM32的控制下进行信号采集,进而实现LED点阵屏的“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移、点阵屏亮度调节、超时休眠”等功能。

经测试,系统功能齐全,响应速度快,书写流畅,各项性能指标均达到了设计要求。

Abstract:Writing Dot Matrix LED Display System is designed,which control core is ARM-series of mainstream 32-bit microprocessor of STM32.Which mainly includes Control module,Light pen module,Keyboard input module,Liquid crystal display modules,Power modules,and 32 ×32LED dot-matrix display.Function Switch is conducted by keyboard keys,a light pen sensing devices is photoelectric transistor,Under the control of the STM32 signal acquisition,LED dot-matrix screen’s function are reslized of Light,zoned light,anti-evident,and the entire screen erase,stroke erase,write continuously-word,object drag,dot-matrix screen brightness adjustment,overtime sleep,and so on.Been tested,which fully functional,fast response,writing fluency,the performance indicators have reached the design requirement.一、方案的选择和论证根据题目要求,系统可以分为几个基本模块,各模块的实现方案如下:1、控制器模块方案一:采用89C51单片机,技术成熟,调试方便,价格便宜。

点阵显示屏成功点亮原理图程序

16×16点阵显示屏成功点亮!!看到江同学的3216屏(),对于我来说,稍显复杂,所以决定做个1616的屏看看效果,原理图就是以下了,注意做1616时,要去掉一个74LS154(当然这里也能换用74HC154,虽然功耗大,但价格较低),经过两天的奋斗,终于完工了。

简单的调试后,点亮了!!编个流动显示的程序,哈哈,很炫啊。

心动不如赶快行动啊!!我是把点阵块焊到一块板子上,可方便检查有无虚焊,控制部分放到了另一张板上,做成的实物图就是下面的了,视频在这里:(注:以下原理图均来自)/********************************************************* 程序名称:LED1616点阵流动显示汉字简要说明:最大可显示16*16汉字P0口接上行线,P2口接下行线,P3口接扫描线编写:改编: springvirus*********************************************************/#include <>#define hang1 P0 //上行线#define hang2 P2 //下行线#define lie P1 //列线#define sum sizeof(hanzi)/32 //自动计算汉字字数/*****参数设置*****/#define ziti 16 //字体大小(宽度)#define light 50 //显示亮度#define move_speed 50 //移动速度unsigned char code hanzi[]={/*-- 文字: 自 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0xF8,0x48,0x48,0x4C,0x4B,0x4A,0x48,0x48,0x48,0xF8,0x00,0x00,0x00 ,0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00 ,/*-- 文字: 制 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x50,0x4F,0x4A,0x48,0xFF,0x48,0x48,0x48,0x00,0xFC,0x00,0x00,0xFF,0x00,0x00 ,0x00,0x00,0x3F,0x01,0x01,0xFF,0x21,0x61,0x3F,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00 ,/*-- 文字: 小 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00 ,0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00 ,/*-- 文字: 型 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x12,0x92,0x7E,0x12,0x12,0xFE,0x12,0x12,0x10,0xFC,0x00,0x00,0xFF,0x00,0x00 ,0x40,0x42,0x49,0x48,0x48,0x48,0x49,0x7E,0x48,0x48,0x48,0x4A,0x4C,0x4B,0x40,0x00 ,/*-- 文字: 点 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x3F,0x24,0x24,0x24,0xF4,0x24,0x00,0x00,0x00 ,0x00,0x40,0x30,0x07,0x12,0x62,0x02,0x0A,0x12,0x62,0x02,0x0F,0x10,0x60,0x00,0x00 ,/*-- 文字: 阵 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0xFE,0x02,0x12,0x2A,0xC6,0x88,0xC8,0xB8,0x8F,0xE8,0x88,0x88,0x88,0x88,0x00,0x00 ,0xFF,0x00,0x02,0x04,0x03,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x00 ,/*-- 文字: 显 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x3E,0x2A,0xEA,0x2A,0x2A,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0x00,0x00 ,0x20,0x21,0x22,0x2C,0x20,0x3F,0x20,0x20,0x20,0x3F,0x28,0x24,0x23,0x20,0x20,0x00 ,/*-- 文字: 示 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00 ,0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7F,0x00,0x00,0x01,0x02,0x0C,0x18,0x00,0x00 ,/*-- 文字: 系 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x02,0x22,0xB2,0xAA,0x66,0x62,0x22,0x11,0x4D,0x81,0x01,0x01,0x00,0x00 ,0x00,0x40,0x21,0x13,0x09,0x05,0x41,0x81,0x7F,0x01,0x05,0x09,0x13,0x62,0x00,0x00 ,/*-- 文字: 统 --*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x20,0x30,0x2C,0xA3,0x60,0x10,0x84,0xC4,0xA4,0x9D,0x86,0x84,0xA4,0xC4,0x84,0x00 ,0x20,0x22,0x23,0x12,0x12,0x92,0x40,0x30,0x0F,0x00,0x00,0x3F,0x40,0x41,0x70,0x00 ,/*****空白,用于区分显示内容的头和尾*****/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};uint k=0,j; //移位变量,k:移位个数uint a=0; //用于软件延时ulong s=(sum+1)*ziti; //s为全部列数uchar disbuf[16][2]; //定义显示缓冲区(16行两列的二维数组以开辟1个16*16汉字的空间)bit move_st; //移动标志/*****可变延时*****/void delay(void){uchar i;for(i=0;i<light;i++);}/*****初始化子程序*****/void init(void){TMOD=0x1;TH0=0xfc;TL0=0x18;}/*****计数器中断程序*****/void timer0(void) interrupt 1 //中断处理{TH0=0xfc;TL0=0x18;a++;}/*****汉字循环显示*****/void run_move(void){uchar k1,k2;if(a>=move_speed) //move_speed控制移动速度{if(k>s-ziti-1)k=0; //整屏移动列数k1=k/ziti;k2=k%ziti;j=ziti*2*k1+k2; //显示指针k++;move_st=1;a=0;}}/*****装载显示数据至缓冲区*****/void load_hanzi(void){uchar i;run_move();if(move_st){for(i=0;i<15;i++){disbuf[i][0]=disbuf[i+1][0];//移位处理 disbuf[i][1]=disbuf[i+1][1];//移位处理 }disbuf[15][0]=hanzi[j];disbuf[15][1]=(hanzi[ziti+j]);move_st=0;}}/*****扫描显示数据缓冲区的内容*****/void display(void){uchar i;for (i=0;i<16;i++){lie=i;hang1=disbuf[i][0]; hang2=disbuf[i][1]; delay();hang1=0;hang2=0;}}/*****主程序*****/ void main (void){ init();EA=1; //开中断TR0=1; ET0=1;while(1){ load_hanzi();display(); }}。

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