在單片機系統設計中,LCM(液晶顯示模塊)人機交互界面的設計往往是很重要的一個(gè)環(huán)節。LCM可以用于智能儀器上的顯示設定參數、狀態(tài)提示符、檢測結果和待輸入參數等功能。本文結合電解質(zhì)分析儀的設計要求,采用液晶顯示模塊YXD—12864A2LCM,研究并實(shí)現了以單片機C8051F020為基礎的液晶顯示的接口電路和程序設計,添加了按鍵系統,從而達到方便用戶(hù)使用的目的。 1 電解質(zhì)分析儀簡(jiǎn)介 本系統所設計的電解質(zhì)分析儀(Electrolyte Analyzer)是一種具有高分辨率和高精度的儀器,可以與多種離子選擇電極配套使用,可用自動(dòng)方法測定樣品中鉀、鈉、氯、鈣離子的濃度和pH值。其結構方框圖如圖1所示。儀器采用單片機C8051F020為核心芯片進(jìn)行設計,在測量室內由化學(xué)傳感器采集電解質(zhì)的電位信號傳送給信號調理電路,經(jīng)過(guò)信號調節后送給主電路板進(jìn)行A/D轉換,然后輸出顯示到LCM上,LCM參數、測量結果的顯示等都可由鍵盤(pán)操作。與上位機的通信上,采用RS 232通信方式傳輸數據。本儀器的特點(diǎn)是可以單機使用、也可以與上位機連接使用,與上位機連接后通過(guò)界面操作可以幫助用戶(hù)完成病人信息的查詢(xún)、存儲、儀器工作情況的實(shí)時(shí)檢測等功能。 圖1 電解質(zhì)分析儀結構方框圖 系統顯示部分采用圖形液晶顯示模塊YXD-12864A2LCM,安裝在儀器的表面,用來(lái)顯示參數設置、測量結果、定標、質(zhì)控等的情況。界面顯示與參數設定及翻頁(yè)等功能通過(guò)按鍵的控制來(lái)實(shí)現。 2 YXD-12864A2LCM 2.1 模塊介紹 YXD-12864A2LCM是一種圖形點(diǎn)陣液晶顯示模塊,它主要由行驅動(dòng)器、列驅動(dòng)器及128x64全點(diǎn)陣液晶顯示器組成?赏瓿蓤D形顯示,也可以顯示4x8個(gè)(16×16點(diǎn)陣)漢字。YXD-12864A2模塊共有20個(gè)引腳。其中,第1腳VSS接系統地;第2腳VDD接電源電壓;第3腳V0接液晶顯示器驅動(dòng)電源;第4腳D/I接數據指令選擇信號;第5腳R/W接讀寫(xiě)選擇信號;第6腳接讀寫(xiě)使能信號,E為高時(shí),數據被讀出,而在E的下降沿到來(lái)時(shí),數據被鎖存到DB0~DB7;第7~14腳接三態(tài)數據總線(xiàn);第15、16腳接片選信號;第17腳 接復位信號;第18腳Vout接內部負壓發(fā)生器輸出電壓端;第19腳接LED背光電源正極;第20腳接LED背光電源負極。 2.2 接口電路 接口電路圖和原理圖如圖2,圖3所示,C8051F020的P3口作為數據口與液晶模塊DB口相連 ![]() 控制端 ![]() ![]() 圖2 LCM接口電路圖 圖2的電路圖中,R28和R41為上拉電阻,因為它每個(gè)端口是與單片機相連的,對于顯示器而言工作電壓是5 V,而C8051F020工作電壓是3.3 V,要使C8051F020輸出能更好地驅動(dòng)5 V輸入的LCM,就要將每個(gè)端口通過(guò)一個(gè)上拉電阻接到5 V電源,這樣就可以保證C8051F020的邏輯“1”輸出能被提升到5 V。 圖3 接口電路原理圖 2.3 軟件設計 顯示字符:從屏幕指定的位置開(kāi)始顯示指定的字符串。此LCM是128x64位的液晶顯示屏,每個(gè)字符所占用的點(diǎn)陣是8x8。顯示位置由兩個(gè)坐標參數據決定,橫坐標x表示“行”,取值范圍為0~7;第0行對應屏幕最上邊的一行,第7行對應最下面一行?v坐標y表示“列”,取值范圍為0~15,第0列對應屏幕最左邊的一列,第15列對應屏幕最右邊的一列。 假設要從第4行第8列的位置顯示字符“K”,則程序段如下: ;entrancd: C(left, right), R4(X), R5(Y), DPTR, R6(length) data_to_lcd: SETB CS1_LCD CLR CS2_LCD JNC data_to_lcd2 CLR CS1_LCD SETB CS2_LCD data_to_lcd2: MOV A,R4 LCALL display_X_line MOV A,R5 LCALL display_Y_line MOV A,R6 MOV R7,A LCALL write_LCD_bytes MOV A,R4 INC A LCALL display_X_line MOV A,R5 LCALL display_Y_line MOV A,R6 MOV R7,A INC DPTR LCALL write_LCD_bytes CLR CS2_LCD CLR CS1_LCD RET SETB C ;片選的設定 MOV R4,#04H ;位置行號 MOV R5,#08H ;位置列號 MOV DPTR,#K ;字符內容 MOV R6,#08 ;定義字符的長(cháng)度 LCALL data_to_lcd ;調用輸出字符的子程序 漢字的顯示與字符類(lèi)似,只是漢字所占的點(diǎn)陣為16×16的形式,因此在本LCM中,漢字只可以顯示4行8列。第一行漢字的坐標為00H~07H,第二、三、四行坐標依次為10H~17H、20H~27H、30H~37H。漢字的顯示要先將漢字的坐標起始位置作為命令寫(xiě)入,把漢字的字模作為數據寫(xiě)入,連續寫(xiě)入多個(gè)漢字可用查表法。 3 按鍵系統 按鍵系統的硬件設計可以采用獨立方式和矩陣方式兩種。 (1)獨立式中每一個(gè)鍵單獨占用一根I/O口線(xiàn),每一根I/O口線(xiàn)上的按鍵工作狀態(tài)不會(huì )影響其他I/O口線(xiàn)上的狀態(tài),一般應用于按鍵數量較少的場(chǎng)合; (2)矩陣式的按鍵排列為行列式矩陣結構,4行4列共16個(gè)鍵,只占用8根I/O口線(xiàn),因此當按鍵數目較多時(shí),可以使用這種方式節省I/O口線(xiàn)。 本儀器共定義了8個(gè)按鍵,考慮到C8051F020上的I/O接口非常豐富,因此采用了獨立式。在儀器上共設計了“Yes”、“No”、“↑(上)”、“↓(下)”、“←(左)”、“→(右)”、“復位”和“打印”8個(gè)按鍵,除“復位”鍵(其按下后直接復位)不通過(guò)鍵盤(pán)信息處理程序處理外,其余的7個(gè)鍵的按下處理均由鍵盤(pán)信息處理程序在主循環(huán)程序中完成。對于獨立式按鍵,CPU可以通過(guò)直接讀取I/O口的狀態(tài)來(lái)獲取按鍵的直接狀態(tài)編碼值,根據這個(gè)值可直接進(jìn)行按鍵識別。每個(gè)鍵的編碼值如表1所示。 按鍵的具體定義如下: (1)“↑(上)”、“↓(下)”、“←(左)”、“→(右)”:移動(dòng)光標或切換不同內容的屏目、數據修改、完成口令輸入等; (2)“Yes”:確認所做的操作,包括確認所選擇的菜單項或數據、確認所輸入的口令、確認被修改的數據等; (3)“No”:可取消輸入的口令值或被修改的數據; (4)“復位”:軟復位系統; (5)“打印”:控制打印機打印輸出。 按鍵的工作方式分為編程控制方式和中斷控制方式兩種。本儀器采用中斷控制方式,流程圖如圖4所示。此方式可以提高CPU的效率,當有鍵按下時(shí),便向CPU申請中斷,CPU響應中斷后,在中斷服務(wù)程序中進(jìn)行鍵盤(pán)掃描、查鍵值與處理等工作。而編程控制方式是指在一個(gè)工作周期內,利用完成其他任務(wù)的空余時(shí)間,調用按鍵掃描子程序。經(jīng)程序查詢(xún),若無(wú)鍵操作,則返回;若有鍵操作,則進(jìn)而判斷是哪個(gè)鍵,并執行相應的鍵處理程序。這樣對CPU的使用效率就受到了影響。因此選用中斷控制方式。 圖4 中斷法控制流程圖 本儀器采用的按鍵的開(kāi)關(guān)為機械彈性開(kāi)關(guān)。從按鍵按下到接觸穩定要經(jīng)過(guò)數毫秒的抖動(dòng)時(shí)間,松開(kāi)時(shí)也有這樣的問(wèn)題。抖動(dòng)時(shí)間的長(cháng)短由按鍵的機械特性決定,一般為5~10 ms。這樣就會(huì )引起一次按鍵多次讀取,對于抖動(dòng)問(wèn)題可以采用軟件方法?梢酝ㄟ^(guò)延時(shí)去抖動(dòng)的方法避免,即檢測出按鍵閉合后執行一個(gè)延時(shí)程序產(chǎn)生20 ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平則確認為真正有鍵按下。當檢測到按鍵釋放后,也要給20 ms的延時(shí),待后沿抖動(dòng)消失后才能轉入該鍵的處理程序。 4 結語(yǔ) 利用YXD-12864A2圖形液晶顯示模塊設計電極質(zhì)分析儀的顯示界面,采用8位并型模式傳遞數據,主要是因為雖然占用了較多的I/O引腳,但與串行模式相比,編程簡(jiǎn)單的多;而且C8051F020有8個(gè)8位I/O端口、64個(gè)數字I/O引腳,非常豐富,所以也不用考慮引腳不夠的問(wèn)題。通過(guò)添加按鍵系統,使顯示的內容可以由用戶(hù)來(lái)操作,非常方便。 |