📄 lcd1602.c
字号:
#include <reg51.h>
#include "LCD1602.h"
void ShortDelay(uchar i)
{
for(;i>0;i--);
}
void LongDelay(uchar i)
{
uint j;
for(;i>0;i--)
{
for(j=1000;j>0;j--);
}
}
void SetRS(bit i)
{
if(i==1)
PinRS=1;
else
PinRS=0;
}
void SetRW(bit i)
{
if(i==1)
PinRW=1;
else
PinRW=0;
}
void SetE(bit i)
{
if(i==1)
PinE=1;
else
PinE=0;
}
void InitP0(bit i)
{
if(i==1)
P0=0xff;
else
P0=0x00;
}
void WriteInstruc(uint Instruc)
{
while(Statuscheck());
InitP0(0);
SetRS(0);
SetRW(0);
SetE(0);
PinData=Instruc;
SetE(1);
ShortDelay(10);
SetE(0);
SetRW(1);
SetRS(1);
}
unit Read_BF_AC()
{
uint temp;
InitP0(1);
SetRS(0);
SetRW(0);
SetE(0);
SetE(1);
ShortDelay(1);
temp=PinData;
ShortDelay(10);
SetE(0);
SetRW(0);
SetRS(1);
return(temp);
}
void WriteData(uint data1)
{
InitP0(0);
SetRS(1);
SetRW(0);
SetE(0);
PinData=data1;
SetE(1);
ShortDelay(10);
SetE(0);
SetRW(1);
SetRS(0);
}
uint ReadData(void)
{
uint temp;
InitP0(1);
SetRS(1);
SetRW(1);
SetE(0);
SetE(1);
ShortDelay(1);
temp=PinData;
ShortDelay(10);
SetE(0);
SetRW(0);
SetRS(0);
return(temp);
}
bit StatusCheck()
{
return((bit)(Read_BF_AC() & 0x80));
}
void DispCharacter(uint x,uint y,uint data1)
{
uint temp;
while(StatusCheck());
temp=y & 0x0f;
x &= 0x01;
if(x)
temp |= 0x40;
SetDDRAM_Add(temp);
WriteData(data1);
}
void LCDReset()
{
ClearScreen();
CursorReturn();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -