
前些日子,从淘宝上购得一块08接口的双色LED显示屏(打算做个音乐频谱显示器),捣鼓了好几天,终于搞清楚了其控制原理,在这里做个总结,算是备忘吧。
1.LED显示屏的扫描方式
LED显示屏的扫描方式有静态、1/2、1/4、1/8、1/16几种。
这些扫描方式具体是什么意思呢?我们以1/16扫描方式为例来说明。因为LED显示屏是逐行刷新显示的,所以在任意时刻我们只能控制其任意一行的显示,每次刷新显示一行,16行为一个扫描周期,这就是1/16扫描方式。当然了,一个扫描周期的时间必须要小于人眼视觉暂留的时间(约0.05秒到0.2秒),否则,人眼会观察到LED显示屏所呈现的画面出现闪烁。
2.LED显示屏的接口形式
LED显示屏的接口形式有04接口、08接口、12接口几种,这里只介绍08接口。
08接口的管脚定义如图1所示。


图108接口管脚定义
其中,管脚LA、LB、LC、LD表示行信号;管脚R1、R2、G1、G2表示列信号;管脚EN表示使能信号;管脚SCK表示时钟信号;管脚STB表示锁存信号;管脚GND表示接地。
r1为调整电阻 1为调整脚 2为输出脚 3为输入脚 1 1、主板的开机电路 1 1 . 1、定义:根据主板的设计电路不同,主板的开机电路控制方式也不同,有的 通过南桥直接控制led显示屏08接口啥意思,有的通过i / o芯片控制,也有的通过门电路芯片控制,但不管开机 电路控制方式如何,开机电路的工作原理都是相同的,即通过开机键实现开关机。3.5.2 sg3525的封装图引脚功能介绍各引脚功能如下:1脚、2脚分别为误差放大器的反相输入端和同相输入端,3脚为同步输出端,4脚为振荡器输出,5脚、6脚分别外接内部振荡器的时基电容和电阻,7脚接放电电阻,8脚为软启动,9脚为误差放大器的频率补偿端,10脚为关断控制端,用于实现限流控制,11脚、14脚为输出端,12脚为接地端,13脚接输出管集电极电源,15脚接sg3525的工作电源,16脚为5.1v基准电压3.5.3 sg3525芯片介绍sg3525芯片是由美国硅通用电气公司设计的适用于高频功率mos管驱动的第二代集成电路脉冲宽度控制器,其中sg3525可用于驱动n沟道的功率mos管。综合3842芯片驱动电路和buck dc-dc降压电路可得出:基于uc3842的buck降压电路整体电路分析:buck降压电路mos开关管采用uc3842芯片6脚输出的pwm矩形波驱动,利用开关管通断的特性,电感的储能,电容的稳压,二极管的断间续流功能,实现电路的降压功能。
当管脚LD、LC、LB、LA的输出分别为0000时,LED显示屏的第一行被选中;
当管脚LD、LC、LB、LA的输出分别为0001时,LED显示屏的第二行被选中;
当管脚LD、LC、LB、LA的输出分别为0010时,LED显示屏的第三行被选中;

......
当管脚LD、LC、LB、LA的输出分别为1111时,LED显示屏的第十六行被选中。
现在,我们已经知道如何通过08接口的四个行信号LA、LB、LC、LD来控制LED显示屏的每一行了。将08接口的四个列信号都接地,循环给四个行信号输入0000到1111,就可以点亮整个LED显示屏了。
led显示屏通常由主控制器、扫描板、显示控制单元和led显示屏体组成,主控制器从计算机显示卡获取一屏各像素的各色亮度数据,然后分配给若干块扫描板,每块扫描板负责控制led显示屏上的若干行(列),而每一行(列)上的led显示信号则用串行方式通过本行的各个显示控制单元级联传输,每个显示控制单元直接面向led显示屏体。oe是消影信号,它可以选择控制行信号或列信号,用于led点阵是否能被点亮和控制整屏的亮度。汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32b,分左右两半,各占16b,左边为1、3、5……右边为2、4、6……根据在lcd上开始显示的行列号及每行的列数可找出显示ram对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32b显示完就可以lcd上得到一个完整汉字。
3.LED显示屏的列驱动
LED显示屏的列驱动使用了74HC595芯片,该芯片具有8位串行输入、8位串行/并行输出,8位锁存功能。
spi总线系统可直接与各个厂家生产的多种标准器件直接接口,该接口一般使用4条线:串行时钟线(sck)、主机输入/从机输出数据线miso、主机输出/从机输入数据线most和低电平有效的从机选择线ss(有的spi接口芯片带有中断信号线int或int、有的spi接口芯片没有主机输出/从机输入数据线mosi)。基于系统的需求,显示输出部分采用北京青云创新公司生产的lcm128645zk型液晶显示器,控制器为st7920,带有内部字库,信号传输模式为串行3线式.键盘输入部分选用74hc165芯片将并行输入的数据转换成串行数据输入,通过键盘将信息输入到单片机中.。将四组的输出信号经过信号调理电路,分别送入a/d 芯片,本设计采用的a/d芯片为16位精度、最大采样速率为100 ksps的ads8325,其串行spi输出经过光耦隔离后与tms320f28335的spi接口相连,由于spi时钟频率可以达到mhz 级,因此从ads8325 读出数据耗时基本可以忽略不计,每一轮采样时间将非常短。

网卡的控制芯片:网卡中最重要元件,是网卡的控制中心,有如电脑的cpu,控制着整个网卡的工作,负责数据的传送和连接时的信号侦测.早期的10/100mbps的双速网卡会采用两个控制芯片(单元)分别用来控制两个不同速率环境下的运算,而目前较先进的产品通常只有一个芯片控制两种速度.。仔细分析电路,此机背光不亮应是主芯片背光控制输出与屏体背光控制不一致造成的,原因是有时拿来的主板,对flash进行重写时不一定使用原来的版本,即主芯片背光调整控制脚在不同版本时可分别输出高电平或低电平,高电平时可直接接入到屏体背光板,直接进行背光调整控制,而在低电平时,侧需要一个有r257、q36、r255组成的翻转电路进行切换调整,那么对本机来讲,由于主芯片输出的是高电平led显示屏08接口啥意思,我们仅需去掉r257、q36、r255组成的翻转电路,把它们换成0Ω电阻,让主芯片输出的背光调整控制直接控制屏体背光,即解决了背光不亮的问题。2)⑥、⑦、⑨~⑩脚为空脚,⑩、⑩脚接的120k[1电阻与内部电路构成振荡电路,产生载波信号,与①~⑤脚输入的数据编码后由⑩脚串行输出,再经晶体管$8050放大后驱动红外发射管发出遥控信号。
显然,当红绿信号同时使能时(列信号低电平使能),就可以控制LED显示屏显示出来了。
液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由m×n个显示单元组成,假设lcd显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8 128个点组成,屏上64×16个显示单元与显示ram区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。驱动设计的目的是将触摸坐标即时的转换为显示坐标,直接在lcd屏上显示出来,然后经过输入识别软件的处理(例如汉王的识别软件),识别出输入的字符,汉字等。2、驱动方案的区别:显示主板方案是不一样的,拼接屏的驱动主板主要处理动态图像方面更出色,液晶显示器由于开机时间一般不超过8个小时,采用的是民用级别的显示主板,而液晶拼接屏则要负担365天每天二十四小时的工作量,所以必须采用的监控主板来保证较高的亮度对比度清晰度超耐高温等,进而降低屏幕的使用损耗。
4.示例程序
了解了LED显示屏的驱动原理之后,编写单片机程序,利用08接口对其进行控制是很容易的。
程序的大致流程应该是这样的:
(1)初始化单片机的GPIO引脚。

(2)设置08接口的使能信号EN。
(3)利用行信号选中第1行,移位串行输入第1行的列信号数据,锁存列信号,并行输出显示。
(4)利用行信号选中第2行,移位串行输入第2行的列信号数据,锁存列信号,并行输出显示。
(5)依次遍历,直到第32行,并行输出显示为止。
(6)循环进行3-5的过程。
如下的代码示例了整个程序流程。
1 void main(void) 2 { 3 int rowNumber = 0; //行序号 4 int columnNumber = 0; //列序号 5 6 InitGPIO(); //初始化单片机的GPIO引脚 7 LED_OE = 1; //使能信号 8 9 while(1) //循环刷新显示 10 { 11 for(rowNumber=0; rowNumber<16; rowNumber++) //写入上半屏的显示内容 12 { 13 SetRowLight(rowNumber); //行信号选择 14 15 for(columnNumber=0; columnNumber<8; columnNumber++) //写入列信号数据 16 { 17 Write1ByteToFirstHalfScreen(FirstHalfScreenArray[rowNumber][columnNumber], 0xFF); 18 } 19 20 LED_STB = 0; //锁存列信号 21 LED_STB = 1; 22 } 23 24 for(rowNumber=0; rowNumber<16; rowNumber++) //写入下半屏的显示内容 25 { 26 SetRowLight(rowNumber); //行信号选择 27 28 for(columnNumber=0; columnNumber<8; columnNumber++) //写入列信号数据 29 { 30 Write1ByteToLowerHalfScreen(0xFF, LowerHalfScreenArray[rowNumber][columnNumber]); 31 } 32 33 LED_STB = 0; //锁存列信号 34 LED_STB = 1; 35 } 36 } 37 }
其中,函数SetRowLight()用于控制行信号的选择;函数Write1ByteToFirstHalfScreen()用于向上半屏写入列信号数据;函数Write1ByteToLowerHalfScreen()用于向下半屏写入列信号数据,二维数组FirstHalfScreenArray[16][8]和LowerHalfScreenArray[16][8]分别用于存储列信号数据,该数据可以通过汉字图形取模软件得到。
例如,向二维数组FirstHalfScreenArray[16][8]和LowerHalfScreenArray[16][8]中分别放入我的邮箱“menlsh@163.com”的ASCII数据码,就可以得到如图2所示的显示效果了。

图2LED显示屏显示效果示例
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-109259-1.html
长长中国军人的血性劲儿
#杨洋2015金投赏##杨洋轻奢young#哈哈哈哈
我们烊烊最棒了