
i_data&=0xf0; // i_data=i_data&0xf0; 高位字节与上1则不变,低四位则被清零 ,因为该12864为串行方式写入,一次需写入8个bit,故采用循环结构比较好 *** 作,建议多看DATASHEET以及C语言相关
1,lcd1602工作原理是什么?
线段的显示
点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。
字符的显示
用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
汉字的显示
汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。
2,lcd1602工作原理-lcd1602的基本参数

显示容量:16×2个字符
芯片工作电压:45—55V
工作电流:20mA(50V)
模块最佳工作电压:50V
字符尺寸:295×435(W×H)mm
3,lcd1602工作原理-lcd1602与单片机连接电路图
lcd1602液晶显示模块可以只用D4-D7作为四位数据分两次传送。这样的话,可以节省MCU的I/O口资源。lcd1602可以显示2行16个字符,有8为数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。
lcd1602液晶显示模块可以和单片机AT89C51直接接口,电路连接简单,如图1所示:

lcd1602和51单片机的连接图

lcd1602和51单片机的连接图

其中图中的JPBG直接接电源,第3引脚的可调电位器的两端一定要连接电源和地。P20,P21,P22分别是RS,R/W和E三个控制位,P00-P07是8位数据线。三个控制位详见说明,RS=0表示写或读指令,RS=1表示写数据。R/W是读写指令,R/W=1是读,R/W=0是写。E是使能端,要根据时序图去写对应的程序。

lcd1602和AT89S52单片机的连接图

此电路中,上拉电阻用47K的,液晶的3脚用一个10K可调电阻接地,调节液晶亮度。
4,lcd1602工作原理-lcd1602引脚图与引脚定义
lcd1602共16个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号);以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。


1602采用标准的16脚接口,
第1脚:VSS为电源地
第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读 *** 作,低电平(0)时进行写 *** 作。
第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
第7~14脚:D0~D7为8位双向数据端。
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。
5,lcd1602工作原理-读写 *** 作指令编程表
各种液晶厂家均有提供几乎都是同样规格的lcd1602 模块或兼容模块,尽管各厂家的对其各自的产品命名不尽相同;但其最初采用的LCD 控制器采用的是HD44780,在各厂家生产的1602 模块当中,基本上也都采用了与之兼容的控制IC,所以从特性上基本上是一样的;当然,很多厂商提供了不同的字符颜色、背光色之类的显示模块。但是它们的读写 *** 作是一样的。
lcd1602液晶模块内部的控制器共有11条控制指令,如下表所示。

lcd1602液晶模块的读写 *** 作,屏幕和光标的 *** 作都是通过指令编程来实现的。(说明1为高电平,0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置
指令2:光标复位,光标返回到地址00H
指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。
指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。
小编推荐阅读:
lcd1602液晶显示屏介绍_lcd1602引脚功能
lcd1602在proteus中怎么找_lcd1602proteus仿真
lcd1602只亮不显示_lcd1602简单显示程序
lcd1602地址设置_LCD1602内部的控制器指令
lcd1602的封装_lcd1602的初始化程序
lcd1602的a和k是什么引脚_lcd1602与单片机的连接方法

阅读原文
STM32F407的液晶屏LCD可以通过使用LCD驱动程序来控制颜色变化。具体步骤如下:
1 在STM32F407开发板上安装LCD驱动程序,并将其与STM32F407连接。
2 使用C语言编写LCD驱动程序,实现对LCD的控制。
3 在C语言中定义一个函数,用于设置LCD的背景色和前景色。
4 调用该函数,传入不同的RGB值,以便实现不同的颜色变化。
你用的是串口方式 而程序是并口方式,所以再怎么弄都不会显示出来 ;
我这里有串口方式的程序 今晚刚编好的 也测试了液晶能显示出来 你看看吧 把我的端口对应改一下就行 如果液晶再无法显示 那就是你硬件的问题了 比如PSB端口是否接了低电平
#include<reg52h>
#include<intrinsh>
#define uint unsigned int
#define uchar unsigned char
sbit cs=P2^5; //片选端 高电平有效
sbit sid=P2^6; //数据线
sbit sclk=P2^7; //串行时钟信号 下降沿有效
uchar table[]="我是个小兵却乐天知命,在你的世界说鸟语,在我的世界对不起请说汉语";
uchar datecnt;
void delayms(uint z)//单位延时一毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void send_byte(uchar byte)//发送一个字节函数
{
uchar j;
cs=1;
for(j=0;j<8;j++)
{
sclk=0;
byte=byte<<1;
sid=CY;
sclk=1;
sclk=0;
}
cs=0;
}
void writecom_12864(uchar com)//写命令控制函数
{
uchar HDATA,LDATA;
HDATA=com&0xf0;
LDATA=((com<<4)&0xf0);
send_byte(0xf8);
send_byte(HDATA);
send_byte(LDATA);
}
void writedate_12864(uchar date)//写数据控制函数
{
uchar HDATA,LDATA;
HDATA=date&0xf0;
LDATA=((date<<4)&0xf0);
send_byte(0xfa);
send_byte(HDATA);
send_byte(LDATA);
}
void init_12864()//初始化12864
{
writecom_12864(0x30);
writecom_12864(0x30);
writecom_12864(0x0c);
writecom_12864(0x01);//清屏
writecom_12864(0x06);
}
void display_12864()
{
for(datecnt=0;datecnt<64;datecnt++)
{
if(datecnt==0) writecom_12864(0x80);
if(datecnt==16)writecom_12864(0x90);
if(datecnt==32)writecom_12864(0x88);
if(datecnt==48)writecom_12864(0x98);
writedate_12864(table[datecnt]);
}
}
void main()
{
init_12864();
display_12864();
while(1);
}
/
程序名称:带汉字库的12864液晶显示模块驱动
程序功能:显示字符 、汉字和
开发工具:Kile
MCU型号:AT89S52-24PU
时钟频率:110592MHZ
程序作者:yuan
版权说明:yuan
/
#include<reg52h>
#include "lcdh"
#include "utilh"
sbit E=P1^5;//脉冲使能
sbit RW=P1^6;//读写选择
sbit RS=P1^7;//数据命令选择
sbit rst=P3^6;//12864复位
// 延时ms函数:
// 12864检查状态函数:
void Check12864State(void)
{
P0=0xff;
E=0;//读状态前三控制线的状态
RS=0;
RW=1;
E=1;//拉高,读状态
while((P0&0x80)==0x80);//等待空闲
E=0;//写命令后三控制线的状态
RS=1;
RW=0;
}
// 12864写命令函数:
void Write12864Command( unsigned char com)
{
Check12864State();//检查状态
P0=com;//赋值
E=0;//写命令前三控制线的状态
RS=0;
RW=0;
E=1;//拉高,写命令
E=0;//写命令后三控制线的状态
RS=1;
RW=1;
}
//12864写数据函数:
void Write12864Data( unsigned char dat)
{
Check12864State();//检查状态
P0=dat;//赋值
E=0;//写数据前三控制线的状态
RS=1;
RW=0;
E=1;//拉高,写数据
E=0;//写数据后三控制线的状态
RS=0;
RW=1;
}
//在指定的位置显示字符串(汉字和ASCII码字符)函数:
void LCD12864DisplayString( unsigned char y,unsigned char x, unsigned char pstr)
//y-行数值0-3,x-列数值0-7,pstr-字符串指针
//12864可以显示32个汉字(四行每行8个),一个地址对应一个汉字
//可以显示64个ASCII码字符(四行每行16个),一个地址对应两个字符
//为了实现自动换行功能,这个函数比较繁琐
{
unsigned char row,n=0;
Write12864Command(0x30);//基本指令
Write12864Command(0x06);//地址计数器自动加以,光标右移
switch(y)//根据行号选择行地址
{
case 0:row=0x80;break;//第一行首地址
case 1:row=0x90;break;//第二行首地址
case 2:row=0x88;break;//第三行首地址
case 3:row=0x98;break;//第四行首地址
default:;
}
Write12864Command(row+x);//写地址
while(pstr!='\0')
{
Write12864Data(pstr);//写字符
pstr++;
n++;//计数
if((n+x2)==16)//如果一行写完 ,继续写第二行
{
if(y==0) Write12864Command(0x90);//写下一行地址
else if(y==1) Write12864Command(0x88);//写下一行地址
else if(y==2) Write12864Command(0x98);//写下一行地址
else ;
}
else if((n+x2)==32)//如果第二行写完 ,继续写第三行
{
if(y==0) Write12864Command(0x88);//写下一行地址
else if(y==1) Write12864Command(0x98);//写下一行地址
else ;
}
else if((n+x2)==48)//如果第三行写完 ,继续写第四行
{
if(y==0) Write12864Command(0x98);//写下一行地址
else ;
}
else ;
}
}
//模式清屏函数:
void Clear12864Screen()
{
unsigned char i,j;
Write12864Command(0x34);//功能设定:8位控制方式,使用扩充指令
Write12864Command(0x36);//使用扩充指令,绘图显示控制
for(i=0;i<32;i++)
//ST7920可控制25632点阵(32行256列),而12864液晶实际的行地址只有0-31行,
//12864液晶的32-63行的行是0-31行地址从第128列划分一半出来的,所以分为上下两半屏,
//也就是说第0行和第32行同属一行,行地址相同;第1行和第33行同属一行,以此类推
{
Write12864Command(0x80|i);//写行地址(垂直地址)
Write12864Command(0x80);//写列地址(水平地址)
for(j=0;j<32;j++)
Write12864Data(0x00);//清屏
}
}
//在任意位置显示任意大小的函数:
void LCD12864DisplayPictrue(unsigned char y,unsigned char x,
unsigned char px,unsigned char py, unsigned char pp)
//y-起始行(数值0-63),x-起始列(16位宽,数值0-7),
//px-宽度,py-高度,pp-指针指向数组
//因为上下屏的地址不连续,要在任意位置显示完整的图像,处理起来比较繁琐
{
unsigned char i,j,k;
Clear12864Screen();//清屏
if(y<32)//如果起始行在上半屏
{
k=32-y;//算出上半屏的行数
for(i=0;i<k;i++,y++)//上半屏行数
{
Write12864Command(0x80|y);//写行地址(垂直地址)
Write12864Command(0x80|x);//写列地址(水平地址)
for(j=0;j<px/8;j++)
Write12864Data(pp[ipx/8+j]);//写数据
}
y=0;//下半屏起始行,接上半屏继续写数据
for(;i<py;i++,y++)//下半屏剩下的行数
{
Write12864Command(0x80|y);//写行地址(垂直地址)
Write12864Command(0x80|(8+x));//写列地址(水平地址)
for(j=0;j<px/8;j++)
Write12864Data(pp[ipx/8+j]);//写数据
}
}
else //如果起始行在下半屏
{
for(i=0;i<py;i++,y++)//行数
{
Write12864Command(0x80|(y-32));//写行地址(垂直地址)
Write12864Command(0x80|(8+x));//写列地址(水平地址)
for(j=0;j<px/8;j++)
Write12864Data(pp[ipx/8+j]);//写数据
}
}
}
void Clear12864Text()
{
Write12864Command(0x34);//清屏
DelayMs(5);
Write12864Command(0x30);//清屏
DelayMs(5);
Write12864Command(0x01);//清屏
DelayMs(5);
}
//12864初始化函数:
void Initialize12864()
{
rst=0;//复位12864
DelayMs(30);
rst=1;
DelayMs(20);
Write12864Command(0x30);//功能设定:8位控制方式,使用基本指令
Write12864Command(0x08);//显示关
Write12864Command(0x01);//清屏
Write12864Command(0x06);//地址计数器加一、光标右移
Write12864Command(0x0c);//显示开
}
带字库的驱动
液晶显示器故障维修思路集锦—— 液晶显示器的概念:
液晶是一种介于固态和液态之间的具有规则性分子排列及晶体的光学各向异性的有机化合物。液晶在受热到一定温度的时候会呈现透明状的液体状态,而冷却则会出现结晶颗粒的混浊固体状态,因为其物理上具有液体与晶体的特点,故称之为“液晶”。液晶显示器实际上就是以液晶为显示模块制作的显示器。液晶显示器中的液晶体在工作时并不发光,而是控制外部光的通过量。当外部光线通过液晶分子时,液晶分子的排列扭曲状态不一样,光线的通过量就不一样,从而实现了亮暗变化,利用这种原理可重现图像。液晶分子扭曲的大小由加在液晶分子两边的电压差决定,因而可以实现电到光的转换。即用电压的高低控制光的通过量,从而把电信号转换成光信号,将图像显示出来。
液晶显示器故障维修思路集锦—— 液晶显示器的结构:
1 从外观看,液晶显示器主要包括显示器外壳、显示器电源开关、功能按钮、支架及液晶显示屏(PANEL)等。
2 从内部结构看,液晶显示器主要由驱动板(主控板)、电源板、高压板(有的和电源板规划在一起)、功能面板、VGA接口、DVI接 口、液晶面板(包括液晶分子、液晶驱动芯片、彩色滤光片、偏光板、导光板等)、背光灯管组成。
液晶显示器故障维修思路集锦—— 液晶显示器内部
1 驱动板:
2 电源板:
电源板的作用是将90~240V的交流电压转变为12V、5V、33V等直流电压,供给驱动板、液晶面板等工作。
3 高压板(又称升压板、高压条、INVERTER):
高压板主要是将主板或电源板输出的12V的直流电压转变为背光灯管启动和工作需要的1500-1800V的高频高压交流电。有的液晶显示器的电源板和高压板会做在一起,即所谓的电源背光二合一板。
4 液晶面板(PANEL):
液晶面板是液晶显示用模块,它是液晶显示器的核心部件。主要由玻璃板、液晶材料、导光板、驱动电路、背光灯管等组成。其中驱动电路用于产生控制液晶分子偏转所需的时序和电压;背光灯管用于产生白色光源。
液晶显示器故障维修思路集锦—— 液晶显示器维修方式
液晶显示器问题通常是由于内部某电路不能正常工作而造成的,可能产生很多种问题现象,所以问题检测的方式也是多种多样的,下面先来了解几种问题的一般维修方式。
1观察法:
观察法就是通过眼看、耳听、手摸、鼻闻等方式检查显示器比较显著的问题。观察时不仅要认真,而且要全面。通常观察的内容包括:周围环境(包括电源环境、其他高功率电器、磁场状况、温/湿度环境、环境的洁净度等)以及显示器内部是否存在变形、变色、异味等异常现象,如保险管是否变黑,滤波电容有无异样,有无显著虚焊点。通过观察,查找显著破坏的元件,可以大致判断问题的大小及范围,甚至立即找到问题点。
2直观检查法:
直观检查法是指当显示器工作出现异常时,大多数的问题现象可以从显示屏等监视器上观察到(如花屏、颜色问题等)。检修时根据观察到的问题现象,结合用户提供的问题发生原因和过程,经分析后初步判断出可能发生问题的部位。由于显示器的电路结构比较复杂,不一样部位发生的问题可能会出现相同的问题现象,即一种问题现象可能是由多种原因引起的。这就需要认真仔细地观察、检查和分析,然后去粗取精、去伪存真,最后找出真正的问题部位,直至排除问题。直观检查法主要包括外部检查、内部检查和通电检查三种。
(1)外部检查:检查显示器的问题应先从外部开始,根据机器工作方式检查 *** 作面板上的按键和开关是否正常,电源连线是否接好,视频信号线是否连接正常等。
(2)内部检查:在外部检查没有发现异常的情况下,拆开显示器外壳,检查内部电路。观察元器件焊点、连接导线有无虚焊、脱焊、引脚有无霉断、插件是否松脱,印刷电路板电路线条有无断裂,元器件有无烧焦、爆裂或漏液现象等。
(3)通电检查:接通电源开关,观察电源指示灯是否点亮,机内有无打火、发热、焦味及冒烟现象。
3静态电阻测量法:
静态电阻测量法主要测量有无显著短路及短路元件,在加电检修之前必须排除短路元件,否则会使问题扩大,增加维修难度和成本。
4测电流法:
测量电流是维修电路的基础方式之一,是测量晶体管及IC芯片的负载电流和工作电流的一种方式,用这种方式来检测集成电路,晶体管及其电源负载是否正常等。如果晶体管或IC芯片的工作状态正常,那么所测量的负载电流应该是正常的,如果测得的电流与正常值相比变化很大,那么该电路可能有问题,就可以对其进行重点检查了。
5测电压法:
维修显示器电路经常用到的另一种方式就是测电压法,它主要是测量电路和元器件的工作电压以此来对问题部位和元器件进行判定。如测量电源电路中的+300V直流电压是否正常,启动电压是否正常,保护电路是否动作,输出电压是否正常等。
6测电阻阻值法:
测电阻法也是维修显示器电路的基础方式之一,它主要分为两种测量:一种是测量显示器的电路和元器件的对地电阻值;另外一种是测量元器件本身的电阻值。测量电路输出端的对地电阻值,可以判别电路的负载是否正常。例如,当测量电源输出端的对地电阻值时,如果负载电阻发生较大的变化,那么电源输出端的对地电阻必然会有较大的变化,这就可以很容易地判定问题的所在。当测量晶体管或IC芯片各个脚的对地电阻值时,需要测量其正反向电阻,通常情况下以负表笔接地时测得的阻值为正向电阻,而以正表笔接地时所测得的电阻值为反向电阻。这就可根据所测电阻值的变化,来和正常情况下的电阻值进行比较,以判断出问题所在。
7短路法:
短路法主要是用来模拟 三极管 的饱和与截止而采取的一种方式。具体测量方式为:用镊子将三极管的BE结短路,三极管因BE结短路必然截止。在某些电路中也可以将三极管的CE结短路,模拟三极管的饱和,这种 *** 作要求对电路熟悉。在开关电源电路中,尽量不要采用该方式,如电源开关管的CE结是万万不能短路的。
8调整输入电压法:
调整输入电压法是为了安全检修而采用的一种方式。例如,给行输出电路外接稳定的、合乎行输出电路要求的电压,来判定问题。当然其结果是光栅在正常情况下是减小的,如果能得到这个结果,就表明行输出电路基本正常。再如,给开关电源电路中的UC3842的第7脚外接+17V电压,如果在UC3842本身及外围电路正常的情况下,它的第6脚就应该输出脉冲电压(这里必须拆下开关管,否则,没有稳压调整会破坏开关管及UC3842)。
9替换法:
替换法是用好的元器件去替换可能有问题的元器件,以找出发生问题的元器件的一种维修方式(好的元器件最好与可能有问题的元器件是同型号的)。首先应检查与可能有问题的元器件相连接的线路是否有问题,然后检查其供电是否正常,接着替换可能有问题的元器件,最后替换与之相关的其他元器件,替换时按先简单后复杂的顺序进行。
10参数测量法:
参数测量法是指使用指针万用表或数字万用表测量元器件电压、电阻和电流参数值,然后与维修手册中的标准参数值进行比较分析,从而找到问题元器件。采用此方式维修,需要准备显示器的维修手册。用电压法和电阻法测量电路状态电压和在路电阻,不一样型号的万用表测量读数是不一样的,这是由于表头内阻不一样的缘故。为了避免测量读数误差造成比较分析错误,最好采用同型号的万用表测量。
11清洗补焊法:
清洗补焊法先用无水酒精对显示器的电路板等进行清洗,去除电路板中的灰尘、污渍、霉斑、锈斑等物质后,再对显示器中可能被腐蚀或接触不良的地方进行补焊。因为显示器在潮湿、灰尘、高温等环境下,会导致内部电路发生短路或形成具有一定阻值的导体,从而破坏电路的正常工作。(注意:在清洗完电路板等器件后,要用热风吹干电路板,然后才可安装进行测验。
12示波器观察法:
在显示器的电路中,一些重要的波形在印刷电路板上都没有测验点(TP)。波的形状、宽度和幅度都有严格的要求并在图样上标出,通过检测观察波形便能快速而准确地查出问题部位。
13比较法和置换法:
比较法和置换法是指利用一台同型号的正常显示器与有问题的显示器进行同部位的测量比较。两台同型号的显示器在同一种工作状态下,可以通过测量同部位的电压、在路电阻或用示波器观察信号波形来进行比较,也可以用性能良好的元器件(包括机械零部件、印刷电路板组件等)对可能破坏的元器件进行置换验证。采用同部位测量比较和置换验证的方式,能够准确地验证元器件的好坏。
14假负载法:
所谓假负载,就是在脱开行负载后,开关电源处于轻负载的情况下,为了避免因输出电压升高而引起其他问题的一种保护性检测方式,从而来判断问题范围,假负载法的方式很多,主要有两种。一种是脱开主电压与行电路后,在+B1(行输出电压)滤波电容两端接一个60W/220V的灯泡,优点是取材容易,缺点是因灯泡的冷态电阻小,使开关电源不易启动,给检修带来判断失误,但一般情况下还是可用的。另一种做法是接一只50W/300Ω电阻,更能准确模拟行输出级负载。但是输出电压正常与否不能直观看出来,并且取材较难。在运用假负载法时,注意因行输出级不工作,+B2(行输出电源)没有反馈信号可能会使电源输出电压升高至200V以上,所以最好是让+B2调整管停止工作,同时也要使行输出级停止工作。提示:(运用假负载维修时, 场效应管 的控制栅级不能悬空,可以断开源极供电或干脆将其拆下,待修复之后再装上,也可以用一小截导线将控制极与漏极连起来)。
15敲击、振动法:
敲击、振动法是指显示器运行时好时坏,且易受振动的影响,可能是因为元件由虚焊、接触不良或金属氧化使接触电阻增大等原因引起的。当显示器发生该问题时,运用敲击振动法检修是行之有效的。用手指尖或绝缘小棒轻轻敲击电路板,或轻轻扭动线路板,或在线路板中央轻压,使问题尽快表现出来。与此同时注意观察问题现象的变化,当问题表现出来后,再用电压检测法等进行检测。提示:(有时,在黑暗条件下(关灯)振动线路板时,若发现打火点,即为问题点)。此外,还有诸如温升法、对比法等。向用户询问显示器的运用过程,问题发生的时间及现象也是必不可少的。
液晶显示器故障维修思路集锦—— 维修思路总结:
1 显示器整机无电
(1) 电源问题:
这是一个应该说是非常简单的问题,一般的液晶显示器分机内电源和机外电源两种,机外的常见一些。不论那种电源,它的结构比crt显示器的电源简单多了,易损的一般是一些小元件,象保险管、整流桥300V滤波电容、电源开关管、电源管理IC整流输出 二极管 滤波电容等。
(2) 驱动板问题:
驱动板烧保险或者是稳压芯片出现问题,有部分机器是把开关电源内置,输出两组电源,其中一组是5V,供信号处理用,另外一组是12V提供高压板点背光用,如果开关电源部分电路出现了问题会有可能导致两组电源均没输出先查12V电压正常否,跟着查5V电压正常否,因为A/D驱动板的MCU芯片的工作电压是5V,所以查找开不了机的问题时先用万用表测量5V电压,如果没有5V电压或者5V电压变得很低,那么一种可能是电源电路输入级出现了问题,也就是说12V转换到5V的电源部分出了问题,这种问题很常见检查5端稳压块(常见型号8050SD—LM2596—AIC15-01等)另一种可能就是5V的负载加重了,把5V电压拉得很低,换一种说法就是说,后级的信号处理电路出了问题,有部分电路破坏,引起负载加重,把5V电压拉得很低,逐一排查后级出现问题的元件,替换掉出现问题的元件后,5V能恢复正常,问题一般就此搞定,也经常遇到5V电压恢复正常后还不能正常开机的,这种情况也有多种原因,一方面是MCU的程序被冲掉可能会导致不开机,还有就是MCU本身破坏,比如说MCU的I/O口破坏,使MCU扫描不了按键,遇到这种由MCU引起的问题,找硬件的问题是没有用的,就算你换了MCU也搞定不了问题,因为MCU是需要编程和写码的,在没办法找到原厂的AD驱动板替换的情况下,我们只能用通用A/D驱动板代换如:151D或161B等
2 显示屏亮一下就不亮了,但是电源指示灯绿灯常亮。
这 种问题一般是高压异常造成的,是保护电路动作了,在这种情况下,一般液晶屏上是有显示的,看的方式是“斜视”。检修的方式可用单灯高压板接一个灯管试验因为,现在的液晶显示器的高压板的规划一般都是对称的规划,而两边都坏的可能基本上没有。一般老机容易出问题的是某一路的电源管升压管升压变压器和灯管短路或空载而造成的电源管理IC负载均衡保护 看到高压板接口有这么多条线很多初学者认为更换很复杂其实很简单只需要4个信号接到高压板即可 : 1电源2地3开关控制ON/OFF 4ADI亮度调节
首先确定电源线正极和负极,有保险丝的一般来说是正极,负极多是接在电容的负极上,然后确定电压,确定电压的最好办法是看电容的标记了,假如6V左右那么就是33V的,假如电容上标12V左右那么输入电压肯定是5V,假如是24V左右或以上那么就是12V,以次类推。把电容上所标的伏数除以二最接近几伏就是几伏了。有的人说按这样接了还是不亮或者只是闪一下就灭了,是的有很多高压板多是这样的那怎么办呢找出控制脚看看那只脚是接到一个小三极管上的,一般是直接引接到三极管上的,最多中间有个小电容,应该很容易辨认的,控制脚一般是33V和5V也有个别是接地的,所以我们在不知道的情况下先接地试一下不行再接33V再接5V,假如输入电压和控制电压多是33V的情况是可以直接合并,多余的脚怎么办呀让他空着好了不用理它
3 显示屏黑屏无背光电源灯绿灯常亮
斜视液晶屏有显示图像多属于高压板供电电路问题重点检查12V供电(保险丝F)和3V或5V的开关电压是否正常若是因为MCU问题造成没有输出开关控制电压可以直接提取3端稳压块的(AIC1084)33V代替修理高压板的思路(电源保险丝----开关控制管----电源管理IC----推挽发大管----电源开关管----DA转换电路(储能电感整流管)---LC升压电路(升压变压器升压电容)------耦合电容----灯管
4 屏幕亮线亮带或者是暗线
这种问题,一般是液晶屏的问题。亮线问题一般是连接液晶屏本体的排线出了问题或者某行和列的驱动IC破坏暗线一般是屏的本体有漏电,或者TAB柔性板连线开路以上两种问题基本上就是给机器判了死刑了,没有维修价值的,因为一块屏的价格太高了。
5 花屏或者是白屏
这种问题一般是屏的驱动电压出了问题,先换驱动板和驱屏线试验若不行检查屏背板供电电路维修思路: 驱动板5V转33V的稳压块(AIC1084)是否有供电输出---屏体驱动板保险丝(F)- 33V -----DC-DC转换电路----负压形成IC(-7V)----行列驱动IC
6 偏色问题
一般可以进入工厂调整模式进行调整。如没有此模式维修思路:更换屏线和转接板-----重写驱动程序-----驱动板坏(不常见)-----屏背板的控制IC坏(不常见)--------拔掉屏线观察背光颜色(背光扁色为灯管老化)-------换灯管
7 字符虚或拖尾 维修思路:
检查VGA信号线,重点看RGB三色线的地线是否连接正常-----更换屏线或转接板-----重写驱动程序-----换驱动板----LCD屏背板信号接口IC坏-----LCD屏背板对比度电位器调整------LCD屏导光板错位----偏光片错位
8 LCD屏幕内部有污点 维修思路:
擦拭或更换换保护膜-----拆开屏体清洗外层偏光片和有机玻璃(用棉球纯净水处理)---风筒吹干
9 LCD屏漏光或光线不均 维修思路:
重新安装灯管-----调整导光板
10: LCD屏亮点
一个或二个大的亮点可以尝试轻轻用指尖压亮点可消失说明多为此象素的开关管和电极虚连小的黑点和灰点有可能是内部导光板或偏光片有灰尘造成可清洗处理以上方式在试验时要先征取客户同意才可 *** 作否则后果自付一切责任与笔者无关
11: LCD屏亮度低
检查高压板ADJ亮度调节电路----------换灯管--------换高压板--------调整或更换导光板
12: 错误提示”超出频率范围”
检查信号线--------重写MCU驱动程序-------更换EPROM------重写EPROM程序-----换驱动板
13: 通电后不按开关按键即白屏出现背光按键后图像可正常显示 高压板接口的开关信号和ADJ信号反接造成部分属于驱动板MCU的开关信号输出不正常可以重写MCU程序修 复-------换MCU
液晶显示器故障维修思路集锦—— 维修注意事项
1先从简单的事情做起(先外后内):
处理问题需从最简单的事情做起,即先检查外部的环境状况(问题显像、电源、连接等),后检查显示器内部的环境(连接状态、器件的颜色、部件的形状、指示灯的状态等),这样有利于集中精力,对问题进行判断与定位,一定要注意,必须通过认真地观察后,才可进行判断与维修。
2根据现象先想后做:
根据问题现象,先想好从何处入手,怎样 *** 作,再进行实际的维修 *** 作。要尽可能先查阅相关的资料(维修手册等),对相应的技术要求,运用特点等进行了解后,根据实际情况,结合自己的知识经验进行分析判断,再着手维修。
3先静态,后动态:
所谓静态检查,就是在机器未通电之前进行的检查。当确认静态检查无误时,方可通电进行动态检查。若发现冒烟等异常情况,应立即关机,重新进行静态检查。这样可以避免因情况不明给机器通电,而造成不应有的破坏。
4先清洗再补焊:
在显示器受潮,被摔或内部灰尘较多的情况下,潮气或灰尘可能对显示器的电路板造成腐蚀。这种情况下,一般需要先对显示器内部的电路板进行清洗,再对电路板中虚焊的地方进行补焊。经过清洗和补焊后,一些问题就可以自动排除。
5先断电再检修:
由于显示器内部电路都是采用集成电路芯片,它们的工作电压只有3V左右,很容易被静电击穿,因此在拔插显示器内接插件或焊接电路板中的元器件时,要先关闭电源,然后再检修显示器的电路板。
6先电源后电路:
根据经验,电源部分的问题率在整机中占的比例较高,许多问题就是由电源引起的,所以先检修电源常能收到事半功倍的效果。
以上是液晶显示器故障维修思路的介绍,如果你遇到液晶显示器故障时,应该知道液晶显示器故障维修思路了吧!希望本文的分享对大家有所帮助!
IPS液晶屏的驱动芯片在控制板或主板上。根据查询华强电子网显示,PS液晶屏的驱动芯片被放置在控制板或主板上。芯片需要进行高速数据传输、信号处理和电源管理等多项复杂的 *** 作,IPS液晶屏的驱动芯片需要与主机中其他部件进行协调和通信,这些都需要高度复杂的接口和通信协议,而这些接口和协议往往需要配合硬件和软件的开发和优化,才能实现IPS液晶屏的正常工作。
使用温度芯片DS18B20,7289作显示,89S52单片机#include <reg52h>
#include <ZLG7289h>
#include <stdioh>
#include <intrinsh>sbit adcs=P2^0;
sbit adclk=P2^1;
sbit addo=P2^2;
sbit addi=P2^2;
sbit ds=P3^6; /
函数:Delay()说明:
晶振采用12MHz
/
void Delay1(unsigned int t)
{ unsigned char i,j,k;
do{
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}while(--t);
}
//延时函数, 例i=10,则大概延时10ms
void delay(unsigned char i)
{
unsigned char j, k;
for(j = i; j > 0; j--)
{
for(k = 125; k > 0; k--);
}
}
//初始化DS18B20
//让DS18B20一段相对长时间低电平, 然后一段相对非常短时间高电平, 即可启动
void dsInit()
{
//一定要使用unsigned int型, 一个i++指令的时间, 作为与DS18B20通信的小时间间隔
//以下都是一样使用unsigned int型
unsigned int i;
ds = 0;
i = 103;
while(i>0) i--;
ds = 1;
i = 4;
while(i>0) i--;
}
//向DS18B20读取一位数据
//读一位, 让DS18B20一小周期低电平, 然后两小周期高电平,
//之后DS18B20则会输出持续一段时间的一位数据
bit readBit()
{
unsigned int i;
bit b;
ds = 0;
i++;
ds = 1;
i++; i++;
b = ds;
i = 8;
while(i>0) i--;
return b;
} //读取一字节数据, 通过调用readBit()来实现
unsigned char readByte()
{
unsigned int i;
unsigned char j, dat;
dat = 0;
for(i=0; i<8; i++)
{
j = readBit();
//最先读出的是最低位数据
dat = (j << 7) | (dat >> 1);
}
return dat;
}
//向DS18B20写入一字节数据
void writeByte(unsigned char dat)
{
unsigned int i;
unsigned char j;
bit b;
for(j = 0; j < 8; j++)
{
b = dat & 0x01;
dat >>= 1;
//写"1", 让低电平持续2个小延时, 高电平持续8个小延时
if(b)
{
ds = 0;
i++; i++;
ds = 1;
i = 8; while(i>0) i--;
}
else //写"0", 让低电平持续8个小延时, 高电平持续2个小延时
{
ds = 0;
i = 8; while(i>0) i--;
ds = 1;
i++; i++;
}
}
}
//向DS18B20发送温度转换命令
void sendChangeCmd()
{
dsInit(); //初始化DS18B20
delay(1); //延时1ms
writeByte(0xcc); //写入跳过序列号命令字
writeByte(0x44); //写入温度转换命令字
}//向DS18B20发送读取数据命令
void sendReadCmd()
{
dsInit();
Delay1(50);
writeByte(0xcc); //写入跳过序列号命令字
writeByte(0xbe); //写入读取数据令字
}//获取当前温度值
unsigned int getTmpValue()
{
unsigned int value; //存放温度数值
float t;
unsigned char low, high;
sendChangeCmd();
sendReadCmd();
//连续读取两个字节数据
low = readByte();
high = readByte();
//将高低两个字节合成一个整形变量
value = high;
value <<= 8;
value |= low;
//DS18B20的精确度为00625度, 即读回数据的最低位代表00625度
t = value 00625;
//将它放大10倍, 使显示时可显示小数点后一位, 并对小数点后第二2进行4舍5入
//如t=110625, 进行计数后, 得到value = 111, 即111 度
value = t 10 + 05;
return value;
}
void main()
{char bw,qw,sw,gw,lw;<br>int i=0;<br>Delay1(30); //延时300ms,等待ZLG7289 复位完毕<br>ZLG7289_Init(4); //调用ZLG7289 的初始化函数<br>Delay1(100);<br>//测试<br>ZLG7289_Test();<br>Delay1(200);<br>//复位<br>ZLG7289_Reset();<br>Delay1(100);<br>while(1)<br> { i=getTmpValue();//读温度<br> qw = i / 10000;<br> bw =i % 10000 / 1000;<br> sw = i % 1000 / 100;<br> gw = i % 100 / 10;<br> lw = i % 10;<br> //ZLG7289_Download(0,4,0,qw);<br> //ZLG7289_Download(0,3,0,bw);<br> ZLG7289_Download(0,2,0,sw);<br> ZLG7289_Download(0,1,1,gw);<br> ZLG7289_Download(0,0,0,lw);<br> <br>}
}
以上就是关于51单片机 12232液晶屏的 *** 作程序全部的内容,包括:51单片机 12232液晶屏的 *** 作程序、1602液晶屏,读忙标志的原理、stm32f407的液晶屏lcd怎么控制颜色变化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)