📄 lcd1602.h
字号:
#ifndef LCD1602_H_
#define LCD1602_H_
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
/***********************LCD1602接线引脚定义**************************/
#define LCDIO P0 //定义P2口与LCD1602的数据口相接
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_EN=P2^2;
sbit LCD_BUSY=P0^7;
/***********************LCD1602地址相关******************************/
#define LINE1_HEAD 0x80 // 第一行DDRAM起始地址
#define LINE2_HEAD 0xc0 // 第二行DDRAM起始地址
#define LINE1 0 //第一行
#define LINE2 1 //第二行
#define LINE_LENGTH 16 //每行的最大字符长度
/********************延时函数***********************************/
void delay_ms(uchar n)
{
uint j;
for(;n>0;n--)
for(j=0;j<124;j++);
}
/*
bit LCD_check_busy() //检测LCD状态,看它是不是还在忙呢
{ bit temp;
LCD_EN=0;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
delay_ms(1);
temp=LCD_BUSY;
LCD_EN=0;
return(temp);
} */
/************LCD1602写命令*******************************/
void LCD_send_command(uchar command)
{
//while(LCD_check_busy()){}
LCDIO=command;
LCD_RS=0;
LCD_RW=0;
LCD_EN=1;
delay_ms(2);
LCD_EN=0;
delay_ms(1);
}
/*****************LCD1602写数据**************************/
void LCD_send_data(uchar dat)
{
//while(LCD_check_busy()){}
LCDIO=dat;
LCD_RS=1;
LCD_RW=0;
LCD_EN=1;
delay_ms(4);
LCD_EN=0;
delay_ms(2);
}
/********************显示字符与位置************************************/
void LCD_write_char(uchar x,uchar y,uchar dat)
{
uchar address;
if (y == LINE1)
address = LINE1_HEAD + x;
else
address = LINE2_HEAD + x;
LCD_send_command(address);
LCD_send_data(dat);
}
/******************LCD1602显示字符串*********************/
void LCD_disp_string(uchar x,uchar y,uchar *Data)
{
if(y==LINE1)
{
LCD_send_command(LINE1_HEAD+x);
for(;x<LINE_LENGTH&&*Data!='\0';x++)
{
LCD_send_data(*(Data++));
}
if(*Data!='\0')
{
x=0;
y=LINE2;
}
}
if(y==LINE2)
{
LCD_send_command(LINE2_HEAD+x);
for(;x<LINE_LENGTH&&*Data!='\0';x++)
{
LCD_send_data(*(Data++));
}
}
}
/**************LCD1602的初始化***************************/
void LCD_init(void)
{
LCD_send_command(0x38);
LCD_send_command(0x0c);
LCD_send_command(0x06);
LCD_send_command(1);
delay_ms(10);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -