打印

初学LCD1602:只给1602写入指令不能控制光标的问题

[复制链接]
1165|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
各位前辈好,小弟初学单片机,这几天遇到了个问题:
#include<reg52.h>
#define LCD_D P0
sbit LCD_RW=P2^5;
sbit LCD_RS=P2^6;
sbit LCD_E=P2^7;
void LCD_WriteCom(unsigned int com);
void LCD_WriteDat(unsigned int date);
void LCD_init();
void delay(unsigned int c);


void delay(unsigned int c)
{
unsigned int a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}

}
void LCD_WriteCom(unsigned int com)//1602写指令函数
{
LCD_RS=0;
LCD_RW=0;
LCD_E=0;
LCD_D=com;
delay(5);
LCD_E=1;
delay(5);
LCD_E=0;
}
void LCD_WriteDat(unsigned int date)//1602写数据函数
{
LCD_RS=1;
LCD_RW=0;
LCD_E=0;
LCD_D=date;
delay(5);
LCD_E=1;
delay(5);
LCD_E=0;
}
void LCD_init()//1602初始化函数
{
LCD_WriteCom(0x38);
LCD_WriteCom(0x08);
LCD_WriteCom(0x06);
LCD_WriteCom(0x01);
}

void main()
{
LCD_init();
while(1);
}
上面的程序写入单片机之后,出现了图中的现象,我在初始化的第二行里写的是不开光标,光标也不闪烁,但是现在光标在第一行第一位闪烁而且整个黑块跟光标在同时闪烁,不管我的初始化第二行里写入什么样的数据情况都是一样的,求高手解答,多谢了。

相关帖子

沙发
小冬0606|  楼主 | 2014-9-22 16:57 | 只看该作者

使用特权

评论回复
板凳
ningling_21| | 2014-9-22 17:17 | 只看该作者
好像对比度没调好吧...

使用特权

评论回复
地板
小冬0606|  楼主 | 2014-9-22 21:32 | 只看该作者
ningling_21 发表于 2014-9-22 17:17
好像对比度没调好吧...

是第一行第一位的那块整个在闪。。。

使用特权

评论回复
5
小冬0606|  楼主 | 2014-9-22 21:33 | 只看该作者
小冬0606 发表于 2014-9-22 21:32
是第一行第一位的那块整个在闪。。。

闪的时候整个都是黑的。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝