余 江,劉赫洋,姜欣欣
(延邊大學工學院,電子信息工程專業,吉林 延吉 133002)
隨著社會的發展,各種各樣的液晶顯示器應運而生,且廣泛應用于儀器儀表、通信產品、醫療設備及家用電器等設備,可精確且及時地顯示各種參數的數據,由人或機器監測,從而有效控制各種事故的發生。
目前,作為教學用途的中低端液晶顯示器主要以LCD1602、LCD12864為主,具有低功耗、控制簡單及成本較低等優點;缺點是尺寸有限,LCD1602顯示容量為16×2個字符,LCD12864具有128×64點陣液晶的點陣數,故顯示的信息量不足。
因此,在不增加液晶顯示器數量的條件下,設計能使液晶顯示器翻頁的功能,使液晶顯示器能夠顯示更多的信息。
本文以LCD1602液晶顯示器為例,針對相應紅外按鍵控制液晶顯示器翻頁的設計問題進行了探討。
ATMEL公司開發的AT89C51單片機是一款具有低電壓、高性能指標的CMOS8位單片機[1]。片內集成有4 KB的Flash存儲器和128 B的數據存儲器,擁有速度快、可靠性高及實時性好等特點,被廣泛應用于電子領域。
AT89C51擁有40個引腳,其中包括:4個8位并行I/O端口(P0口、P1口、P2口及P3口),5個中斷源,3個程序加密鎖,2個16位可編程定時器/計數器中斷,1個全雙工的異步串行口,1個看門狗定時器,同樣還擁有26個特殊功能寄存器[2]。
系統主要由紅外遙控器、紅外接收模塊、液晶顯示模塊及控制芯片AT89C51組成,其原理電路如圖1所示。
其中,38K載波由紅外遙控器中時基電路NE555產生,通過Q1管放大后與輸出信號進行調制后發送,紅外接收電路對接收信號進行監控、放大、濾波及解調后輸出基帶信號。當HS0038監測到有38K紅外信號時,就會在輸出端OUT輸出低電平;當沒有38K信號時,OUT引腳就會輸出高電平。OUT引腳接到了AT89C51的P3.3引腳上,通過觸發外部中斷1判斷高電平的時間,從而判斷數據位的電平的高低,讀8次數據位,從而讀出按鍵鍵碼后再對LCD1602液晶顯示屏進行翻頁操作。
系統主程序流程如圖2所示。
系統初始化后,檢測是否成功接受完數據,再判斷所發送數據格式中的按鍵鍵碼,并實現相應的功能。
下面是I/O接口定義以及相關變量定義的代碼:
#include
#define LCD1602_DB P0 //數據并行輸出引腳
sbit LCD1602_RS=P1^1; //LCD1602數據、命令選擇引腳
sbit LCD1602_RW=P1^3; //LCD1602讀、寫選擇引腳
sbit LCD1602_E=P1^5; //LCD1602使能引腳
sbit IR_INPUT=P3^3; //紅外接收引腳
bit irflag=0; //紅外接收標志,收到一幀正確數據后置1
unsigned char ircode[4]; //紅外代碼接收緩沖區
unsigned char page; //液晶顯示器頁碼

圖1 系統原理圖

圖2 主程序流程圖
本裝置使用的紅外遙控器采用NEC協議,其數據格式包括了引導碼、用戶碼、用戶反碼、按鍵鍵碼、按鍵反碼及最后一位停止位。停止位主要起隔離作用,編程時不用考慮。其中數據編碼共4個字節32位[3]。
紅外接收引腳接到了AT89C51的P3.3引腳上,通過觸發外部中斷1判斷高電平的時間,從而判斷數據位的電平的高低,最終讀出按鍵鍵碼。
每按下一次紅外翻頁按鍵(可上下翻頁),LCD1602顯示屏會刷新出一個新的界面,新界面不僅可靜態顯示,而且能動態顯示,如圖3和圖4所示(只是其中部分顯示界面)。
本設計以AT89C51單片機、LCD1602、HS0038B紅外一體化接收探頭、紅外遙控器為系統構成,并利用C51語言對所要實現的功能進行編程,在不增加液晶顯示器數量的條件下,用紅外按鍵控制液晶顯示器進行翻頁,從而使液晶顯示器能夠顯示更多的信息量,更加有利于對顯示在液晶顯示屏的眾多參數進行實時記錄與監控,最終成功實現了預期的功能。

圖3 界面1顯示

圖4 界面2顯示