📄 lcd.c
字号:
#include <reg51.h>
#include <STDIO.H>
#include <string.h>
#include <intrins.h>
//--------LCD control bit---------------
sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;
sbit BUSY = P0^7;
#define TRUE 0x01
#define FALSE 0x00
#define ON 0x01
#define OFF 0x00
void delay_100ms (void);
void delay_us (unsigned int us);
//--------LCD function---------------
void InitLCD(void);
void WriteCommand(unsigned char c);
void WriteData(unsigned char c);
void ShowChar(unsigned char pos,unsigned char c);
void ShowString(unsigned char line,char *ptr);
char code str1[] = "LCD test program";
void main (void)
{
char c;
InitLCD();
ShowString(0,str1);
}
void WriteCommand(unsigned char c)
{
delay_100ms();
E=0;
RS=0;
RW=0;
_nop_();
E=1;
P0=c;
E=0;
}
void WriteData(unsigned char c)
{
delay_100ms();
E=0;
RS=1;
RW=0;
_nop_();
E=1;
P0=c;
E=0;
RS=0;
}
void ShowChar(unsigned char pos,unsigned char c)
{
unsigned char p;
if (pos>=0x10)
p=pos+0xB0;
else
p=pos+0x80;
WriteCommand(p);
WriteData(c);
}
void ShowString(unsigned char line,char *ptr)
{
unsigned char l,i;
l=line<<4;
for (i=0;i<16;i++)
ShowChar(l++,*(ptr+i));
}
void InitLCD(void)
{
delay_100ms();
WriteCommand(0x38);
WriteCommand(0x38);
WriteCommand(0x06);
WriteCommand(0x0C);
WriteCommand(0x01);
WriteCommand(0x80);
}
void delay_100ms()
{
unsigned char i,j,k;
for (i=0;i<8;i++)
for (j=0;j<25;j++)
for (k=0;k<250;k++);
}
void delay_us (unsigned int us)
{
while(us!=0)
us--;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -