<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 蓄電池化成控制系統中顯示功能的實(shí)現

蓄電池化成控制系統中顯示功能的實(shí)現

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

0 引言

隨著(zhù)現代生活中蓄電池需求量的日益增加,蓄電池的生產(chǎn)規模也逐漸擴大,同時(shí)對蓄電池生產(chǎn)中的也提出了更高的要求。由于蓄電池的化成過(guò)程是影響蓄電池質(zhì)量的一個(gè)非常重要的工藝環(huán)節,因此,對蓄電池化成工藝過(guò)程的有效在很大程度上決定著(zhù)蓄電池的質(zhì)量。

本文給出了在蓄電池化成工藝過(guò)程系統設計中,將嵌入式操作系統μC/OS-II用于系統軟件設計,并將系統各功能模塊劃分成不同優(yōu)先級的任務(wù)由系統內核進(jìn)行調度,從而通過(guò)人機操作界面顯示系統任務(wù)的具體方法。

1 系統總體設計

本系統中的控制器主要用于實(shí)現實(shí)時(shí)蓄電池的充放電控制,蓄電池充放電過(guò)程中的電壓和電流參數,以及測試蓄電池的能力。本系統的總體框圖如圖1所示。

蓄電池化成控制系統的主要功能可由變流控制器完成。系統運行時(shí),只要通過(guò)外擴的鍵盤(pán)電路輸人化成控制參數信息(即所謂的化成工藝文件設置),微控制器便可按照工藝文件的設置對蓄電池進(jìn)行充放電控制。在整個(gè)系統運行過(guò)程中,控制器通過(guò)信號電路運行過(guò)程中的電流和電壓參數,并將這些信息實(shí)時(shí)的顯示在液晶顯示器上。當在運行過(guò)程中遇到鍵盤(pán)操作、系統出現故障或者采集到的參數越限時(shí),液晶顯示器將自動(dòng)切換到相關(guān)信息的顯示界面中去,因此,本系統對液晶顯示器的實(shí)時(shí)顯示處理具有較高的要求。

2 顯示任務(wù)的實(shí)現

設計時(shí),根據控制器所要實(shí)現的功能可將本系統劃分成若干個(gè)任務(wù),其中監控任務(wù)用于監視系統運行時(shí)各任務(wù)的運行狀態(tài);鍵盤(pán)任務(wù)用于對鍵盤(pán)進(jìn)行掃描與處理;顯示任務(wù)則用于實(shí)時(shí)顯示系統運行中的各種狀態(tài)信息以及控制信息;通信任務(wù)用于實(shí)現控制器之間以及控制器與上位機之間的通訊;采樣與反饋任務(wù)用于實(shí)時(shí)采集現場(chǎng)數據并輸出反饋控制信號。

本系統采用字符型液晶顯示器VPG19264作為實(shí)時(shí)顯示的窗口。VPG19264是一種圖形點(diǎn)陣液晶顯示器,點(diǎn)陣數為192(列)×64 (行),可顯示12×4(行)個(gè)16×16點(diǎn)陣漢字,也可完成圖形、字符、動(dòng)畫(huà)的顯示。它主要由行驅動(dòng)控制器和列驅動(dòng)器兩部分組成192(列)×64(行)的全點(diǎn)陣液晶顯示器。此顯示器采用COB的軟封裝方式,可通過(guò)導電橡膠和壓框連接LCD。當通過(guò)顯示器顯示漢字時(shí),應首先使能顯示器,然后通過(guò)寫(xiě)命令設置漢字顯示的地址,最后寫(xiě)入要顯示的漢字字模。

為了在系統運行過(guò)程中能夠實(shí)時(shí)顯示各種狀態(tài)信息和控制信息,可在軟件設計中引入面向對象的概念。本設計對很多與顯示模塊相關(guān)的函數都進(jìn)行了特殊處理,因而其使界面顯示更具人性化。

2.1 菜單的操作

由于對顯示器的操作大多都是通過(guò)對菜單進(jìn)行的,因此,菜單的合理規劃是本操作顯示器的重點(diǎn)。在對菜單進(jìn)行設計時(shí),筆者采用了面向對象的思維,并將菜單編號、菜單顯示內容、顯示位置以及對功能鍵的響應作了封裝,其封裝格式如下:

因為對菜單的操作是模仿手機中的確認和取消鍵來(lái)處理的,因此,在封裝時(shí),本設計采用兩個(gè)函數指針?lè )謩e指向對應該菜單按下確認鍵和取消鍵功能的函數。在定義菜單時(shí),采用結構體數組的方式給所有菜單賦予不同編號并保存在一個(gè)結構體數組中,然后通過(guò)對結構體數組的初始化來(lái)設s置所有菜單的初始化信息。這樣,在實(shí)際操作時(shí),通過(guò)一個(gè)通用的函數模塊即可調用對應菜單的處理函數。下面的函數即代表了在對應菜單上按下確認鍵時(shí)程序的運行狀態(tài):

變量CurrentFocusMenu用于指明當前處于焦點(diǎn)狀態(tài)的菜單項。

采用這種方式進(jìn)行封裝柯使菜單處理變得非常容易。這樣方式在實(shí)際使用時(shí)。如果需要增加或減少菜單,只需在結構體數組中增加和刪除菜單的初始化信息而幾乎不需要增加其它代碼;同時(shí)在進(jìn)行界面切換時(shí),也可以根據結構體中菜單的顯示內容和坐標來(lái)調用統一的顯示函數并進(jìn)行處理,因而其菜單結構更加清晰。另外,采用面向對象的方式處理菜單,其程序也被大大簡(jiǎn)化,因而具有很好的擴展性。

2.2 提示消息的處理

系統中經(jīng)常會(huì )遇到需要工作人員確定的消息,比如在系統參數設置時(shí),當工作人員輸入數據之后和保存之前,應在LCD上顯示出工作人員剛剛輸入的數據,并給出一個(gè)提示消息以確認所輸入的信息是否正確,這樣可避免保存無(wú)效的數據,提高系統的可靠性。

本系統中模仿了面向對象中彈出消息框的編寫(xiě)方式,即仿照手機中彈出消息框的編程模型,來(lái)將面向對象的思維運用在程序設計中,這樣設計出來(lái)的消息框非常具有人性化,而且操作也很方便。圖2為系統中的兩種消息框的顯示模型。

圖2中的左部只包含了一個(gè)簡(jiǎn)單的確認按鈕,它無(wú)需工作人員做出是與否的決定,可用于一些簡(jiǎn)單的提示消息;而右半部分則包含了兩個(gè)按鈕,當消息框顯示消息時(shí),它需要工作人員按下鍵盤(pán)上的確認鍵以確認消息或者按下取消鍵否認消息,該模型常用于鍵盤(pán)輸入完成后,在保存時(shí)提示工作人員的消息,以確認工作人員輸入的內容正確與否。針對系統中所使用的LCD,圖2所示的消息框上的坐標設置界面中的標注分別還給出了提示消息、按鈕以及框線(xiàn)的坐標位置。圖3所示是模擬消息框運行的程序流程圖。

程序中應首先判斷消息框的類(lèi)型是顯示確認按鈕還是同時(shí)顯示兩個(gè)按鈕,然后按照圖2所示的坐標顯示提示消息并繪制消息框的輪廓。因為消息框屬模態(tài)對話(huà)框,必須按下確認或者取消鍵方能繼續運行,所以程序緊接著(zhù)將等待郵箱傳遞鍵值消息,如果工作人員按下確認鍵或者取消鍵,程序則返回鍵值消息給調用函數,以便調用函數能依據不同的按鍵分別處理,直到消息提示框運行結束。

將面向對象的思維方式運用在LCD顯示設計中,可極大地提高程序編寫(xiě)的簡(jiǎn)潔性和系統運行的可靠性,其非常符合人們日常生活中經(jīng)常接觸到的界面,而且非常美觀(guān)和親近。

2.3 顯示任務(wù)的設計

系統中的LCD不僅要實(shí)時(shí)顯示采集到的現場(chǎng)數據,而且在系統發(fā)現所采集的數據越限時(shí),也能及時(shí)地顯示出具體的故障信息,同時(shí)當工作人員通過(guò)鍵盤(pán)對系統參數進(jìn)行設置時(shí),LCD還能及時(shí)地切換顯示畫(huà)面并轉向顯示系統設置界面。因此。應設計一個(gè)顯示任務(wù)來(lái)處理LCD的屏幕切換過(guò)程,其流程圖如圖4所示。

顯示任務(wù)執行時(shí),首先等待鍵盤(pán)或其它任務(wù)發(fā)送過(guò)來(lái)的郵箱消息,并將郵箱等待超時(shí)時(shí)間設置為系統顯示采集數據的時(shí)間。當任務(wù)沒(méi)有收到郵箱消息而超時(shí)時(shí),任務(wù)將轉去執行顯示數據功能;否則,當收到郵箱消息時(shí),任務(wù)將會(huì )根據郵箱的內容判斷是否有鍵按下以更改系統設置。如是,則清屏LCD,并轉去執行顯示鍵盤(pán)操作功能。如果收到的郵箱不是用來(lái)更改系統設置的消息,則將判斷郵箱是否要求顯示器顯示其它信息,如是,則清屏并轉去顯示其它信息(如系統故障信息等)。否則結束一次運行,并繼續等待郵箱消息,重復上述過(guò)程。其所對應的程序偽代碼如下:

通過(guò)上述方法設置顯示任務(wù),能夠很好地實(shí)現LCD在顯示數據、系統信息設置及其它故障信息之間的屏幕切換等功能,而且,該方法具有很好的通用性。

3 結束語(yǔ)

本文介紹了在蓄電池化成控制系統設計中將嵌入式實(shí)時(shí)操作系統μC/OS-II用于系統軟件設計,并在此基礎上采用面向對象的思維方式來(lái)處理LCD顯示屏幕的具體方法。該方法可有效的處理LCD顯示任務(wù),提高系統運行的可靠性和穩定性,同時(shí)也可美化系統的操作界面。



關(guān)鍵詞: 恒流 負載 控制 檢測

評論


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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>