新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM和TFT6758的液晶顯示模塊實(shí)現(xiàn)

        基于ARM和TFT6758的液晶顯示模塊實(shí)現(xiàn)

        作者: 時(shí)間:2012-06-16 來(lái)源:網(wǎng)絡(luò) 收藏
        4 LCD 顯示軟件設(shè)計(jì)

        本文引用地址:http://www.104case.com/article/148902.htm

          首先進(jìn)行系統(tǒng)初始化, 接著對(duì)LCD 控制寄存器及地址寄存器進(jìn)行改寫(xiě), 設(shè)置一些LCD 的參數(shù), 配置Buffer 的起始地址和Buffer 大小等一些參數(shù), 然后是清屏, 最后系統(tǒng)可以通過(guò)控制器發(fā)出的指令調(diào)用相關(guān)函數(shù), 完成相應(yīng)的顯示功能。流程圖如圖2所示。

          LCD顯示流程

          4.1 LCD 初始化

          LCD 初始化主要包括對(duì)控制器的顯示頻率、顯示行數(shù)及顯示緩沖區(qū)地址的設(shè)置。主要程序如下:

          void TftInit(void)

          { STCOM_INI init_dat;

          int i;

          TftReset();

          for(i=0; i《100; i++) // 設(shè)定最多100 條初始化命令

          { init_dat = _INI[i]; // _INI 數(shù)組定義 初始化數(shù)據(jù)信息

          if(init_dat.type==DATA_END) break;

          if(init_dat.type==HD66783_COM){ TftSerialCom(init_dat.com, init_dat.dat); // 向TFT 液晶發(fā)送串行命令}

          else{ TftSendCom(init_dat.com); // 向TFT 液晶發(fā)送命令字TftSendDat(init_dat.dat); // 向TFT 液晶發(fā)送數(shù)據(jù)}

          DelaymS(init_dat.dly); // 延時(shí)等待}

          }

          4.2 LCD 清屏

          由于系統(tǒng)上電時(shí), 顯示緩沖區(qū)的數(shù)據(jù)是不固定的, 顯示出亂碼, 因此在操作之前應(yīng)將緩沖區(qū)清零或向緩沖區(qū)發(fā)送指定的數(shù)據(jù)來(lái)填充屏幕。程序如下:

          void GUI_ClearSCR(void){ TFT_FillSCR(GUI_CCOLOR); // 全屏填充, 直接使用數(shù)據(jù)填充顯示緩沖區(qū)}

          4.3 數(shù)據(jù)顯示

          液晶初始化結(jié)束后, 系統(tǒng)將采集來(lái)的信號(hào)通過(guò)處理后用文字、圖形等顯示到LCD 上。這里舉一個(gè)簡(jiǎn)單的畫(huà)窗口程序。為了提高程序的可讀性和可移植性, 在程序頭文件中都用了宏定義, 限于篇幅在此不再列出。

          s tatic WINDOWS win;// GUI 初始化

          void GUI_INIT(void){GUI_Initialize(); // 初始化GUI, 包括初始化顯示緩沖區(qū), 初始化LCM 并清屏

          GUI_SetColor (WHITE,BLUE);// 顯示顏色:

          WHITE 前景色; BLACK背景色I(xiàn)nitWin(win); // 窗口初始化}

          // 窗口初始化

          void InitWin(WINDOWS *ptrwin){ptrwin- 》x = Windows_x;ptrwin- 》y = Windows_y;ptrwin- 》with = Windows_width;ptrwin- 》hight = Windows_hight;ptrwin- 》title = (uint8 *)Windows_title;ptrwin- 》s tate = (uint8 *)Windows_s tate;GUI_WindowsDraw(ptrwin); // 顯示窗口。根據(jù)提供的窗口參數(shù)進(jìn)行畫(huà)窗口。

          }

          其中顯示漢字的程序如下:

          void MyGUI_PutHZ(uint32 x, uint32 y, uint8 *dat){GUI_PutHZ(x,y,dat,16,16);}

          以漢字方式顯示標(biāo)題的函數(shù)如下:

          void ShowTitleHZ(uint32 x, uint32 y)

          {x=x+10;MyGUI_PutHZ(x, y, (uint8 *)hzye);//hzye為“ 液” 的點(diǎn)陣數(shù)組

          MyGUI_PutHZ (x+HZ_FONT_SIZE, y, (uint8 *)hzjing);//hzjing 為“ 晶” 的點(diǎn)陣數(shù)組

          MyGUI_PutHZ(x+2*HZ_FONT_SIZE, y, (uint8 *)hzxian); //hzxian 為“ 顯” 的點(diǎn)陣數(shù)組

          MyGUI_PutHZ(x+3*HZ_FONT_SIZE, y, (uint8 *)hzshi); //hzshi 為“ 示” 的點(diǎn)陣數(shù)組}

          以漢字方式顯示菜單、狀態(tài)欄等與上述方法類(lèi)似。

          5 結(jié)束語(yǔ)

          本文對(duì) 和TFT6758 的模塊方法進(jìn)行了探討, 對(duì)液晶模塊TFT6758 進(jìn)行了有效的控制, 可提供豐富靈活的漢字、字符、圖形, 菜單和現(xiàn)場(chǎng)數(shù)據(jù)的動(dòng)態(tài)顯示, 性能穩(wěn)定。該顯示模塊能夠應(yīng)用于工業(yè)控制中。


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 濉溪县| 鹿邑县| 双辽市| 武鸣县| 玉林市| 余干县| 金秀| 隆回县| 民权县| 伊吾县| 徐闻县| 屏山县| 武乡县| 清流县| 濮阳市| 五家渠市| 宿迁市| 高邮市| 绍兴县| 泰宁县| 德兴市| 巴彦淖尔市| 沙雅县| 马关县| 昌宁县| 南召县| 万安县| 乳源| 茂名市| 西丰县| 镇宁| 汶上县| 松桃| 石城县| 海兴县| 青阳县| 凯里市| 甘南县| 钦州市| 大关县| 井陉县|