新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > LCD1602液晶顯示完全資料

        LCD1602液晶顯示完全資料

        作者: 時間:2012-10-31 來源:網絡 收藏

        下面給出一段字符串移動顯示的例子:

        void display_lcd_byte(uchar y,uchar x,uchar z)

        {

        if(y)

        {

        x+=0x40;

        }

        x+=0x80;

        write(x,0);

        write(z,1);

        }

        void display_lcd_text(uchar y,uchar x,uchar table[])

        {

        uchar z=0;

        uchar t;

        t=strlen(table)+x;

        while(xt)

        {

        display_lcd_byte(y,x,table[z]);

        x++;

        z++;

        }

        display_lcd_byte(y,x,' ');

        }

        //前兩個子程序是顯示子程序

        void main()

        {

        uchar i;

        ();

        init();

        for(i=16;i>=0;i--) //這里的循環就是為了字符串從后往前顯示

        {

        display_lcd_text(0,i,table0); //i減一次,首個字符就往前去一位

        delay(200);

        }

        while(1);

        }

        二、顯示自定義字符:

        要想顯示自定義字符,首先就得取得想要的圖形或者字符的字模數組,可以通過手動提取的方法,取得相應的字模。

        如下圖所示,對應一個字符顯示區域。每8個字節,組成一個點陣數組。

        點擊瀏覽下一頁


        要想讓某一格子顯示就讓那一位為1,每行自定義5位,全白為0x00;全黑為0x1f。一共8行,每行一位數據。

        將生成的點陣數組保存到CGRAM存儲器中,生成自定義字符。1602內部CGRAM用于自定義的字符點陣的存儲,總共64字節。由上一步點陣提取可知,每一個字符由8個字節數據組成。所以64字節CGRAM存儲器,能夠存儲8組自定義字符的點陣數組。按照CGRAM地址劃分為 0~7為第一組,8~15為第二組,依次類推56~63為第8組數據。

        CHARACTER CODE是數據的顯示地址,0-7的范圍,能存儲8位自定義的字符。(能存八個自定義,每個字符存放的)

        CGRAM ADDRESS是存儲數據的地址,從0-63共64個字節.存儲64個數據。我們寫入的數據是0x40~0x7F,共128位。(把字符數組內的8個數送進這8個地址,每存完一個字符的8位,下次地址直接轉到0x48)

        CGRAM DATA 字模每一行5位數據存

        內部常用字符顯示時,顯示編碼是從0x20開始的。0x00~0x0F是專門留給自定義字符顯示的。0x00~0x07和0x08~0x0F內容是一樣的。例如:調用0x01 位置和0x09位置,顯示的內容是一樣的。

        自定義顯示字符的方式共四步,如下面所示:

        1.設置向CGRAM中存入這個數據.初始地址是0x40。然后存一位向后加8,

        總共能存8位自定義的字符。

        2.然后可以把自定義的數據送入到LCD的CGRAM中。

        3.向LCD寫指令,送入需要顯示數據的地址。

        4.向LCD寫指令,把顯示的數據指向LCD的CGRAM存儲的位置,顯示出自定義字符。

        舉例如下:

        1.建立一個字符數組;

        uchar LCD_Data1[]={0x01,0x03,0x1D,0x11,0x1D,0x03,0x01,0x00};

        2.設置CGRAM地址,寫指令;

        Write_LCD(0x40,0);

        3.把數據送入CGRAM地址內;

        for(i = 0; i 8 ; i ++ )

        {

        Write_LCD(LCD_Data1[i],1);

        }

        4.寫需要顯示的位置指令;

        Write_LCD(0x80,0);

        5.把CGRAM的0位的數據送向,顯示數據存儲的數據;

        Write_LCD(0x00,1);


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 成都市| 乌兰察布市| 百色市| 丰镇市| 大渡口区| 沈阳市| 清原| 安阳市| 贵州省| 松江区| 张掖市| 恭城| 营口市| 原阳县| 南华县| 阿克陶县| 西盟| 永嘉县| 嘉禾县| 武定县| 邵阳县| 咸丰县| 霞浦县| 明溪县| 晋中市| 莫力| 万山特区| 萍乡市| 维西| 开封市| 藁城市| 日照市| 定襄县| 应城市| 东乡| 平陆县| 桑植县| 白水县| 时尚| 扬中市| 利津县|