国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PIC單片機(jī)的19264點(diǎn)陣型液晶顯示屏接口設(shè)計(jì)

2015-05-30 10:48:04彭勝敏
科技創(chuàng)新與應(yīng)用 2015年31期
關(guān)鍵詞:取模液晶顯示屏

彭勝敏

摘 要:文章以19264點(diǎn)陣液晶顯示屏為例,介紹了PIC單片機(jī)與19264點(diǎn)陣顯示屏的硬件接口電路,并給出了使用C30編寫的底層驅(qū)動(dòng)接口程序和部分應(yīng)用層代碼,所給出的接口設(shè)計(jì)方法對(duì)相關(guān)點(diǎn)陣屏的使用有一定的借鑒意義。

關(guān)鍵詞:19264;單片機(jī);接口技術(shù)

前言

單片機(jī)應(yīng)用系統(tǒng)中,顯示模塊有數(shù)碼管、1602、12864、19264點(diǎn)陣屏,這些都是最常見s的、可用于電子開發(fā)的顯示屏。其中19264點(diǎn)陣顯示屏功耗低,體積小、顯示信息量大,除了能顯示字母和數(shù)字外,還能顯示圖片,被廣泛的應(yīng)用于工控領(lǐng)域。文章以19264點(diǎn)陣屏為例,介紹其與PIC單片機(jī)的接口技術(shù)。對(duì)于不帶字庫(kù)的液晶顯示屏應(yīng)用有一定的借鑒作用。

1 硬件接口設(shè)計(jì)

19264液晶顯示屏生產(chǎn)廠家比較多,但是根據(jù)通訊方法有SPI,II2C、并行口這幾種方式,我們選取并行口YXD-19264顯示模塊為例,介紹硬件接口電路設(shè)計(jì)。YXD-19264顯示模塊是一種圖形點(diǎn)陣液晶顯示模塊,它主要由行驅(qū)動(dòng)器、列驅(qū)動(dòng)器及192×64全點(diǎn)陣液晶顯示器組成。可完成線、圓、BMP圖片等圖形顯示,也可以顯示12×4個(gè)(16×16點(diǎn)陣)漢字,工作溫度為-10℃~+55℃,存儲(chǔ)溫度存儲(chǔ)溫度為-20℃~+66℃,工作電流約1.3mA(無(wú)背光4,無(wú)負(fù)壓)4m(無(wú)背光,帶負(fù)壓)底背光電流小于200mA(5.6Ω限流電阻)。

YXD-19264模塊接口電路簡(jiǎn)單,對(duì)外只有20個(gè)管腳。管腳定義如表1所示。

單片機(jī)選用PIC通用系列16 位MCUPIC24FJ256GB110,它有16位數(shù)據(jù)寬度,24位指令寬度,片內(nèi)閃存256KB,有多達(dá)85個(gè)可編程數(shù)字I/O,工作40MIPS,工作電壓+3.6V-+5V,外圍資源非常豐富,非常適用于工控領(lǐng)域。

按照YXD-19264的管腳定義和PIC24FJ256GB110芯片資源,設(shè)計(jì)的硬件連接如下:

(1)LCD的DB0-DB78位并行數(shù)據(jù)口接RB0-RB7;(2)LCD的R/W接RB8;(3)LCD的D/I接RB9;(4)LCD的/RST接RB10;(5)LCD的E接RB11;(6)LCD的CS1,CS2分別接RB12,RB13。

2 底層驅(qū)動(dòng)程序接口設(shè)計(jì)

我們采用MPLAB C30 C編譯器,此編譯器支持標(biāo)準(zhǔn)C語(yǔ)言編寫程序的格式。編寫好的程序可讀性好,便于移植,易于維護(hù),可靠性高。以下所有程序都是在此平臺(tái)下編寫。

寫數(shù)據(jù)和寫命令:YXD19264點(diǎn)陣屏模塊內(nèi)部有一個(gè)驅(qū)動(dòng)芯片,為了這個(gè)顯示屏按照我們的要求正常工作,就必須按照其數(shù)據(jù)手冊(cè)要求發(fā)送命令和數(shù)據(jù)。命令可以控制顯示屏開關(guān),設(shè)置起始行,設(shè)置頁(yè)地址、設(shè)置Y地址,讀取狀態(tài),發(fā)送顯示數(shù)據(jù)等內(nèi)容。命令和數(shù)據(jù)操作時(shí)必須按照時(shí)序圖嚴(yán)格操作。

寫操作時(shí)序(圖1):

圖1

void Write_LCD(BYTE screen, BYTE C_0R_D, BYTE load){

LCD_Check_Busy(screen);if (C_0R_D == CMD)SET_LCD_CMD;elseSET_LCD_DATA;

SET_LCD_WRITE;SET_LCD_E;LCD_DATA_TRIS = OUTPUT_DATA;Nop();

LCD_DATA_O = load;DelayUs(4);CLEAR_LCD_E;};

讀取操作時(shí)序(圖2):

圖2

void BYTE Read_LCD(BYTE screen){

BYTE data=0;LCD_Check_Busy(screen);SET_LCD_DATA;LCD_DATA_TRIS=1;Nop();

SET_LCD_READ;SET_LCD_E;Nop();Nop();Nop();Nop();data = LCD_DATA_I;

CLEAR_LCD_E;SET_LCD_WRITE;LCD_Check_Busy(screen);SET_LCD_DATA;

LCD_DATA_TRIS= INPUT_DATA;Nop();SET_LCD_READ;SET_LCD_E;Nop();Nop();Nop();

data=LCD_DATA_I;CLEAR_LCD_E;SET_LCD_WRITE;return data;};

3 應(yīng)用程序程序設(shè)計(jì)

3.1 初始化程序

顯示模塊在使用前都必須按照說明書嚴(yán)格初始化,初始化液晶顯示屏有重要的兩個(gè)步驟:第一步就是復(fù)位,復(fù)位時(shí)間一定要按照數(shù)據(jù)手冊(cè)的時(shí)間完成,如果復(fù)位不完全,可能造成顯示有亂碼或者不顯示的現(xiàn)象。第二步就是按照數(shù)據(jù)手冊(cè)以寫命令的方式,按步驟把控制命令發(fā)送給液晶顯示屏。完成以上兩個(gè)步驟液晶顯示屏就初始化完成,可以正常工作。其示例代碼如下:

void LCD_Init(void){

LCD_RST = 0;DelayUs(200);LCD_RST = 1;DelayUs(200);Write_LCD(LEFT, CMD, DISPLAY_OFF); //關(guān)顯示

Write_LCD(MIDDLE, CMD, DISPLAY_OFF);Write_LCD(RIGHT, CMD, DISPLAY_OFF);ClearScreen();

Set_Start_Line_L(0); Set_Start_Line_M(0); Set_Start_Line_R(0); Write_LCD(LEFT, CMD, DISPLAY_ON);

Write_LCD(MIDDLE, CMD, DISPLAY_ON); Write_LCD(RIGHT, CMD, DISPLAY_ON); }

3.2 清屏

在界面換頁(yè)時(shí),我們一般都需要清楚屏幕上的內(nèi)容,19264分左、中、右三個(gè)屏組成,這三個(gè)屏幕的操作我們抽象成一個(gè)函數(shù)完成。其示例代碼如下:

void ClearScreen(void){

BYTE pages = 0;BYTE i = 0;for (pages=0; pages<8; pages++){Set_Page_L(pages);Set_Page_M(pages);

Set_Page_R(pages);for (i=0; i<64; i++){Set_Col_Addr_L(i);Set_Col_Addr_M(i);Set_Col_Addr_R(i);

Write_LCD(LEFT, DATA, 0x0);Write_LCD(MIDDLE, DATA, 0x0);Write_LCD(RIGHT, DATA, 0x0);}}}

3.3 字庫(kù)的取模

由于我們的屏沒有帶字庫(kù),我們?cè)诰帉懗绦驎r(shí),編譯器只能得到了漢字的內(nèi)碼,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來(lái)記載英文或漢字的形狀,如英文的'A'在字模的記載方式如圖3所示:

字母、數(shù)字、漢字的字模我們通過專業(yè)的取模軟件獲得,取模軟件比較多,但是在使用時(shí),必須都必須注意設(shè)置字體大小、取模方式(是橫向取模、還是縱向取模),生成數(shù)據(jù)格式設(shè)定(是匯編格式,還是C格式),如果所要用的字母、漢字比較多,我們可以采用批量導(dǎo)入。

4 結(jié)束語(yǔ)

點(diǎn)陣液晶顯示屏在工控領(lǐng)域有廣泛的應(yīng)用,文章以YXD19264點(diǎn)陣屏為例,給出了與PIC單片機(jī)的接口電路和底層驅(qū)動(dòng)程序,并且在此基礎(chǔ)之上編寫了初始化程序、清屏程序、以及應(yīng)用程序中簡(jiǎn)單取模方法,所有程序都采用C語(yǔ)言編寫,對(duì)各類點(diǎn)陣顯示屏的使用有一定的借鑒意義。

參考文獻(xiàn)

[1]江世明.12864液晶顯示模塊與51單片機(jī)接口技術(shù)[J].電子世界,2005.

[2]段翠萍,庫(kù)少平,李捷.12864液晶顯示程序設(shè)計(jì)[J].電氣與電子工程,2006.

[3]辛阿阿,厲善亨.基于12864液晶模塊的動(dòng)態(tài)波形顯示實(shí)現(xiàn)方法[J].儀器儀表用戶,2010.

猜你喜歡
取模液晶顯示屏
關(guān)于不定方程x2-pqy4=16的正整數(shù)解
關(guān)于商高數(shù)的Je?manowicz猜想*
一塊布就是一個(gè)顯示屏?
軍事文摘(2022年10期)2022-06-15 02:29:30
關(guān)于不定方程x2-8y4=M(M=17,41,73,89,97)*
不可壓液晶方程組的Serrin解
《液晶與顯示》征稿簡(jiǎn)則
液晶與顯示(2020年8期)2020-08-08 07:01:46
蒼蠅迷戀顯示屏
關(guān)于不定方程x2-5y4=236
未來(lái)五年LED顯示屏出貨將保持16%增長(zhǎng)
液晶與顯示2015年第30卷第1期 目錄
液晶與顯示(2015年1期)2015-02-28 21:15:54
女性| 乌拉特中旗| 华容县| 木里| 如皋市| 新余市| 安徽省| 大关县| 龙岩市| 准格尔旗| 祁东县| 巢湖市| 贵定县| 兴隆县| 孟州市| 彭山县| 延庆县| 石楼县| 德兴市| 武义县| 固原市| 二连浩特市| 祁东县| 平果县| 南华县| 万盛区| 安多县| 茌平县| 藁城市| 威信县| 泌阳县| 松阳县| 丘北县| 陈巴尔虎旗| 荃湾区| 营口市| 会泽县| 清水河县| 德江县| 桓仁| 阜新|