找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3570|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

1602液晶寫(xiě)屏函數(shù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:26188 發(fā)表于 2015-2-18 01:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
/***************************************************************************************
** 函數(shù)名稱(chēng): void LCD_1602_write_string(unsigned char x,unsigned char y,unsigned char *s)
** 功能描述: 寫(xiě)入字符串到第x(0-1)行y(0-15)列
** 輸   入: unsigned x 第x(0-1)行;unsigned char y(0-15)列;unsigned char *s要寫(xiě)ude字符串。
** 輸   出: 無(wú)
** 全局變量: 無(wú)
** 調(diào)用模塊: LCD_Write_Command( ),LCD_Write_DATA()
** 說(shuō)    明: 未寫(xiě)下標(biāo)越界檢查 x,y起點(diǎn)均為0,無(wú)論是單字符或字符串均用雙引擴(kuò)號(hào)
****************************************************************************************/
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寫(xiě)第一行地址命令
    while(*s)      
    {                            //直到字符串讀到最后一位
        LCD_Write_DATA(*s++);    //寫(xiě)字符數(shù)據(jù)到LCD
        if(y++>=0x8f)
        {                        //y自加,如果第一行寫(xiě)完
            y=0xc0;              //地址y設(shè)定為第二行起頭
            i=15;                //最大寫(xiě)入次數(shù)
            break;               //如果第一行寫(xiě)完則強(qiáng)退本次循環(huán)
        }
    }  
}
LCD_Write_Command(y);
while(*s)
{
    LCD_Write_DATA(*s++);
    if(!(i--)) break;
}
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表