国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

51單片機(jī)——LCD1602液晶屏 C語言入門編程

這篇具有很好參考價(jià)值的文章主要介紹了51單片機(jī)——LCD1602液晶屏 C語言入門編程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

LCD1602:

數(shù)據(jù)指令:?

字節(jié)寫入時(shí)序:

1. LCD1602:LCD1602液晶上顯示字符信息


LCD1602:

????????1602液晶也叫1602字符型液晶,它能顯示2行字符信息,每行又能顯示16個(gè)字符。它是一種專門用來顯示字母、數(shù)字、符號(hào)的點(diǎn)陣型液晶模塊。它是由若 干個(gè)5x7的點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以用顯示一個(gè)字符, 每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱?,所以它不能很好的顯示圖片。

????????字符代碼0x00~0x0F為用戶自定義的字符圖形RAM(對(duì)于5X8點(diǎn)陣的字符,可以存放8組,5X10點(diǎn)陣的字符,存放4組),就是CGRAM了。0x20~0x7F為標(biāo)準(zhǔn)的ASCII碼,0xA0~0xFF為日文字符和希臘文字符,其余字符碼(0x10~0x1F及0x80~0x9F)沒有定義。寫入顯示地址時(shí)要求最高位D7恒定為高電平1。

51單片機(jī)——LCD1602液晶屏 C語言入門編程

數(shù)據(jù)指令:?

//初始化
0X38 //八位數(shù)據(jù)接口,兩行顯示,5*7點(diǎn)陣
0X0C //顯示開,光標(biāo)關(guān),閃爍關(guān)
0X06 //數(shù)據(jù)讀、寫操作后,AC自動(dòng)加一,畫面不動(dòng)
0X01 //清除DDRAM和AC值,光標(biāo)復(fù)位(清屏)
//顯示位置
發(fā)送指令(0x80|(lie-1));	//設(shè)置光標(biāo)位置80~8F
發(fā)送指令(0x80|(lie-1)+0x40);	//設(shè)置光標(biāo)位置C0~CF

51單片機(jī)——LCD1602液晶屏 C語言入門編程

51單片機(jī)——LCD1602液晶屏 C語言入門編程

51單片機(jī)——LCD1602液晶屏 C語言入門編程

51單片機(jī)——LCD1602液晶屏 C語言入門編程

51單片機(jī)——LCD1602液晶屏 C語言入門編程

字節(jié)寫入時(shí)序:

????????不是所有的地址都可以直接用來顯示字符數(shù)據(jù),只有第一行中的00-0F,第二行中的40-4F才能顯示,其他地址只能用于存儲(chǔ)。要使用LCD1602,首先需要對(duì)其初始化,即通過寫入一些特定的指令實(shí)現(xiàn)。 然后選擇要在LCD1602的哪個(gè)位置顯示并將所要顯示的數(shù)據(jù)發(fā)送到LCD的DDRAM。

????????①當(dāng)要寫指令字,設(shè)置LCD1602的工作方式時(shí):需要把RS置為電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個(gè)高脈沖將數(shù)據(jù)寫入(下降沿即可)。

????????②當(dāng)要寫入數(shù)據(jù)字,在1602上實(shí)現(xiàn)顯示時(shí):需要把RS置為電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個(gè)高脈沖將數(shù)據(jù)寫入(下降沿即可)。 寫指令和寫數(shù)據(jù),差別僅僅在于RS的電平不一樣而已。

????????當(dāng)要寫命令字節(jié)的時(shí)候,時(shí)間由左往右,RS變?yōu)榈碗娖?,R/W變?yōu)榈碗娖剑?注意看是RS的狀態(tài)先變化完成。然后這時(shí),DB0~DB7上數(shù)據(jù)進(jìn)入有效階段,接著E引腳有一個(gè)整脈沖的跳變,接著要維持時(shí)間最小值為tpw=400ns的E脈沖寬 度。然后E引腳負(fù)跳變,RS電平變化,R/W電平變化。這樣便是一個(gè)完整的LCD1602寫命令的時(shí)序。

51單片機(jī)——LCD1602液晶屏 C語言入門編程

51單片機(jī)——LCD1602液晶屏 C語言入門編程

1. LCD1602:LCD1602液晶上顯示字符信息

? ? ? ? LCD1602函數(shù)

#include <REGX52.H>
#include "intrins.h"

sbit LCD_RS=P2^6;
sbit LCD_WR=P2^5;
sbit LCD_EN=P2^7;
#define LCD_DB P0

void LCD_Delay1ms()//LCD1602延時(shí)1ms函數(shù)@11.0592MHz
{
    unsigned char i, j;
    _nop_();
    i = 2;
    j = 199;
    do
    {
        while (--j);
    } while (--i);
}

void LCD1602_WriteCommand(unsigned char Command)//寫指令
{
    LCD_RS=0;
    LCD_WR=0;
    LCD_DB=Command;
    LCD_EN=1;
    LCD_Delay1ms();//延時(shí) 速度太快可能讀不過來
    LCD_EN=0;
    LCD_Delay1ms();//延時(shí) 速度太快可能讀不過來
}

void LCD1602_WriteData(unsigned char Data)//寫數(shù)據(jù)
{
    LCD_RS=1;
    LCD_WR=0;
    LCD_DB=Data;
    LCD_EN=1;
    LCD_Delay1ms();//延時(shí) 速度太快可能讀不過來
    LCD_EN=0;
    LCD_Delay1ms();//延時(shí) 速度太快可能讀不過來
}

void LCD1602_Init(void)//初始化
{
    LCD1602_WriteCommand(0x38);//八位數(shù)據(jù)接口,兩行顯示,5*7點(diǎn)陣
    LCD1602_WriteCommand(0x0c);//顯示開,光標(biāo)關(guān),閃爍關(guān)
    LCD1602_WriteCommand(0x06);//數(shù)據(jù)讀、寫操作后,AC自動(dòng)加一,畫面不動(dòng)
    LCD1602_WriteCommand(0x01);//清除DDRAM和AC值,光標(biāo)復(fù)位(清屏)
}

void LCD1602_SetCursor(unsigned char hang,lie)//設(shè)置光標(biāo)位置 1~2行,1~16列
{
    if(hang==1)
    {
        LCD1602_WriteCommand(0x80|(lie-1));//第一行設(shè)置光標(biāo)位置80~8F
    }
    else if(hang==2)
    {
    LCD1602_WriteCommand(0x80|(lie-1)+0x40);//第二行設(shè)置光標(biāo)位置C0~CF
    }
}

void LCD1602_zifu(unsigned char hang,lie,Data)//顯示字符 1~2行,1~16列,字符'*'
{
    LCD1602_SetCursor(hang,lie);
    LCD1602_WriteData(Data);
}

void LCD1602_zifuchuan(unsigned char hang,lie,char *Datas)//顯示字符串 1~2行,1~16列,字符串"**"
{
    unsigned char i;
    LCD1602_SetCursor(hang,lie);
    for(i=0;Datas[i]!='\0';i++) 
    {
        LCD1602_WriteData(Datas[i]);
    }
}

int LCD_Pow(int X,int Y)//返回值=X的Y次方
{
    unsigned char i;
    int Result=1;
    for(i=0;i<Y;i++)
    {
        Result*=X;
    }
    return Result;
}

void lCD1602_shuzi(unsigned char hang,lie,unsigned int Num,unsigned char wei)//顯示十進(jìn)制數(shù)字 1~2行,1~16列,數(shù)字0~65535,范圍1~5
{
    unsigned char i;
    LCD1602_SetCursor(hang,lie);
    for(i=wei;i>0;i--)
    {
        LCD1602_WriteData(Num/LCD_Pow(10,i-1)%10+'0');
    }
}

void LCD1602_zfshuzi(unsigned char hang,lie,int zfNum,unsigned char wei)//顯示有符號(hào)十進(jìn)制數(shù)字 1~2行,1~16列,數(shù)字-32768~32767,范圍1~5
{
    unsigned char i;
    unsigned int zfNumber;
    LCD1602_SetCursor(hang,lie);
    if(zfNum>=0)
    {
        LCD1602_WriteData('+');
        zfNumber=zfNum;
    }
    else
    {
        LCD1602_WriteData('-');
        zfNumber=-zfNum;
    }
    for(i=wei;i>0;i--)
    {
        LCD1602_WriteData(zfNumber/LCD_Pow(10,i-1)%10+'0');
    }
}

void LCD1602_hex(unsigned char hang,lie,unsigned int hex,unsigned char wei)//顯示十六進(jìn)制數(shù)字 1~2行,1~16列,數(shù)字0~0xFFFF,范圍1~4
{
    unsigned char i,hexnum;
    LCD1602_SetCursor(hang,lie);
    for(i=wei;i>0;i--)
    {
        hexnum=hex/LCD_Pow(16,i-1)%16;
        if(hexnum<10)
        {
            LCD1602_WriteData(hexnum+'0');
        }
        else
        {
            LCD1602_WriteData(hexnum-10+'A');
        }
    }
}

void LCD1602_bin(unsigned char hang,lie,unsigned int bin,unsigned char wei)//顯示二進(jìn)制數(shù)字 1~2行,1~16列,數(shù)字0~1111 1111 1111 1111,范圍1~16
{
    unsigned char i;
    LCD1602_SetCursor(hang,lie);
    for(i=wei;i>0;i--)
    {
        LCD1602_WriteData(bin/LCD_Pow(2,i-1)%2+'0');
    }
}

? ? ? ? 主函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-449802.html

#include <REGX52.H>
#include "LCD1602.h"

void main()
{
    LCD1602_Init();
    LCD1602_zifu(1,1,'a');
    LCD1602_zifuchuan(1,3,"Hello");
    lCD1602_shuzi(1,9,12,5);
    LCD1602_hex(1,15,0xae,2);
    LCD1602_bin(2,1,0xaa,8);
    LCD1602_zfshuzi(2,10,-36,2);
    while(1)
    {
		
    }
}

到了這里,關(guān)于51單片機(jī)——LCD1602液晶屏 C語言入門編程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【51單片機(jī)】LCD1602 液晶顯示實(shí)驗(yàn)指導(dǎo)書

    【51單片機(jī)】LCD1602 液晶顯示實(shí)驗(yàn)指導(dǎo)書

    ??????? ?來介紹一種非常簡單且常用的顯示裝置——LCD1602 液晶顯示器,使用它可以顯示更多的字符數(shù)字。這將有助于我們清晰的觀察程序的運(yùn)行結(jié)果,更加方便我們的后續(xù)調(diào)試和開發(fā)。 ????????我們的開發(fā)板上集成了一個(gè) LCD1602 液晶顯示器接口,將LCD1602 液晶對(duì)應(yīng)插

    2024年02月01日
    瀏覽(23)
  • 【附報(bào)告】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    【附報(bào)告】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    ? 由于本文較早,這里推薦一下近期剛優(yōu)化的:【優(yōu)化】51單片機(jī)計(jì)算器(LCD1602液晶顯示)_Gxtoeilee的博客-CSDN博客 ? 1 設(shè)計(jì)目標(biāo) 設(shè)計(jì)可選模式的計(jì)算器? 2 主要功能 功能一:可選兩種計(jì)算模式,模式一為四則運(yùn)算,模式二為擴(kuò)展內(nèi)容; 功能二:除法的計(jì)算結(jié)果保留到小數(shù)點(diǎn)

    2024年02月11日
    瀏覽(20)
  • 【C語言】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    【C語言】51單片機(jī)計(jì)算器(LCD1602液晶顯示)

    ? 由于本文較早,這里推薦一下近期剛優(yōu)化的:【優(yōu)化】51單片機(jī)計(jì)算器(LCD1602液晶顯示)_Gxtoeilee的博客-CSDN博客 ? 1 設(shè)計(jì)目標(biāo) 設(shè)計(jì)可選模式的計(jì)算器? 2 主要功能 功能一:可選兩種計(jì)算模式,模式一為四則運(yùn)算,模式二為擴(kuò)展內(nèi)容; 功能二:除法的計(jì)算結(jié)果保留到小數(shù)點(diǎn)

    2024年02月07日
    瀏覽(52)
  • Proteus仿真-LCD1602液晶屏使用方法(驅(qū)動(dòng)一)

    Proteus仿真-LCD1602液晶屏使用方法(驅(qū)動(dòng)一)

    一、硬件鏈接 在元件庫中搜索LM016即可找到LCD1602液晶屏。 按下圖方式鏈接單片機(jī)和屏幕。 二、軟件驅(qū)動(dòng)代碼 三、示例程序

    2024年02月12日
    瀏覽(16)
  • 第十講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:圖像運(yùn)算

    第十講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:圖像運(yùn)算

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年01月22日
    瀏覽(17)
  • 第九講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯存操作

    第九講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯存操作

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年01月16日
    瀏覽(19)
  • 第八講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示圖片

    第八講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示圖片

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年01月22日
    瀏覽(21)
  • 第十三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 bin檔的燒錄方法

    第十三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 bin檔的燒錄方法

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年02月19日
    瀏覽(28)
  • 【雕爺學(xué)編程】Arduino動(dòng)手做(85)---LCD1602液晶屏模塊7

    【雕爺學(xué)編程】Arduino動(dòng)手做(85)---LCD1602液晶屏模塊7

    37款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟?,以學(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手嘗試系列實(shí)驗(yàn),不管成功(程序走通)

    2024年02月16日
    瀏覽(21)
  • 第十一講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:播放avi視頻

    第十一講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:播放avi視頻

    目錄 第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過RA8889驅(qū)動(dòng)彩色液晶屏播放視頻 第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架 第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化 第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖 第五講 單片機(jī)驅(qū)動(dòng)彩色液

    2024年01月22日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包