標(biāo)題: 玩轉(zhuǎn)12864液晶顯示圖片,畫點,畫任意直線教程 [打印本頁]

作者: 游俠(單片機開    時間: 2018-1-22 22:11
標(biāo)題: 玩轉(zhuǎn)12864液晶顯示圖片,畫點,畫任意直線教程
通過上一篇的實驗,相信大家都掌握了顯示字符的基本用法。
下面我們來看一下12864液晶更高級的用法。
首先是它的繪圖功能。
讓我們先來顯示一整副的圖片吧,也就是128x64大小。
在使用繪圖功能時,先要打開擴充指令集,然后再打開繪圖功能。接著就是送數(shù)據(jù)顯示了。這里我們首先要弄明白ST7920的顯示坐標(biāo)關(guān)系。其顯示坐標(biāo)如下。

從圖中可以看出,X方向共有8個字(16個字節(jié))Y方向共有0~31 行 分為上下兩個屏。
弄懂了之后我們就可以依照此坐標(biāo)來顯示一整屏的圖片了。
隨便用一個圖片的提取轉(zhuǎn)換軟件,講一副126X64大小的圖片轉(zhuǎn)換成字節(jié)數(shù)據(jù),總共字節(jié)大小為128*64/8 = 1024個字節(jié)。
下面我們來看看這個顯示整屏圖像的函數(shù)
void v_Lcd12864DrawPicture_f( unsigned char code *pPicture )
{
    unsigned char i, j, k ;
    for( i = 0 ; i < 2 ; i++ )//分上下兩屏寫
    {
        for( j = 0 ; j < 32 ; j++ )//行
        {
            v_Lcd12864SendCmd_f( 0x80 + j ) ;//寫Y坐標(biāo)(第幾行上寫)
            if( i == 0 )                    //寫X坐標(biāo)  (判斷在那一屏上)
            {
                v_Lcd12864SendCmd_f( 0x80 ) ;
            }
            else
            {
                v_Lcd12864SendCmd_f( 0x88 ) ;
            }
            for( k = 0 ; k < 16 ; k++ )      //寫一整行數(shù)據(jù)(一行共16個字節(jié),合八個字符)
            {
                v_Lcd12864SendData_f( *pPicture++ ) ;
            }
        }
    }
    v_Lcd12864SendCmd_f( 0x30 ) ;//基本功能設(shè)置
}
看看效果圖片如下:顯示一個人的圖像



完整文檔下載:
12864畫點直線.doc (317 KB, 下載次數(shù): 89)



作者: 醇酒美人醉修禪    時間: 2019-1-20 16:34
這是從哪弄的騙積分的玩意兒,一點用都沒有
宏定義全都不在
作者: 風(fēng)花雪月@    時間: 2019-1-20 17:54
額,看不懂




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1