16x16点阵显示汉字并移动原理图程序
LED1616点阵的使用.

1. 8 位串行输入-并行输出移位寄存器 74HC595 的使用说明
74HC595 芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74HC595 使用一根输入 线(串行输入 8 位数据),并将该 8 位数据一次性并行输出。
74HC595 有一个 8 位输入移位寄存器和一个输出 8 位锁存器,分别由 SH_CP 和 ST_CP 两个时钟控制。 数据从 DS 引脚被逐位送入(高位在前,低位在后),在 SH_CP 的上升沿输入到 8 位输入移位寄存器。在 ST_CP 的上升沿被送入输出 8 位锁存器中,从输出引脚输出。如果没有 ST_CP 的上升沿,则输入的数据 会不断的从串行输出引脚(Q7’)被一位一位的输出。此外,74HC595 还有一个异步的低电平复位和使能 OE(低电平有效)控制引脚。
6
LED16 16 点阵的使用
单片机原理与应用
74HC164 和 74HC595 的区别 74HC164 和 74HC595 功能相仿,都是 8 位串行输入转并行输出移位寄存器。74HC164 的驱动电流(25mA) 比 74HC595 (35mA)的要小,14 脚封装,体积也小一些。 74595 的主要优点是具有输出锁存寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行 速度慢的场合很有用处,数码管没有闪烁感。 与 164 只有数据清零端相比,595 还多有输出端时能/禁止控制端,可以使输出为高阻态。
74HC595 的引脚如图 5 所示。
5
LED16 16 点阵的使用
单片机原理与应用
图5
引脚说明
符号
引脚
描述
Q0…Q7
15, 1~7,
并行数据输出
GND
8地Biblioteka Q7’9串行数据输出
16×16点阵LED显示屏整个过程及C语言程序

16×16点阵LE D显示屏整个过程及C语言程序7.1功能要求设计一个室内用16×16点阵LE D图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
7.2方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
16×16点阵显示屏

16×16点阵显示屏成功点亮!!2009-04-17 09:59看到江同学的3216屏(),对于我来说,稍显复杂,所以决定做个1616的屏看看效果,原理图就是以下了,注意做1616时,要去掉一个74LS154(当然这里也能换用74HC154,虽然功耗大,但价格较低),经过两天的奋斗,终于完工了。
简单的调试后,点亮了!!编个流动显示的程序,哈哈,很炫啊。
心动不如赶快行动啊!!我是把点阵块焊到一块板子上,可方便检查有无虚焊,控制部分放到了另一张板上,做成的实物图就是下面的了,视频在这里:/springvirus (注:以下原理图均来自)/********************************************************* 程序名称:LED1616点阵流动显示汉字简要说明:最大可显示16*16汉字P0口接上行线,P2口接下行线,P3口接扫描线编写: 改编: springvirus*********************************************************/#include <AT89X52.h>#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(); } }。
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显示屏的设计方案。
16×16点阵LED显示屏整个过程及C语言程序(1).

16×16点阵LED显示屏整个过程及C语言程序7.1功能要求设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
7.2方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
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三位译码器。
16乘16点阵显示实验报告

实验报告实验名称: [16×16点阵显示实验] 姓名: []学号: [2011]指导教师: []实验时间: [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欧姆的电阻来检测了。
C51多汉字显示(16x16点阵)

1 采用自编的软件 2 专用的C程序 3 专用的字模软件
系统可以逐个显示多个汉字 系统可以左移显示多个汉字 系统可以上移显示多个汉字
列触发方式采用低电平(0)触发,行触发方式采用高电平(1) 触发 当某点所处的行为1,列为0的时候,该点被点亮
行 列 16 15 14 13 12 11 10 9 8 7 6 5 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 4 3 2 1
void clrscr() { //行驱动低无效 RowLow=(unsigned char)0x00; RowHigh=(unsigned char)0x00; //列驱动高无效 ColLow=(unsigned char)0xff; ColHigh=(unsigned char)0xff; } void lockdisplay() { //行驱动低无效 RowLow=(unsigned char)0x00; RowHigh=(unsigned char)0x00; }
列(一次2个字节)的输入是字模数据,左边字节取 反放入高位字节,右边字节取反放入低位字节 行(一次2个字节)的输入是行选通数据,它与汉字 字模的对应关系是从上到下为
0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200,0x0100,0x0080,0x0 040,0x0020,0x0010,0x0008,0x0004,0x0002,0x0001
E1 E2 E3
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
A0 A1
74LS138
A B C Y3 Y2 Y1 Y0 Y4 Y5 Y6 Y7
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{k=2;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
P2=0xff;
P2 = lie[num];
temp1=hang[num*2+zuo]; /*num*2表示第一个74ls164只去第偶数个字节,跟我的取模方式有关*/
shuru_1();
P2 = lie[num];
0x00,0x00,0x00,0x01,0x00,0x06,0x7F,0xF8,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0xFC,0x40,0x04,0x7F,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,/*"片",7*/
};
void shuru_1() /*74ls164进行输入数据*/
{
uchar t;
for(t=0;t<8;t++)
{
temp1<<=1;
DATA1=CY;
CLCK1=1;
CLCKቤተ መጻሕፍቲ ባይዱ=0;
}
}
void shuru_2()
{
uchar t;
for(t=0;t<8;t++)
{
temp2<<=1;
DATA2=CY;
0x02,0x08,0x22,0x3C,0x23,0xC8,0x22,0x08,0x22,0x28,0x22,0x1D,0x02,0x02,0x08,0x0C,0x08,0x70,0xFF,0x80,0x08,0x02,0x08,0x01,0x08,0x02,0x0F,0xFC,0x00,0x00,0x00,0x00,/*"动",4*/
void shuru_1();
void shuru_2();
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列依次选通*/
0x01,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x02,0x41,0x01,0x47,0xFE,0x45,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x00,0x00,/*"子",1*/
0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0x11,0x22,0x31,0x22,0x51,0x22,0x91,0x22,0x11,0x22,0x11,0x22,0x11,0x22,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"自",3*/
0x00,0x00,0x00,0x42,0x44,0x44,0x4C,0xC8,0x54,0xD0,0x65,0x42,0x45,0x41,0x46,0x7E,0x84,0x40,0x88,0x40,0x90,0x50,0x81,0x48,0x80,0xC4,0x00,0x62,0x00,0x00,0x00,0x00,/*"系",2*/
源程序:
#include <reg52.h>
unsigned char i;
sbit DATA1=P3^7;
sbit DATA2=P3^5;
sbit CLCK1=P3^6;
sbit CLCK2=P3^4;
#define uchar unsigned char
#define uint unsigned int
temp2=hang[zuo+(num*2+1)]; /*num*2+1表示第二个74ls164只去第奇数个字节,最左第一列16个不控制先发送第一个74ls164字节在发送第二个的字节*/
shuru_2();
num++;
if(num==16)
{
num=0;
}
timecount++;
if(timecount==100)
CLCK2=1;
CLCK2=0;
}
}
void main(void)
{
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
void serve_led()interrupt 1 using 0 /*定时中断显示*/
16x16
周渴望南阳理工学院QQ418084696
本次设计中首先在做了8x8点阵汉子显示基础之上做的,其实点阵原理很简单,就像数码管动态显示一样简单,只要你分清楚行控制,与列控制,某段时间某列可以点亮,哪几行亮,动态扫描一个循环自然组成不同的图像。
这里取模方式是先最左边的一列选通,然后控制控制两个74ls164分别点亮16行中的几行,然后是从左向右第二列依次下去,形成动态扫描。本文程序非常简单,虽然没注释,认真看几十分钟就全明白了,说白了,数码管动态显示一回事(呵呵其实我自己做的时候下了不少功夫建议先做8x8)。
{num=0;
timecount=0;
zuo=zuo+2; /*向后扫描加一列实现移动这里每次加二是因为要跳过第二个74ls164的代码前面已经说了取模方式是最左一列16个从上到下取得*/
if(zuo==272)
{
zuo=0;
}
}
}
14年8月
unsigned char code hang[288]={0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0xFE,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,/*"电",0*/
0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x00,0x20,0x00,0x40,0x00,0x80,0xFF,0xFC,0x02,0x02,0x04,0x02,0x08,0x02,0x10,0x02,0x20,0x02,0x00,0x1E,0x00,0x00,/*"化",5*/
0x08,0x20,0x08,0xC0,0x0B,0x00,0xFF,0xFF,0x09,0x00,0x08,0xC1,0x00,0x06,0x7F,0xF8,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFC,0x00,0x02,0x00,0x02,0x00,0x1E,0x00,0x00,/*"机",8*/