找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3577|回复: 0
打印 上一主题 下一主题
收起左侧

1602液晶写屏函数

[复制链接]
跳转到指定楼层
楼主
ID:26188 发表于 2015-2-18 01:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/***************************************************************************************
** 函数名称: void LCD_1602_write_string(unsigned char x,unsigned char y,unsigned char *s)
** 功能描述: 写入字符串到第x(0-1)行y(0-15)列
** 输   入: unsigned x 第x(0-1)行;unsigned char y(0-15)列;unsigned char *s要写ude字符串。
** 输   出: 无
** 全局变量: 无
** 调用模块: LCD_Write_Command( ),LCD_Write_DATA()
** 说    明: 未写下标越界检查 x,y起点均为0,无论是单字符或字符串均用双引扩号
****************************************************************************************/
void LCD_1602_write_string(unsigned char x,unsigned char y,unsigned char *s)
{
unsigned char i;
i=15-y;
if(x)
{                                //如果是第二行
    y+=0xc0;                     //地址是偏移量y加第二行首地址0xC0
}
else
{                                //如果是第一行
    y+=0x80;                     //地址是偏移量y加第一行首地址0x80
    LCD_Write_Command(y);        //向LCD写第一行地址命令
    while(*s)      
    {                            //直到字符串读到最后一位
        LCD_Write_DATA(*s++);    //写字符数据到LCD
        if(y++>=0x8f)
        {                        //y自加,如果第一行写完
            y=0xc0;              //地址y设定为第二行起头
            i=15;                //最大写入次数
            break;               //如果第一行写完则强退本次循环
        }
    }  
}
LCD_Write_Command(y);
while(*s)
{
    LCD_Write_DATA(*s++);
    if(!(i--)) break;
}
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表