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

📄 lcd1602.c

📁 单片机项目19-电子日历(1602显示)
💻 C
字号:
/**********************************lcd1602驱动***************************************/
#include <reg51.h>
#define uchar unsigned char
uchar num[] = "0123456789";
sbit RS = P2^2;
sbit RW = P2^1;
sbit E  = P2^0;

void delay_us(unsigned int x)
{
	while(x--);
}
/************************************向1602写一个命令*********************************/
void write_command(uchar command)
{
	RS = 0;
	RW = 0;
	P0 = command;
	E = 1;
	delay_us(100);		  //等待接收
	E = 0;
	RW = 1;
}
/************************************向1602写一个数据*********************************/
void write_data(uchar date)
{
	RS = 1;
	RW = 0;
	P0 = date;
	E = 1;
	delay_us(300);		  //等待接收
	E = 0;
	RW = 1;
}
/***************************************初始化1602************************************/
 void F1602_init(void)
{
	write_command(0x38); 		// 两行,每行16字符,每个字符5*7点阵	
	//write_command(0x0f);		// 光标显示并闪烁
	write_command(0x0C);		// 光标不显示
	write_command(0x06);		// 光标随字符右移
}
/***************************************对1602清屏************************************/
void F1602_clear()
{
	write_command(0x01);
	write_command(0x02);			
}
/*************************************向1602写字符串**********************************/
void display_string(uchar *p)
{
	while(*p)				 //字符非空
	{
		write_data(*p);		 //写字符
		p++;				 //数据指针加1
	}
}
/**********************************向1602写数字变量(两位)*****************************/
void display_num(uchar x)
{
	 write_data(num[x / 10]);
	 write_data(num[x % 10]);	
}
/******************************************定位**************************************/
void gotoxy(uchar y,uchar x)
{
	if(y == 1)
	write_command(0x80 + x);					//第一行
	else if(y == 2)
	write_command(0x80 + 0x40 + x); 			//第二行
}

⌨️ 快捷键说明

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