国产在线导航,欧美日本中文,黄色在线观看网站永久免费乱码,chinese国产在线视频,亚洲欧洲第一视频,天天做人人爱夜夜爽2020毛片,亚洲欧美中文字幕在线网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>基于P89LPC932的LCD組態(tài)設(shè)計(jì)

基于P89LPC932的LCD組態(tài)設(shè)計(jì)

時(shí)間:2023-02-21 00:19:08 電子通信論文 我要投稿
  • 相關(guān)推薦

基于P89LPC932的LCD組態(tài)設(shè)計(jì)

  摘要:在概述PhilipsP89LPC932的基本功能以及與P89LPC764比較的基礎(chǔ)上,針對(duì)LCD顯示設(shè)計(jì)中的諸多問(wèn)題,給出一種能廣泛應(yīng)用于各類(lèi)現(xiàn)場(chǎng)數(shù)據(jù)顯示、組態(tài)式LCD的軟硬件實(shí)現(xiàn)方案;分析硬件電路及其工作原理,并給出軟件設(shè)計(jì)中部分關(guān)鍵代碼。該方案在模擬系統(tǒng)上和現(xiàn)場(chǎng)運(yùn)行情況中進(jìn)行了難證,成本低,且具有通用性和靈活性等優(yōu)點(diǎn)。
  關(guān)鍵詞:P89LPC932組態(tài)設(shè)計(jì)LCD顯示通信模式堆?臻g初始化程序
  
  引言
  
  隨著微電子技術(shù)、網(wǎng)絡(luò)技術(shù)和控制技術(shù)的不斷發(fā)展,LCD作為現(xiàn)場(chǎng)顯示設(shè)備廣泛應(yīng)用在各種通信與控制系統(tǒng)中。大部分的LCD集成了中英文字庫(kù),用戶(hù)輸入?yún)^(qū)位碼或ASCII碼即可實(shí)現(xiàn)文本顯示。由于現(xiàn)場(chǎng)控制設(shè)備通常較為分散,顯示的項(xiàng)目個(gè)數(shù)和功能也不盡相同,往往給設(shè)計(jì)帶來(lái)許多不例。常用的方法是,在軟件的設(shè)計(jì)階段,根據(jù)要求把各個(gè)顯示的信息固化和程序中。若要修改某個(gè)中文字符,程序員首先必須查出其區(qū)位碼,然后修改計(jì)算機(jī)上的漢字?jǐn)?shù)據(jù)。這樣,不但系統(tǒng)的開(kāi)發(fā)周期長(zhǎng)、程序可讀性差,而且給日后的維護(hù)帶來(lái)很大的不便。為了實(shí)現(xiàn)程序的通用性,選用Philips的P89LPC932實(shí)現(xiàn)具有組態(tài)功能的LCD顯示。其優(yōu)點(diǎn)是,在不需要修改系統(tǒng)軟件情況下,通過(guò)串口與組態(tài)軟件方便地設(shè)定LCD顯示的項(xiàng)目和個(gè)數(shù),功能菜單隨著設(shè)定項(xiàng)目的個(gè)數(shù)自動(dòng)改變,并且實(shí)現(xiàn)了對(duì)設(shè)備的簡(jiǎn)單控制操作,達(dá)到了通用性和靈活性結(jié)合的目的。
  
 。保校福梗蹋校茫梗常步榻B
  
 。校福梗蹋校茫梗常彩牵衕ilips公司推出的高性能高速度的80C51CPU,采用0.35μmFlash,6倍速于標(biāo)準(zhǔn)的8051。8KBFlash程序存儲(chǔ)器,具有1KB可擦除扇區(qū)和64B可擦除頁(yè);512B數(shù)據(jù)EEPROM存儲(chǔ)器可用來(lái)存儲(chǔ)器件序列碼及設(shè)置參數(shù);256BRAM,512B輔助片內(nèi)RAM。
  
  在P89LPC76X系列中,P89LPC764得到了廣泛的應(yīng)用;但由于LPC764只有4KB的程序空間和128B的數(shù)據(jù)存取空間,故不能滿(mǎn)足較大量數(shù)據(jù)通信和顯示的要求。與之相比,P89LPC932還具有如下特點(diǎn)與優(yōu)勢(shì):
  
 、俪绦騾^(qū)域擴(kuò)大。由4KB的EPROM擴(kuò)大為8KBFlash,并提供在線編程功能。
  
 、跀(shù)據(jù)區(qū)域擴(kuò)大。P89LPC932有256B的內(nèi)部數(shù)據(jù)存取區(qū),512B的輔助存取區(qū)和512B的EEPROM。
  
 、鄞型ㄐ殴δ茉鰪(qiáng)。設(shè)置高精度波特率發(fā)生器。LPC764實(shí)時(shí)串行通信時(shí),模式3要使用到定時(shí)器1。LPC932使用波特率發(fā)生器實(shí)現(xiàn)通信設(shè)置,可節(jié)省出定時(shí)器1。帶有字符檢測(cè)、幀錯(cuò)誤檢測(cè)、溢出錯(cuò)誤檢測(cè)、雙緩沖發(fā)送功能、發(fā)送中斷控制(停止位的開(kāi)始或結(jié)束產(chǎn)生中斷)、可實(shí)現(xiàn)RX/TX中斷分開(kāi),從而提高通信效率。
  
  ④新增定時(shí)器模式6。簡(jiǎn)單的8位PWM信號(hào)發(fā)生器,帶自動(dòng)重裝的8位定時(shí)/計(jì)數(shù)器,重裝值表示PWM領(lǐng)帶的占空比。
  
 、荽型鈬涌冢樱校。高速串行通信接口,最高速度為3Mb/s。主從模式實(shí)現(xiàn)全雙工同步通信。
  
  圖3
  
 。玻蹋茫南到y(tǒng)組態(tài)
  
  組態(tài)式LCD實(shí)現(xiàn)的關(guān)鍵在于對(duì)漢字處理,以往的做法把系統(tǒng)菜單的漢字區(qū)位碼固定在程序中。由于立即數(shù)表示的信息難于維護(hù),一旦需要對(duì)程序修改,將是一件費(fèi)勁的事件。我們的處理方法是,設(shè)置系統(tǒng)信息表,并把所有的中文信息(系統(tǒng)菜單和顯示信息)存放于EEPROM。中文信息和系統(tǒng)信息表通過(guò)由VB編寫(xiě)的LCD組態(tài)軟件完成,并通過(guò)串口下載到EEPROM。當(dāng)LCD上電后,程序根據(jù)系統(tǒng)信息自動(dòng)配置顯示菜單,從而實(shí)現(xiàn)了系統(tǒng)的組態(tài)性。
  
  系統(tǒng)信息表記錄實(shí)際顯示的AI、AO、操作參數(shù)、DI、DO的個(gè)數(shù)。LCD在進(jìn)行頁(yè)面更新時(shí),先讀出相應(yīng)項(xiàng)目的個(gè)數(shù),并自動(dòng)調(diào)整顯示的條目。所有AI、AO、OPER、DI、DO的名稱(chēng)中文區(qū)位碼,單位ASCII碼,狀態(tài)信息中文區(qū)位碼都存放到EEPROM中。項(xiàng)目名稱(chēng)為4個(gè)漢字,單位信息為2個(gè)ASCII字符,狀態(tài)信息為2個(gè)漢字。
  
 。蹋茫娘@示裝置實(shí)現(xiàn)功能如下:
  
 、賹(shí)時(shí)顯示8?jìng)(gè)模擬量輸入點(diǎn)(AI)、8?jìng)(gè)模擬量輸出點(diǎn)(AO)、8?jìng)(gè)運(yùn)行參數(shù)、8?jìng)(gè)開(kāi)關(guān)量輸入點(diǎn)(DI)、8?jìng)(gè)開(kāi)關(guān)量輸出點(diǎn)(DO)。
  
 、谛薷哪M量輸出點(diǎn)、運(yùn)行參數(shù)和開(kāi)關(guān)量輸出點(diǎn),實(shí)行就地對(duì)設(shè)備的控制。
  
 、勖艽a管理。用戶(hù)可以直接在LCD上或通過(guò)組態(tài)軟件修改密碼。
  
 、芰鲃(dòng)顯示和手動(dòng)顯示功能。
  
 、萁M成功能。通過(guò)組態(tài)軟件可以方便地修改各顯示量的中文代碼和單位等信息。
  
  
  
  
  
  在各種通信與控制系統(tǒng)中,LCD顯示特定的數(shù)據(jù)信息而處于控制系統(tǒng)的末端,通常傣族法通過(guò)RS485總線與控制器相連形成一個(gè)網(wǎng)絡(luò)?刂破髋cLCD在數(shù)據(jù)傳送上有兩種關(guān)系。一種是控制器為Master,LCD為Slave.控制器輪流地向各LCD傳送數(shù)據(jù),從而實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)顯示。另外一種是控制器為Slave,LCD為Master.LCD主動(dòng)地向控制器發(fā)出請(qǐng)求信息,實(shí)現(xiàn)集中顯示的功能。為了系統(tǒng)的通用性,我們?cè)O(shè)計(jì)了兩個(gè)特殊功能開(kāi)關(guān),從而實(shí)現(xiàn)LCD主從模式的和組態(tài)模式的切換。
  
 。觢ave模式:LCD等待主站發(fā)送實(shí)時(shí)數(shù)據(jù)。當(dāng)接收到數(shù)據(jù)時(shí)檢測(cè)是否為本機(jī)站號(hào)。若是,立即接收數(shù)據(jù)并進(jìn)行顯示,否則丟棄數(shù)據(jù)包,如圖1所示。
  
  Master模式:LCD輪流向各個(gè)控制器發(fā)出請(qǐng)求讀數(shù)命令,并作相應(yīng)的顯示,如圖2所示。
  
  組態(tài)模式:LCD發(fā)出組態(tài)命令,當(dāng)接收到組態(tài)信息后發(fā)出組態(tài)成功信息。
  
 。秤布O(shè)計(jì)
  
  如圖3所示,P89LPC932中P0口作為鍵盤(pán)輸入和站號(hào)地址,P2口與LCD數(shù)據(jù)線相連,P1.7、P1.6為LCD數(shù)據(jù)傳輸?shù)奈帐中盘?hào)。串行通信線TXD、RXD與MAX487相連,并通過(guò)P1.4實(shí)現(xiàn)通信方向的切換。
  
 。蹋茫倪x用的是OCM2×8液晶顯示器,內(nèi)含GB231216×16點(diǎn)陣國(guó)際一級(jí)簡(jiǎn)體漢字字庫(kù)和ASCII8×8及8×16點(diǎn)陣英文字庫(kù);具有上/下/左/右移動(dòng)當(dāng)前顯示屏幕及清除屏幕的命令。LCD所有的設(shè)置初始化工作在上電時(shí)自動(dòng)完成,實(shí)現(xiàn)了即插即用。LCD硬件接口使用8位并行接口方式,采用REQ/BUSY握手協(xié)議。圖4所示為LCD寫(xiě)漢字時(shí)序。LCD模塊在收到外部的REQ高是怦信號(hào)后立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同時(shí)將應(yīng)答線BUSY變?yōu)楦唠娖,表明LCD已收到?shù)據(jù)并正在忙于對(duì)數(shù)據(jù)的內(nèi)部處理。當(dāng)BUSY變?yōu)榈碗娖綍r(shí),表明LCD對(duì)用戶(hù)的寫(xiě)操作已經(jīng)執(zhí)行完畢。在寫(xiě)入多個(gè)數(shù)據(jù)時(shí),可以不斷地查詢(xún)應(yīng)答線BUSY是否為低電平。如果為低電平,可以繼續(xù)送下一個(gè)數(shù)據(jù)。
  
 。窜浖O(shè)計(jì)
  
  圖5是軟件的結(jié)構(gòu),每個(gè)模塊對(duì)應(yīng)一個(gè)獨(dú)立的處理函數(shù)。LCD顯示以頁(yè)為單位,程序設(shè)“PageArbiter”函數(shù)實(shí)現(xiàn)對(duì)頁(yè)面的管理。頁(yè)面管理函數(shù)根據(jù)用戶(hù)的按鍵,決定進(jìn)入如“菜單顯示”、“密碼設(shè)定、“參數(shù)顯示”等畫(huà)面。以下是硬件驅(qū)動(dòng)功能的說(shuō)明。
  
  圖5
  
 。ǎ保┐型ㄐ
  
  P89LPC932的增強(qiáng)型UART具有一個(gè)獨(dú)立的波特率發(fā)生器,波特率取決于對(duì)BRGR1和BRGR0的值。如果SMOD1(PCON.7)置位,定時(shí)器T1被2分頻。但需要修改BRGR1和BRGR0寄存器的值前,為了避免向波特率發(fā)生器裝入錯(cuò)誤的值,必須在RBGCON寄存器中的BRGEN位為0才能寫(xiě)入。程序設(shè)計(jì)使用外晶振(11.0592MHz)選擇串行通信模式3,并利用波特率發(fā)生器設(shè)置通信速率。波特率發(fā)生器計(jì)算為
  
 。˙RGR1,BRGR0)=(11.0592MHz/19200)-16=0x0230
  
  初始化流程如圖6所示。
  
  若不使用波特率發(fā)生器設(shè)置串行通信的通信速率,可以使用定時(shí)器。其計(jì)算公式為
  
  波特率=2fosc×192/[0xFF-(TH1)]
  
  選用11.0592MHz的外晶振,波特率為19200bps,則計(jì)算出TH1=0xFA。其初始化流程如圖7所示。
  
 。2)EEPROM讀寫(xiě)操作
  
  P89LPC932擁有512字節(jié)的片內(nèi)數(shù)據(jù)EEPROM,用于保存配置參數(shù)數(shù)據(jù)。EEPROM由SFR控制,可字節(jié)讀、字節(jié)寫(xiě)以及可擦除(通過(guò)行填充和塊填充)。用戶(hù)通過(guò)3個(gè)SFR和1個(gè)中斷對(duì)其進(jìn)行讀、寫(xiě)和填充。EEPROM可尋址空間為512個(gè)字節(jié),使用9位地址。當(dāng)數(shù)據(jù)地址大于0xFF時(shí),置控制寄存器DEECON的第0位。值的注意的是,在訪問(wèn)EEPROM時(shí),必須對(duì)DEECON的第0位清0或置1。在仿真過(guò)程中發(fā)現(xiàn),當(dāng)讀一個(gè)地址少于0xFF的字節(jié)數(shù)據(jù)后,再次向同一地址數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤。檢查的結(jié)果是第一次讀數(shù)時(shí)DEECON第0位為0,但第二次讀數(shù)時(shí)DEECON的第0位就自動(dòng)地變?yōu)?。所以在讀寫(xiě)數(shù)據(jù)時(shí),必須對(duì)DEECON的第0位賦正確的值。
  
  DEECON中的第4、5位定義了讀寫(xiě)操作的模式。
  
  在任何模式中操作完成之后,硬件都會(huì)置位EEIF位。如果EEPROM中斷允許位(EIEE)和系統(tǒng)中斷位(EA)都置位。將產(chǎn)生中斷請(qǐng)求。中斷產(chǎn)生后必須由軟件清零。其初始化程序如下:
  
  EIEE=TRUE;/*允許EEPROM中斷*/
  
  EA=1;/*允許系統(tǒng)中斷*/
  
  (3)輔助RAM的使用
  
  
  
  
  我們所所有從串行通信得到的實(shí)時(shí)數(shù)據(jù)存放在輔助RAM區(qū)內(nèi)。讀寫(xiě)程序如下:
  
  #include"ABSACC.H"
  
  bData=XBYTE[i];/*輔助RAM讀操作*/
  
  XBYTE[i]=bData;/*輔助RAM寫(xiě)操作*/
  
  5組態(tài)軟件設(shè)計(jì)
  
  組態(tài)軟件和仿真軟件是由VB開(kāi)發(fā)的。當(dāng)LCD進(jìn)入組狀態(tài)后,發(fā)送請(qǐng)求組態(tài)信號(hào)。組態(tài)軟件檢測(cè)LCD的站號(hào),并向相應(yīng)的LCD發(fā)出組態(tài)初始化信息包。LCD發(fā)出組態(tài)初始化信息包。LCD接收到組態(tài)軟件開(kāi)發(fā)的數(shù)據(jù)包并發(fā)出回答信息包。組態(tài)軟件依次把中文內(nèi)碼和單位傳送到LCD。
  
  結(jié)語(yǔ)
  
  采用P89LPC932芯片實(shí)現(xiàn)了具有組態(tài)功能的LCD顯示。系統(tǒng)硬件電路簡(jiǎn)單,易于根據(jù)用戶(hù)和系統(tǒng)的需要設(shè)置顯示的項(xiàng)目和個(gè)數(shù),實(shí)現(xiàn)了對(duì)AI、AO、DI、DO和運(yùn)行參數(shù)的顯示和修改。

【基于P89LPC932的LCD組態(tài)設(shè)計(jì)】相關(guān)文章:

基于FPGA的LCD&VGA控制器設(shè)計(jì)08-06

基于SA1110的掌上電腦LCD的設(shè)計(jì)與實(shí)現(xiàn)08-06

基于標(biāo)準(zhǔn)的教學(xué)設(shè)計(jì)08-06

人機(jī)界面中的LCD控制驅(qū)動(dòng)與接口設(shè)計(jì)08-06

STN-LCD彩屏模塊08-06

基于DSP平臺(tái)的USB接口設(shè)計(jì)08-06

基于LPC2104的VxWorksBSP設(shè)計(jì)08-06

《動(dòng)物兒歌》基于標(biāo)準(zhǔn)的教學(xué)設(shè)計(jì)08-17

基于Client/Server 的課件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)08-06