并列三个16乘16点阵动态图
- 格式:doc
- 大小:124.00 KB
- 文档页数:6


第八届“蓝天超市杯”电子产品设计竞赛(电子产品论文)『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单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
Proteus仿真16*16LED点阵显示汉字显示程序:滚动程序:#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar count,i,j,t;uchar code table[]={0x09,0x00,0xFD,0x08,0x09,0x08,0x09,0x10,0x09,0x20,0x79,0x40,0x41,0x04,0x47, 0xFE,0x41,0x40,0x79,0x40,0x09,0x20,0x09,0x20,0x09,0x10,0x09,0x4E,0x51,0x84,0x21, 0x00,//张0x08,0x20,0x08,0x28,0x7F,0xFC,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F, 0xE0,0x01,0x04,0xFF,0xFE,0x01,0x00,0x03,0x80,0x05,0x60,0x19,0x1C,0x61,0x08,0x01, 0x00,//某0x08,0x20,0x08,0x28,0x7F,0xFC,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F, 0xE0,0x01,0x04,0xFF,0xFE,0x01,0x00,0x03,0x80,0x05,0x60,0x19,0x1C,0x61,0x08,0x01, 0x00,//某0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x08,0x3F,0xFC,0x21,0x00,0x41,0x00,0x41, 0x00,0x81,0x10,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00, 0x00,//生0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F, 0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00, 0x00,//日0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x88,0x5B,0xFC,0x54,0x88,0x50,0x88,0x90, 0x88,0x10,0x88,0x1F,0xFE,0x10,0x80,0x11,0x40,0x11,0x20,0x12,0x10,0x14,0x0E,0x18, 0x04,//快0x00,0x20,0x00,0xF0,0x1F,0x00,0x10,0x00,0x11,0x00,0x11,0x00,0x21,0x04,0x7F, 0xFE,0x01,0x00,0x01,0x00,0x09,0x20,0x09,0x10,0x11,0x08,0x21,0x0C,0x45,0x04,0x02, 0x00,//乐0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01, 0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x03,0xC0,0x01,0x80,0x00,0x00,0x00, 0x00//!};uchar codetable1[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd ,0xfe,0xff}; //列数组void delay(uint a){uint x,y;for(x=10;x>0;x--)for(y=a;y>0;y--);}void init(){TMOD=0X01;TH0=(65536-5000)/256;TL0=(65536-5000)%256;EA=1;ET0=1;TR0=1;}void main (){init();t=1; //控制滚动时长while(1){if(count==t){count=0;j++;if(j==112)j=0;}for(i=j;i<16+j;i++){P1=table1[i%16]; //列扫描,与横扫描顺序不能换P3=table[2*i]; //显示前8行P2=table[2*i+1]; //显示后8行delay(1); //延迟}}}void timer0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;}移动程序:#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar count,i,j,t;uchar code table[]={0x09,0x00,0xFD,0x08,0x09,0x08,0x09,0x10,0x09,0x20,0x79,0x40,0x41,0x04,0x47, 0xFE,0x41,0x40,0x79,0x40,0x09,0x20,0x09,0x20,0x09,0x10,0x09,0x4E,0x51,0x84,0x21, 0x00,//张0x08,0x20,0x08,0x28,0x7F,0xFC,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F, 0xE0,0x01,0x04,0xFF,0xFE,0x01,0x00,0x03,0x80,0x05,0x60,0x19,0x1C,0x61,0x08,0x01, 0x00,//某0x08,0x20,0x08,0x28,0x7F,0xFC,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F, 0xE0,0x01,0x04,0xFF,0xFE,0x01,0x00,0x03,0x80,0x05,0x60,0x19,0x1C,0x61,0x08,0x01, 0x00,//某0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x08,0x3F,0xFC,0x21,0x00,0x41,0x00,0x41, 0x00,0x81,0x10,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00, 0x00,//生0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F, 0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00, 0x00,//日0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x88,0x5B,0xFC,0x54,0x88,0x50,0x88,0x90, 0x88,0x10,0x88,0x1F,0xFE,0x10,0x80,0x11,0x40,0x11,0x20,0x12,0x10,0x14,0x0E,0x18, 0x04,//快0x00,0x20,0x00,0xF0,0x1F,0x00,0x10,0x00,0x11,0x00,0x11,0x00,0x21,0x04,0x7F, 0xFE,0x01,0x00,0x01,0x00,0x09,0x20,0x09,0x10,0x11,0x08,0x21,0x0C,0x45,0x04,0x02, 0x00,//乐0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01, 0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x03,0xC0,0x01,0x80,0x00,0x00,0x00, 0x00//!};uchar codetable1[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd ,0xfe,0xff}; //列数组void delay(uint a){uint x,y;for(x=10;x>0;x--)for(y=a;y>0;y--);}void init(){TMOD=0X01;TH0=(65536-5000)/256;TL0=(65536-5000)%256;EA=1;ET0=1;TR0=1;}void main (){init();t=2; //控制变化时长while(1){if(count==t){count=0;j++;if(j>112)j=0;}for(i=0;i<16;i++){P1=table1[i%16]; //列扫描,与横扫描顺序不能换P3=table[2*i+2*j]; //显示前8行P2=table[2*i+1+2*j]; //显示后8行delay(1); //延迟}}}void timer0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;}跳动显示:#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar count,i,j,t;uchar code table[]={0x09,0x00,0xFD,0x08,0x09,0x08,0x09,0x10,0x09,0x20,0x79,0x40,0x41,0x04,0x47, 0xFE,0x41,0x40,0x79,0x40,0x09,0x20,0x09,0x20,0x09,0x10,0x09,0x4E,0x51,0x84,0x21, 0x00,//张0x08,0x20,0x08,0x28,0x7F,0xFC,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F, 0xE0,0x01,0x04,0xFF,0xFE,0x01,0x00,0x03,0x80,0x05,0x60,0x19,0x1C,0x61,0x08,0x01, 0x00,//某0x08,0x20,0x08,0x28,0x7F,0xFC,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F, 0xE0,0x01,0x04,0xFF,0xFE,0x01,0x00,0x03,0x80,0x05,0x60,0x19,0x1C,0x61,0x08,0x01, 0x00,//某0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x08,0x3F,0xFC,0x21,0x00,0x41,0x00,0x41, 0x00,0x81,0x10,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00, 0x00,//生0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F, 0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00, 0x00,//日0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x88,0x5B,0xFC,0x54,0x88,0x50,0x88,0x90, 0x88,0x10,0x88,0x1F,0xFE,0x10,0x80,0x11,0x40,0x11,0x20,0x12,0x10,0x14,0x0E,0x18, 0x04,//快0x00,0x20,0x00,0xF0,0x1F,0x00,0x10,0x00,0x11,0x00,0x11,0x00,0x21,0x04,0x7F, 0xFE,0x01,0x00,0x01,0x00,0x09,0x20,0x09,0x10,0x11,0x08,0x21,0x0C,0x45,0x04,0x02, 0x00,//乐0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01, 0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x03,0xC0,0x01,0x80,0x00,0x00,0x00, 0x00//!};uchar codetable1[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd ,0xfe,0xff}; //列数组void delay(uint a){uint x,y;for(x=10;x>0;x--)for(y=a;y>0;y--);}void init(){TMOD=0X01;TH0=(65536-5000)/256;TL0=(65536-5000)%256;EA=1;ET0=1;TR0=1;}void main (){init();t=8; //控制滚动时长while(1){if(count==t){count=0;j+=16;if(j>128)j=0;}for(i=j;i<16+j;i++){P1=table1[i%16]; //列扫描,与横扫描顺序不能换P3=table[2*i]; //显示前8行P2=table[2*i+1]; //显示后8行delay(1); //延迟}}}void timer0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;}4个4*4点阵构成16*16点阵Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。