16×16LED点阵汉字分批显示器的Proteus软件仿真
16x16点阵显示汉字并移动原理图程序

16x16点阵显示汉字并移动原理与源程序(简单)周渴望南阳理工学院QQ418084696本次设计中首先在做了8x8点阵汉子显示基础之上做的,其实点阵原理很简单,就像数码管动态显示一样简单,只要你分清楚行控制,与列控制,某段时间某列可以点亮,哪几行亮,动态扫描一个循环自然组成不同的图像。
这里取模方式是先最左边的一列选通,然后控制控制两个74ls164分别点亮16行中的几行,然后是从左向右第二列依次下去,形成动态扫描。
本文程序非常简单,虽然没注释,认真看几十分钟就全明白了,说白了,数码管动态显示一回事(呵呵其实我自己做的时候下了不少功夫建议先做8x8)。
源程序:#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 void shuru_1();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列依次选通*/unsigned char code hang[288]={0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0 xFE,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,/*"电",0*/0x01,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x02,0x41,0x01,0x47,0xFE,0x 45,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x00,0x00,/*"子",1*/ 0x00,0x00,0x00,0x42,0x44,0x44,0x4C,0xC8,0x54,0xD0,0x65,0x42,0x45,0x41,0x46,0x7E,0 x84,0x40,0x88,0x40,0x90,0x50,0x81,0x48,0x80,0xC4,0x00,0x62,0x00,0x00,0x00,0x00,/*"系",2*/0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0x11,0x22,0x31,0x22,0x51,0x22,0x91,0x22,0x1 1,0x22,0x11,0x22,0x11,0x22,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"自",3*/ 0x02,0x08,0x22,0x3C,0x23,0xC8,0x22,0x08,0x22,0x28,0x22,0x1D,0x02,0x02,0x08,0x0C,0 x08,0x70,0xFF,0x80,0x08,0x02,0x08,0x01,0x08,0x02,0x0F,0xFC,0x00,0x00,0x00,0x00,/*"动",4*/0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x00,0x20,0x00,0x40,0x00,0x80,0x FF,0xFC,0x02,0x02,0x04,0x02,0x08,0x02,0x10,0x02,0x20,0x02,0x00,0x1E,0x00,0x00,/*"化",5*/ 0x00,0x08,0x00,0x08,0x1F,0xC8,0x92,0x48,0x52,0x48,0x32,0x48,0x12,0x48,0x1F,0xFF,0x 12,0x48,0x32,0x48,0x52,0x48,0x92,0x48,0x1F,0xC8,0x00,0x08,0x00,0x08,0x00,0x00,/*"单",6*/ 0x00,0x00,0x00,0x01,0x00,0x06,0x7F,0xF8,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x0 4,0x40,0xFC,0x40,0x04,0x7F,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,/*"片",7*/ 0x08,0x20,0x08,0xC0,0x0B,0x00,0xFF,0xFF,0x09,0x00,0x08,0xC1,0x00,0x06,0x7F,0xF8,0 x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFC,0x00,0x02,0x00,0x02,0x00,0x1E,0x00,0x00,/*"机",8*/};void shuru_1() /*74ls164进行输入数据*/{uchar t;for(t=0;t<8;t++){temp1<<=1;DATA1=CY;CLCK1=1;CLCK1=0;}}{uchar t;for(t=0;t<8;t++){temp2<<=1;DATA2=CY;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 /*定时中断显示*/{ 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];temp2=hang[zuo+(num*2+1)]; /*num*2+1表示第二个74ls164只去第奇数个字节,最左第一列16个不控制先发送第一个74ls164字节在发送第二个的字节*/ shuru_2();num++;if(num==16){num=0;}timecount++;if(timecount==100){ num=0;timecount=0;zuo=zuo+2; /*向后扫描加一列实现移动这里每次加二是因为要跳过第二个74ls164的代码前面已经说了取模方式是最左一列16个从上到下取得*/ if(zuo==272){zuo=0;}}}14年8月。
实验二:16LED花样显示,protues,6103413018,刘玉奔

南昌大学实验报告学生姓名:刘玉奔学号:6103413018专业班级:生物医学工程141班实验类型:□验证□综合□设计□创新实验日期:2016.10.11实验成绩:一、实验项目名称16LED花样显示,Protues环境二、实验目的1:以便熟练掌握汇编语言,2:以便学习使用I/O口操作,3:以便熟练使用开发软件三、实验基本原理protues软件的16个花样灯连线图:如图所示:由P0,P2口的输出控制16个灯的点亮情况。
四、主要仪器设备及耗材开发软件:protues7,keil Uvision4五、实验步骤六、实验数据及处理结果用keil编写的实验程序如下://设计者:刘玉奔//设计时间:2016.10.13//设计内容:花样点亮16盏灯//设计要求:基于C语言,把存放在程序存储器中的数据存储类型定义为‘code’。
//备注:设计内容与“花样点亮16灯”一样//修改日期:2016.10.15,数组内容用','隔开,分行也要;delay200ms头文件调用,仿真效果更佳#include<STC15.H> // stc15系列单片机头文件#include<INTRINS.H>#include<delay200ms.h>#define uchar unsigned char#define uint unsigned int/*数据内容代码*/uchar code date[20]={0xff,0x00,0xff,//全灭,全亮,后面的0xff在于清零,不做效果0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,//从左至右流水亮0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff};//从右至左流水亮/*主函数*/void main(){ uchar i,j;while(1){ for(i=0;i<3;i++)//16LED全灭,全亮{ if(i<2){P0=date[i];P2=date[i];delay200ms();}else {P0=0xff;P2=0xff;}//这里为了减少灭的时间长带来的不好效果,单独列出来}for(j=3;j<12;j++) //两个for循环实现1到16盏灯流水点亮{ if(j<11){P0=date[j];delay200ms();}else P0=date[j];}for(j=3;j<12;j++){ if(j<11){P2=date[j];delay200ms();}else P2=date[j];}for(j=12;j<20;j++)//从16到1盏灯流水点亮{ if(j<19){P2=date[j];delay200ms();}else P2=date[j];}P0=0x7f;//承上启下的效果,衔接更好delay200ms();for(j=12;j<20;j++){ if(j<19){P0=date[j];delay200ms();}else P0=date[j];}}}七、思考讨论题或体会或对改进实验的建议此次试验内容相对来说比较容易实现,因为可以根据自己的要求来设计花样灯。
16-16点阵LED显示汉字总汇编语言

LED16X16点阵显示课程设计报告学院专业班级学生姓名指导老师二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、8255Intel8255A是一种通用的可编程序并行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)控制。
16X16点阵汉字显示程序

#include <reg52.h>#define uchar unsigned charuchar i,k=15;sbit xsi=P2^0;sbit xrck=P2^1;sbit xsck=P2^2;sbit ysi=P2^3;sbit yrck=P2^4;sbit ysck=P2^5;uchar code zbm[][32]={{0x20,0x00,0x20,0x80,0x20,0x80,0xAE,0x5F,0xAA,0x40,0xAA,0x20,0xAA,0x10,0xBF,0x0E,0xAA,0x10,0xAA,0x20,0xAA,0x40,0xAE,0xDF,0x20,0x40,0x20,0x00,0x20,0x00,0x00,0x00},/*"贵",0*/{0x00,0x00,0xFE,0xFF,0x02,0x04,0x22,0x08,0x5A,0x04,0x86,0x03,0x00,0x00,0xFE,0x3F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x3F,0x00,0x00,0x00,0x00},/*"阳",1*/{0x40,0x00,0x30,0x02,0x10,0x02,0x12,0x02,0x5C,0x02,0x54,0x02,0x50,0x42,0x51,0x82,0x5E,0x7F,0xD4,0x02,0x50,0x02,0x18,0x02,0x57,0x02,0x32,0x02,0x10,0x02,0x00,0x00},/*"学",2*/{0xFE,0xFF,0x02,0x00,0x32,0x02,0x4A,0x04,0x86,0x83,0x0C,0x41,0x24,0x31,0x24,0x0F,0x25,0x01,0x26,0x01,0x24,0x7F,0x24,0x81,0x24,0x81,0x0C,0x81,0x04,0xF1,0x00,0x00},/*"院",3*/{0x00,0x00,0x00,0x00,0xF8,0x0F,0x48,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0xFF,0x3F,0x48,0x44,0x48,0x44,0x48,0x44,0x48,0x44,0xF8,0x4F,0x00,0x40,0x00,0x70,0x00,0x00},/*"电",0*/{0x00,0x01,0x00,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x41,0x02,0x81,0xE2,0x7F,0x12,0x01,0x0A,0x01,0x06,0x01,0x02,0x01,0x00,0x01,0x80,0x01,0x00,0x01,0x00,0x00},/*"子",1*/{0x80,0x00,0x40,0x00,0x30,0x00,0xFC,0x7F,0x07,0x00,0x0A,0x00,0xA8,0x7E,0xA8,0x22,0xA9,0x22,0xAE,0x22,0xAA,0x22,0xA8,0x22,0xA8,0x7E,0x08,0x00,0x08,0x00,0x00,0x00},/*"信",2*/{0x00,0x00,0x00,0x20,0x00,0x38,0xFC,0x01,0x54,0x3D,0x54,0x41,0x56,0x41,0x55,0x45,0x54,0x59,0x54,0x41,0x54,0x41,0xFC,0x71,0x00,0x00,0x00,0x08,0x00,0x30,0x00,0x00},/*"息",3*/{0x10,0x00,0x10,0x00,0xFF,0x7F,0x10,0x00,0x10,0x00,0x10,0x43,0xC8,0x20,0x08,0x18,0x08,0x07,0xFF,0x00,0x08,0x20,0x08,0x40,0xF8,0x3F,0x80,0x00,0x00,0x03,0x00,0x00},/*"协",4*/{0x80,0x00,0x40,0x00,0x40,0x42,0x20,0xE2,0x50,0x52,0x48,0x4A,0x44,0x46,0x43,0x62,0x44,0x22,0x48,0x22,0x50,0x2A,0x20,0xF2,0x60,0x62,0xC0,0x00,0x40,0x00,0x00,0x00},/*"会",5*/{0x14,0x20,0x24,0x10,0x44,0x4C,0x84,0x43,0x64,0x43,0x1C,0x2C,0x20,0x20,0x18,0x10,0x0F,0x0C,0xE8,0x03,0x08,0x06,0x08,0x18,0x28,0x30,0x18,0x60,0x08,0x20,0x00,0x00},/*"欢",6*/{0x40,0x40,0x41,0x20,0xCE,0x1F,0x04,0x20,0x00,0x40,0xFC,0x47,0x04,0x42,0x02,0x41,0x02,0x40,0xFC,0x5F,0x04,0x40,0x04,0x42,0x04,0x44,0xFC,0x43,0x00,0x40,0x00,0x00},/*"迎",7*/{0x80,0x00,0x40,0x00,0xF0,0x7F,0x2C,0x00,0x43,0x10,0x20,0x0C,0x98,0x03,0x0F,0x21,0x0A,0x40,0xE8,0x3F,0x08,0x00,0x88,0x00,0x28,0x03,0x1C,0x1C,0x08,0x08,0x00,0x00},/*"你",8*/{0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",9*/};void ys (uchar a)//延时{uchar b;for (;a>0;a--)for (b=100;b>0;b--);}void yfs()//Y轴发数{ysck=0;yrck=0;k++;if (k==16){k=0;ysi=0;}elseysi=1;ysck=1;xrck=1;yrck=1;}void fs(uchar a) //X轴发数{uchar b;xsck=0;xrck=0;for (b=0;b<8;b++){a=a<<1;//xsi=CY;xsi=a&0x80;xsck=1;xsck=0;}}void gdhs(uchar *zz,uchar N,uchar Time) //流动显示N个汉字滚动函数{ //参数三个:字符串字模首地址、字数、显示流动速度uchar FontNum,i,j,row; //循环变量,字数计数、16次流动、16列扫描for(FontNum=0;FontNum<N;FontNum++){for(i=0;i<16;i++) //字到字流动16次左移才能完成{for(j=0;j<Time;j++) //显示延迟,决定流动速度{k=15;for(row=0;row<16;row++) //显示16*16屏幕一次{yfs(); //选通显示列//行选线,P3 低四位fs (*(zz+FontNum*32+(i+row)*2+1)); //以移动偏移为基础获取新数据fs(*(zz+FontNum*32+(i+row)*2)); //获取显示数据循环显示关键算法ys (12); //适当延时}}}}}void main (){while (1){gdhs(*zbm,10,3);}}。
基于Protues的16×32点阵LED汉字显示屏的开发

Key words:Pmteus;LED;74HCl38;74HC595
0 引言
单片机系统设计一般包括硬件电路设计和程序 设计2个方面,调试过程一般分为软件调试、硬件测 试、系统调试3个过程。软件调试一般比较容易,但 如果要进行硬件电路测试和系统调试则比较麻烦, 因为这2个过程必须在整个电路制作完成后进行, 而且电路板的制作、元器件的安装、焊接费时费力。 如果采用单片机系统仿真软件Proteus,则不用制作 具体的电路板也能够完成以上工作,在使用Proteus 进行系统虚拟开发成功之后再进行实际制作,可提 高开发效率,降低开发成本,提高开发速度。
·96·
工业仪表与自动化装置
2010年第5期
基于Protues的16×32点阵LED
汉字显示屏的开发
毛敏
(陕西国防工业职业技术学院,西安710300)
摘要:Proteus是世界上著名的仿真软件,实现了电路仿真软件、PCB设计软件和虚拟模型仿真
软件三合一的设计平台。该文介绍利用Proteus仿真软件开发的基于单片机的16×32点阵LED汉
子技术,2006(6):117—118. 【3]廖常初.s7—300/400 PLC应用教程[M].北京:机械工
业出版社,2009:10一25. [4] siemenB.Pn'dave MPl—IE—m蛐ual[z].2005.
万方数据
基于Protues的16×32点阵LED汉字显示屏的开发
作者: 作者单位: 刊名:
字显示屏,实现了LED点阵屏核心功能即汉字、数字、字母的多样化显示。
关键词:Proteus;LED;74HCl38;74HC595
16x16点阵显示实验报告

16*16点阵显示实验报告一、实验目的(1)学习点阵显示字符的基本原理。
(2)掌握用数控分频控制速度,实现点阵扫描的基本方式。
(3)会使用Quartus II软件中的Verilog HDL语言实现点真的行列循环显示。
二、实验设备与器件Quartus II 软件、EP2C8Q208C8实验箱三、实验方案设计1.实验可实现的功能可通过编写Verilog HDL语言,实现点阵的行列交替扫描。
先是行扫描,扫描间隔为1s,16行都扫描完之后开始列扫描,扫描间隔仍然为1s,16列扫描完之后,行继续扫描,依次循环。
2.点阵基本知识16*16扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。
LED点阵每个点都有一个红色的发光二极管。
点阵内的二极管间的连接都是行共阳,列共阴。
本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。
3.系统工作原理本系统用了两个模块,其中dianzhen.v是顶层文件,而hangsaomiao.v和liesaomiao.v是两个子模块,总体的系统功能框图如图3.3.1所示。
图3.3.1 系统功能图示通过流程图可以看到,体统是先将试验箱的50MHz时钟信号分频为1s,因为要实现16*16的点阵扫描,所以用一个16s的计时器计时,每经过16s行扫描与列扫描的状态转换一次,通过点阵显示出来。
4.模块化程序设计(1)点阵显示顶层程序设计module dianzhen (clk50mhz,row,sel0,sel1,sel2,sel3,line);input clk50mhz; //实验箱提供50MHz时钟信号output sel0,sel1,sel2,sel3; //设置引脚选通点阵output reg [15:0] row; //行output reg [3:0] line; //列wire [15:0] row1,row2;wire [3:0] line1,line2;reg [24:0] cnt=0; //1Hz计数子reg [4:0] cnt1=0; //16s计数子assign sel0=1'b0;assign sel1=1'b1;assign sel2=1'b0;assign sel3=1'b0;always@(posedge clk50mhz)beginif(cnt>=25'd5*******)begincnt<=25'b0; //1Hz计时器cnt1<=cnt1+1; //16s计时器endelsecnt<=cnt+1;endhangsaomiao u1(.clk50mhz(clk50mhz),.row(row1),.line(line1)); liesaomiao u2(.clk50mhz(clk50mhz),.row(row2),.line(line2));always@(*)if(cnt1<=5'd15)beginrow<=row1; //行扫描line<=line1;endelsebeginrow<=row2; //列扫描line<=line2;endendmodule(2)行扫描模块hangsaomiao.v程序设计module hangsaomiao(clk50mhz,line,row);input clk50mhz; //实验箱输入50MHz时钟信号output reg [15:0] row; //列output reg [3:0] line; //行reg [24:0] cnt1,cnt2; //计数子reg clkrow,clkline; //行脉冲、列脉冲always@(posedge clk50mhz)beginif(cnt1>=25'd5*******)begincnt1<=25'b0;clkrow=~clkrow; //1s列脉冲endelsecnt1<=cnt1+1;endalways@(posedge clk50mhz)beginif(cnt2>=25'd500)begincnt2<=25'b0;clkline=~clkline; //50KHz行脉冲endelsecnt2<=cnt2+1;endalways@(posedge clkline)begincase(line)4'd0:line<=4'd1; //高速行扫描4'd1:line<=4'd2;4'd2:line<=4'd3;4'd3:line<=4'd4;4'd4:line<=4'd5;4'd5:line<=4'd6;4'd6:line<=4'd7;4'd7:line<=4'd8;4'd8:line<=4'd9;4'd9:line<=4'd10;4'd10:line<=4'd11;4'd11:line<=4'd12;4'd12:line<=4'd13;4'd13:line<=4'd14;4'd14:line<=4'd15;4'd15:line<=4'd0;default:line<=4'd0;endcaseendalways@(posedge clkrow) //时间间隔为1s的列扫描begincase(row)16'b0000000000000001: row<=16'b0000000000000010;16'b0000000000000010: row<=16'b0000000000000100;16'b0000000000000100: row<=16'b0000000000001000;16'b0000000000001000: row<=16'b0000000000010000;16'b0000000000010000: row<=16'b0000000000100000;16'b0000000000100000: row<=16'b0000000001000000;16'b0000000001000000: row<=16'b0000000010000000;16'b0000000010000000: row<=16'b0000000100000000;16'b0000000100000000: row<=16'b0000001000000000;16'b0000001000000000: row<=16'b0000010000000000;16'b0000010000000000: row<=16'b0000100000000000;16'b0000100000000000: row<=16'b0001000000000000;16'b0001000000000000: row<=16'b0010000000000000;16'b0010000000000000: row<=16'b0100000000000000;16'b0100000000000000: row<=16'b1000000000000000;16'b1000000000000000: row<=16'b0000000000000001;default : row<=16'b0000000000000001;endcaseendendmodule(3)列扫描模块liesaomiao.v程序设计module liesaomiao(clk50mhz,row,line);input clk50mhz; //实验箱输入50MHz 时钟信号output reg [15:0] row; //行output reg [3:0] line; //列reg [24:0] cnt; //计数子reg clk;always@(posedge clk50mhz)beginif(cnt>=25'd5*******)begincnt<=25'b0;clk=~clk; //1sendelsecnt<=cnt+1;endalways @ (posedge clk) //列扫描begincase(line)4'h0:begin row=16'b1111111111111111;line<=4'h1; end4'h1:begin row=16'b1111111111111111;line<=4'h2; end4'h2:begin row=16'b1111111111111111;line<=4'h3; end4'h3:begin row=16'b1111111111111111;line<=4'h4; end4'h4:begin row=16'b1111111111111111;line<=4'h5; end4'h5:begin row=16'b1111111111111111;line<=4'h6; end4'h6:begin row=16'b1111111111111111;line<=4'h7; end4'h7:begin row=16'b1111111111111111;line<=4'h8; end4'h8:begin row=16'b1111111111111111;line<=4'h9; end4'h9:begin row=16'b1111111111111111;line<=4'ha; end4'ha:begin row=16'b1111111111111111;line<=4'hb; end4'hb:begin row=16'b1111111111111111;line<=4'hc; end4'hc:begin row=16'b1111111111111111;line<=4'hd; end4'hd:begin row=16'b1111111111111111;line<=4'he; end4'he:begin row=16'b1111111111111111;line<=4'hf; end4'hf:begin row=16'b1111111111111111;line<=4'h0; enddefault:line<=4'h0;endcaseendendmodule5.下载电路及引脚分配设计设计中用实验箱自带的50MHz时钟信号作为输入端,用sel0、sel1、sel2、sel3四个使能端选通点阵,EP2C8Q208C8就会工作在给点阵下命令的状态,并用line和row分别作为点阵的行、列选通端,最终使得点阵正常工作,如图3.5.1所示。
LED点阵动态显示系统设计及仿真

LED点阵动态显示系统设计及仿真吕建波【摘要】The 16×16 light emitting diode (LED) dot-matrix dynamic display system based on AT89C51 MCU was designed, and the principle of LED dot-matrix dynamic display and the method of picking up Chinese character model were presented. The row driver circuit and the column driver circuit were designed by using Proteus software, and main program and display driver program were designed by using Keil software. Finally, the LED dot-matrix dynamic display system was simulated by Proteus software. The simulation results indicate that the system can reduce the development cost and improve the efficiency, and obtain the favorable display effects.%设计了一种基于AT89C51单片机的16×16 LED点阵动态显示系统,给出了LED点阵动态显示原理和汉字取模方法;在Proteus环境下进行了点阵显示系统行、列驱动电路硬件设计,同时采用Keil软件完成了系统主程序、显示驱动程序的设计;最后进行了系统Proteus仿真,降低了成本,提高了开发效率,并获得了良好的显示效果.【期刊名称】《现代电子技术》【年(卷),期】2012(035)017【总页数】3页(P154-156)【关键词】LED点阵;动态显示;取模;Proteus仿真;驱动电路【作者】吕建波【作者单位】西安文理学院物理与机械电子工程学院,陕西西安 710065【正文语种】中文【中图分类】TN911.7-34;TP2730 引言近年来,随着微电子、光电子技术以及计算机的迅速发展,LED电子显示屏形成了一种广泛应用的信息传播媒体,它是由发光二极管构成的显示点阵,LED电子显示屏亮度高、工作电压低、功耗小、性能稳定、易于控制、可视距离远、价格低廉、寿命长,通过修改控制程序可灵活变化显示方式,现已广泛应用于公共场所进行信息传播[1]。
点阵式LED滚动汉字显示屏的Proteus仿真设计

点阵式LED滚动汉字显示屏的Proteus仿真设计
钟蔚;袁臣虎;林志贵;李现国
【期刊名称】《微计算机信息》
【年(卷),期】2008(24)17
【摘要】利用嵌入式系统软硬件设计仿真平台Proteus对点阵式LED滚动汉字显示屏进行仿真设计,完成了系统的硬件电路设计和软件编程,并进行了仿真调试,实现了汉字在点阵式LED显示屏上的滚动显示,达到了仿真设计的目的.
【总页数】3页(P106-107,79)
【作者】钟蔚;袁臣虎;林志贵;李现国
【作者单位】300160,天津工业大学;300160,天津工业大学;300160,天津工业大学;300160,天津工业大学
【正文语种】中文
【中图分类】TP312
【相关文献】
1.点阵式汉字电子显示屏的设计制作 [J], 赵娟;高正明;李艳丽
2.LED分批汉字显示屏的Proteus仿真设计 [J], 李萍
3.点阵式LED显示屏温湿度采集驱动电路设计 [J], 任鹏宇;刘文科
4.点阵式LED汉字显示屏的总体方案设计与分析 [J], 薛小红
5.点阵式LED汉字显示屏的总体方案设计与分析 [J], 薛小红
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16×16LED点阵汉字分批显示器的Proteus软件仿真
O引言
Proteus是目前最先进、最完整的多种型号微处理器系统的仿真设计平台,由ISIS和ARES两个构成,其中ISIS是一款智能电路原理1硬件电路设计在很多LED显示的场合,需要实现一系列LED点阵汉字的分批显示,
为简化设计,每批只显示2个汉字,分若干次完成全部显示。
利用ProteusISIS 平台画出的硬件电路如
该硬件电路的核心是利用单片机读取显示字型码,通过驱动电路对16
乘以16共阴极LED点阵进行动态列扫描,以实现点阵汉字的分批显示。
设计
选用的单片机为Atrnel公司的AT89C51,它是一种低功耗,高性能CMOS8位单片机,片内含4KB可反复擦写的FLASHROM,采用Atmel公司的高密度、
非易失性存储技术制造,兼容标准MCS-51指令系统及8051引脚结构,内置
看门狗电路。
功能强大的AT89C5l可为许多嵌入式控制应用系统提供高性价比
的解决方案。
时钟电路用于产生单片机工作时所必需的时钟信号,其中晶振频
率为12MHz。
上电复位电路可保证单片机的在程序运行出错或操作错误使系统
处于死锁状态时,重启运行。
显示单元是LED汉字显示屏,由2片16乘以16LED点阵模块组成。
但由于Proteus软件目前版本中还没有16乘以16点阵模块,设计中采用Pro-teus 软件中的4个8乘以8点阵模块组合成1个16乘以16点阵模块。
点阵汉字的
阳极驱动是由单片机的PO口和P2口各自经过一片输出缓冲器74LS273向4
个8乘以8LED点阵输出字型码作为行驱动信号;点阵的阴极驱动由P1.0~P1.3 经过4-16线译码器74HCl54译码后输出列选信号,对4个8乘以8点阵进行
列扫描,从而控制LED点阵的相应像素点亮。
2个LED点阵汉字中的列选信。