⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd1602change.c

📁 口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河
💻 C
字号:
#include"reg51.h"
#include"intrins.h"
#define uchar unsigned char
#define data_com_bus P1
uchar init_lcd_code[6]={0x38,0x08,0x01,0x06,0x0c}; //清屏,8位数据、二行、5*7 ,AC自加1、禁止光标移动(写数据时),LCD显示开、光标不显示、关闪烁
uchar fb=0;
sbit RW=P3^0;
sbit RS=P3^1;
sbit E=P3^2;


/************5ms延时************/
void delay5ms()
{
 register int i;
 for (i=0;i<8000;i++)
 ;
}

/************忙检测**************/
uchar busy_check()
{
uchar busyfb;
RS=0;
RW=1;
E=0;  //初始化写状态,RS=0,RW=1,E=1;
data_com_bus=0xff; //P1口置1,设为输入
;
E=1;
busyfb=data_com_bus&0x80;
;
E=0;
return(busyfb);
}

/*************写命令***************/
write_command(uchar comdata)
{
do
fb=busy_check();
while(fb==0x80);//忙则继续等待
data_com_bus=comdata; //把P1口数据输出
E=0; //初始化写命令时序,RS=0,RW=0,E上升沿
RS=0;
RW=0;
RW=0;
E=1;//上升沿写数据
E=0; //重置0
}

/************写数据*************/
write_data(uchar Data)
{
do
fb=busy_check();
while(fb==0x80);
data_com_bus=Data;//写数据入P1口
RS=1;
RW=0;
E=0; //初始化写数据时序,RS=1,RW=0,E上升沿
E=0;
E=1;
E=0;
}

/*********初始化LCD:清屏,8位数据、二行、5*7 ,AC自加1、禁止光标移动(写数据时),LCD显示开、光标不显示、关闪烁*************/
init_lcd()
{
uchar i,*p;
p=init_lcd_code;//首地址送指针
for(i=0;i<5;i++)
{
write_command(*p);
p++;
//for(j=0;j<256;j++)
//{;}
}
//write_command(*p++);
//write_command(*p++);
//write_command(*p++);
}

/**************主函数 *****************/
void main()
{
uchar *string;
delay5ms();
delay5ms();
delay5ms();
//data_com_bus=0x38; //把P1口数据输出
//RS=0;
//RW=0;
//E=0; //初始化写命令时序,RS=0,RW=0,E上升沿
//E=1;//上升沿写数据
//delay5ms();
//data_com_bus=0x38; //把P1口数据输出
//RS=0;
//RW=0;
//E=0; //初始化写命令时序,RS=0,RW=0,E上升沿
//E=1;//上升沿写数据
//delay5ms();
//RS=0;
//RW=0;
//E=0; //初始化写命令时序,RS=0,RW=0,E上升沿
//data_com_bus=0x38; //把P1口数据输出
//E=1;//上升沿写数据
//delay5ms();
init_lcd();
string="ywcdream@126.com";
write_command(0x8f);//第一行第一个地址
while(*string!=0)
{
//delay5ms();
//delay5ms();
write_data(*string);
//write_command(0x18);
string++;
}
//delay5ms();
string="You are welcome!";
write_command(0xcf);//第二行第一个地址
while(*string!=0)
{ 
write_data(*string);
delay5ms();
delay5ms();
write_command(0x18);
string++;
}
delay5ms();
delay5ms();
delay5ms();
delay5ms();
delay5ms();
delay5ms();
string="My name is yang";
write_command(0x01);
write_command(0x80);//第二行第一个地址
while(*string!=0)
{ 
write_data(*string);
string++;
}
string="wen chong!";
write_command(0xc0);//第二行第一个地址
while(*string!=0)
{write_data(*string);
string++;
}
while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -