新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 無字庫12864液晶的驅動方法

        無字庫12864液晶的驅動方法

        作者: 時間:2011-12-27 來源:網絡 收藏


        要在第2頁、第6列開始顯示“鐘”,我們用一個函數:
        LcdShow1616(unsigned x,unsigned y, const char *p);


        其中參數x 是列,y是頁,p指向字模數組,具體的代碼為:
        LcdShow1616(6,2, ZHONG);

        這樣,漢字就顯出來了。

        最后,交代一下取得點陣漢字字模的

        編制字模數組的好幫手——字模軟件的使用

        因為我們現在需要的漢字量很少,所以可以使用一些字模提取軟件自己制作所需的字模。以一個很好用的綠色免費“畔畔字模提取軟件”為例加以說明。

        此軟件在各大程序網站都有下載,下載解壓后就可使用,開啟界面如圖9所示。選取Shape :方形,Mode:C51,取模順序選第4種,即點陣圖右上為A,右下為B,左上為C,左下為D,這是按照先右半從上到下,后左半從上到下的順序取模。

        3.jpg

        4.jpg

        然后在下面輸入框里輸入漢字回車后,左邊顯示點陣字,見圖10。對點陣自行修飾改動,用鼠標點選即可,例如豎筆加粗等,這里沒改。

        點右旋90度按鈕,點陣漢字右旋90度,其目的是由上往下取碼,相當于顯示時從左往右顯示。點“提取字模”按鈕,字模代碼呈現在點陣下面,見圖11。注意字模碼有2行,上行對應旋轉后的右半區域從上往下取碼,下行對應左半區域從上往下取碼,這就等同于旋轉前的漢字從左往右取碼,而上行代碼對應的是漢字的上半代碼,下行則對應的是漢字的下半代碼。正好符合上述漢字顯示程序先顯示上半部后顯示下半部的要求。這樣就取得了例子中的字模代碼。

        可以把所需的漢字逐一取碼,然后存在二維表中,就形成了16×16點陣字模數組。

        因為單片機FLASH ROM程序存儲空間較大而RAM較小,而一個16點陣漢字占據32字節,10個字就320字節,對于RAM通常在幾百到1K字節以下的單片機嫌太大,所以應該存放在FLASH區比較合理。但是讀出FLASH中的數據,程序還要變一下,以使用GCC編程為例,前述字模常量和程序修改如下:

        const unsigned char_[]PROGMEM{0x80,0x40,0x70,0xCF,0x48,0x48,0x00,0xF0,0x10,0x10,0xFF,0x10,0x10,0xF8,0x10,0x00,0x02,0x02,0x02,0x7F,0x22,0x12,0x00,0x07,0x02,0x02,0xFF,0x02,0x02,0x07,0x00,0x00,};

        要在第2頁第6列顯示“鐘”,用一個稍稍不同的函數:
        LcdShowFlash1616(unsigned x,unsigned y, const char *p);

        即:LcdShowFlash1616(6,2, ZHONG_);

        就行了。

        制作非標準的字模

        有時我們需要一些“非標準的”字符,例如12寬×16高或者8×8字符,同樣也可以使用上述工具,不過這時字符就要用鼠標在選定區域內逐點點出,因為他提取的時候還是針對16×16點陣,所以最后還要去除多余的0字節,如圖12表示一個數字9的取模。得到的代碼上下排都去掉最后4個0字節如圖中下面畫線的那8個。最后每個字就24字節,程序中循環此書作相應改變。

        led顯示器相關文章:led顯示器原理



        上一頁 1 2 下一頁

        關鍵詞: 方法 驅動 液晶 字庫

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 成武县| 长治市| 迭部县| 唐河县| 鄂温| 南宫市| 朝阳市| 紫云| 张家界市| 唐河县| 镇赉县| 台北县| 韶山市| 壶关县| 无棣县| 秦皇岛市| 三台县| 长治县| 五华县| 房产| 汝城县| 裕民县| 吉林省| 瑞金市| 桂东县| 正安县| 亚东县| 革吉县| 雅江县| 哈巴河县| 正宁县| 宜君县| 金阳县| 武宣县| 诸城市| 鹤峰县| 齐齐哈尔市| 界首市| 大名县| 德钦县| 富锦市|