各位前辈好,小弟初学单片机,这几天遇到了个问题:
#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);
}
上面的程序写入单片机之后,出现了图中的现象,我在初始化的第二行里写的是不开光标,光标也不闪烁,但是现在光标在第一行第一位闪烁而且整个黑块跟光标在同时闪烁,不管我的初始化第二行里写入什么样的数据情况都是一样的,求高手解答,多谢了。 |