//读忙子函数
bit LCD_bz(void)
{
bit bz;
LCD_RS=0;
LCD_RW=1;
LCD_E=1;
delay1ms(10);
P0=0xff; //C51单片机读引脚要先置高电平,原因不赘述,很多资料没有这一步骤,大家格外注意下
bz=(bit)(LCD_GPIO&0x80);
LCD_E=0;
return bz;
}
主程序:
//我们要把第一行做成一个16字符固定显示,第二行做成滚动显示25字符
//这里采用的是1602指针右移的基础命令而不是整屏右移命令
#include
#define LCD_GPIO P0
void LcdWriteCom(unsigned char); //写入命令子函数声明
void LcdWriteData(unsigned char);//写入数据子函数声明
void LcdInit();//显示屏初始化子函数声明
void delay1ms(unsigned int);//延时函数声明
bit LCD_bz(void);//读忙函数声明
***it LCD_RW=P2^5;
***it LCD_RS=P2^6;
***it LCD_E=P2^7;
unsigned char displayDate1[]=" I'm Cesar ";//一共16个字符(包括空格在内)
unsigned char displayDate2[]=" Please add QQ775222573 ";//一共25个字符
void main(void)
{
unsigned char i=0,j=0,n=0;
LcdInit();
LcdWriteCom(0x80);//设置坐标为第一行第一个字符
for(i=;i<16;i++)
{
LcdWriteData(displayDate1[ i]);
}
while(1)
{
if(LCD_bz())
continue;//读忙,结束本次循环
LcdWriteCom(0x80+0x40);//设置第二行第一个字符起点
for(j=n;j<25+n;j++)//我们没有进行整屏右移,但是我们进行了数组右移O(∩_∩)O~
{
LcdWriteData(displayDate2[j]);
}
n++;//数组的显示起点右移,这样实现了滚动
if(n>=(25-15))//当显示移到最右边时,停顿片刻,返回起点再次循环
{
n=0;
delay1ms(2000);
}
delay1ms(600);
}
}
请教,
主程序中,加入这个if(LCD_bz())函数的作用是什么,不加会怎样呢?
continue;跳转到哪里去了?
0