1602test.c

来自「口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河」· C语言 代码 · 共 135 行

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


/************5ms延时************/
void delay5ms()
{
 register int i;
 for (i=0;i<5000;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)
{
uchar fb;
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)
{
uchar fb;
do
fb=busy_check();
while(fb==0x80);
data_com_bus=Data;//写数据入P1口
P1=Data;
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,i;
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=0;
E=1;//上升沿写数据
//delay5ms();

init_lcd();
string=0x22;//string="ywcdream@126.com";
write_command(0x80);//第一行第一个地址
//while(*string!=0)
//{
for(i=0;i<16;i++)
{write_data(string);
string++;
}//string++;
//}
string=0x33;//string="You are welcome!";
write_command(0xc0);//第二行第一个地址
//while(*string!=0)
//{ 
for(i=0;i<16;i++)
{write_data(string);
string++;
}
}

⌨️ 快捷键说明

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