📄 lcd.c
字号:
#include <reg51.h>
/********************************************************************/
//lcd part
#define LINE1 0
#define LINE2 1
#define LINE1_HEAD 0x80
#define LINE2_HEAD 0xC0
#define LCD_DELAY_TIME 40
#define DATA_MODE 0x38
#define OPEN_SCREEN 0x0C
#define DISPLAY_ADDRESS 0x80
#define CLEARSCREEN LCD_en_command(0x01)
//common part
#define HIGH 1
#define LOW 0
#define TRUE 1
#define FALSE 0
#define ZERO 0
#define MSB 0x80
#define LSB 0x01
#define LCDIO P0
code unsigned char s1[13]={119,119,119,46,50,50,115,107,121,46,99,111,109,}; //显示www.22sky.com
code unsigned char s2[5]={68,73,83,80,58,}; //显示DISP:
/*****************************************************************************/
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
sbit LCD1602_RS=P2^7; //data command select 1 data 0 command pin 4
sbit LCD1602_RW=P2^6; //read write select 1 read 0 write pin 5
sbit LCD1602_EN=P2^5; //LCD enable signal pin 6
/********************************************************************/
void LCD_en_command(unsigned char command);//write command function
void LCD_en_dat(unsigned char temp);//write data function
void LCD_init(void);//lcd initize function
void cap_clr(void);
void ad_clr(void);
/********************************************************************/
void delay_nms(unsigned int n);//delay function
/********************************************************************/
void LCD_en_command(unsigned char command)//写命令
{
LCDIO=command;
LCD1602_RS=LOW;
LCD1602_RW=LOW;
LCD1602_EN=LOW;
delay_nms(2);
LCD1602_EN=HIGH;
}
/********************************************************************/
void LCD_en_dat(unsigned char dat)//写数据
{
LCDIO=dat;
LCD1602_RS=HIGH;
LCD1602_RW=LOW;
LCD1602_EN=LOW;
delay_nms(2);
LCD1602_EN=HIGH;
}
/********************************************************************/
void LCD_init(void)
{
unsigned char i;
unsigned char *p_2=s2;
unsigned char *p_1=s1;
CLEARSCREEN;//clear screen
LCD_en_command(DATA_MODE);//set 8 bit data transmission mode
LCD_en_command(OPEN_SCREEN);//open display (enable lcd display)
LCD_en_command(DISPLAY_ADDRESS);//set lcd first display address
CLEARSCREEN;//clear screen
/*****************lcd第一行显示:www.22sky.com**************************/
for(i=0;i<13;i++)
{
LCD_en_command(0x80+i);
LCD_en_dat(*p_1);
delay_nms(2);
p_1=p_1+1;
}
/*****************lcd第二行显示阻值:DISP:**************************/
for(i=0;i<5;i++)
{
LCD_en_command(0xc0+i);
LCD_en_dat(*p_2);
delay_nms(2);
p_2=p_2+1;
}
}
/********************************************************************/
/*********************** OTHER PART *********************************/
void delay_nms(unsigned int n)
{
unsigned int i=0,j=0;
for (i=n;i>0;i--)
for (j=0;j<1140;j++);
}
/********************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -