亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        觸摸式液晶屏二次開發(fā)中幾項關(guān)鍵技術(shù)研究

        2010-06-13 11:33:02夏心江吳志國
        微處理機 2010年3期
        關(guān)鍵詞:液晶屏驅(qū)動程序寄存器

        夏心江,吳志國,胡 鋼

        (河海大學計算機及信息工程學院,江蘇常州213022)

        1 引言

        隨著信息技術(shù)的快速發(fā)展,觸摸屏的應(yīng)用日趨普及,在我國已逐漸形成了產(chǎn)業(yè),觸摸屏輸入裝置將會發(fā)展成為未來諸種信息產(chǎn)品的主流技術(shù)之一。但是,在各類領(lǐng)域應(yīng)用觸摸屏的二次開發(fā)過程中,必須先解決好幾個關(guān)鍵技術(shù),諸如:驅(qū)動程序、觸控寄存器配置、字符圖形顯示編程、人機交互程序等,方能使系統(tǒng)設(shè)計得以繼續(xù)。就目前可參考的資料而言,可借鑒的設(shè)計技術(shù)系統(tǒng)描述十分有限,下面重點討論這些問題。

        2 觸摸屏系統(tǒng)硬件設(shè)計

        2.1 硬件系統(tǒng)組成

        觸摸屏的本質(zhì)是傳感器,它由觸摸檢測部件和觸摸屏控制器組成。觸摸檢測部件安裝在顯示器屏幕前面,用于檢測用戶觸摸位置;觸摸屏控制器是從觸摸檢測裝置接收信息,將它轉(zhuǎn)換成觸點坐標送給CPU,同時能接收CPU發(fā)來的命令并加以執(zhí)行。硬件系統(tǒng)由320×240分辨率的 NB320240R_BIW_SBNH觸摸式液晶屏、驅(qū)動芯片NT7086、觸控芯片RA8806組成,如圖1所示。

        RA8806是臺灣瑞佑公司開發(fā)的文字與繪圖模式的點矩陣液晶顯示(STN-LCD)控制器,內(nèi)建字庫,具有觸摸屏控制、對比控制、鍵盤掃描等功能強大的核心部件,同時能夠提供畫面旋轉(zhuǎn)、字體放大等超強附加功能。NT7086芯片是LSI公司推出的基于低功耗CMOS高電壓制程技術(shù)的LCD驅(qū)動器。在段驅(qū)動模式,它可以連接1位串行或4位并行算法的控制器;在共同驅(qū)動模式,適用雙輸入模式;在部分應(yīng)用模式,具有電源關(guān)閉功能,能降低能源消耗[4]。

        觸控芯片負責完成整個液晶屏的顯示控制及觸摸信號的采集與處理,驅(qū)動芯片為顯示控制提供驅(qū)動,320*240觸摸屏用于顯示及感測觸摸信號。整個觸摸式液晶屏的控制命令由MCU單片機發(fā)出。eP89V51RD2FN單片機是PHILIPS公司開發(fā)的一款80C51微控制器,包含64kB Flash和1024字節(jié)的數(shù)據(jù)RAM,封裝為塑料雙列直插式40腳,F(xiàn)lash程序存儲器支持并行和串行方式在系統(tǒng)編程(ISP)[6]。

        圖1 觸摸屏硬件結(jié)構(gòu)框圖

        2.2 觸控芯片模式選擇及單片機接口配置

        RA8806支持8080和6800等兩種微處理機接口傳輸模式。接口模式的選擇決定于RA8806“MI”引腳的電位。當選擇8080模式時,MI接低電位;選擇6800模式時,MI接高電位。本設(shè)計采用的是8080模式,表 1所示為在 8080時序下P89V51RD2FN單片機與觸摸式液晶屏的接口連接設(shè)計。程序在PC機中經(jīng)過編譯后,通過串口,由HIN232CP芯片驅(qū)動并傳送到P89V51RD2FN單片機內(nèi),P89V51RD2FN單片機通過特定接口向觸摸式液晶屏發(fā)出控制指令??刂朴|摸式液晶屏的顯示、信號采集與處理等操作[1]。

        表1 單片機與液晶接口對應(yīng)連接表

        3 觸摸屏二次開發(fā)相關(guān)軟件設(shè)計

        3.1 程序初始化

        在程序設(shè)計之初,必須進行初始化操作,包括如下步驟:

        (1)設(shè)計軟件重置初始化函數(shù),當執(zhí)行完一段代碼后,進行重置操作。

        (2)設(shè)計清空顯示初始化函數(shù),當觸摸式液晶屏即將進入下一屏時,清空本屏的顯示內(nèi)容。

        (3)設(shè)計寄存器配置初始化函數(shù),將RA8806各寄存器設(shè)置為默認值。

        各初始化函數(shù)如下:

        void softrst()//軟件重置初始化函數(shù)

        void lcd_inital()//寄存器配置初始化函數(shù)

        void clear(void)//清屏顯示初始化函數(shù)

        3.2 驅(qū)動程序設(shè)計

        RA8806可以接收四種數(shù)據(jù)傳輸周期,分別是指令寫入周期、狀態(tài)讀取周期、數(shù)據(jù)寫入周期以及數(shù)據(jù)讀取周期。

        要對某緩存器進行寫數(shù)據(jù)時,首先執(zhí)行指令寫入周期,包括欲寫入緩存器的編號,再以寫入數(shù)據(jù)周期將數(shù)值寫入該緩存器。這兩個周期執(zhí)行后,數(shù)值數(shù)據(jù)將被寫入到該緩存器。由于每一指令的寫入需要兩個數(shù)據(jù)傳輸周期,且每個數(shù)據(jù)傳輸周期最少也要2個系統(tǒng)頻率周期的時間才能完成,因此每一條指令至少需要花費4個系統(tǒng)頻率周期才能寫入。

        寫入指令初始化步驟:①設(shè)定ZCS1為低電位(觸摸液晶屏系統(tǒng)已將CS2固定為高電位),此時為接收指令狀態(tài)。②置ZRD為高電平,即關(guān)閉讀取信號。③利用RS與ZWR的配合時序確定存取周期。④關(guān)閉寫信號及接收指令狀態(tài),即拉高ZWR電平與ZCS1電平。

        驅(qū)動程序設(shè)計方法如下:

        void LCD_CmdWrite(uchar cmdaddr)//8080時序

        {

        cs1=0;

        rd=1;

        rs=1;

        wr=0;

        BUS=cmdaddr;

        wr=1;

        cs1=1;

        }

        寫入數(shù)據(jù)周期與寫入指令周期的不同點在于RS與ZWR的配合時序不同。

        驅(qū)動程序設(shè)計方法如下:

        void LCD_DataWrite(uchar wrdata)//數(shù)據(jù)寫控制

        {

        cs1=0;

        rd=1;

        rs=0;

        wr=0;

        BUS=wrdata;

        wr=1;

        cs1=1;

        }

        讀取數(shù)據(jù)初始化步驟:①定義變量Data,用于存儲讀取到的數(shù)據(jù)。②利用RS與ZWR的配合時序確定存取周期。③設(shè)定ZRD為讀有效狀態(tài)。④關(guān)閉讀有效狀態(tài),同時拉高RS電平。⑤將從BUS中讀到的數(shù)據(jù)返回到寄存器內(nèi)。

        驅(qū)動程序設(shè)計方法如下:

        uchar LCD_DataRead(void)//數(shù)據(jù)讀控制

        {

        uchar Data;

        wr=1;

        rs=0;

        cs1=0;

        rd=0;

        Data=BUS;

        rd=1;

        cs1=1;

        rs=1;

        return Data;

        }

        3.3 寄存器配置及字符、圖形顯示編程技術(shù)

        字符顯示的寄存器配置可參考圖2流程。

        圖2 字符顯示寄存器配置流程圖

        圖形顯示主要采用描點法,以顯示任意一點為先決條件,逐步畫出所有需要顯示的點。例如:在界面上顯示一個正方形,首先,設(shè)計描點函數(shù),用于在坐標(e,r)處點亮數(shù)組m中的第u個像素點,即完成顯示任意一點功能。接著,設(shè)計正方形圖形顯示函數(shù),調(diào)用描點函數(shù),顯示所需圖形。

        用于畫橫行的描點函數(shù)如下:

        void display_dian(uchar*m,uchar e,uchar r,uchar u)

        //描點函數(shù)1,用于畫橫行

        {

        LCD_CmdWrite(0x00);

        LCD_DataWrite(0x04);//選擇文字工作模式為文字模式

        LCD_CmdWrite(0x60);

        LCD_DataWrite(e);//定位橫坐標

        LCD_CmdWrite(0x70);

        LCD_DataWrite(r);//定位縱坐標

        LCD_CmdWrite(0xb0);

        LCD_DataWrite(m[u]);//顯示點

        }

        用于畫豎列的描點函數(shù)聲明如下,其他類同:

        void display_dian1(uchar*m,uchar e,uchar r,uchar u)

        //描點函數(shù)2,用于畫豎行

        正方形圖形顯示函數(shù)編程如下:

        ////正方形x:正方形左上角x坐標,y:正方形左上角y坐標//////

        void display_fang(uchar x,uchar y)

        {

        t=0;

        count=0;

        g=0;//參數(shù)初始化

        for(t=0;t<48;t++)//上行

        {count=t/8;

        g=t%8;

        display_dian(raio1,x+count,y,g);

        }

        t=0;

        count=0;

        g=0;//參數(shù)初始化

        for(t=0;t<48;t++)//下行

        {

        count=t/8;

        g=t%8;

        display_dian(raio1,x+count,y+40,g);

        }

        p=y+1;//參數(shù)初始化

        for(t=0;t<40;t++)//右豎

        {

        display_dian1(raio2,x+6,p++ ,0);

        }

        p=y+1;

        for(t=0;t<39;t++)//左豎

        {

        display_dian1(raio2,x,p++ ,0);

        }

        }

        在主函數(shù)中需要畫圖時可調(diào)用本函數(shù)進行逐步描點操作。

        3.4 數(shù)據(jù)的采樣與處理

        RA8806內(nèi)建一組10位ADC和控制電路,以連接四線電阻式觸控屏幕。觸控屏幕由兩層非常薄的電阻式屏幕組成,如圖3。在兩層屏幕中間有一小縫隙,當有外力施加在面板上的某一點時,兩層電阻式屏幕將被觸碰(touch),形成回路而導通。由于兩層電阻式屏幕的端點含有電極(XL、XR、YU、YD),如圖4,因此,相對于觸碰的位置,系統(tǒng)將偵測到一個XY的坐標值。

        當觸控事件發(fā)生時,在屏幕電阻上所產(chǎn)生的分壓將決定觸控的所在位置。在XY的坐標值被傳回系統(tǒng)(RA8806)并儲存在特定的緩存器后,觸控屏幕控制器(touch panel controller)將發(fā)出一中斷告知微處理機(MPU),即中斷(INTR)寄存器的觸控掃描偵測狀態(tài)位(BIT0)將會被置為1。

        數(shù)據(jù)采樣與處理編程流程如圖5所示。根據(jù)設(shè)計需要配置寄存器:設(shè)定寄存器TPCR1的BIT7為1,BIT6—BIT4為 100,BIT2 —BIT0為 100,將寄存器INTR的BIT7—BIT0全部清零。

        圖5 數(shù)據(jù)采樣與處理流程圖

        3.5 人機交互子程序設(shè)計

        人機交互程序設(shè)計步驟如下:①使能觸控功能,重置中斷狀態(tài);②讀取中斷狀態(tài),判斷觸摸狀態(tài)位,確定觸點被按下;③讀取X、Y坐標,判斷按下觸點后所發(fā)出命令;④進入觸點操作子函數(shù),執(zhí)行本命令;⑤返回參數(shù)及清空中斷。

        4 結(jié)束語

        以上介紹的觸摸屏在系統(tǒng)應(yīng)用開發(fā)過程中,所涉及到的幾項關(guān)鍵技術(shù),如驅(qū)動程序、觸控寄存器配置、字符圖形顯示編程、人機交互程序等技術(shù),已經(jīng)運用到所承擔的課題“RLC數(shù)字測量儀”設(shè)計之中,為系統(tǒng)提供了最簡單、方便、自然的一種新型人機交互方式。所介紹的相關(guān)技術(shù)具有一定的通用性、實用性和借鑒價值。

        [1]Raio Technology Inc.RA8806 two layers Character/Graphic LCD Controller Specification Preliminary Version 1.0[EB/OL].2008.http://www.raio.com.tw/Data/Datasheet/RA88%20Series/Completed/RA8806_DS_v13_Eng.pdf.

        [2]葉小嶺,嚴海東.嵌入式觸摸屏在汽車實驗記錄儀中的應(yīng)用[J].計算機測量與控制,2009,17(3):573-575.

        [3]New Tec DisplayCo.Ltd.NB320240R -BIW -SBN 觸摸屏[EB/OL].http://www.newtec.com.tw.

        [4]NEOTEC SEMICONDUCTOR LTD.NT7086.80 CH SEGMENT/COMMON DRIVER FOR DOT MATRIX LCD[EB/OL].2002.http://www.neotec.com.tw.

        [5]Intersil Corporation.HIN230 thru HIN241 Data Sheet[EB/OL].2000.http://www.intersil.com/data/fn/fn3138.pdf.

        [6]周立功.P89V51RD2器件手冊[EB/OL].液晶與顯示.2005. http://www. zlgmcu. com/philips/80c51/P89V51RD2/P89V51_isp.pdf.

        猜你喜歡
        液晶屏驅(qū)動程序寄存器
        Lite寄存器模型的設(shè)計與實現(xiàn)
        基于STM32F4的多通道串口驅(qū)動TFT液晶屏顯示系統(tǒng)設(shè)計
        液晶與顯示(2020年5期)2020-05-06 13:46:58
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        FPGA的TFT-LCD真彩液晶屏顯示控制
        基于機器視覺的液晶屏字符缺陷檢測系統(tǒng)設(shè)計
        基于圖像處理的電能表液晶屏質(zhì)量檢測方法
        電測與儀表(2014年9期)2014-04-15 00:27:02
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        一種可重構(gòu)線性反饋移位寄存器設(shè)計
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        精品一区二区在线观看免费视频| 精品无码久久久九九九AV| 久久99精品国产99久久6男男| 亚洲区日韩精品中文字幕| 日韩国产有码在线观看视频| 人妻少妇无乱码中文字幕| 亚洲日本人妻少妇中文字幕| 香蕉免费一区二区三区| 丰满熟妇乱子伦| 伊人久久综合精品无码av专区| 欧美午夜a级精美理论片| 亚洲av噜噜狠狠蜜桃| 人妻中文字幕在线一二区| 日本a级一级淫片免费观看| 亚洲精品无码av人在线播放| 亚洲 欧美 唯美 国产 伦 综合| 精品国产一区二区三区亚洲人 | 波多野结衣在线播放 | 色丁香久久| 亚洲一区二区三区品视频| 久久精品人妻一区二三区| 成人国成人国产suv| 熟女熟妇伦av网站| 色爱无码A V 综合区| 亚洲精品国产av一区二区| 午夜一区二区视频在线观看| 免费a级毛片无码av| 日本国产视频| 在线视频亚洲一区二区三区| 日韩精品人妻久久久一二三| 中文字幕一区二区三区乱码| 亚洲区偷拍自拍29p| 一本到亚洲av日韩av在线天堂 | 亚洲av一宅男色影视| 无码av免费永久免费永久专区| 内射中出后入内射极品女神视频| 成午夜福利人试看120秒| 最近最好的中文字幕2019免费| 最新欧美一级视频| 蜜桃网站免费在线观看视频| 国产精品天干天干|