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

📄 lcd_driver.c

📁 LCD1602驱动 在AVR单片机上实现 可方便地移植到51单片机
💻 C
字号:

#include"lcd_driver.h"

/*******************************写指令***********************************/
void WriteCommandLCD( uint8_t ucCmd, bool bFgBusy )
{   
    uint16_t i;
    LCD_SET_RS_CMD;     //命令 
    LCD_DATA =  ucCmd;    //要写的命令 ,读—修改—写
    for(i=0; i<3; i++);    //小延时,写操作时序 
    LCD_ENABLE;    //使能开 
    for(i=0; i<50; i++);    //延时约45us,写入命令时间 
	LCD_DISABLE;    // 命令写入完毕,使能关 
    if ( bFgBusy ){
		for(i=0; i<1600; i++);    //延时约1.52ms,代替忙检测 
		bFgBusy = 0;
	}
}

/****************************写数据 **********************************/
void WriteDataLCD(uint8_t ucData)
{
    uint16_t i;
    for(i=0; i<600; i++);     //延时,代替忙检测  
    LCD_SET_RS_DATA;     //数据 
    LCD_DATA = ucData;    //要写的数据 
    for(i=0; i<3; i++);    //小延时,写操作时序 
    LCD_ENABLE;
    for(i=0; i<50; i++);    //延时约45us,写入数据时间 
    LCD_DISABLE;    //写入完毕,使能关 
}

/***************设置显示位置**************************/ 
void SetXY( uint8_t X, bool Y ) 
{ 
	uint8_t ucAddress; 
	if ( true ){  
	    ucAddress = B1100_0000 | X;	//第二行 
    }else{  
	    ucAddress = B1000_0000 | X; 	//第一行 
    }
	WriteCommandLCD( ucAddress, false );  
}

void WriteCGRAM( uint8_t ucCGRAM_Add, const uint8_t *pStr, uint8_t ucBytes )	//写字符发生器RAM 
{
    uint8_t n;
 	uint8_t ucAddress;
    ucAddress = B0100_0000 | ( ucCGRAM_Add << 3 );
	WriteCommandLCD( ucAddress, 0 );		
	n = ucBytes << 3;	
	while( n-- ){	//当执行CGRAM/DDRAM数据读写的时候,RAM地址计数器将 
		WriteDataLCD( *pStr++ );	//自动加1或自动减1
//		pStr++;
	}
}

/********************按指定位置显示一个字符**********************/
void DisOneChar(uint8_t X, uint8_t Y, uint8_t ucData)
{
	SetXY( X, Y );
    WriteDataLCD( ucData );
}

/*********按指定位置显示指定长度(strl)的一串字符***********/
void DisListChar(uint8_t X, uint8_t Y, const uint8_t *pStr, uint8_t ucStrLen)
{
	SetXY( X, Y );
    while( ucStrLen-- ){
       WriteDataLCD( *pStr++ );    //当执行CGRAM/DDRAM数据读写的时候,RAM地址计数器将 
//       pStr++;				    //自动加1或自动减1 
    }
}

⌨️ 快捷键说明

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