新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 跟我學51單片機(八)——圖型帶字庫液晶128×64

        跟我學51單片機(八)——圖型帶字庫液晶128×64

        作者: 時間:2013-01-26 來源:網絡 收藏
        要使液晶能正常工作和操作方便,除了寫數據和命令函數外,還需要進行初始化等操作,先將本講中所用到的操作液晶的主要函數設計如下。

          液晶初始化函數:初始化液晶,設置液晶的工作方式等。

          void LCD_init(void)

          {

          RST=0;

          //RST管腳置低,復位液晶

          LCD_delay();

          //延時一段時間,以完全復位

          RST=1;

          //RST管腳置高,復位完成

          PSB=1;

          //PSB管腳置高,并行工作模式

          LCD_en_command(0x30);

          //設置8位并數據格式

          LCD_en_command(0x0c);

          //開顯示器

          LCD_en_command(0x80);

          //顯示起始地址

          CLEARSCREEN();

          //對液晶進行清屏

          }

          /*設置顯示地址函數:

          參數:x取值范圍:0~7;y取值范圍:1~4 */

          void LCD_set_xy( uchar x, uchar y )

          {

          switch(y) //判斷是哪一行顯示

          {

          case 1:LCD_en_command(0x80 + x);break;

          //如果是第一行,地址加0x80

          case 2:LCD_en_command(0x90 + x);break;

          //如果是第二行,地址加0x90

          case 3:LCD_en_command(0x88 + x);break;

          //如果是第三行,地址加0x88

          case 4:LCD_en_command(0x98 + x);break;

          //如果是第四行,地址加0x98

          default:break; //否則退出

          }

          }

          /*寫字符串函數:向液晶寫入字符串

          參數:x-列坐標,y-行坐標,*s-將要顯示的字符串數

          據*/

          void LCD_write_string(uchar x, uchar y, uchar *s)

          {

          LCD_set_xy( x, y );

          //先設置要顯示的地址

          while (*s) //如果當前字符沒有結束

          {

          LCD_en_dat(*s); //顯示當前字符

          s ++; //指向下一個字符

          }

          }

          四、調試要點與實驗現象

          接好硬件(特別是連接好液晶),通過冷啟動方式將程序所生成的。hex文件下載到單片機運行后,復位單片機,然后就可在學習板上看到12864液晶上顯示的“128×64液晶測試”等字符。

          調試128×64液晶時應注意的是,對于液晶的讀忙函數如果用一段延時代替的話,一定要足夠長,不同128×64液晶的所需要的時間可能稍許不同,這也是導致液晶無顯示,出亂碼等的常見原因。此外,與前講介紹的1602液晶相似,對于128×64液晶上的V0管腳,作為液晶顯示器對比度調整端,其接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,因此可通過一個電位器實現對其的電壓調整,前文提到,將其調節到3.6~3.7V 時對比度效果最好。

          五、總結

          本講簡要介紹了帶字庫128×64液晶的工作原理并給出了驅動實例,在液晶的操作時序一定要嚴格,需參考其數據手冊或規格書。

          對于128×64液晶,如果在實際應用中僅使用并口或串口通信模式,可將PSB(第15腳)接固定電平,并口時接高電平;串口時接低電平,從而節省控制管腳。

          128×64液晶的內部接有上電復位電路,因此可以將RESET(第17腳)懸空或者接到電源正上,以節省控制管腳。

          128×64液晶內部帶有豐富的DDRAM(文本顯示RAM)和GDRAM(繪圖RAM),本文只是對其驅動方法經行了介紹,但具體如何實現等需要讀者自己實踐。

          液晶的顯示對后續程序的輔助作業很大,可以用它來顯示一些調試信息或者測量數據等非常方便,下講就將結合液晶顯示來實現一個單片機的簡易頻率計,敬請期待。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 婺源县| 新宁县| 堆龙德庆县| 龙州县| 永寿县| 黔西县| 郑州市| 山丹县| 巩留县| 镶黄旗| 冕宁县| 边坝县| 乌拉特前旗| 衡水市| 丹东市| 长治市| 瓦房店市| 黄平县| 洛扎县| 苍山县| 通河县| 靖安县| 广平县| 威信县| 诸暨市| 临泽县| 阜南县| 宿迁市| 永平县| 中宁县| 绩溪县| 平武县| 达拉特旗| 乃东县| 台南市| 松原市| 奉节县| 马山县| 宜兰县| 堆龙德庆县| 钟祥市|