1602.c

来自「字符液晶1602源程序」· C语言 代码 · 共 114 行

C
114
字号
#include <reg51.h>
#include "1602.h"


void Delay( void )
{
	unsigned int i=5552;
	while(i--);
}

//读状态
unsigned char Read( void )
{
	LCD_Data=0xff;
	RS=0;
	RW=1;
	E=0;
	E=0;
	E=1;
	while(LCD_Data&Busy);
	return(LCD_Data);
}

//写指令
void Write_cmd(unsigned char x,unsigned char B)
{
	if(B)
		Read();
	LCD_Data=x;
	RS=0;
	RW=0;
	E=0;
	E=0;
	E=1;
}

//写数据
void Write_dat( unsigned char x)
{
	Read();
	LCD_Data=x;
	RS=1;
	RW=0;
	E=0;
	E=0;
	E=1;
}

//读数据
unsigned char Read_dat( void )
{
	RS=1;
	RW=1;
	E=0;
	E=0;
	E=1;
	return( LCD_Data );
}

void init( void )
{
	LCD_Data=0x00;
	Write_cmd( 0x38,0 );
	Delay();
	Write_cmd( 0x38,0 );
	Delay();
	Write_cmd( 0x38,0 );
	Delay();

	Write_cmd( 0x38,1 );
	Write_cmd( 0x08,1 );
	Write_cmd( 0x01,1 );
	Write_cmd( 0x06,1 );
	Write_cmd( 0x0C,1 );
}

//显示字符
void show_zifu( unsigned char X,unsigned char Y,unsigned char D)
{
	Y&=0x01;
	X&=0x0f;
	if(Y)
		X|=0x40;
   	X|=0x80;
	Write_cmd(X,0);
	Write_dat(D);
}

void show_list( unsigned char X,unsigned char Y,unsigned char *s)
{
	unsigned char length;
	length=0;
	Y&=0x01;
	X&=0x0f;
	while(s[length]!=0)
	{
		show_zifu(X,Y,s[length]);
		length++;
		X++;
		if(X>16)
			Y=0x01;
	}
}










⌨️ 快捷键说明

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