资源简介

LCD1602液晶显示函数,包括头文件的规范写法和相关函数。仅供参考,欢迎交流

资源截图

代码片段和文件信息

/************************************************************
 * 描述:1602字符型液晶显示器驱动文件
 * 作者:吴义鹏(wuyipengnuaa@163.com)
 * 日期:2010年9月2日
************************************************************/

/************************************************************
 * 描述:头文件声明
************************************************************/
#include
#include 
#include“LCD1602.h“   //自定义的1602显示器头文件,在本工程内编译

/************************************************************
 * 描述:LCD初始化函数 (有特定的顺序)
************************************************************/
void LCD_Initial()
{
    LCD_DelayTime(15);                         //延时15ms
LCD_Write(LCD_Command 0x38);              //设置显示模式,8位数据端口2行显示5*7点阵
LCD_DelayTime(5);    //延时5ms
LCD_Write(LCD_Command 0x38);        
LCD_DelayTime(5);    //延时5ms
LCD_Write(LCD_Command 0x38);              
LCD_DelayTime(4);    //检测忙信号(Proteus仿真用)
//void LCD_BusyCheck();    //检测忙信号(实际硬件电路用)
LCD_Write(LCD_Command 0x38);              //设置显示模式,确保初始化成功
LCD_DelayTime(4);    
//void LCD_BusyCheck();    
LCD_Write(LCD_Command LCD_CLOSE);         //关闭显示
LCD_DelayTime(4);    
//void LCD_BusyCheck();    
LCD_Write(LCD_Command LCD_CLEAR_SCREEN);  //清屏
LCD_DelayTime(4);    
//void LCD_BusyCheck();    
LCD_Write(LCD_Command LCD_SHOW_ON | LCD_CURSOR_OFF);    
                                           //开显示,无光标,当然就无闪烁啦                                        
}

/************************************************************
 * 描述:LCD写数据或指令函数
 * 说明:bRS表示选择写入指令还是数据
************************************************************/
void LCD_Write(bit bRS unsigned char ucPort)
{
LCDEn = 0;              //模块使能端置0
LCDRS = bRS;  //选择指令输入还是命令输入
LCDRW = 0;  //读写寄存器选择,0表示写
_nop_();  //空操作,给硬件反映时间
DBPort = ucPort;  //指令(数据)送入输出端口(单片机P0口)
_nop_();  
_nop_();  
LCDEn = 1;  //模块使能端置1,产生高脉冲,指令(数据)写入LCD
_nop_();  
_nop_();  
_nop_();  
LCDEn = 0;  //模块使能端置0
_nop_();  
//void LCD_BusyCheck();  //检测忙信号(实际硬件电路用)
LCD_DelayTime(3);  //检测忙信号(Proteus仿真用)
}


/************************************************************
 * 描述:显示字符定位
 * 说明:在16*2的坐标上确定位置
************************************************************/
void LCD_CoordinateXY(unsigned char X unsigned char Y)
{
    if(Y == 0)       //数据在第一行显示
{
    LCD_Write(LCD_Command 0x80 | X);
}
else if(Y == 1)       //数据在第二行显示
{
    LCD_Write(LCD_Command 0x80 | (X+0x40));
}
else  //main函数中,坐标地址写错则在这报错
{
    LCD_Write(LCD_Command 0x80);  
LCD_Printf(“Error XY!“);
}
}

/************************************************************
 * 描述:字符串输出函数
 * 说明:在LCD上显示字符串或数字
************************************************************/
void LCD_Printf(unsigned char *ucStr)
{
    while(*ucStr != ‘\0‘)             //当字符串没有结束时,做
{
LCD_Write(LCD_Data *ucStr);  //LCD写入数据(字符)
ucSt

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4174  2010-09-06 14:44  1602液晶显示的C51函数(原创)\LCD1602.c

     文件       1566  2010-09-06 14:40  1602液晶显示的C51函数(原创)\LCD1602.h

     目录          0  2010-09-07 21:28  1602液晶显示的C51函数(原创)

----------- ---------  ---------- -----  ----

                 5740                    3


评论

共有 条评论