- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
首先我们看一下8*8led显示屏?的原理
? 从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,那么相应的二极管就亮;要实现显示图形或字体,只需考虑其显示方式。通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。 ?例如:要实现一根柱形的亮法,如下图,对应的一
下列图是4个8*8LED组成的显示屏。
这里我把点阵LED显示屏制作的电路原理分成两个局部来介绍即显示屏电路和显示屏驱动电路。 一、 显示屏电路 本人用的是共阴极的8*8点阵屏,在市场上是比拟容易买到,下列图是8*8点阵屏的实物图。
LED阵列的显示方式是按显示编码的顺序,一行一行输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态 ,其它行都处于熄灭状态。Protel原理图如下:
列显示实物电路图的正反面如下:
二、 显示屏驱动电路 显示屏驱动电路的原理图如下: 1、主芯片控制电路 2、电源电路 整个电路的供电由USB电源提供,利用我们的电脑主机USB接口可以输出+5V电压,方便我们在实验室调试列方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个1k*8的排阻上拉。 行方向那么由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3控制。同样,驱动局部那么是16个9015的三极管完成的。
三、 程序与软件 在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示,即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字, 也可以显示在256像素范围内的任何图形。用8位的AT89S52单片机控制, 由于单片机的总线为8位,一个字需要拆分为2个局部如图9所示。本电路把它拆分为左部和右部,左部由16〔行〕*8〔列〕点阵组成, 下部也由16〔行〕*8〔列〕点阵组成。
为了让大家更清楚的理解点阵的扫描过程,在这我们以显示汉字“我〞为例,来说明其扫描原理: 右局部的第一行完成后,继续扫描左半部的第一行,为了接线的方便,我们仍设计成由左往右扫描,即从P00向P07方向扫描,从上图可以看到,这一行只有P05、P06亮,其它灭, 即16进制那么为0x60。然后单片机再次转向右半部第二行,仍为P21、P23点亮,即16进制0x0A。这一行完成后继续进行左半局部的第二行扫描,P02、P03、P04点亮,为二进即16进制0x1C。0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10,0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10,0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10,0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08 不过现在有很多现成的汉字字模生成软件, 我们就不必自己去画表格算代码了。 在网上汉字字模生成软件有很多种,本例中的“我〞字的取模方式为以横向8个连续点构成一个字节,最左边的点为字节的最低位,即BIT0,最右边的点为BIT7。很少有字模软件可以实现这一功能。 下面给出一个简单的静态显示“我〞字的程序清单: #include<reg52.h> #define ?CCED2 ?0x0000 ?/*我 ?*/ unsigned char code word_zai[16][2] = {/*我 ? CCED2 */ 0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10, 0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10, 0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10, 0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08};void main(){ ?char scan,i,j;?P0=0;P1=0;P2=0;while(1){ ? scan=0;?for(i=0;i<16;i++)? { P1=scan;?for(j=0;j<50;j++) ? //显示五十次? { P2=word_zai[i][0] ;? ? P0=word_zai[i][1] ?;? }?P0=0;P2=0;? scan++;}}?}
四、 安装与调试列显示的排针引出,排针长列显示?? 在画PCB时注意双面电路板的做
文档评论(0)