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

📄 lgm12641bs1r.c

📁 单片机程序及原理图液晶显示LGM12641BS1R
💻 C
字号:
/******************************************************************************/
/**
/** 模 块 名: -------------------LCD_Graph.C---------------------------------
/**            -----------------图形液晶显示模块----------------------------*/
/** 功能描述: 
/**
/** 创 建 人: huangtiexiong    日期:2006-11-28   */
/** 修 改 人:                  日期:2006-11-28   */ 
/** 其他说明: 驱动芯片KS0108或兼容芯;
/******************************************************************************/

//#include "Includes.h"   //文件包含

/*************************************************
    模块级变量申明                 
*************************************************/
static void  LCD_SetX(int8u pageX);
static void  LCD_SetY(int8u colY);
//static int8u  LCD_ReadStatus(void);
static void  LCD_WriteCmd(int8u cmd);
static void  LCD_WriteDat(int8u dat);

static void  LCD_SetStartRow(int8u startRow);


/*************************************************
    子函数定义                  
*************************************************/

/*******************************************************************************
*** 函 数 名: static void LCD_SetX(int8u pageX)
*** 功能描述: 设置页面地址;
*** 全局变量: NO !
*** 输  入: pageX;
*** 输  出: NO !****/
static void LCD_SetX(int8u pageX)
{ pageX %= 8; LCD_WriteCmd(pageX | 0xb8); }

static void LCD_SetY(int8u colY)
{ colY %= 64; LCD_WriteCmd(colY | 0x40); }

//static int8u LCD_ReadStatus(void)
//{
// int8u tmp;
// LCD_EN = 0;// LCD_DATA = 0xff;// NOP();
// LCD_EN = 1;// LCD_RS = 0;// LCD_RW = 1;
// tmp = LCD_DATA;// LCD_EN = 0;// return tmp;
// }
static void LCD_WriteCmd(int8u cmd)
{
// while(1)
// {
//  if(!(LCD_ReadStatus() & 0x80)) break;
//  }
 LCD_EN = 1; LCD_RS = 0; LCD_RW = 0; LCD_DATA = cmd; NOP();
 LCD_EN = 0; }
static void LCD_WriteDat(int8u dat)
{
// while(1)
// {
//  if(!(LCD_ReadStatus() & 0x80)) break;
//  }
 LCD_EN = 1; LCD_RS = 1; LCD_RW = 0; LCD_DATA = dat; NOP(); LCD_EN = 0; }

static void LCD_SetStartRow(int8u startRow)
{ LCD_WriteCmd(startRow | 0xc0); }

extern void  LCD_Init(void)
{
 LCD_RST = 0; Delay_Xus(100); LCD_RST = 1; Delay_Xms(100);
// while(1)        //是否上电复位完毕;
// {
//  if(!(LCD_ReadStatus() & 0x10)) break;
//  }
 LCD_EN = 0; LCD_CS1 = 1; LCD_CS2 = 1;
 LCD_WriteCmd(0x3f);   //开显示,指令码:0x3f;
 LCD_Clear();      //清屏;
  LCD_SetStartRow(0x00); }

extern void LCD_Clear(void)
{
 int8u i,j;
 for(i=0;i<8;i++){ LCD_SetX(i);     //设置页地址;
  for(j=0;j<64;j++){LCD_WriteDat(0x00);} //显示RAM清零;
  }}

extern void   LCD_Display(int8u x,int8u y,int8u *disp_dat)
{
 int8u i;int8u  j;
 LCD_SetX(x);LCD_SetY(y);
 for(j=0;j<8;j++)
 {for(i=0;i<128;i++){
        if(i>=64){LCD_CS1 = 1; LCD_CS2 = 0;}
       else         {LCD_CS1 = 0; LCD_CS2 = 1;}  
       LCD_SetX(j); LCD_SetY(i%64);
       LCD_WriteDat(disp_dat[j*128+i]); }}}

/*******************************************************************************
****                              End Of File
*******************************************************************************/


⌨️ 快捷键说明

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