師 磊,紀松波(內(nèi)蒙古工業(yè)大學(xué)信息學(xué)院,010080)
?
STC15系列單片機與LC0811型液晶屏軟硬件接口的設(shè)計
師 磊,紀松波
(內(nèi)蒙古工業(yè)大學(xué)信息學(xué)院,010080)
摘要:為了實現(xiàn)對單行8個英文字符或數(shù)字的信息顯示需求,提出了一種基于STC15F2K60S2單片機的LC0811-LY液晶顯示屏的硬件接口設(shè)計,并編程實現(xiàn)信息顯示功能。該系統(tǒng)的軟件部分采用keil4開發(fā),使用C語言進行編寫。實際應(yīng)用表明,該系統(tǒng)軟硬件設(shè)計穩(wěn)定可靠、操作簡便,達到了設(shè)計要求。
關(guān)鍵詞:單片機;液晶屏;stc15;0811
隨著小型智能化電子產(chǎn)品的普及,普通的LED數(shù)碼管只能用來顯示數(shù)字,如果遇到要顯示英文字母、圖形或漢字時,則必須選擇使用液晶顯示屏(LCD)。液晶顯示屏基本可分為兩種類型,一種是圖形模式LCD,既能顯示中英字符和數(shù)字,又能顯示圖形,但控制操作較復(fù)雜;另一種為字符模式LCD,專門用于顯示字母、數(shù)字、符號等的點陣型液晶顯示屏,它是由若干個5X7或5X11等點陣字符組成,每一個點陣字符位都可以顯示一個字符,點陣字符位之間的一個點距的間隔起字符間距和行距的作用。本設(shè)計方案使用STC15F2K60S2單片機和LC0811-LY字符屏實現(xiàn)單行8個英文字符或數(shù)字的信息顯示功能。
圖1 LC0811-LY接口電路圖
液晶顯示系統(tǒng)由STC15F2K60S2單片機和LC0811-LY液晶顯示模塊構(gòu)成。STC15F2K60S2是宏晶公司最新STCl5系列增強型8051單時鐘周期芯片,速度比普通8051快8~12倍。LC0811-LY液晶顯示模塊是一種單行的字符型液晶顯示屏,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由8個5X8的點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有0.7mm的間隔,起到了字符間距的作用。
液晶屏與單片機的連接方式采用并行連接模式,圖1為液晶顯示屏接口電路圖。使用單片機的P2口全部和P1口的部分引腳與LC0811-LY液晶顯示屏連接,其中單片機P1.0接顯示屏的RS,P1.1接R/W,P1.2接E,P2接DB0~DB7。
LC0811-LY的引腳排列如圖1所示,它有16個引腳外界相連,各引腳功能如下:
1)GND:接地;
2)VCC:接+5V電源;
3)VO:對比度調(diào)整端;
4)RS:寄存器選擇端,H為數(shù)據(jù)寄存器,L為指令寄存器;
5)R/W:讀寫控制端,H為讀取模式,L為寫入模式;
6)E:使能控制端;
7)DB0~7:數(shù)據(jù)總線;
8)BL VCC:背光正極,接+5V;
9)BL GND:背光負極,接地;
圖2 LC0811-LY初始化子程序流程圖
表1 LC0811-LY控制指令表
顯示控制軟件使用keil4開發(fā),使用C語言編寫。
2.1 LC0811-LY初始化子程序
如圖2所示,在對LC0811-LY液晶顯示模塊的初始化時,首先要對其進行數(shù)據(jù)位數(shù)、顯示行數(shù)和顯示模式的功能設(shè)定;然后設(shè)置顯示、光標、光標閃爍的開關(guān);最后設(shè)置液晶模塊顯示字符時光標或是整屏向左或右移動。需要注意的是,LC0811-LY液晶模塊上電后內(nèi)部復(fù)位電路會自動進行初始化設(shè)置,BF始終為忙狀態(tài)直到初始化結(jié)束,如需要更改初始化設(shè)置,在輸入功能設(shè)定指令時不要檢查忙狀態(tài),之后輸入指令前都要判斷液晶模塊是否處于忙狀態(tài)。LC0811-LY控制指令如表1所示。
指令功能:
1)輸入模式設(shè)置(默認值:0x06):I/D=1,光標右移。I/ D=0,光標左移。SH=1,整屏移動。
2)顯示開關(guān)設(shè)置(默認值:0x08):D=1,整體顯示開。C=1,光標開。B=1,光標閃爍開。
3)光標或顯示移位:光標或顯示移位指令可使光標或顯示在沒有讀寫數(shù)據(jù)的情況下,向左或向右移動,指令不改變DDRAM的內(nèi)容。
4)功能設(shè)定(默認值:0x30):D/L=0/1,4/8位數(shù)據(jù)。N=0/1,單/雙行顯示。F=0/1,5*7/5*10點陣顯示模式
初始化子程序:
void lcd_init()
{
delay_ms(30); //延時30ms
wr_ctrl(0x38); //工作方式設(shè)置:8位數(shù)據(jù), 2行顯示, 5x8字體
delay_ms(1); //延時1ms
wr_ctrl(0x38); //工作方式設(shè)置:8位數(shù)據(jù), 2行顯示, 5x8字體
delay_ms(1); //延時1ms
wr_ctrl(0x38); /*連續(xù)寫3次工作方式設(shè)置指令以確保LCD初始化
寫工作方式設(shè)置指令前不要檢測忙狀態(tài)*/
delay_ms(1);
wr_ctrl_busy(0x08); /*關(guān)顯示,光標關(guān),光標不閃爍從關(guān)顯示指令起,
必須檢測忙狀態(tài),否則要延時等待*/
wr_ctrl_busy(0x01); //清屏
wr_ctrl_busy(0x06); //輸入方式設(shè)置: 地址自動加1,畫面不移動
wr_ctrl_busy(0x0c); //開顯示,光標關(guān),光標不閃爍
wr_ctrl_busy(0x00|0x80);//設(shè)置LCD顯示地址為00H(第一行第1個位置)
}
2.2 LC0811-LY顯示子程序
圖3 顯示子程序流程圖
LC0811-LY內(nèi)部有兩個8位寄存器,分別為指令寄存器(IR)和數(shù)據(jù)寄存器(DR),由RS引腳控制寫入的寄存器。如圖3所示,初始化完畢后,通過拉低RS與R/W引腳向DR發(fā)送顯示數(shù)據(jù)。時序如表2所示。由于STC15F2K60S2為1T單片機,一條指令時間小于顯示屏使能端要求的最小延時,因此在讀寫數(shù)據(jù)時需要在使能端拉高適當(dāng)延時后再將其拉低。
表2 LC0811-LY時序表
顯示子程序:
void wr_data_busy(uchar dispdata)
{
lcd_busy(); //檢查忙狀態(tài)
LCD_RW = 0; //寫入模式
LCD_RS = 1; //數(shù)據(jù)模式
LCD_BUS = dispdata; //送入要顯示的數(shù)據(jù)
LCD_E = 1; //拉高使能讀取數(shù)據(jù)
_nop_(); //讀取數(shù)據(jù)延時
LCD_E = 0; //關(guān)閉使能
}
本文以STC15F2K60S2單片機為開發(fā)平臺,對LC0811-LY液晶顯示屏的特性與工作原理進行了研究,并提出了液晶顯示系統(tǒng)的硬件接口設(shè)計。在此系統(tǒng)的硬件平臺下,對LC0811-LY液晶顯示屏的時序與指令系統(tǒng)進行了深入研究,進而提出了LC0811-LY液晶顯示模塊的初始化與顯示程序的軟件設(shè)計。該系統(tǒng)最終實現(xiàn)了單行8個英文字符或數(shù)字的信息顯示功能,達到了預(yù)期的目標,可為實際工程應(yīng)用提供參考。
參考文獻
[1] 安紅霞. 基于AT89S52單片機的1602型液晶屏顯示技術(shù)研究[J]. 牡丹江師范學(xué)院學(xué)報:自然科學(xué)版, 2014(3):23-24.
[2] 湯澤容. 基于MCS-51單片機的液晶1602顯示設(shè)計[J]. 科學(xué)與財富, 2013(12):114-114.
[3] 歐偉明. 液晶顯示模塊TC1602A與單片機的接口技術(shù)[J].電子設(shè)計工程, 2003(3):18-22.
[4] STC15F2K60S2單片機數(shù)據(jù)手冊.
[5] LC0811-SFLYH6-D數(shù)據(jù)手冊.
[6] 袁歡, 曾先文, 徐諱. 1602LCD液晶顯示[J]. 商品與質(zhì)量:學(xué)術(shù)觀察, 2012:104-104.
[7] 張東偉, 楊中華, 楊國付. 基于μPSD3234A單片機和LCD1602液晶顯示模塊的設(shè)計[J]. 楊凌職業(yè)技術(shù)學(xué)院學(xué)報, 2012, 11(1):7-9.
[8] 于志贛, 劉國平, 張旭斌. 液顯LCD1602模塊的應(yīng)用[J]. 機電技術(shù), 2009, 32(3):21-23.
[9] 趙亮. 液晶顯示模塊LCD1602應(yīng)用[J]. 電子制作, 2007(3).
[10] 隋清江. 基于PROTEUS的LCD1602接口設(shè)計與仿真[J].微計算機信息, 2010, 26(19):171-172.
[11] 任艷艷, 牛鑫. 基于STC15F2K60S2的便攜式低頻信號發(fā)生器設(shè)計[J]. 濟源職業(yè)技術(shù)學(xué)院學(xué)報, 2013, 12(1):18-21.
The design of STC15 Series MCU and LC0811 type LCD screen software and hardware interface
Shuai Lei,Ji Songbo
(College of information, Inner Mongolia University of Technology, 010080)
Abstract:In order to realize the information of single eight English character or number display requirements proposed a hardware interface design based on the STC15F2K60S2 MCU LC0811-LY liquid crystal display screen, and programming to realize information display function. The software part of the system uses keil4 development,the use of C language to prepare.The practical application shows that the system is stable and reliable,easy to operate,and the design requirements are achieved.
Keywords:single chip microcomputer;LCD screen;stc15;0811