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

📄 1602.h

📁 ad转换+1602显示读数,不错的哦
💻 H
字号:


#ifndef       _1602L_
#define       _1602L_

//工作方式设置
#define LCD_DISPLAY_DOUBLE_LINE   0x38         //两行显示
#define LCD_DISPLAY_SINGLE_LINE   0x30         //单行显示

//设置显示、光标及闪烁开、关
#define LCD_DISPLAY_ON      0x0c       //0000 1100  display on
#define LCD_DISPLAY_OFF     0x08	   //0000 1000  diplay off
#define LCD_CURSOR_ON       0x0a       //0000 1010  cursor on
#define LCD_CURSOR_BLINK_ON 0x09       //0000 1001  cursor blink on


//光标、画面移动,不影响DDRAM
#define LCD_AC_AUTO_INCREMENT     0x06   //0000 0110 数据读、写操作后,AC自动增一
#define LCD_ACPLAY_AUTO_INCREMENT 0X07   //0000 0111 数据读、写操作后,画面平移
#define LCD_MOVE_ENABLE           0x05   //0000 0101 数据读、写操作,画面平移,AC减一
#define LCD_MOVE_DISENABLE        0x04   //0000 0100 数据读、写操作,画面不动

#define LCD_CLEAR_SCREEN  0X01   //清屏
#define LCD_GO_HOME       0x02   //AC=0,光标、画面回HOME位

/***********************LCD1602地址相关******************************/
#define LINE1_HEAD    0x80   // 第一行DDRAM起始地址 
#define LINE2_HEAD    0xc0   //  第二行DDRAM起始地址
#define LINE1         0      //第一行
#define LINE2         1      //第二行
#define LINE_LENGTH   16     //每行的最大字符长度
/***********************LCD1602接线引脚定义**************************/

sbit    LCD_RS=P3^4;
sbit    LCD_RW=P3^5;
sbit    LCD_EN=P3^3;
sbit    LCD_BUSY=P1^7;
/**********************另外相关的定*********************************/
 #define HIGH               1
 #define LOW                0   
 #define TURE               1
 #define  FALSE             0
 #define  uchar unsigned char
 #define  uint  unsigned int
 
 /*************************以下是函数的申明部*************************/
 void LCD_init(uchar x,uchar y,uchar z,uchar w);                    //LCD1602初始化
 void LCD_send_command(uchar command);   //
 void LCD_send_data(uchar dat);
 void LCD_write_char(uchar x,uchar y,uchar dat);
 void LCD_disp_string(uchar x,uchar y,char *Data);
 void delay_ms(uint n);
 void LCD_check_busy(void);
/*************************以下是函数的定义*************************/
void LCD_init(uchar x,uchar y,uchar z,uchar w)              //初始化函数定义
{
 LCD_send_command(x);
 LCD_send_command(y);
 LCD_send_command(z);
 LCD_send_command(w);
}
//
void LCD_check_busy(void)         //检测LCD状态,看它是不是还在忙呢
{
 do
  {
   LCD_EN=0;
   LCD_RS=0;
   LCD_RW=1;
   LCDIO=0xff;
   LCD_EN=1;
   }
   while(LCD_BUSY==1);
  
    LCD_EN=0;
}
//
void LCD_send_command(uchar command)  //写命令子程序
{
 LCD_check_busy();
 LCD_RS=LOW;
 LCD_RW=LOW;
 LCD_EN=HIGH;
 LCDIO=command;
 LCD_EN=LOW;
}
//
void LCD_send_data(uchar dat)        //写数据子程序
{
 LCD_check_busy();
 LCD_RS=HIGH;
 LCD_RW=LOW;
 LCD_EN=HIGH;
 LCDIO=dat;
 LCD_EN=LOW;
}
//
void delay_ms(uint n)               //毫秒延时
{
 uint i,j;
 for(i=n;i>0;i--)
    for(j=0;j<1140;j++)
    ;
}


#endif

⌨️ 快捷键说明

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