📄 lcd.c
字号:
#include <c8051f020.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define LCD_COM P2
sbit RS = P3^0; //RS=0:读写指令;RS=1:读写数据
sbit RW = P3^1; //RW=1:读
sbit E = P3^2;
//------忙检查---------------
void del(uint t)
{
while(t--);
}
void LCD_Check_Busy()
{
del(200);
}
//-----写指令----------------
void LCD_Write_REG(uchar ins)
{
LCD_Check_Busy();
RS=0;
RW=0;
E=1;
del(30);
LCD_COM=ins;
del(30);
E=0;
}
//-------写数据--------------
void LCD_Write_Dat(uchar dat)
{
LCD_Check_Busy();
RS=1;
RW=0;
E=1;
del(30);
LCD_COM=dat;
del(30);
E=0;
}
/***************************************************
设置显示地址(行、列)
行:0~3
列:0~7
***************************************************/
void Set_Position(uchar row,uchar line)
{
switch(row)
{
case 0: LCD_Write_REG(0x80+line);break;
case 1: LCD_Write_REG(0x90+line);break;
case 2: LCD_Write_REG(0x88+line);break;
case 3: LCD_Write_REG(0x98+line);break;
default: break;
}
}
/************************************************
清屏(2ms的时间)
*************************************************/
void Clear_LCD()
{
LCD_Write_REG(0x01);
del(5000);
}
/*************************************************
写字符串
**************************************************/
void LCD_Write_String(uchar *p)
{
while(*p)
{
LCD_Write_Dat(*p);
p++;
}
}
/****************************************************
液晶初始化
****************************************************/
void Init_LCD()
{
LCD_Write_REG(0x30); //功能设置 8位数据,基本指令
LCD_Write_REG(0x0c); //显示状态 ON,游标OFF,反白OFF
Clear_LCD(); //清除显示
LCD_Write_REG(0x06); //
LCD_Write_REG(0x80); //设置DDRAM地址为0
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -