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

📄 lcd.c

📁 s3c44b0的LCD开发测试程序,可以很直观的知道LCD功能模块的使用和编程
💻 C
字号:
#include "..\inc\uTypes.h"
#include "..\inc\44b0x.h"
#include "..\inc\console.h"
#include "..\inc\sysUtils.h"

#define LCM_DELAY  1000

//RS 信号接在 (GPC7)
//RW 信号接在 (GPC6)
//E  信号接在 (GPC5)

#define SET_LCM_RS() \
        rPDATC |= MASK_BIT(7)
#define CLR_LCM_RS() \
        rPDATC &= ~MASK_BIT(7)

#define SET_LCM_RW() \
        rPDATC |= MASK_BIT(6)
#define CLR_LCM_RW() \
        rPDATC &= ~MASK_BIT(6)
                
#define SET_LCM_E() \
        rPDATC |= MASK_BIT(5)
#define CLR_LCM_E() \
        rPDATC &= ~MASK_BIT(5)
        

        
#define LCM_WRITE(data) \
        rPDATD = data

#define LCM_READ() rPDATD

void lcmDelay (int nDelay);
void lcmWriteCmd (U8 byCmd);
void lcmWriteData (U8 byData);
int lcmIsBusy (void);
        
void lcmInit ()
{
  //先初始化端口
  //PORT C GROUP
	//BUSWIDTH=16													*/
	/*  PC15	14		13		12		11		10		9		8	*/
	/*	o		o		RXD1	TXD1	o		o		o		o	*/
	/*	NC		NC		Uart1	Uart1	NC		NC		NC		NC	*/
	/*  01		01		11		11		01		01		01		01	*/

	/*  PC7		6		5		4		3		2		1		0	*/
	/*  o		o		o		o		o		o		o		o	*/
	/*  NC		NC		NC		NC		LED		LED		LED		LED	*/
	/*  01		01		01		01		01		01		01		01	*/
	rPDATC = 0x0000;	//All IO is low
	rPCONC = 0x5f555555;	
	rPUPC  = 0x3000;	//PULL UP RESISTOR should be enabled to I/O

	//PORT D GROUP
	/*  PORT D GROUP(I/O OR LCD)										*/
	/*  BIT7		6		5		4		3		2		1		0	*/
	/*  VF			VM		VLINE	VCLK	VD3		VD2		VD1		VD0	*/
	/*	01			01		01		01		01		01		01		01	*/
	rPDATD= 0x00;
	rPCOND= 0x5555;	
	rPUPD = 0x00;
	
	lcmDelay (100);
	    
  lcmWriteCmd (0x30); //功能设定, 基本指令集合
  
  //lcmWriteCmd (0x02); //DDRAM的计数器(AC)到"00H",降游标移动到开头原点位置

  //lcmWriteCmd (0x04);
  
  lcmWriteCmd (0x0c); //打开显示
  
  lcmWriteCmd (0x06);
  
  
}

void lcmWriteCmd (U8 byCmd)
{
  lcmDelay (LCM_DELAY);
  
  CLR_LCM_RS ();
  CLR_LCM_RW ();
  lcmDelay (LCM_DELAY);
  
  LCM_WRITE (byCmd);
  
  SET_LCM_E ();
  
  lcmDelay (LCM_DELAY);
  
  CLR_LCM_E ();
  
  lcmDelay (LCM_DELAY);
  
}

void lcmWriteData (U8 byData)
{

  SET_LCM_RS ();
  CLR_LCM_RW ();
  lcmDelay (LCM_DELAY);
  
  LCM_WRITE (byData);
  
  SET_LCM_E ();
  
  lcmDelay (LCM_DELAY);
  
  CLR_LCM_E ();
  
  lcmDelay (LCM_DELAY);
}

void lcmRead ()
{

}

void lcmDelay (int nDelay)
{
  int i;
  for (i = 0; i < nDelay; ++ i);
}

void lcmSetPos (int nPos)
{
  lcmWriteCmd (nPos | 0x80);
}

⌨️ 快捷键说明

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