这是LCD花屏现象哦,一般是数据传输不良导致,信号不良;
若伴有拖影现象,那是显卡出问题了。
刷新一下的话亮块会变换位置,这是正常现象,数据传输不良导致随机不正常显示
不管是数据线不良还是显卡问题都会导致数据传输不良!
背光闪,应该是你的背光控制脚接错了把。它直接接电源或这由单片机控制。你查一下。
至于点不亮内容。 排除硬件链接问题,那就是初始化了。
1602启动的时候初始化有讲究的,要延时一下。给你个代码参考下
初始化:
delay_nms(100);
LCD_init();
LCD_write_string(0,0,"TEST 1234");
LCD_write_string(0,1," 5678")
下面的保存成h文件。
/==========================1602液晶部分============================/
//定义MCU与LCD的接口
#define LCD_EN_PORT PORTB
#define LCD_RS_PORT PORTB
#define LCD_RS_EN_DDR DDRB
#define LCD_DATA_PORT PORTB
#define LCD_DATA_DDR DDRB
#define LCD_DATA_PIN PINB
#define LCD_EN 0x04 //portD7 out
#define LCD_RS 0x01 //portD5 out
#define LCD_DATA 0xf0 //portb4/5/6/7 out
/--------------------------------------------------------------------------------------------------
Public function prototypes
--------------------------------------------------------------------------------------------------/
void LCD_init (void);
void LCD_en_write (void);
void LCD_write_char (unsigned command,unsigned data);
void LCD_set_xy (unsigned char x, unsigned char y);
void LCD_write_string (unsigned char X,unsigned char Y,unsigned char s);
void LCD_init(void) //液晶初始化
{
LCD_DATA_DDR |= LCD_DATA;
LCD_RS_EN_DDR |= LCD_RS | LCD_EN;
LCD_EN_PORT &= ~LCD_EN; //EN=0
delay_nms(50);
LCD_write_char(0x28,0); //4位显示
delay_nms(5);
LCD_write_char(0x28,0); //4位显示
delay_nms(5);
LCD_write_char(0x28,0); //4位显示
delay_nms(5);
LCD_write_char(0x28,0); //4位显示
delay_nms(5);
delay_nms(1);
LCD_write_char(0x0c,0); //显示开
delay_nms(1);
LCD_write_char(0x01,0); //清屏
delay_nms(1);
LCD_write_char(0x06,0); //
delay_nms(1);
LCD_write_char(0x0c,0); //
delay_nms(1);
}
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char s)
{
LCD_set_xy( X, Y ); //写地址
while (s) // 写显示字符
{
LCD_write_char( 0, s );
s ++;
}
}
void LCD_set_xy( unsigned char x, unsigned char y ) //写地址函数
{
unsigned char address;
if (y == 0) address = 0x80 + x;
else
address = 0xc0 + x;
LCD_write_char( address, 0 );
}
void LCD_en_write(void) //液晶使能
{
LCD_EN_PORT|=LCD_EN;
delay_nus(20);
LCD_EN_PORT&=~LCD_EN;
}
void LCD_write_char(unsigned command,unsigned data) // 写数据
{
unsigned command_temp,data_temp;
command_temp=command;
data_temp=data;
delay_nus(16);
if(command==0)
{
LCD_RS_PORT|=LCD_RS; //RS=1
LCD_DATA_PORT&=0X0f;
LCD_DATA_PORT|=data_temp&0xf0; //写高四位
LCD_en_write();
data_temp=data_temp<<4;
LCD_DATA_PORT&=0X0f;
LCD_DATA_PORT|=data_temp&0xf0; //写低四位
LCD_en_write();
}
else
{
LCD_RS_PORT&=~LCD_RS; //RS=0
LCD_DATA_PORT&=0X0f;
LCD_DATA_PORT|=command_temp&0xf0; //写高四位
LCD_en_write();
command_temp=command_temp<<4;
LCD_DATA_PORT&=0x0f;
LCD_DATA_PORT|=command_temp&0xf0; //写低四位
LCD_en_write();
}
LCD_DATA_PORT&=0X0f;
}
void LCD_CLEAR(unsigned char Y)
{
unsigned char i;
LCD_set_xy( 0, Y ); //写地址
for(i=0;i<16;i++) // 写显示字符
{
LCD_write_char( 0,0x20);
}
}
显示器老化,显示器超时服役;为了检验显示器内部的电子元件是否老化,可将故障的显示器连接到别人的计算机上进行测试,如果故障仍未消失,说明显示器已坏,需要修理。劣质电源或电源设备老化,杂牌电脑电源所使用的元件做工、用料均很差,易造成电脑的电路不畅或供电能力跟不上,当系统繁忙时,显示器尤其会出现屏幕抖动的现象。电脑的电源设备开始老化时,也容易造成相同的问题。此时可更换电源进行测试。
病毒,有些计算机病毒会扰乱屏幕显示,比如:字符倒置、屏幕抖动、图形翻转显示等。网上随处可见的屏幕抖动脚本,显示刷新率设置不正确,如果是刷新率设置过低,会导致屏幕抖动,检查方法是用鼠标右键单击系统桌面的空白区域,从dan出的右键菜单中单击“属性”命令,进入到显示器的属性设置窗口。单击该窗口中的“设置”标签,在其后dan出的对应标签页面中单击“高级”按钮,打开显示器的高级属性设置界面,再单击其中的“jian视器”标签,从中可以看到显示器的刷新频率设置为“60” ,这正是造成显示器屏幕不断抖动的原因。将新频率设置为“75”以上,再点击确定返回桌面。显示器屏幕抖动最主要的原因就是显示器的刷新频率设置低于75Hz造成的,此时屏幕常会出现抖动、闪烁的现象,我们只需把刷新率调高到75Hz以上,那么屏幕抖动的现象就不会再出现了。显卡驱动程序不正确,有时我们进入电脑的显示器刷新频率时,却发现没有刷新频率可供选择,这就是由于前显卡的驱动程序不正确或太旧造成的。购买时间较早的电脑容易出现这个问题,此时不要再使用购买电脑时所配光盘中的驱动,可到网上下载对应显示卡的最新版驱动程序,然后打开“系统”的属性窗口,单击“硬件”窗口中的“设备管理器”按钮,进入系统的设备列表界面。用鼠标右键单击该界面中的显示卡选项,从dan出的右键菜单中单击“属性”命令,然后在dan出的显卡属性设置窗口中,单击“驱动程序”标签,再在对应标签页面中单击“更新驱动程序”按钮,以后根据向导提示逐步将显卡驱动程序更新到最新版本,最后将计算机系统重新启动了一下,如果驱动安装合适,就会出现显示器刷新频率选择项了,再将刷新率设置成75Hz以上即可。
以上就是关于LCD出现闪烁的亮块什么问题》全部的内容,包括:LCD出现闪烁的亮块什么问题》、AVR单片机接lcd1602只亮不显示,但是一直在闪烁、液晶屏幕频闪原因有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)