<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > LCD顯示接口模塊的程序設(shè)計(jì)

          LCD顯示接口模塊的程序設(shè)計(jì)

          作者: 時(shí)間:2012-01-05 來(lái)源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/168658.htm

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

          1.睡眠喚醒

          單片機(jī)通過(guò)下列事件之一喚醒睡眠:

            · 在MCLR引腳上的外部復(fù)位輸入;

            · 監(jiān)視定時(shí)器喚醒(如果WDT使能);

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

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

            · PSP讀或?qū)懀?/p>

            · TMR1中斷,TIMERI必須作為一個(gè)異步計(jì)數(shù)器運(yùn)行;

            · cap捕捉方式中斷;

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

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

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

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

            · A/D轉(zhuǎn)換(當(dāng)A/D時(shí)鐘源是RC時(shí));

            · E2PROM寫(xiě)操作完成。

          因?yàn)樵谒咂陂g,無(wú)片內(nèi)時(shí)針出現(xiàn),所以其他外部事件不能產(chǎn)生中斷。當(dāng)執(zhí)行Sleep指令時(shí),下一個(gè)指令(PC+1)被預(yù)取,對(duì)于通過(guò)中斷事件喚醒的單片機(jī),相應(yīng)的中斷使能位置1(使能),喚醒是不管GIE位的狀態(tài)的。

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

          當(dāng)全體中斷不能維護(hù)任何中斷或者已包括它的中斷使能位和中斷標(biāo)志位是置1的時(shí)候,將發(fā)生下面之一。

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

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

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

          內(nèi)部電路調(diào)試器:當(dāng)設(shè)置字里的DEBUG位被編程為0時(shí),內(nèi)部電路調(diào)試器功能使能。當(dāng)使用MPLAB時(shí),這種功能允許簡(jiǎn)單的功能調(diào)試,當(dāng)微處理機(jī)有這種使能功能時(shí),其中一些資源通常是不可使用的。

          為了使用單片機(jī)的內(nèi)部電路調(diào)試器功能,設(shè)計(jì)必須實(shí)現(xiàn)內(nèi)部電路串行編程以連接MCLR/VPP、VDD、GND、R87和RB6。這樣將內(nèi)部電路調(diào)試器和微芯片或其他公司的開(kāi)發(fā)工具連接。

          程序驗(yàn)證/代碼保護(hù):如果代碼保護(hù)位不被編程,片內(nèi)程序存儲(chǔ)器可以被讀出以便驗(yàn)證。

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

          內(nèi)部電路串行編程:PlC16P877微處理器在應(yīng)用電路結(jié)束時(shí)能夠被串行編程??捎脙筛€作為時(shí)鐘線和數(shù)據(jù)線,其他線用作電源、接地和編程電壓線來(lái)簡(jiǎn)單地完成。

          當(dāng)使用ICSP時(shí),如果執(zhí)行一個(gè)大量的擦除,部件必須用4.5~5.5V電壓供電。這包括從一個(gè)打開(kāi)狀態(tài)到關(guān)閉狀態(tài)兩個(gè)的代碼保護(hù)的重新編程。對(duì)于ICSP的所有其他情況,部件可以在通常操作電壓下編程。這意味著振蕩器值,獨(dú)一無(wú)二的用戶代碼或用戶碼可以被重新編程或增加12。

          IS:低電壓ICSP編程.

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

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

          應(yīng)該注意,一旦LVP位編程到0,只有高電壓編程模式可用于對(duì)單片機(jī)編程,

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

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

          表 SED1520F0A的指令集

          07.jpg

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

          08.jpg

          2

          在系統(tǒng)程序的初始化部分,應(yīng)對(duì)程序中用到的寄存器和臨時(shí)變量作如下說(shuō)明。

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

          09.jpg

          (2)系統(tǒng)各個(gè)口的輸入輸出狀態(tài)初始化子程序。

          10.jpg

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

          11.jpg

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

          12.jpg

          (5)對(duì)液晶顯示器寫(xiě)數(shù)據(jù)了程序,其中數(shù)據(jù)保存在WRIte寄存器中。

          13.jpg

          (6)開(kāi)E1顯示子程序

          15.jpg

          (7)E1邊清屏子程序。

          14.jpg

          (8)關(guān)E1顯示子程序

          16.jpg

          有了以上的通用子程序,就可以構(gòu)造出各種顯示程序,如字符、漢宇、曲線等。執(zhí)行這些程序前,必須對(duì)液晶顯; J動(dòng)進(jìn)行初始化。初始化的順序?yàn)椋宏P(guān)顯示→正常顯示驅(qū)動(dòng)設(shè)置→占空比設(shè)置→復(fù)位→ADC選擇→清屏-開(kāi)顯示,程序如下。

          17.jpg

          LCD顯示屏相關(guān)文章:lcd顯示屏原理


          分頻器相關(guān)文章:分頻器原理
          lcd相關(guān)文章:lcd原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();