師 磊,紀(jì)松波(內(nèi)蒙古工業(yè)大學(xué)信息學(xué)院,010080)
?
STC15系列單片機(jī)與LC0811型液晶屏軟硬件接口的設(shè)計(jì)
師 磊,紀(jì)松波
(內(nèi)蒙古工業(yè)大學(xué)信息學(xué)院,010080)
摘要:為了實(shí)現(xiàn)對(duì)單行8個(gè)英文字符或數(shù)字的信息顯示需求,提出了一種基于STC15F2K60S2單片機(jī)的LC0811-LY液晶顯示屏的硬件接口設(shè)計(jì),并編程實(shí)現(xiàn)信息顯示功能。該系統(tǒng)的軟件部分采用keil4開發(fā),使用C語言進(jìn)行編寫。實(shí)際應(yīng)用表明,該系統(tǒng)軟硬件設(shè)計(jì)穩(wěn)定可靠、操作簡便,達(dá)到了設(shè)計(jì)要求。
關(guān)鍵詞:單片機(jī);液晶屏;stc15;0811
隨著小型智能化電子產(chǎn)品的普及,普通的LED數(shù)碼管只能用來顯示數(shù)字,如果遇到要顯示英文字母、圖形或漢字時(shí),則必須選擇使用液晶顯示屏(LCD)。液晶顯示屏基本可分為兩種類型,一種是圖形模式LCD,既能顯示中英字符和數(shù)字,又能顯示圖形,但控制操作較復(fù)雜;另一種為字符模式LCD,專門用于顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶顯示屏,它是由若干個(gè)5X7或5X11等點(diǎn)陣字符組成,每一個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,點(diǎn)陣字符位之間的一個(gè)點(diǎn)距的間隔起字符間距和行距的作用。本設(shè)計(jì)方案使用STC15F2K60S2單片機(jī)和LC0811-LY字符屏實(shí)現(xiàn)單行8個(gè)英文字符或數(shù)字的信息顯示功能。

圖1 LC0811-LY接口電路圖
液晶顯示系統(tǒng)由STC15F2K60S2單片機(jī)和LC0811-LY液晶顯示模塊構(gòu)成。STC15F2K60S2是宏晶公司最新STCl5系列增強(qiáng)型8051單時(shí)鐘周期芯片,速度比普通8051快8~12倍。LC0811-LY液晶顯示模塊是一種單行的字符型液晶顯示屏,它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由8個(gè)5X8的點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有0.7mm的間隔,起到了字符間距的作用。
液晶屏與單片機(jī)的連接方式采用并行連接模式,圖1為液晶顯示屏接口電路圖。使用單片機(jī)的P2口全部和P1口的部分引腳與LC0811-LY液晶顯示屏連接,其中單片機(jī)P1.0接顯示屏的RS,P1.1接R/W,P1.2接E,P2接DB0~DB7。
LC0811-LY的引腳排列如圖1所示,它有16個(gè)引腳外界相連,各引腳功能如下:
1)GND:接地;
2)VCC:接+5V電源;
3)VO:對(duì)比度調(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:背光負(fù)極,接地;

圖2 LC0811-LY初始化子程序流程圖

表1 LC0811-LY控制指令表
顯示控制軟件使用keil4開發(fā),使用C語言編寫。
2.1 LC0811-LY初始化子程序
如圖2所示,在對(duì)LC0811-LY液晶顯示模塊的初始化時(shí),首先要對(duì)其進(jìn)行數(shù)據(jù)位數(shù)、顯示行數(shù)和顯示模式的功能設(shè)定;然后設(shè)置顯示、光標(biāo)、光標(biāo)閃爍的開關(guān);最后設(shè)置液晶模塊顯示字符時(shí)光標(biāo)或是整屏向左或右移動(dòng)。需要注意的是,LC0811-LY液晶模塊上電后內(nèi)部復(fù)位電路會(huì)自動(dòng)進(jìn)行初始化設(shè)置,BF始終為忙狀態(tài)直到初始化結(jié)束,如需要更改初始化設(shè)置,在輸入功能設(shè)定指令時(shí)不要檢查忙狀態(tài),之后輸入指令前都要判斷液晶模塊是否處于忙狀態(tài)。LC0811-LY控制指令如表1所示。
指令功能:
1)輸入模式設(shè)置(默認(rèn)值:0x06):I/D=1,光標(biāo)右移。I/ D=0,光標(biāo)左移。SH=1,整屏移動(dòng)。
2)顯示開關(guān)設(shè)置(默認(rèn)值:0x08):D=1,整體顯示開。C=1,光標(biāo)開。B=1,光標(biāo)閃爍開。
3)光標(biāo)或顯示移位:光標(biāo)或顯示移位指令可使光標(biāo)或顯示在沒有讀寫數(shù)據(jù)的情況下,向左或向右移動(dòng),指令不改變DDRAM的內(nèi)容。
4)功能設(shè)定(默認(rèn)值:0x30):D/L=0/1,4/8位數(shù)據(jù)。N=0/1,單/雙行顯示。F=0/1,5*7/5*10點(diǎn)陣顯示模式
初始化子程序:
void lcd_init()
{
delay_ms(30); //延時(shí)30ms
wr_ctrl(0x38); //工作方式設(shè)置:8位數(shù)據(jù), 2行顯示, 5x8字體
delay_ms(1); //延時(shí)1ms
wr_ctrl(0x38); //工作方式設(shè)置:8位數(shù)據(jù), 2行顯示, 5x8字體
delay_ms(1); //延時(shí)1ms
wr_ctrl(0x38); /*連續(xù)寫3次工作方式設(shè)置指令以確保LCD初始化
寫工作方式設(shè)置指令前不要檢測忙狀態(tài)*/
delay_ms(1);
wr_ctrl_busy(0x08); /*關(guān)顯示,光標(biāo)關(guān),光標(biāo)不閃爍從關(guān)顯示指令起,
必須檢測忙狀態(tài),否則要延時(shí)等待*/
wr_ctrl_busy(0x01); //清屏
wr_ctrl_busy(0x06); //輸入方式設(shè)置: 地址自動(dòng)加1,畫面不移動(dòng)
wr_ctrl_busy(0x0c); //開顯示,光標(biāo)關(guān),光標(biāo)不閃爍
wr_ctrl_busy(0x00|0x80);//設(shè)置LCD顯示地址為00H(第一行第1個(gè)位置)
}
2.2 LC0811-LY顯示子程序

圖3 顯示子程序流程圖
LC0811-LY內(nèi)部有兩個(gè)8位寄存器,分別為指令寄存器(IR)和數(shù)據(jù)寄存器(DR),由RS引腳控制寫入的寄存器。如圖3所示,初始化完畢后,通過拉低RS與R/W引腳向DR發(fā)送顯示數(shù)據(jù)。時(shí)序如表2所示。由于STC15F2K60S2為1T單片機(jī),一條指令時(shí)間小于顯示屏使能端要求的最小延時(shí),因此在讀寫數(shù)據(jù)時(shí)需要在使能端拉高適當(dāng)延時(shí)后再將其拉低。

表2 LC0811-LY時(shí)序表
顯示子程序:
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ù)延時(shí)
LCD_E = 0; //關(guān)閉使能
}
本文以STC15F2K60S2單片機(jī)為開發(fā)平臺(tái),對(duì)LC0811-LY液晶顯示屏的特性與工作原理進(jìn)行了研究,并提出了液晶顯示系統(tǒng)的硬件接口設(shè)計(jì)。在此系統(tǒng)的硬件平臺(tái)下,對(duì)LC0811-LY液晶顯示屏的時(shí)序與指令系統(tǒng)進(jìn)行了深入研究,進(jìn)而提出了LC0811-LY液晶顯示模塊的初始化與顯示程序的軟件設(shè)計(jì)。該系統(tǒng)最終實(shí)現(xiàn)了單行8個(gè)英文字符或數(shù)字的信息顯示功能,達(dá)到了預(yù)期的目標(biāo),可為實(shí)際工程應(yīng)用提供參考。
參考文獻(xiàn)
[1] 安紅霞. 基于AT89S52單片機(jī)的1602型液晶屏顯示技術(shù)研究[J]. 牡丹江師范學(xué)院學(xué)報(bào):自然科學(xué)版, 2014(3):23-24.
[2] 湯澤容. 基于MCS-51單片機(jī)的液晶1602顯示設(shè)計(jì)[J]. 科學(xué)與財(cái)富, 2013(12):114-114.
[3] 歐偉明. 液晶顯示模塊TC1602A與單片機(jī)的接口技術(shù)[J].電子設(shè)計(jì)工程, 2003(3):18-22.
[4] STC15F2K60S2單片機(jī)數(shù)據(jù)手冊(cè).
[5] LC0811-SFLYH6-D數(shù)據(jù)手冊(cè).
[6] 袁歡, 曾先文, 徐諱. 1602LCD液晶顯示[J]. 商品與質(zhì)量:學(xué)術(shù)觀察, 2012:104-104.
[7] 張東偉, 楊中華, 楊國付. 基于μPSD3234A單片機(jī)和LCD1602液晶顯示模塊的設(shè)計(jì)[J]. 楊凌職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2012, 11(1):7-9.
[8] 于志贛, 劉國平, 張旭斌. 液顯LCD1602模塊的應(yīng)用[J]. 機(jī)電技術(shù), 2009, 32(3):21-23.
[9] 趙亮. 液晶顯示模塊LCD1602應(yīng)用[J]. 電子制作, 2007(3).
[10] 隋清江. 基于PROTEUS的LCD1602接口設(shè)計(jì)與仿真[J].微計(jì)算機(jī)信息, 2010, 26(19):171-172.
[11] 任艷艷, 牛鑫. 基于STC15F2K60S2的便攜式低頻信號(hào)發(fā)生器設(shè)計(jì)[J]. 濟(jì)源職業(yè)技術(shù)學(xué)院學(xué)報(bào), 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