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

📄 lcd1602.c

📁 单片机实现串口通信
💻 C
字号:
#include<reg51.h>
#include<intrins.h>

typedef unsigned char UINT8;
typedef unsigned int UINT16;
typedef bit BOOL;

sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_EP=P2^2;


void Delay_US(UINT16 n)
{    if(n==0)
     {    return;
	 }
	 while(n--)
	 {    ;
	 }
}

void Delay_MS(UINT8 ms)
{    UINT8 a,b;
     for(a=1;a<ms;a++)
	 {    for(b=1;b;b++)
	      {    ;
		  }
	 }
}

BOOL LCD_BZ(void)
{    BOOL result;
     LCD_RS=0;
	 LCD_RW=1;
	 LCD_EP=1;
	 Delay_US(5);
	 result=(BOOL)(P0&0x80);
	 LCD_EP=0;
	 return(result);
}


void LCD_W_Com(UINT8 com)
{    while(LCD_BZ())
     {    ;
	 }
	 LCD_RS=0;
	 LCD_RW=0;
	 LCD_EP=0;
	 Delay_US(2);
	 P0=com;
	 Delay_US(5);
	 LCD_EP=1;
	 Delay_US(5);
	 LCD_EP=0;
}


void LCD_W_Date(UINT8 date)
{    while(LCD_BZ())
     {    ;
	 }
	 LCD_RS=1;
	 LCD_RW=0;
	 LCD_EP=0;
	 P0=date;
	 Delay_US(5);
	 LCD_EP=1;
	 Delay_US(5);
	 LCD_EP=0;
}


void LCD_Clear(void)
{    
     LCD_W_Com(0x01);
	 Delay_MS(5);
     
}



void LCD_Init(void)
{    LCD_W_Com(0x38);
     Delay_MS(5);
	 LCD_W_Com(0x0C);
	 Delay_MS(5);
	 LCD_W_Com(0x06);
	 Delay_MS(5);
	 LCD_W_Com(0x01);
	 Delay_MS(5);
}


void LCD_W_Str(UINT8 x,UINT8 y,UINT8 *s)
{    if(y==0)
     {    LCD_W_Com(0x80+x);
	 }
	 else
	 {    LCD_W_Com(0xc0+x);  
	 }
	 while(*s)
	 {    LCD_W_Date(*s);
	      s++;
	 }
}


void LCD_W_Char(UINT8 x,UINT8 y,UINT8 ch)
{    if(y==0)
     {    LCD_W_Com(0x80+x);
	 }
	 else
	 {    LCD_W_Com(0xC0+x);
	 }
	 LCD_W_Date(ch);
}

⌨️ 快捷键说明

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