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

📄 lcd_12864.h

📁 改程序代码是运用Keil uVision3软件编写的C程序
💻 H
字号:
/***************************************
功能:LCD128*64指令程序
文件名:LCD_12864.H
硬件:AT89S52
编译人:罗忠超
编译:Keil-2008-12-9
****************************************/

#ifndef uchar
#define uchar unsigned char
#endif

#ifndef uint
#define uint unsigned char
#endif

#ifndef __led12864_H__
#define __led12864_H__
#include<intrins.h>

#define LCD_DATA  P2
#define ture  1;
#define false 0;
sbit RS  = P3^5;
sbit RW  = P3^4;
sbit E   = P3^3;
sbit CS1 = P3^2;
//sbit CS2 = P3^5;
uchar Get_State(uchar cs);            //uchar Get_State_R();
void  pix(uchar x,uchar y) ;          //对应点的坐标
//uchar Read_Data(uchar cs);            //读数据状态
void  Send_Data(uchar ch,uchar cs);   //发送数据
void  Send_Data_p(uint *ch,uchar cs);
void  Send_Cmd(uchar cmd,uchar cs); //void Send_Cmd_R(uchar cmd) ;          //发送命令
uchar Led_Busy(uchar cs);                     //检查是否可以发送数据
void  Led_Open(uchar cs);                     //打开液晶显示器
void  Led_StartLine(uchar cs);                //设置起始行
void  Led_SetPage(uchar page,uchar cs);        //设置页地址
void  Led_SetRow(uchar row,uchar cs);          //设置列地址
void  Number(uchar page,uchar row,uchar cs);    //显示数字
void  Chinese(uchar page,uchar row,uchar cs,bit Click_Flag);   //显示汉字
/**********************************************
/   读状态字:  uchar Get_State();             /                                   
/                                             /
/**********************************************/
uchar Get_State(uchar cs)
{ 
      uchar state;
      E = 0;
if(cs==1)
      {
         CS1 = 1;           //选左半屏
//         CS2 = 0;
       }
  else 
      {
         CS1 = 0;           //选右半屏
//         CS2 = 1;
      }

      RS  = 0;
      RW  = 1;
      _nop_();
      E   = 1;
      _nop_();
      E   = 0;                         //数据建立
      state = LCD_DATA ;                   
      return state  ;
       
}
        


/**********************************************
/   读数据:  void  Read_Data(uchar ch);       /                                   
/                                             /
/**********************************************/
/*
uchar  Read_Data(uchar cs)
{ 
  uchar dat;
  E = 0;
  while(Led_Busy(cs));
  if(cs==1)
   {
      CS1=1;         //选择左半屏
      CS2=0;
   }
  else
   {
      CS1=0;         //选择右半屏
      CS2=1;

   }
   
  RS=1;
  RW=1;
  _nop_();
  E =1;
  _nop_();          //下降沿
  E=0;
  dat=LCD_DATA ;
  return dat;
 
  

}  

/**********************************************
/    发送数据:Send_Data(uchar ch,uchar cs);  /
/                                             /
/**********************************************/

void Send_Data(uchar ch,uchar cs)
{ 
   
   while(Led_Busy(cs));
    E = 0 ;
    if(cs==1)
     {
      CS1=1;      //选择左半屏
//      CS2=0;
     }
   else
     {
      CS1=0;      //选择右半屏
//      CS2=1;
     }
    RS  = 1;
    RW  = 0;
    _nop_();
    E   = 1;
    _nop_();
    LCD_DATA  = ch;
    E   = 0;
   

   
}  


/**********************************************
/    发送命令

⌨️ 快捷键说明

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