新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > LCD顯示接口模塊的程序設計

        LCD顯示接口模塊的程序設計

        作者: 時間:2012-01-05 來源:網絡 收藏

        低功耗方式Sleep,通過執行一條睡眠指令就進入低功耗方式。如果使能,MDT將被清0,但仍保持運行。TO(STUATUS4>)位被置1,PD位(STUATUS3>)被清0,振蕩器驅動器被停止。所有I/O端口保持Sleep指令執行前它們所有的狀態(驅動高、驅動低或高阻)。

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

        在這種方式時為使電流消耗最低,把所有的I/O引腳放在VDD或VSS電平上,以保證外部電路從I/O引腳、低功耗的A/D、不使能的外部時鐘中拉出電流。為使電流消耗最低,TOCK1輸入電平應該在VDD或VSS上。

        1.睡眠喚醒

        單片機通過下列事件之一喚醒睡眠:

          · 在MCLR引腳上的外部復位輸入;

          · 監視定時器喚醒(如果WDT使能);

          · INT引腳中斷、RB端口變化中斷和一些外部中斷。

        以下是能將單片機從睡眠中喚醒的外部中斷:

          · PSP讀或寫;

          · TMR1中斷,TIMERI必須作為一個異步計數器運行;

          · cap捕捉方式中斷;

          · 特別事件觸發器(TIMERI使用外部時鐘異步方式,CCPI是用比較器模式);

          · SSP(START/STOP)位探測中斷;

          · SSP用主從模式(SP2/12C)發送和接收;

          · USARTRX或TX(同步從模式);

          · A/D轉換(當A/D時鐘源是RC時);

          · E2PROM寫操作完成。

        因為在睡眠期間,無片內時針出現,所以其他外部事件不能產生中斷。當執行Sleep指令時,下一個指令(PC+1)被預取,對于通過中斷事件喚醒的單片機,相應的中斷使能位置1(使能),喚醒是不管GIE位的狀態的。

        如果GIE位清0(不使能),單片機在Sleep指令之后連續執行指令。如果GIE位是置1的使能,單片機在Sleep指令之后執行指令,然后分支到中斷地址(0004h)。如不期望執行緊跟在Sleep指令之后的指令,用戶應該在Sleep指令之后加一個NOP指令。

        當全體中斷不能維護任何中斷或者已包括它的中斷使能位和中斷標志位是置1的時候,將發生下面之一。

        ①如果在Sleep指令執行之前發生中斷,Sleep指令將作為一個NOP完成,因此WDT和WDT后分頻器將不被清0,TD位將不會置1,PD位將不會清0。

        ②如果在Sleep指令執行期間或之后發生中斷,單片機將立即喚醒睡眠,在喚醒之前Sleep指令將完全執行。因此,WDT和WDT后分頻器將被清0,TD位將被置1,PD位將被清0。

        即使在執行Sleep指令之前標志位被檢查,在Sleep指令完成之前標志位變成1也是可能的。為了決定Sleep指令是否執行,應該檢測PD位,如果PD位置1,Sleep指令將作為NOP執行。為保證WDT清0,在Sleep指令之前應該執行CLRWDT指令。

        內部電路調試器:當設置字里的DEBUG位被編程為0時,內部電路調試器功能使能。當使用MPLAB時,這種功能允許簡單的功能調試,當微處理機有這種使能功能時,其中一些資源通常是不可使用的。

        為了使用單片機的內部電路調試器功能,設計必須實現內部電路串行編程以連接MCLR/VPP、VDD、GND、R87和RB6。這樣將內部電路調試器和微芯片或其他公司的開發工具連接。

        程序驗證/代碼保護:如果代碼保護位不被編程,片內程序存儲器可以被讀出以便驗證。

        識別碼D存儲單元:4個存儲器單元被設定為ID存儲單元,在這里用戶可以儲存檢查其他代碼識別數。這些存儲單元在正常執行中是不可訪問的,但在編程/修改期間是可讀寫的,推薦使用ID存儲單元的低4位。

        內部電路串行編程:PlC16P877微處理器在應用電路結束時能夠被串行編程。可用兩根線作為時鐘線和數據線,其他線用作電源、接地和編程電壓線來簡單地完成。

        當使用ICSP時,如果執行一個大量的擦除,部件必須用4.5~5.5V電壓供電。這包括從一個打開狀態到關閉狀態兩個的代碼保護的重新編程。對于ICSP的所有其他情況,部件可以在通常操作電壓下編程。這意味著振蕩器值,獨一無二的用戶代碼或用戶碼可以被重新編程或增加12。

        IS:低電壓ICSP編程.

        設置LVP位使能低電壓ICSP編程。這種模式允許微處理機在操作電壓范圍內使用一個vDD通過ICSP編程實現。這意味著Vpp不必帶到VIHH,但在標準操作電壓時能夠替換。在這種模式里,RB3rPGM引腳被制定為編程功能和停止 個普通的I/O引腳。在編程期間,VDD應用到MCLR引腳。為了進入編程模式,必須應用RB3/PGM使LVP位置1。出廠時,LVP位的缺省值是1。

        如果低電壓編程模式不能使,那么LVP位不能編程到0,RB3/PGM變成一個數字I/O引腳,然而,當在MCLP上用VIHH進入編程時,LVP位只可以被編程,當MCLR上使用高電壓時,LVP位只可以被置1。

        應該注意,一旦LVP位編程到0,只有高電壓編程模式可用于對單片機編程,

        當使用低電壓ICSP時,如果執行一個大量的擦除,部件必須用4.5~5.5V電壓供電。這包括從一個打開狀態到關閉狀態的兩個代碼保護的重新編程。對于ICSP的所有其他情況,部件可以在通常操作電壓下被編程,這意味著振蕩器值不變。用戶代碼或用戶碼叮以被重新編程或增加,

        SED152OFOA液晶驅動器有13條指令,下面以M680O系列MPU按口為例(RES=1),總結這些指令,如表所示。

        表 SED1520F0A的指令集

        07.jpg

        下面以圖所示的電路為例說明液晶分區情況.E1、E2是液晶的控制引腳,分別控制不同區域,下面只對E1控制區域的程序進行分析.

        08.jpg

        2

        在系統程序的初始化部分,應對程序中用到的寄存器和臨時變量作如下說明。

        (1)定義程序中需要的全局變量。

        09.jpg

        (2)系統各個口的輸入輸出狀態初始化子程序。

        10.jpg

        (3)讀液晶顯示器狀態子程序。

        11.jpg

        (4)對液晶顯示器發送指令子程序(指令保存在TRANS寄存器中)。

        12.jpg

        (5)對液晶顯示器寫數據了程序,其中數據保存在WRIte寄存器中。

        13.jpg

        (6)開E1顯示子程序

        15.jpg

        (7)E1邊清屏子程序。

        14.jpg

        (8)關E1顯示子程序

        16.jpg

        有了以上的通用子程序,就可以構造出各種顯示程序,如字符、漢宇、曲線等。執行這些程序前,必須對液晶顯; J動進行初始化。初始化的順序為:關顯示→正常顯示驅動設置→占空比設置→復位→ADC選擇→清屏-開顯示,程序如下。

        17.jpg

        LCD顯示屏相關文章:lcd顯示屏原理


        分頻器相關文章:分頻器原理
        lcd相關文章:lcd原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 高陵县| 崇义县| 郓城县| 泰兴市| 浙江省| 鄂伦春自治旗| 平阳县| 玉林市| 台南县| 铜山县| 吉隆县| 新河县| 葫芦岛市| 阳江市| 巫山县| 且末县| 石泉县| 汕头市| 桐柏县| 闽侯县| 方正县| 岫岩| 梅州市| 砀山县| 奇台县| 晋宁县| 海盐县| 图木舒克市| 德钦县| 平潭县| 剑川县| 闵行区| 翁源县| 昌黎县| 长垣县| 衡东县| 高碑店市| 垦利县| 武穴市| 彭山县| 昌宁县|