实验-扫描显示驱动电路

实验-扫描显示驱动电路
实验-扫描显示驱动电路

实验-扫描显示驱动电路

————————————————————————————————作者:————————————————————————————————日期:

2

实验4 扫描显示驱动电路

一、实验目的

了解教学系统中8位八段数码管显示模块的工作原理,设计标准扫描驱动电路模块,以备后面实验用。

二、硬件要求

主芯片Altera EPM7128SLC84-15,时钟,8位八段数码管显示器,四位拨码开关。

三、实验内容

用四位拨码开关产生8421BCD码,用CPLD分别产生字形编码电路和扫描驱动电路,然后进行仿真,观察波形,正确后编程下载实验测试。

1、编一个简单的从0~F轮换显示十六进制数的电路。

2、用计数器产生数码管扫描驱动信号,调节时钟频率,感受扫描的过程,并观察字符的亮度和显示刷新的效果。

7段数码管显示字符0~F,显示字符与7段数码管驱动线的对应关系如下:

二进制数字符7段数码管(gfedcba)

0000 0 0111111(3F)

0001 1 0000110(06)

0010 2 1011011(5B)

0011 3 1001111(4F)

0100 4 1100110(66)

0101 5 1101101(6D)

0110 6 1111101(7D)

0111 7 0000111(07)

1000 8 1111111(7F)

1001 9 1101111(6F)

1010 A 1110111(77)

1011 B 1111100(7C)

1100 C 0111001(39)

1101 D 1011110(5E)

1110 E 1111001(79)

3

4 1111

F 1110001(71)

四、实验原理

四位拨码开关提供8421BCD 码,经译码电路

DECL7S 后连接8段数码管的字形显示驱动信号a,b,c,d,e,f,g 。数码管扫描电路可通过片选地址SEL[2..0]控制。由SEL[2..0]和a,b,c,d,e,f,g 决定了8位数码管中的那一位显示和显示什么字形。SEL[2..0]变化的快慢决定了扫描频率的快慢。

1、参考电路:如图4-1所示(时钟频率>40Hz)

实验连线:把RESET 和rst0接高电平,CLK 接上时钟信号,可观察到第一个数码管循环显示字符0~F 。

2、参考电路:如图4-2所示

图4-1

图4-1’

图4-2

五、实验连线

输入信号:

D3,D2,D1,D0所对应的管脚同四位拨码开关相连;

清零信号RESET所对应的管脚同按键开关相连;

时钟CLK所对应的管脚同试验箱上的时钟源相连。

输出信号:

代表扫描片选地址信号SEL2,SEL1,SEL0的管脚同四位扫描驱动地址的低三位相连,最高位地址接“0”(也可悬空);

代表七段数码驱动信号a, b, c, d, e, f, g的管脚分别同扫描数码管的段输入a,b,c,d,e,f,g相连。

六、实验报告

1、字形编码的种类,即一个8段数码管可产生多少种字符,产生所有字符需多少根译码信号线?

2、字符显示亮度和扫描频率的关系,且让人感觉不出光烁现象的最低扫描频率是多少?

七、附录

5

(1) 字符译码器DECL7S的VHDL源程序

library ieee;

use ieee.std_logic_1164.all;

entity decl7s is

port(a:in std_logic_vector(3 downto 0);

led7s:out std_logic_vector(6 downto 0));

end;

architecture one of decl7s is

begin

process(a)

begin

case a is

when "0000" => led7s<="0111111";

when "0001" => led7s<="0000110";

when "0010" => led7s<="1011011";

when "0011" => led7s<="1001111";

when "0100" => led7s<="1100110";

when "0101" => led7s<="1101101";

when "0110" => led7s<="1111101";

when "0111" => led7s<="0000111";

when "1000" => led7s<="1111111";

when "1001" => led7s<="1101111";

when "1010" => led7s<="1110111";

when "1011" => led7s<="1111100";

when "1100" => led7s<="0111001";

when "1101" => led7s<="1011110";

when "1110" => led7s<="1111001";

when "1111" => led7s<="1110001";

when others => null;

end case;

end process;

end;

(2) 16进制4位计数器的VHDL源程序

library ieee;

use ieee.std_logic_1164.all;

6

use ieee.std_logic_unsigned.all;

entity cnt4b is

port(clk,rst,en : in std_logic;

cq : out std_logic_vector(3 downto 0);

cout : out std_logic );

end cnt4b;

architecture behave of cnt4b is

begin

process(clk,rst,en)

variable ci:std_logic_vector(3 downto 0);

begin

if rst='1' then ci:=(others=>'0');--计数器异步复位

elsif clk'event and clk='1' then

if en='1' then --检测是否允许计数

if ci<"1111" then ci:=ci+1; --允许计数,

else ci:=(others=>'0'); --等于15,计数值清零

end if;

end if;

cq<=ci;

end if;

if ci="1111" then cout<='1'; --输出进位信号

else cout<='0';

end if;

end process;

end behave;

※文本编辑器的使用说明

MAX+PLUSII支持AHDL,VHDL及Verilog HDL等硬件描述语言。下面通过一个例子说明采用文本方式进行设计的步骤。

首先选择File/New,在对话框中选择Text Editor File,打开一个无标题的Text Editor窗口。然后选择File/Save As,在File Name框内输入文件名为——实体名.vhd,保存文件。将上面的源程序输入。完成后,可选择File/Project/Set Project to Current File,将文件设为当前项目。然后同图形编辑一样,进行编译通过,波形仿真。为了能在图形编辑器中调用,可以通过File/Greate Default Symbol将这部分生成一个可调用的图形元件符号,可以通过File/Edit Symbol对生成的图形符号进行简单编辑。注意,只有在同一个文件夹中才可直接调用。为了在任意文件中调用,可以将编译生成的扩展名为sym的符号文件和扩展名为vhd的文本源程序文件放在同一个文件夹中,通过Option/User library命令建立自己的元件库。

7

七段数码管驱动实验报告

班级_08网络__ 学号20080611052______ 姓名_袁晓洋__ 七段数码管驱动实验 [实验目的] 深入理解单片机IO口编程原理 掌握七段数码管的原理和驱动方法 掌握7段数码显示编码的方法 [实验内容] 采用单片机的IO驱动共阳极七段数码管,采用灌电流的方式使对应的LED 发光,并采用代码延时的方式实现七段数码管循环显示从0-9的数字,数字变化的间隔大约为1秒钟。 [实验步骤] 在此填写在proteus中的操作步骤,并附绘制的电路图 在此填写keil C51代码并附详细注释 这是一个共阳极七段数码管将端口接至单片机P0 在共阳极接一个电源!及可实现; #include //添加头文件 #define SEG P0 //定义七段数码管LED连接P0 Char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};//定义数字数组 0--9 void delay(int); //声明delay函数 main() //主函数 { unsigned char i; while(1) 不停地循环 for(i=0;i<10;i++) { SEG=TAB[i]; 显示数字 delay(1000); 延时1秒 }

} void delay(int x) //延时X*1ms { int i,j; for(i=0;i

LED显示屏常用驱动芯片资料(精)

LED 常用芯片技术资料 1、列电子开关74HC595 (串并移位寄存器) 第14脚DATA ,串行数据输入口,显示数据由此进入,必须有时钟信号的配合才能移入。 第13脚EN ,使能口,当该引脚上为“1”时QA~QH口全部为“1”,为“0”时QA~QH的输出由输入的数据控制。第12脚STB ,锁存口,当输入的数据在传入寄存器后,只有供给一个锁存信号才能 将移入的数据送QA~QH口输出。 第11脚CLK ,时钟口,每一个时钟信号将移入一位数据到寄存器。 第10脚SCLR ,复位口,只要有复位信号,寄存器内移入的数据将清空,一般接VCC 。第9脚DOUT ,串行数据输出端,将数据传到下一个。第15、1~7脚,并行输出口也就是驱动输出口,驱动LED 。 2、译码器 74HC138 第1~3脚A 、B 、C ,二进制输入脚。第4~6脚片选信号控制,只有在4、5脚为“0”6脚为“1”时,才会被选通,输出受A 、B 、C 信号控制。其它任何组合方式将不被选通,且Y0~Y7输出全为“1”。

3、缓冲器件74HC245 第1脚DIR ,输入输出端口转换用,DIR=“1” A输入B 输出,DIR=“0” B输入A 输出。第2~9脚“A ”信号输入输出端;第11~18脚“B ”信号输入输出端。 第19脚G ,使能端,为“1”A/B端的信号将不导通,为“0”时A/B端才被启用。

4、4953的作用:行驱动管,功率管。 1、3脚VCC , 2、4脚控制脚,2脚控制7、8脚的输出,4脚控制5、6脚的输出,只有当2、4脚为“0”时,7、8、5、6才会输出,否则输出为高阻状态。 5、74HC04的作用:6位反相器。 信号由A 端输入Y 端反相输出,A1与Y1为一组,其它类推。例:A1=“1”则Y1=“0”、A1=“0”则Y1=“1”,其它组功能一样。 6、 74HC126(四总线缓冲器)正逻辑 Y=A 2、SDI 串行数据输入端 3、CLK 时钟信号输入端, 4、LE 数据锁存控制端 5~20、恒流源输出端 21、OE 输出使能控制端 22、SDO 串行数据输出端,级联下一个芯片 23、R-EXT 外接电阻,控制恒流源输出端电流大小

彻底解决NVIDIA最新显卡驱动无法找到兼容的图形硬件

彻底解决NVIDIA最新显卡驱动无法找到兼容的图形硬件(最新驱动) 一、现状:有两台Dell T7500工作站,一台正常安装的windows xp系统,并安装完了NVIDIA Quadro 5000 驱动程序,另一台为这台系统镜像。(用ghost分区到分区进行的系统复制)进系统后没有显卡驱动,正常卸载显卡驱动后再安装时报错,报错如下:

1、右键"计算机"点“属性”打开设备管理器,然后在显示适配器里面。右键显卡。点“属性” 如下图:(带!号的vga设备,此时驱动应显示不正常。而非下图中所示报错。) 2、如下图操作吧。详细信息里面的属性选择“硬件ID”,先复制红色框框的硬件ID代码。。。

这个硬件ID是修改的重要角色。 3、把下载好的显卡驱动先安装解压出来(虽然下载下来为.EXE格式,但右键可直接解压),虽然现在还安装不成功,但会解压一个文件夹出来。 4、双击打开这个文件夹到Display.Driver文件夹,找到这几个安装信息,不同显卡型号在这几个安装信息里面修改。 这些配置文件中有不同的显卡型号 之前总有人询问自己的显卡在哪个文件中,现提供对应的配置文件所包含的显卡型号:(蓝色字体为显卡类型,粉红色字体为所要用到的显卡代码。) nv_disp.inf不用管 nvae.inf包含: NVIDIA_DEV.0DC0.01 = "NVIDIA GeForce GT 440" NVIDIA_DEV.0DF2.01 = "NVIDIA GeForce GT 435M" NVIDIA_DEV.1050.01 = "NVIDIA GeForce GT 520M" nvak.inf包含: NVIDIA_DEV.0A70.01 = "NVIDIA GeForce 310M" NVIDIA_DEV.0DD1.01 = "NVIDIA GeForce GTX 460M" NVIDIA_DEV.0DF4.01 = "NVIDIA GeForce GT 540M" NVIDIA_DEV.1251.01 = "NVIDIA GeForce GTX 560M" NVDD.inf包含: NVIDIA_DEV.0649.01 = "NVIDIA GeForce 9600M GT" NVIDIA_DEV.0DF5.01 = "NVIDIA GeForce GT 525M" NVIDIA_DEV.0DF5.02 = "NVIDIA GeForce GT 525M " NVIDIA_DEV.1054.01 = "NVIDIA GeForce 410M"

单片机实验报告-蜂鸣器驱动实验

本科实验报告 课程名称:单片机原理与接口技术实验项目:蜂鸣器驱动实验 实验地点:电机馆 专业班级:学号: 学生姓名: 指导教师: 2015年 6 月9 日

蜂鸣器驱动实验 一、实验目的 1、学习输入/输出端口控制方法 2、了解音频发声原理 二、实验说明 本实验是利用89C51端口定时器输出控制端口,驱动扬声器发声,声音的频率高低由延时快慢控制。本实验是利用单片机唱歌的声音控制程序,请用户思考如何修改程序,可以让蜂鸣器发出不同频率,不同长短的声音。 三、实验原理 1、通过单片机控制驱动信号使蜂鸣器发出不同音调的声音,驱动方波的频率越高,音调就越高;驱动方波频率越低,音调越低。由此,我们可以根据驱动方波的频率使蜂鸣器凑出各种音调的声音。 2、由于单片机I/O口的输出电流较小,因此需要三极管放大电路驱动蜂鸣器。 四、主要仪器设备 单片机仿真试验箱,THKL-C51型单片机仿真器,计算机 五、实验内容及步骤 INT1输出音频信号接音频驱动电路,使蜂鸣器的发声。 1、使用单片机最小应用系统和蜂鸣器模块。蜂鸣器模块的短路帽J1插到VCC方向,用导线将INT1接到蜂鸣器输入端。 2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。 3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“MUSIC.ASM”源程序,进行编译,直到编译无误。 4、全速运行程序,扬声器周期性的发出“八月桂花开”歌曲。(添加“MUSIC1.ASM”程序为“祝你平安”歌曲) 5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)

嵌入式系统IO驱动实验报告

嵌入式系统实验报告(五) --IO接口驱动 138352019陈霖坤 一实验目的 学习嵌入式Linux操作系统设备驱动的方法。 二实验内容与要求 根据硬件接口资料,实现任意一个设备的基本控制功能,包括驱动程序和用户程序。 三从外设到用户空间 1内核空间与用户空间 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间”。内核空间和用户空间都是指虚拟空间,也就是虚拟地址。 这个概念的由来,跟CPU的发展有很大关系,在目前CPU的保护模式下,系统需要对其赖以运行的资料进行保护,为了保证操作系统内核资料,我们把内存空间进行划分,一部分为操作系统内核运行的空间,另一部分是应用程序运行的空间,所谓空间就是内存的地址。在386以前的CPU实模式下,操作系统内核与用户程序的内存空间是不做区分的,也就不存在内核空间和用户空间的说法了。 CPU的保护模式的一个重大特点,也就是硬件直接支持的内存访问模式,虚拟地址空间到物理地址空间的映射。这种工作模式与内核空间用户空间在技术上的相辅相成,也是促成内存空间划分的原因。操作系统为了保护自己不被普通程序的破坏,对内核空间进行了一些定义,比如访问权限,换入换出,优先级等等。也就是说内核空间只允许内核访问,用户程序如果要访问内核空间就需要经过内核的审核。 2ioremap 几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 处理器(如X86)为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O 端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元。 (2)内存映射方式(Memory-mapped)

LED显示屏专用驱动芯片详细介绍

目前,LED显示屏专用驱动芯片生产厂家主要有TOSHIBA(东芝)、TI(德州仪器)、SONY(索尼)、MBI{聚积科技}、SITI(点晶科技)等。在国内LED显示屏行业,这几家的芯片都有应用。 TOSHIBA产品的Xing价比较高,在国内市场上占有率也最高。主要产品有TB62705、TB62706、TB62725、TB62726、TB62718、TB62719、TB62727等。其中TB62705、TB62725是8位源芯片,TB62706、TB62726是16位源芯片。TB62725、TB62726分别是TB62705、TB62706的升级芯片。这些产品在电流输出误差(包括位间和片间误差)、数据移位时钟、供电电压以及芯片功耗上均有改善。作为中档芯片,目前”TB62725、TB62726已经逐渐替代了TB62705和TB62706。另外,TB62726还有一种窄体封装的TB62726AFNA芯片,其宽度只有6.3mm(TB62706的贴片封装芯片宽度为8.2mm),这种窄体封装比较适合在点间距较小的显示屏上使用。需要注意的是,AFNA封装与普通封装的引脚定义不一样(逆时针旋转了90度)。TB62718、TB62719是TOSHIBA针对高端市场推出的驱动芯片,除具有普通恒流源芯片的功能外,还增加了256级灰度产生机制(8位PWM)、内部电流调节、温度过热保护(TSD)及输出开路检测(LOD)等功能。此类芯片适用于高端的LED全彩显示屏,当然其价格也不菲。TB62727为TOSHIBA的新产品,主要是在TB62726基础上增加了电流调节、温度报警及输出开路检测等功能,其市场定位介于TB62719(718)与TB62726之间,计划于2003年10月量产。 TI作为世界级的IC厂商,其产品Xing能自然勿用置疑。但由于先期对中国LED市场的开发不力,市场占有率并不高。主要产品有TLC5921、TLC5930和TLC5911等。TLC5921是具有TSD、LOD功能的高精度16位源驱动芯片,其位间电流误差只有±4%,但其价格一直较高,直到最近才降到与TB72726相当的水平。TLC5930为具有1024级灰度(10位PWM)的12位源芯片,具有64级亮度可调功能。TLC5911是定位于高端市场的驱动芯片,具有1024级灰度、64级亮度可调、TSD、LOD等功能的16位源芯片。在TLC5921和TLC5930芯片下方有金属散热片,实际应用时要注意避开LED灯脚,否则会因漏电造成LED灯变暗。 SONY产品一向定位于高端市场,LED驱动芯片也不例外,主要产品有CXA3281N和CXR3596R。CXA3281N是8位源芯片,具有4096级灰度机制(12位PWM)、256级亮度调节、1024级输出电流调节、TSD、LOD和LSD(输出短路检测)等功能。CXA3281N主要是针对静态驱动方式设计的,其最大输出电流只有40mA。CXA3596R是16位源芯片,功能上继承了CXA3281N的所有特点,主要是提高了输出电流(由40mA增加到80mA)及恒流源输出路数(由8路增加到16路)。目前CXA3281N的单片价格为1美元以上,CXA3596R价格在2美元以上。 MBI(聚积科技)的产品基本上与TOSHIBA的中档产品相对应,引脚及功能也完全兼容,除了恒流源外部设定电阻阻值稍有不同外,基本上都可直接代换使用。该产品的价格比TOSHIBA的要低10~20%,是中档显示屏不错的选择。MBI的MBl5001和MBl5016分别与TB62705和TB62706对应,MBl5168千口MBl5026分另(j与TB62725禾口TB62726对应。另外,还有具有LOD功能的其新产品MBl5169(8位源)、MBl5027(16位源)、64级亮度调节功能的MBl5170(8位源)和MBl5028(16位源)。带有LOD及亮度调节功能的芯片采用MBI公司的Share-I-OTM技术,其芯片引脚完全与不带有这些功能的芯片,如MBl5168和MBl5026兼容。这样,可以在不变更驱动板设计的情况下就可升级到新的功能。

显示器驱动程序

/*------------------------------------------------------------------------------------------ [文件名] 12864.c [功能] 128X64驱动程序 [版本] 2.0 [作者] 鞠春阳 [最后修改时间] 2003年5月12日 [版权所有] https://www.360docs.net/doc/824838524.html, [资料] 请到https://www.360docs.net/doc/824838524.html,下载 ================================================================================= ==========*/ #include "absacc.h" #include "intrins.h" //自定义库在"C:\comp51\UserLib\"文件夹中 #include ".\inc\ASCII816.h" //字符点阵库 32-127 #include ".\inc\HZTable.h" //汉字点阵库(自做) #include ".\inc\Menu.h" //汉字点阵库(自做) // LCD128*64 数据线 #define LCD12864DataPort P1 // LCD128*64 I/O 信号管脚 sbit di =P3^1; // 数据\指令选择 sbit rw =P3^3; // 读\写选择 sbit en =P3^2; // 读\写使能 sbit cs1 =P3^4; // 片选1,低有效(前64列) sbit cs2 =P3^5; // 片选2,低有效(后64列) sbit reset=P0^7; // 复位 /*----------------------------------------------------------------------------------------------------*/ /* ****函数列表**** //开关显示 void SetOnOff(unsigned char onoff) //选择屏幕 //screen: 0-全屏,1-左屏,2-右 void SelectScreen(unsigned char screen)

北京科技大学控制实验报告

实验三 利用MATLAB 进行时域分析 一、实验目的 (1) 学会使用MATLAB 编程绘制控制系统的单位阶跃响应曲线; (2) 研究二阶控制系统中,?、?n 对系统动态特性和时域指标的影响; (3) 掌握准确读取动态特性指标的方法; (4) 分析二阶系统闭环极点和闭环零点对系统动态性能的影响; (5) 研究三阶系统单位阶跃响应及其动态性能指标与其闭环极点的关系; (6) 研究闭环极点和闭环零点对高阶系统动态性能的影响; (7) 了解高阶系统中主导极点与偶极子的作用; (8) 了解系统阶跃响应、脉冲响应和斜坡响应输出曲线之间的联系与差别。 二、实验原理及内容 1. 求系统的特征根 若已知系统的特征多项式D (s),利用roots ( ) 函数可以求其特征根。若已知系统的传递函数,利用eig ( ) 函数可以直接求出系统的特征根。 2、求系统的闭环根、ζ和ωn 函数damp ( ) 可以计算出系统的闭环根、ζ和?n 。 3、零极点分布图 可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,调用格式为: pzmap(num,den) 【范例3-1】给定传递函数: 2 72436 4523)(2 345234+++++++++=s s s s s s s s s s G 利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如错误!未找到引用源。所示。 >> num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; pzmap(num,den) title(1Pole-Zero Map1) % 图形标题。

图3- 1 MATLAB 函数零、极点分布图 4、求系统的单位阶跃响应 step ( ) 函数可以计算连续系统单位阶跃响应(impulse( ) 函数可以计算连续系统单位脉冲响应): step (sys) 或step ( sys , t ) 或step (num , den) 函数在当前图形窗口中直接绘制出系统的单位阶跃响应曲线,对象sys 可以由tf ( ),zpk ( ) 函数中任何一个建立的系统模型。第二种格式中t 可以指定一个仿真终止时间,也可以设置为一个时间矢量(如t =0 : dt : Tfinal ,即dt 是步长,Tfinal 是终止时刻)。 如果需要将输出结果返回到MATLAB 工作空间中,则采用以下调用格式: c=step(sys) 此时,屏上不会显示响应曲线,必须利用plot()命令查看响应曲线。plot 可以根据两个或多个给定的向量绘制二维图形。 【范例3-2】已知传递函数为:25 425 )(2++= s s s G 利用以下MATLAB 命令可得阶跃响应曲线如错误!未找到引用源。所示。 >> num=[0,0,25]; den=[1,4,25]; step(num,den) grid % 绘制网格线。 title(1Unit-Step Response of G(s)=25/(s^2+4s+25) 1) % 图像标题

驱动芯片

1 引言 LED显示屏主要是由发光二极管(LED)及其驱动芯片组成的显示单元拼接而成的大尺寸平面显示器。驱动芯片性能的好坏对LED显示屏的显示质量起着至关重要的作用。近年来,随着LED市场的蓬勃发展,许多有实力的IC厂商,包括***的东芝(TOSHIBA)、索尼(SONY),美国的德州仪器(T1),台湾的聚积(MBl)和点晶科技 (SITl)等,开始生产LED专用驱动芯片。 2 驱动芯片种类 LED驱动芯片可分为通用芯片和专用芯片两种。所谓的通用芯片,其芯片本身并非专门为LED而设计,而是一些具有LED显示屏部分逻辑功能的逻辑芯片(如串-并移位寄存器)。而专用芯片是指按照LED发光特性而设计专门用于LED显示屏的驱动芯片。LED是电流特性器件,即在饱和导通的前提下,其亮度随着电流的变化而变化,而不是靠调节其两端的电压而变化。因此专用芯片一个最大的特点就是提供恒流源。恒流源可以保证LED的稳定驱动,消除LED的闪烁现象,是LED显示屏显示高品质画面的前提。有些专用芯片还针对不同行业的要求增加了一些特殊的功能,如亮度调节、错误检测等。本文将重点介绍专用驱动芯片。 2.1通用芯片 通用芯片一般用于LED显示屏的低档产品,如户内的单色屏,双色屏等。最常用的通用芯片是74HC595。74HC595具有8位锁存、串—并移位寄存器和三态输出。每路最大可输出35mA的电流(非恒流)。一般的IC厂家都可生产此类芯片。显示屏行业中常用Motorola(Onsemi),Philips及ST等厂家的产品,其中Motorola的产 品性能较好。 2.2专用芯片 专用芯片具有输出电流大、恒流等特点,比较适用于电流大,画质要求高的场 合,如户外全彩屏、室内全彩屏等。 专用芯片的关键性能参数有最大输出电流、恒流源输出路数、电流输出误差 (bit-bit,chip-chip)和数据移位时钟等。 ●最大输出电流 目前主流恒流源芯片的最大输出电流多定义为单路最大输出电流,一般在90mA 左右。恒流是专用芯片的最根本特性,也是得到高画质的基础。而每个通道同时输出恒定电流的最大值(即最大恒定输出电流)对显示屏更有意义,因为在白平衡状态下,要求每一路都同时输出恒流电流。一般最大恒流输出电流小于允许最大输出电 流。 ●恒流源输出路数 恒流源输出路数主要有8(8位源)和16(16位源)两种规格,现在16位源基本上占主流:如TLC5921,TB62706/TB62726,MBl5026/MBl5016等。16位源芯片主要优势在于减少了芯片尺寸,便于LED驱动板(PCB)布线,特别是对于点间距较小 的PCB更是有利。 ●电流输出误差 电流输出误差分为两种,一种是位间电流误差,即同一个芯片每路输出之间的误差;另一种是片间电流误差,即不同芯片之间输出电流的误差。电流输出误差是

一种通用的LCD显示屏驱动程序

一种通用的LCD显示屏驱动程序 摘要:本文介绍了一种通用的LCD显示电路,并以PIC16F873芯片设计出了结合硬件的较为通用的驱动程序。 LCD显示屏具有体积小、重量轻、耗电低、显示内容丰富、易于定制、使用寿命长等优点,被广泛用于仪器仪表、家电、控制产品等诸多领域。根据不同的LCD显示屏其驱动程序分为静态驱动和动态驱动。因为动态驱动比静态驱动占用的芯片硬件资源少、驱动电路简单等特点而成为LCD驱动的主流。本文正是采用动态驱动方式,以Microchip公司的PIC16F873芯片,设计出一种较为通用的LCD显示电路及其LCD显示的相应驱动程序,目的在于减少研发人员的工作量,避免不必要的重复性工作。 1.LCD显示的硬件电路 为了达到动态显示的目的,在电路中使用了三个移位计数器,其中两个用于LCD显示,一个用于控制LED双色灯显示,显示部分共占用PIC16F873芯片6个I/O口,分别为RC0、RC1、RC2、RC3、RC4、RC5。可以实现控制的显示笔划位数达48个,如图1所示。其中RC3、RC5配合产生移位输入信号,RC0、RC1、RC2、RC4配合控制背电极(COM0、COM1、COM2)。当背电极COM0、COM1、COM2与笔画电极(由移位计数器输出)之间的电势差达到5V时,对应的笔画就显示,否则不显示。为了延长液晶显示屏的寿命,通常间隔交换背电极与笔画电极的电位。例如,当要COM0显示的时候可以使得RC0、RC1为5V,RC2、RC4为0V,这样COM0电压为5V,COM1、COM2电压为2.5V,然后RC0、RC1为0V,RC2、RC4为5V,这样COM0电压为0V,COM1、COM2电压为2.5V。达到显示目的。 2.驱动波形 在电路中使用RC3为时钟输入端,RC5作为数据输入端进行主同步串行。当要输入COM0行上的数据是1000 1010 1100 0100时,其驱动波形如图2所示。在正向输出(COM0端为低电平)结束后,进行反向输出(COM0端为高电平)。图3为一个完整显示周期内COM0、COM1、COM2的波形变化。 3.LCD软件显示程序 本文以PIC16F873为芯片,采用PIC汇编语言,在MAPLAB-ICD开发器上实现。程序包括移位输入数据子程序、显示矩阵校正程序、LCD显示输出程序,具体流程如图4。其中显示校正程序是将自己定义的单元值与LCD显示矩阵的值对应;移位输入数据子程序是将校正好的数据移位输入到LCD的笔画电极;LCD显示输出程序则调用移位计数器把数据转换成正确的显示结果。在本刊的网站上给出了源程序,其中,移位输入数据子程序请参照源代码(a);显示矩阵校正程序请参照源代码(b);LCD显示输出程序请参照源代码(c)。

LED点阵显示屏实验报告

16?16点阵LED电子显示屏的设计 摘要:文章介绍了基于单片机AT89C51的16?16点阵LED电子显示屏的设计。分别阐述了显示屏显示的基本原理,硬件设计、控制方法及其程序的实现。经过调试和分析,设计的结果能够实现对汉字的静态和动态显示,动态显示的内容有多种方式,同时又可通过上位机更新显示的内容。 关键字:AT89C51;16?16点阵;LED;显示屏 一绪论 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。 1 LED点阵显示屏概述 LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。 目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。国内的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。 2 LED显示屏控制技术状况 显示屏的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术、自动检测及远程控制技术等。

显示驱动

第三章显示驱动 数码管的接法和驱动原理 一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。 我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。 以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据如下图: 动态显示的电路连接如下图所示:

P1口 下面,我们编程在数码管上显示出“1 2 3 4”。程序如下: #include Code unsigned char Seg7Code[16]= //用十六进数作为数组下标,可直接取得对应的七段编码字节 // 0 1 2 3 4 5 6 7 8 9 A b C d E F {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; void main ( void ) { unsigned int i; while (1) { P2 |= 0x0f; //消隐,让数码管开始处于不亮的状态 P0 = LedCode[1]; //将“1”的代码送出 P2 &= 0xfe; //选中第一个数码管 for(i=0;i<1000;i++); P2 |= 0x0f;

TFT LCD液晶显示器的驱动原理详解

TFT LCD液晶显示器的驱动原理 TFT LCD液晶显示器的驱动原理(一) 我们针对TFT LCD的整体系统面来做介绍, 也就是对其驱动原理来做介绍, 而其驱动原理仍然因为一些架构上差异的关系, 而有所不同. 首先我们来介绍由于Cs(storage capacitor)储存电容架构不同, 所形成不同驱动系统架构的原理. Cs(storage capacitor)储存电容的架构 一般最常见的储存电容架构有两种, 分别是Cs on gate与Cs on common这两种. 这两种顾名思义就可以知道, 它的主要差别就在于储存电容是利用gate走线或是common走线来完成的. 在上一篇文章中, 我曾提到, 储存电容主要是为了让充好电的电压,能保持到下一次更新画面的时候之用. 所以我们就必须像在CMOS的制程之中, 利用不同层的走线, 来形成平行板电容. 而在TFT LCD的制程之中, 则是利用显示电极与gate走线或是common走线,所形成的平行板电容,来制作出储存电容Cs.

图1就是这两种储存电容架构, 从图中我们可以很明显的知道, Cs on gate由于不必像Cs on common一样, 需要增加一条额外的common走线, 所以它的开口率(Aperture ratio)会比较大. 而开口率的大小, 是影响面板的亮度与设计的重要因素. 所以现今面板的设计大多使用Cs on gate的方式. 但是由于Cs on gate的方式, 它的储存电容是由下一条的gate走线与显示电极之间形成的.(请见图2的Cs on gate与Cs on common的等效电路) 而gate走线, 顾名思义就是接到每一个TFT的gate端的走线, 主要就是作为gate driver送出信号, 来打开TFT, 好让TFT对显示电极作充放电的动作. 所以当下一条gate走线, 送出电压要打开下一个TFT时 ,便会影响到储存电容上储存电压的大小. 不过由于下一条gate走线打开到关闭的时间很短,(以1024*768分辨率, 60Hz更新频率的面板来说. 一条gate走线打开的时间约为20us, 而显示画面更新的时间约为16ms, 所以相对而言, 影响有限.) 所以当下一条gate走线关闭, 回复到原先的电压, 则Cs储存电容的电压, 也会随之恢复到正常. 这也是为什么, 大多数的储存电容设计都是采用Cs on gate 的方式的原因. 至于common走线, 我们在这边也需要顺便介绍一下. 从图2中我们可以发现, 不管您采用怎样的储存电容架构, Clc的两端都是分别接到显示电极与common. 既然液晶是充满在上下两片玻璃之间, 而显示电极与TFT都是位在同一片玻璃上, 则common电极很明显

led显示驱动芯片之OE

LED显示屏驱动芯片之OE使能解析 LED驱动芯片的动态响应对于驱动芯片来说是一个相当重要的参数,直接影响LED显示屏的显示效果,如亮度一致性,流畅度等,好的芯片应该可以最大限度的实现亮度一致性。 OE宽度对芯片的影响。OE使能信号实现对整屏地亮度控制,也用于显示屏消隐,只要调整它的占空比就可以控制亮度的变化。当使能信号出现异常时,整屏将会出现不亮、暗亮或拖尾等现象。 目前行业对LED显示屏的要求是越来越高,主要是对色彩的丰富度,亮度的一致性等等,这就对芯片制造商们提出了更为苛刻的要求,要实现灰阶度的不断提升,色彩才能越来越丰富,根据木桶的短板理论,OE使能的最小脉冲宽度和反应时间决定了灰阶数的多少。OE使能宽度的减小是芯片反应速率提升的一个重要指标。为了缩短驱动芯片的OE脉冲宽度,许多芯片设计者都更为愿意牺牲线性度,即输入数据与输出亮度间的关系。一般芯片都会忽略线性度,同时各个厂家对于最短OE脉冲宽度的定义也不尽相同,许多芯片制造商都将输出端可以反应的时间定义为最短OE脉冲宽度,宏观的表现就是在显示屏显示正常的情况下找出OE使能的临界点(即显示在正常与屏闪之间的OE宽度),这样的话就不会将线性度考虑在内,只要led显示屏显示不会出现异常,则将此时的OE宽度定位最小宽度。 OE宽度是端口输出电流相应的指标:行业内一般做到250ns左右,在这个宽度的驱动芯片一般可以满足静态屏、四分之一扫描屏的要求。但随着显示屏制造商对成本的控制以及led灯点的制作工艺的提升,越来越能满足亮度的要求,显示屏也将会朝着高扫描方式的方向发展,趋向于八分之一扫甚至十六分之一扫描方式或者更高的扫描方式。这样可以减少驱动IC的数量PCB板的面积也会相应减少。当然这也对驱动IC提出了新的要求,要在快速反应的前提下,实现恒流精度的提高(及保证显示屏的亮度一致性)。 CYT5024经过专门的设计避免了OE与亮度线性度的问题,在保证OE宽度最小可达150ns的基础上力求线性度大到最佳状态,在多态扫描运用时,各项指标,如播放流畅度,色彩的丰富性效果极好。

显示驱动实验报告

显示驱动实验报告 1 引言 随着显示技术的蓬勃发展,各种显示产品不断被开发出来.它们随处可见,创造了巨大的价值,也同时丰富了我们的日常生活.显示驱动技术是指利用电路驱动显示器件显示的技术,LED点阵显示屏是显示技术的一种,因LED的高亮度特点,主要用于户外显示.LED 显示屏的驱动,一般可以采用单片机或FPGA/CPLD作为控制芯片.我们实验是采用单片机,通过C程序控制LED显示屏,显示汉字或简单的动画. 2 实验方案设计 利用字模软件将汉字或者图形取模成二进制数据,然后用单片机编程控制硬件显示出图形.硬件电路连接如图一: 图一,LED显示驱动电路框图 3 实验结果及讨论 通过不断地调试与修改,我们得到了不错的显示效果.

讨论一:采用单片机控制LED显示屏的优缺点? 讨论二:我们的LED驱动实验能否作成视频显示. 4 结论 结论一:单片机通过C程序控制,输出正确的时序及显示数据,从而使LED显示屏能够稳定的工作.因C语言的简洁高效与可移植的特点,使我们的实验顺利完成.然而,也因为C语言的效率不如汇编,使其在速度方面不如汇编.另外,单片机是通过执行指令输出时序,也使其不如CPLD/FPGA高效.如果单片机的频率不够高或者LED显示屏较大,则单片机就很难控制LED显示. 结论二:由于我们的实验采用单片机驱动显示屏.单片机的晶振频率一般只有几十兆赫兹.其指令周期则更长.使其佷难作成视频显示.但简单的动态显示是可以的 5 参考文献 (1)STC89C51RC-RD _GUIDE-CHINESE.pdf (2)CD401_https://www.360docs.net/doc/824838524.html,_2422678.pdf (3)74LS244_https://www.360docs.net/doc/824838524.html,.pdf (4)6B595_https://www.360docs.net/doc/824838524.html,.pdf (5)APM4953_DataSheet.pdf (6)新概念51单片机C语言教程:入门、提高、开发、拓展全攻略郭天祥电子工业出版社(7)C程序设计(第四版)谭浩强著/2010年06月/清华大学出版社 6 附录:原程序(包含详尽注释) #include"reg52.h" sbit MCSDI = P1^1 ; // 显示数据(每列的选通信号,数据为高时,对应的象素点亮) sbit MCCLK = P1^2 ; // 列移位时钟即点时钟(上升沿触发) sbit MCOE = P1^3 ; // 亮度控制(即列信号的输出使能控制,低电平有效) sbit MCST = P1^4 ; // 数据锁存(即列信号的数据锁存控制,上升沿锁存) sbit MRRST = P1^5 ; // 行清零(清屏)(高电平有效,清零后所有行信号为低电平,全亮) sbit MRSDI = P1^6 ; // 帧信号(每行的选通信号,数据为低时,对应的行点亮) sbit MRCLK = P1^7 ; // 行扫描时钟 // 常数定义 #define LED_HANG 48 // 定义LED显示屏的高度,即行数 #define LED_LIE 64 // 定义LED显示屏的宽度,即列数 #define LED_HANG_DATA_NUM (LED_LIE/8) // 定义LED显示屏每一行的显示数据个数,以字节为单位,以本显示屏为例,每行的数据为8字节 #define LED_DATA_NUM ((LED_HANG*LED_LIE)/8) // 定义LED显示屏的显示数据个数,以字节为单位,以本显示屏为例,全屏显示数据为384字节 // 主模块内部函数的定义 void LARGE_LED_Init(void); // LED显示屏的初始化程序 void LED_DISP_Picture( unsigned char *ptr); // 显示64*48的图片的程序 void LED_Send_Lie(unsigned char send_buf); // 送出一字节列信号的程序 //主模块内部全局变量的定义 // 图片数据的每行起始地址,本显示屏的大小为64(列)*48(行),每行的数据为8字节 // 在切换到下一行显示时,起始地址加8即可,加到384(64/8*48)后显示完一屏的数据 unsigned int LEDHangNum;

显示器的实验报告

单片机实验报告 实验一:输出端口应用实验 实验作者:王锦锋实验成绩: 专业班级/学号:应用电子(1)班1006010141 合作者:邹凯专业班级/学号:应电(1)班1006010101 指导教师: 实验时间:2012-3-14

驱动七段LED数码管的实验 一、实验目的 1.学习Proteus软件的使用方法 2.学习Keil软件的使用方法 3.学习端口输出的使用方法 4.掌握延时程序的设计 二、实验说明 1、如下图所示,由P0驱动七段LED数码管,其中使用220欧姆电阻器作为限流电阻。 2、七段LED数码管上所显示的数字从0到9循环不停。每隔0.5s变化一次。 3、 三、硬件原理图及程序设计 (一)硬件原理图设计 (二)程序流程图设计 开始 声明驱动信号数组 声明延迟函数 顺序显示数字 (三)程序设源代码 七段LED数码管从9开始显示,递减到0,再从头开始 #include #define uchar unsigned char

#define uint unsigned int uchar code pattern_P2[]= { 0x98,0x80,0xf8,0x83,0x92,0x99,0xb0,0xa4,0xf9,0xc0//数字9,8,7,6,5,4,3,2,1,0 }; uchar code pattern_P3[]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67 }; void DelayMS(uint x) { uchar t; for(x=0;x<1000;x++) { for(t=0;t<125;t++); } } 从0开始显示到9;再递减到0,然后从头开始 #include #define uchar unsigned char #define uint unsigned int uchar code pattern_P2[]= { 0x00,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98 }; void DelayMS(uint x) { uchar t; for(x=0;x<1000;x++) { for(t=0;t<125;t++); } } main() { uchar i; while(1) { for(i=1;i<11;i++) { P2=pattern_P2[i]; DelayMS(150);

按键扫描与LED显示驱动芯片ET6218R芯片资料

ET6218R Etek Microelectronics LED Controller/driver General Description ET6218R is an LED Controller driver on a 1/7 to 1/8 duty factor. 7 segment output lines, 4 grid output lines, 1 segment/grid output lines, one display memory, control circuit, key scan circuit are all incorporated into a single chip to build a highly reliable peripheral device for a single chip microcomputer. Serial data is fed to ET6218R via a three-line serial interface, ET6218R pin assignments and application circuit are optimized for easy PCB Layout and cost saving advantages. Features z CMOS Technology z Low Power Consumption z Multiple Display Modes(4~5 Grid, 7~8 segment) z Key scaning(7×1 Matrix) z 8-step Dimming Circuitry z Serial Interface for Clock, Data Input/Output, Strobe Pins z Available in 18-pin, DIP Package Pin Configurations

相关文档
最新文档