智能配電監(jiān)控系統(tǒng)的人機交互設計
摘要:以宏晶公司STC12C5A60S2單片機處理器作為控制器,以矩陣鍵盤作為輸入設備,以RS485通信接口芯片作為數(shù)據更新方式,用北京青云公司生產的LCD3202401作為顯示輸出設備,研究設計了相應的硬件電路與顯示驅動程序,在此基礎上完成了人機交互系統(tǒng)的設計。充分利用成本低、資源少的單片機系統(tǒng)實現(xiàn)完善的人機交互功能。
關鍵詞:人機交互;LCD;單片機
1 系統(tǒng)設計方案
本系統(tǒng)設計按鍵時遇到以下情況:(1)產品外設較多,單片機I/O口比較少,設計時需要考慮節(jié)省I/O口。(2)現(xiàn)場情況所限,鍵盤與主機板要有一段距離。(3)鍵盤需要15個按鍵,同時擴展一個復位按鍵,共16個按鍵。根據以上的情況采用A/D鍵盤最為合適。
考慮到系統(tǒng)顯示既要求有圖顯示又有字符顯示功能,因此采用單片機控制LCD,使LCD的畫圖、字符顯示等功能最大程度地利用。
本系統(tǒng)設計的效果如圖1所示。
2 系統(tǒng)結構和原理
人機交互系統(tǒng)負責數(shù)據顯示及輸入,通過RS485接口與主控模塊進行信息交換,通過工業(yè)液晶顯示主控模塊傳送的電量參數(shù)信息,并通過鍵盤輸入設定系統(tǒng)工作模式、參數(shù)門限、通信協(xié)議。校正模擬量通道的各項電參數(shù)以及用圖形直觀表示一次圖及電壓參數(shù)的工作狀態(tài),并在出現(xiàn)過流過壓等告警信息時發(fā)出報警聲。系統(tǒng)能夠在有限成本的條件下很好地完成此多項功能。
顯示系統(tǒng)由硬件和軟件兩部分構成,如圖2和圖3所示。
硬件部分以STC12C5A60S2單片機為核心,晶振和復位電路作為系統(tǒng)工作的必要設備,從3×5矩陣鍵盤接收輸入命令,同時通過RS485與主控模塊進行實時通訊。其中鍵盤通過單片機的A/D功能直接采集電壓判斷來實現(xiàn)。
軟件部分可分為底層驅動程序和上層控制兩部分。底層驅動包括設置系統(tǒng)時鐘和系統(tǒng)模式,配置I/O口、初始化串口打開ADC轉換功能,初始化LCD控制器、中斷控制器等。上層控制程序不斷查詢是否有按鍵按下。若有按鍵按下,則執(zhí)行相應的任務,LCD顯示相應的內容;同時如果需要,通過RS485向主控模塊發(fā)出控制或請求數(shù)據等信息。
3 系統(tǒng)硬件電路設計
3.1 鍵盤電路
人機交互系統(tǒng)中輸入控制命令,設置數(shù)值,查詢電參數(shù)、歷史數(shù)據、告警信息等都肯定要使用鍵盤。系統(tǒng)中設計采用的是3×5的鍵盤,外加一個復位按鍵組合成4×4格式安裝,其中除了0~9這10個數(shù)字外,還有確定鍵“Enter”、菜單鍵“Menu”、上鍵“Up”、下鍵“Down”、“靜音”鍵及復位鍵。在端口KEY0、KEY1、KEY2輸出線上接上拉電阻,使端口能準確的置高、置低。上拉電阻的另一端則連接在一起接5 V電源。電路圖如圖4所示。
圖為3x5鍵盤設計電路,KEY0、KEY1、KEY2連接至單片機具有A/D功能的I/O口,此時就可以通過A/D掃描讀取,可以根據A/D值判斷有無按鍵按下或是那個按鍵按下。根據上圖電阻值可以算出:無按鍵按下,A/D值為5 V;SW1按下,通過計算知A/D值為VCC×R1/(R1+R20)=0.16 V;SW4按下,A/D值為VCC×R1/(R1+R20+R24)=0.733 V;同理,SW7=1.559 V;SW10=2.287 V;S5=2.875 V;根據A/D采集值比較,最接近哪個鍵值的范圍,則就是該按鍵。
使用此方法需注意按鍵選用接觸性較好的按鍵。按鍵差的使用時間一長,容易產生接觸電阻,按鍵多容易誤檢測。
3.2 LCD顯示電路
系統(tǒng)采用北京青云公司生產的LCD3202401液晶控制器,LCD3202401使用功能強大的RA8835作為控制器。此LCD有4位顯示數(shù)據線,且傳輸數(shù)據迅速;具有強大的作圖功能;支持文本顯示、圖形顯示以及圖形和文本混合顯示;具備簡捷的MPU接口和功能齊全的控制指令集。單片機與LCD的接口電路 如圖5所示。
圖中LCD與單片機管腳連接處加1 kΩ的限流電阻,可以有效防止單片機管腳電流過大造成LCD液晶屏損壞。由于單片機的頻率為22 MHz,所以傳輸時肉眼看不到數(shù)據是一位一位傳輸?shù)?,從人類視覺的角度上看,就仿佛是全部字符或圖片同時顯示一樣。
4 軟件設計
本謝十中,主菜單和子菜單多達30多項,且要實時同步顯示,從而增大了應用層設計的難度。因此程序采用模塊化結構,主要包括主菜單頁面切換模塊、按鍵掃描模塊、選項管理控制模塊和數(shù)據輸入模塊。
4.1 主菜單頁面切換模塊
為按用戶要求切換操作界面,定義了一個page_index映像寄存器,其值在1~P之間變化,P為操作界面的個數(shù)。本系統(tǒng)中P的值為9。主菜單界面,如圖6所示。
如果page_index=1,則LCD顯示器上顯示第1頁面;一次圖頁面如圖7所示。為最大限度地使用系統(tǒng)的Flash,其中的線條及方框均直接使用其繪圖功能實現(xiàn)。
如果page_index=2,則LCD顯示器上顯示第2頁面。用戶可按數(shù)字鍵控制page_index的值選擇對應頁面,實現(xiàn)人機交互。電參數(shù)頁面如圖8所示。
4.2 按鍵掃描模塊
對15個操作按鍵進行掃描,將結果保存在key映像寄存器中。該寄存器有個狀態(tài)標志位keyState,如果其值為True,則意味著對應的按鍵按下;反之,則松開,程序運行時將按鍵讀取后清除標志位。如圖9為鍵盤模塊程序流程圖。
4.3 選項管理控制模塊
若當前的操作界面屬于“選項界面”,由于設置的參數(shù)較多,將選項頁面分為幾個頁面設置,按下“Up”和“Down”鍵或直接按數(shù)字鍵,可選擇對應的頁面。如圖10為選項管理控制模塊流程圖。
為了便于分析,以設置頁面為例來說明。設置頁面共分為5頁來設置,包括系統(tǒng)參數(shù)設置頁面、門限參數(shù)設置頁面、Modbus設置頁面、以太網設置頁面及CAN設置頁面,當從主菜單選擇設置進入設置頁面后,可按數(shù)字鍵或上下鍵選擇頁面。比如按2鍵進人設置頁面中的門限設置,如圖11所示。
此時按回車可對數(shù)值進入輸入設置,圖中的2/5為當前的頁面提示,2為第2頁,5為總頁數(shù)。
4.4 數(shù)據輸入模塊
若當前的操作頁面屬于“置數(shù)界面”,使用數(shù)字鍵輸入滿足用戶要求的任何數(shù)值,例如圖11中的門限設置中的數(shù)值輸入。數(shù)據輸入模塊的程序流程圖如圖12所示。
利用上述模塊,只需少量的程序代碼就可以靈活地實現(xiàn)選項、修改數(shù)據及切換操作界面等功能。
5 結束語
本設計采用C語言編程,所選單片機為STC12CSA60S2,盡管其程序存儲器只有60kB,但卻實現(xiàn)了30多頁操作界面的顯示和切換,以及數(shù)據設定和查詢等人機交互功能,同時還實現(xiàn)了監(jiān)控,控制和通信功能。