LCD1602的头文件及相关函数

#include
#include
#include "./LCD/LCD.h"
#include"./delay/DELAY.H"




sbit RS = P2^4;    
sbit RW = P2^5;
sbit EN = P2^6;


#define  _Nop()  _nop_()        //定义空指令
#define RS_CLR RS=0 
#define RS_SET RS=1


#define RW_CLR RW=0 
#define RW_SET RW=1 


#define EN_CLR EN=0
#define EN_SET EN=1
#define DataPort P0


void LCD_Write_Com(unsigned char com) //写入命令
 {  
delay_ms(5);
RS_CLR; 
RW_CLR; 
EN_SET; 
DataPort = com; 
_nop_(); 
EN_CLR;
 }


 void LCD_Write_Data(unsigned char Data) //写入数据
 { 
delay_ms(5);
RS_SET; 
RW_CLR; 
EN_SET; 
DataPort= Data; 
_nop_();
EN_CLR;
 }




 void LCD_Clear(void)  //清屏
 { 
LCD_Write_Com(0x01); 
delay_ms(5);
 }


void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)  //写入字符串
{     
    if (y == 0) 
  {     
   LCD_Write_Com(0x80 + x);     
  }
    else 
  {     
    LCD_Write_Com(0xC0 + x);     
  }  
     
    while (*s) 
  {     
       LCD_Write_Data( *s);     
       s ++;     
  }
}


void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)  //写入字符
{     
    if (y == 0) 
  {     
    LCD_Write_Com(0x80 + x);     
  }    
    else 
  {     
    LCD_Write_Com(0xC0 + x);     
 
      
    LCD_Write_Data( Data);  
}


void LCD_Init(void) //初始化
{
    LCD_Write_Com(0x38);    /*显示模式设置*/ 
    delay_ms(5); 
    LCD_Write_Com(0x38); 
    delay_ms(5); 
    LCD_Write_Com(0x38); 
    delay_ms(5); 
    LCD_Write_Com(0x38);  
    LCD_Write_Com(0x08);    /*显示关闭*/ 
    LCD_Write_Com(0x01);    /*显示清屏*/ 
    LCD_Write_Com(0x06);    /*显示光标移动设置*/ 
    delay_ms(5); 
    LCD_Write_Com(0x0C);    /*显示开及光标设置*/
}

你可能感兴趣的:(LCD1602的头文件及相关函数)