C51源程序集合 包括以下目录源码 ├─AD-MSP430f149D ├─ADC8535 ├─bin ├─c51源程序 ├─c51源程序锦集 ├─ct2Timer ├─

源代码在线查看: led显示器件的基础.txt

软件大小: 651 K
上传用户: andyandnancy
关键词: c51 ct2Timer AD-MSP 8535
下载地址: 免注册下载 普通下载 VIP

相关代码

				初学者:关于led显示的一点粗浅经验之谈,大家多多指教 [秋雨] [218次] 01-8-11 下午 04:05:26
				这段时间有不少朋友在作led显示,问了我不少问题,一一回答总是找不到要点
				在此我把我几年来作led的一点经验总结以下,作为对大家回答,希望对大家有
				点启发,也作为抛砖引玉吧,大虾们多谈谈自己的宝贵经验!
				
				一: LED显示器件的基础
				  LED发光器件一般常用的有2类,数码管和点阵,
				   1:数码管
				      a,数码管常用的一般8字型,分为A B C D E F G P段,其中P位小数点
				      b,数码管常用的有10根管脚(单位),每段一根管脚,另外两根管脚为
				        公共端,2根是通的
				      c,从尺寸上分的话种类很多,常用的有0.3 0.5 0.8 1.0 1.2 1.5 1.8 
				        2.3 3.0 4.0 5.0 等等
				      d,一般小于1.0的为单管芯,(1.0有单有双),1.2~~1.5为双管芯,1.8以
				       上为3个以上的管芯,因而他们的供电电压要求不同,一般每个关芯的
				        压降为2.1v左右
				         我的经验是0.8以下5v供电,1.0~2.3为12v,3.0以上更高
				      e,数码管分共阴和共阳两种
				
				    2:点阵
				      a,点阵常用的为8*8,以前还有5*8(现在不大用了)
				      b,点阵都是单管芯,分(行)共阴和(行)共阳,一般都用5v供电
				      c,8*8点阵为16根管脚(单色,也有24根的,可能是作废的双色点阵或者
				        为了能在同一种线路板上实现单色双色都可用而设计的,也比较常见)
				        8根行8根绿
				        双色为24根管脚,8根行,8根列红,8根列绿,
				      
				二: 显示基本原理
				    分为静态(只有数码管能实现)和动态
				   1:静态的比较好实现,在此不多讲了
				   
				   2:数码管动态
				
				    a,硬件连接
				      数码管一般为1/13能扫描,再高的话亮度损失比较大,
				
				      在此假设为列为13列,行为16行,共阳管,每行数码管的各段连在一起,每列数码
				     管的公共段连在一起
				
				      列开关用tip127,他可以直接用154驱动,达林顿管5安培,注意127输出
				    不要加电阻
				
				      行用595(164不建议)+2803或者2003+一个9013,在2003的输出要加上
				     限流电阻,一般为56~330欧姆(如果是				     电阻驱动)
				
				    b,软件
				      
				      采用89c51为cpu,存储器可采用24c系列,或者28c系列,注意他们的写入速度都不是很
				快,不过一般数码管的输入设备为键盘或遥控器,速度足够了,还有24c系列的读出速度也比较
				慢,我发现每次读出的数据大概只有20以内才不会影响更新显示
				    显示采用时钟中断1,中断时间不能超过1.5ms,最好为1.2ms左右,可以在中断服务程序中
				读24c02,也可以在中断的间隙中读取,但必须保证能够读出所有的一列数据!读出的数据放到
				一块显示区中,(在内存中定义一个数组buf[16]),在中断子程序中把数据发送的595中即可,
				最好采用串口发送,编程最简单.
				
				   发送完毕后,关掉控制行的154,给595的RCLK(12脚)一个脉冲,把数据从移位寄存器传输到
				锁存器,而后打开154并输入列信号即可
				
				    3: 点阵
				
				       a,点阵一般采用1/16扫描,控制原理和数码管差不多
				
				       b,硬件: 行用154+tip127,列用595加电阻(0~56欧姆)直接驱动
				
				       c,软件
				         方案比较多,见下面
				
				三: 先说说信息的存储        
				      分为2种,
				     1:一种为固化的汉字,汉字点阵信息存于27c256中,最多存1024个16*16点阵汉字,要修
				改只能重新写27c256,优点是不丢失,一般我们为银行做的都是这种,他很少修改显示能容,而
				且以后每次修改可以收费				      
				     2: 另一种是可以用户自己修改的,修改方式又分为2中,
				         早期一般用键盘或者遥控器修改,那样必须在主办上固化有汉字字库,可用27c040
				固化ucdos的hzk16全角字库和asc16半角字库,用户输入区位吗进行修改,用户需要显示的汉
				字以区位吗的方式存到一片E2POM中,显示的时候程序根据区位吗读取点阵信息送到屏上显
				示,
				          还有一种近年来常用的方式就是利用微机串口进行修改,这里面还分为两种
				      A,控制板上没有字库,微机发送的是显示的点阵信息,控制板接受后把信息存到带电池
				的RAM中(也可用E2PROM,但速度很慢),这种的缺点是掉电池的RAM不太可靠,常常丢失信息
				      B,控制板上带字库,微机发送汉字的机器吗(内吗)即可,其他同上
				
				四: 显示的控制
				   
				    信息的发送可以有好多方式,根据采用器件的不同而不同,有的厂家采用374控制而不采
				用595,那样的话直接写一个外部端口即可,374级连方式,(如果用1排374的话在传输中必须关
				掉显示,显示字较多的话影响亮度,用2排374不必关掉显示但增加硬件成本),目前用的较少了
				     595的很长见,发送可以用传口,很简单,也可以用别的口模拟传口发送(因为传口还有可
				能随时接受微机的信号),也可以采用传口复用(不过我不会,:)~~)
				     我采用的是用374+165向595发送数据,硬件比较复杂,但是在以后的显示花样中很好用!
				特别是左右移位,爽极了!
				    提示一下:最近用双龙的90S8515发现很好,因为他还有一个SPI口,用来送595信号更爽!
				速度可到3M,(12M晶体),强烈建议大家有这种芯片(靠,也不到双龙看到了会不会给点奖
				励....)
				
				五: 一些注意事项:
				
				    1: 显示时间,每行				    2: 根据经验,89C51 12M晶体最大控制48个16*16点阵,再大的话可以提高晶体频率和优
				化程序,(就是发送程序的时间最短)
				    3: 在显示的字比较多时,一定要注意发送子程序的代码效率,因为发送是一个循环,所以
				循环体内的处理越快越好,大家现在大都用C51,更的注意,我可是吃过亏的!
				
				大家看下面的例子:
				if(hangno==0x10)hangno=0; //hangno为显示的行序号
				 for(i=0;i				    {
				     PORT1=*(addr+hangno*0x600+i);//我的汉字信息是0~600为第一行信息
				                                  //600~0c00为第二行信息...
				     PORT2=0x0ff;
				    }
				
				
				每次发送32个字节(16个字),程序编译通过,没有问题,可是当显示64个汉字时(假设)显示就
				乱了,后来改为  
				      
				if(hangno==0x10)hangno=0; //hangno为显示的行序号
				  w=hangno*0x600;
				 for(i=0;i				    {
				     PORT1=*(addr+w+i);//我的汉字信息是0~600为第一行信息
				                                  //600~0c00为第二行信息...
				     PORT2=0x0ff;
				    }
				
				就没有问题了,大家自己看看,就知道原因了,对把?
				   
				
				写了这么多,想到那些到那,很不系统,不过好累呀,我下两盘军旗放松放松,大家多提提意见,
				这只是讲的小屏的控制方法(				
				
				
				
				感谢秋雨前辈!您辛苦了! [阿风] [3次] 01-8-11 下午 04:17:53 
				
				秋雨兄的字是字字珠玑,只是我等阿菜对于理论的东东很难理解,是否可是提供一个简单的电路和详细的解释,让俺们学习? [WALL] [3次] 01-8-11 下午 04:38:40 
				
				加入精华版了,非常感谢“秋雨”大侠无私的奉献。 [龙啸九天] [5次] 01-8-11 下午 04:49:51 
				
				非常感谢秋雨,很精彩! [will009] [2次] 01-8-11 下午 05:01:13 
				
				谢谢斑竹的夸奖,一点小经验,不足挂齿 [秋雨] [3次] 01-8-11 下午 08:23:44 
				
				太及时了,非常感谢。 [kk_npu] [2次] 01-8-11 下午 09:03:57 
				
				我期待很久了,再次感谢。 [龙啸九天] [1次] 01-8-11 下午 09:17:22 
				
				落后了,谁还用区位码输入?小显示屏一般用MCU+CPLD+232+遥控器,显示板用595(TI6B595)+CET4953(MOS型行驱动);大屏用FPGA通过显卡取数据,用FPGA完成扫描。... [oldwin] [22次] 01-8-12 上午 11:35:55 
				
				谢过秋雨前辈。小弟对你崇敬之情有如滔滔江水………………………………………………………………………………………………………………………………………………………………………………………………………………… [exdata] [2次] 01-8-12 下午 01:01:58 
				
				当然可以,用avr90s8515可以吗?我也是刚用,很好的! [秋雨] [8次] 01-8-12 下午 04:16:29 
				
				请教e2prom写的慢,读的也慢吗? [rechar] [4次] 01-8-12 下午 05:24:37 
				
				读写几乎差不多,写慢因为连续写不能超过叶字节数,读时没叶限制,只要你缓存够大。 [exdata] [9次] 01-8-12 下午 05:41:44 
				读写几乎差不多,写慢因为连续写不能超过叶字节数,读时没叶限制,只要你缓存够大。
				
				
				28c系列的没有页的概念,读的速度不慢!你讲的是28f系列 [秋雨] [3次] 01-8-12 下午 06:09:25 
				
				28C系列EEPROM的确有页写功能,我用过了。 [中山子木] [3次] 01-8-13 上午 12:45:06 
				
				是吗?28c64有页功能吗?我可一直用28c64呀,页功能如何用?有资料吗? [秋雨] [3次] 01-8-13 上午 09:09:17 
				
				谢秋雨 [zhu_xinghua] [3次] 01-9-15 下午 03:16:59 
				谢过秋雨前辈。小弟对你崇敬之情有如滔滔江...............
				能不能给张.sch图就美不胜收了。 16*16*16个字条屏。   fzzxh@21cn.com 
				
				 
				点击这里回复这篇贴子>>
				_____________________________________________________________________________
				Copyright?,C51BBS论坛 2000-2001 
				
							

相关资源