0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ARM7微處理器LPC2138實(shí)現(xiàn)OLED顯示器的應(yīng)用系統(tǒng)設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:世界產(chǎn)品與技術(shù) ? 作者:高俊堯 ? 2020-12-07 10:22 ? 次閱讀

ARM處理器憑借其強(qiáng)大的功能、極低的功耗、較小的封裝廣泛應(yīng)用于門禁、無(wú)線抄表、智能溫控等小型系統(tǒng)中,在這些系統(tǒng)中人機(jī)交互界面一般由LCD完成,但是通常LCD在顯示亮度、環(huán)境適應(yīng)等方面存在缺陷,所以越來(lái)越多新技術(shù)新產(chǎn)品逐漸出現(xiàn),OLED就是一種。本文介紹了一種基于OLED的顯示器VGS12864E的結(jié)構(gòu)原理,給出了其在ARM7微處理器LPC2138系統(tǒng)應(yīng)用中的硬件連接和具體程序設(shè)計(jì)。

系統(tǒng)簡(jiǎn)述

LPC2138簡(jiǎn)介

LPC2138是基于支持實(shí)時(shí)仿真嵌入式跟蹤的32/16 位ARM7TDMI-S CPU微控制器,帶有512 KB高速Flash和32KB的SRAM。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32 位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16 位Thumb模式將代碼規(guī)模降低超過(guò)30%,而性能的損失卻很小。

LPC2138內(nèi)含2個(gè)32位定時(shí)器、2個(gè)10位8路ADC、10位DAC、PWM通道和47個(gè)GPIO以及多達(dá)9個(gè)邊沿或電平觸發(fā)的外部中斷,它還具有多個(gè)串口,包括2個(gè)16C550工業(yè)標(biāo)準(zhǔn)UART、2個(gè)高速I 2 C接口(400kbit/s)、SPITM和SSP(具有緩沖功能,數(shù)據(jù)長(zhǎng)度可變)。

較小的封裝和極低的功耗使LPC2138可理想地用于工業(yè)控制和醫(yī)療等小型系統(tǒng)中,如訪問(wèn)控制和POS機(jī)、通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、軟modem、聲音辨別和低端成像等等。

VGS12864E結(jié)構(gòu)原理

VGS12864E是128列×64行點(diǎn)陣單色OLED圖形字符顯示模塊,由于其采用有機(jī)發(fā)光技術(shù),無(wú)需背光源,所以與傳統(tǒng)LCD相比在陽(yáng)光照射下更能呈現(xiàn)清晰的圖像和數(shù)據(jù),另外它還具有高亮度、高對(duì)比度、寬視角、低驅(qū)動(dòng)電壓和高發(fā)光效率等優(yōu)越的特性,較寬的溫度范圍(存儲(chǔ)溫度:?30℃“80℃,工作溫度:?20℃”70℃)也能適應(yīng)更惡劣的環(huán)境。

VGS12864E使用兩片列驅(qū)動(dòng)控制器,分別驅(qū)動(dòng)1-64列和65-128列和一片有64行輸出的行驅(qū)動(dòng)器,內(nèi)藏64×64顯示數(shù)據(jù)RAM,RAM中每位數(shù)據(jù)對(duì)應(yīng)屏上一個(gè)點(diǎn)的亮、暗,其結(jié)構(gòu)如圖1所示:它把一個(gè)半屏分成了按行的八頁(yè),因?yàn)槊總€(gè)字節(jié)的數(shù)據(jù)按低位(LSB)在上,高 位(MSB)在下的結(jié)構(gòu)排列,所以在提取字庫(kù)的時(shí)候,需要設(shè)置取字模的方式為:縱向取模,字節(jié)倒序。

系統(tǒng)硬件結(jié)構(gòu)

VGS12864E共有20個(gè)引腳,功能定義如表2,它與LPC2138的連接如圖2所示。盡管LPC2138的I/O口可以承受5V的輸入電壓,但是其輸出的高電平電壓不能驅(qū)動(dòng)VGS12864,所以在它們中間需要加一個(gè)電平轉(zhuǎn)換芯片。本系統(tǒng)電平轉(zhuǎn)換采用IDT74FCT164245T芯片,它是基于高速CMOS技術(shù)的16位3.3V到5V的雙向轉(zhuǎn)換口(其中P1.28口負(fù)責(zé)數(shù)據(jù)方向的控制)。

程序設(shè)計(jì)

對(duì)VGS12864E的各種操作都是通過(guò)其指令系統(tǒng)完成的,通過(guò)控制腳的高低電平和數(shù)據(jù)口的數(shù)據(jù)來(lái)完成各種操作。顯示時(shí)一般需要設(shè)置列地址和頁(yè)地址,然后進(jìn)行相應(yīng)的讀寫操作(在寫操作前都要讀“忙”狀態(tài)),最后根據(jù)需要進(jìn)行相應(yīng)的循環(huán)。在同頁(yè)內(nèi),列地址在執(zhí)行完讀寫操作后自動(dòng)加一。

本文程序有如下宏定義:

#define uint32 unsigned int

#define uint16 unsigned short

#define uchar unsigned char

#define DIS_DIR 1讀“忙”狀子程序

在對(duì)VGS12864E的各種寫操作執(zhí)行之前都需要進(jìn)行讀“忙”操作,防止在“忙”狀態(tài)下“寫”操作的不正確執(zhí)行,程序代碼如下:

void read_status()

{ uchar busy;

uchar temp;

IOCLR0 = DIS_DI; //選擇“指令”寄存器

IOSET0 = DIS_RW; //選擇“讀”操作

IOCLR1 = DIS_DIR; //控制電平轉(zhuǎn)換方向

do

{ IOPIN0 = (IOPIN0 & 0xFFFFFF00) | 0xff;

IOSET0 = DIS_E;

busy=(IOPIN0 & 0xff);

IOCLR0 = DIS_E; //使能操作

temp=busy & 0x80;

}while(temp!=0); //忙則繼續(xù)循環(huán)

IOSET1 = DIS_DIR; //控制電平轉(zhuǎn)換方向

}

寫指令子程序

// 對(duì)左半屏寫指令操作,右半屏操作只需要改變片選電平(DIS_CS1、DIS_CS2)

void wr_command1()

{

IOCLR1 = DIS_CS1; //選擇左半屏

IOSET0 = DIS_CS2;

read_status(); //讀“忙”狀態(tài)

IOSET0 = DIS_DI; //選擇“寫”操作

IOCLR0 = DIS_RW; //選擇“指令”寄存器

IOPIN0 = (IOPIN0 & 0xFFFFFF00) | com; //送指令

IOSET0 = DIS_E; //使能操作

IOCLR0 = DIS_E;

}

寫數(shù)據(jù)子程序

//對(duì)左半屏寫數(shù)據(jù)操作,右半屏操作只需要改變片選電平(DIS_CS1、DIS_CS2)

void wr_data1()

{

IOCLR1 = DIS_CS1; //選擇左半屏

IOSET0 = DIS_CS2;

read_status(); //讀“忙”狀態(tài)

IOSET0 = DIS_DI; //選擇“寫”操作

IOCLR0 = DIS_RW; //選擇“數(shù)據(jù)”寄存器

IOPIN0 = (IOPIN0 & 0xFFFFFF00) | dat;//送數(shù)據(jù)

IOSET0 = DIS_E; //使能操作

IOCLR0 = DIS_E;

}

其他子程序

//OLED初始化子程序

void init_OLED()

{

com =0xc0; //第“0”行開(kāi)始顯示

wr_command1();

wr_command2();

com =0x3f; //打開(kāi)OLED顯示

wr_command1();

wr_command2();

}

//清屏程序

void clear_prog(void)

{

for(i=0;idat=0x00;

wr_data1();//寫RAM都為0,這樣完成清屏

}

}

}

//漢字顯示標(biāo)準(zhǔn)函數(shù):把屏幕分成0,1,2,3四行和64列進(jìn)行漢字的顯示,每個(gè)漢字占兩//行,字庫(kù)數(shù)據(jù)通過(guò)指針進(jìn)行傳遞

void display(uchar hang,uchar lie,uchar *p_dis_data)

{

for(page=hang;page}

結(jié)束語(yǔ)

VGS12864E使用簡(jiǎn)單,而且相對(duì)LCD可以適應(yīng)惡劣的環(huán)境,所以在工業(yè)控制、軍事等方面都有廣泛應(yīng)用。由于需要通過(guò)字模軟件設(shè)計(jì)界面,增強(qiáng)設(shè)計(jì)靈活性的同時(shí)也提高了設(shè)計(jì)復(fù)雜界面的難度,而且生成字庫(kù)需要占用大量存儲(chǔ)空間。而LPC2138是基于ARM7核心的微控制器,配合VGS12864E可以組成非常通用的小型顯示控制系統(tǒng)。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6160

    瀏覽量

    223510
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7403

    瀏覽量

    163396
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2231

    瀏覽量

    82206
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LPC2138資料

    LPC2138單片機(jī)芯片資料
    發(fā)表于 04-26 10:48

    求助基于ARM7LPC2138)頻譜分析

    本帖最后由 nicole1223 于 2015-11-18 18:05 編輯 求助基于ARM7(LPC2138)頻譜分析,兩個(gè)信號(hào)相加用到A/D轉(zhuǎn)換(ADC7322/ADC7352)用數(shù)碼管顯示。用proteus和keil
    發(fā)表于 11-18 18:04

    arm7 LPC2138中斷優(yōu)先級(jí)

    ARM7為內(nèi)核的LPC2138,只給定時(shí)0中斷分配了一個(gè)VIC通道,但是定時(shí)0內(nèi)部有6個(gè)中斷F:MR0-3,MC0-3。這6個(gè)中斷可以同時(shí)工作么??jī)?yōu)先級(jí)怎么設(shè)置?
    發(fā)表于 09-06 17:02

    ARM7/9微處理器的仿真和分析解決方案

    ARM7/9微處理器的仿真和分析解決方案
    發(fā)表于 04-08 14:09

    ARM7 系列微處理器有哪些特點(diǎn)

    ARM7 系列微處理器是低功耗的 32 位 RISC 處理器,最適合用于對(duì)價(jià)位和功耗要求較低 的消費(fèi)類應(yīng)用。ARM7 系列有如下特點(diǎn)。具有嵌入式 ICE-RT(Internet
    發(fā)表于 09-25 11:20

    ARM7和LM016L液晶模塊的字符串顯示怎么實(shí)現(xiàn)

    TDMI的RISC微處理器,主頻可達(dá)50MHz。液晶顯示是嵌入式系統(tǒng)中反映系統(tǒng)輸入/輸出的人機(jī)交互界面,液晶顯示以其微功耗、體積小、
    發(fā)表于 11-05 07:24

    ARM嵌入式基于LPC2138的LCD1602顯示屏應(yīng)用

    1、實(shí)現(xiàn)按下鍵盤數(shù)字,顯示顯示相應(yīng)的數(shù)字2、實(shí)現(xiàn)基于ARM嵌入式數(shù)控電源的protues仿真3、基于L
    發(fā)表于 05-18 15:23

    如何實(shí)現(xiàn)基于ARM LPC2138的8*8 LED點(diǎn)陣顯示功能呢

    基于ARM LPC2138的8*8的LED點(diǎn)陣顯示,利用KEIL與protues實(shí)現(xiàn)該功能,該怎么做呢?
    發(fā)表于 07-06 10:04

    基于arm7環(huán)境監(jiān)測(cè)數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā)

    為了實(shí)現(xiàn)工業(yè)廢水實(shí)時(shí)監(jiān)測(cè)任務(wù),本文給出了一種基于ARM7處理器LPC2138和嵌入式時(shí)實(shí)操作系統(tǒng)uc/OS-II,開(kāi)發(fā)出一套工業(yè)廢水指標(biāo)多點(diǎn)
    發(fā)表于 07-30 11:23 ?30次下載

    LPC2138 RTC使用PCONP時(shí)的操作注意點(diǎn)

    LPC2138 RTC使用PCONP時(shí)的操作注意點(diǎn)
    發(fā)表于 07-23 15:29 ?24次下載

    基于ARM7的LCD顯示電壓示波系統(tǒng)的設(shè)計(jì)

    基于ARM7的LCD顯示電壓示波系統(tǒng)的設(shè)計(jì) 本設(shè)計(jì)以ARM7微處理器為核心,采用ARM7中的高
    發(fā)表于 09-03 11:22 ?936次閱讀
    基于<b class='flag-5'>ARM7</b>的LCD<b class='flag-5'>顯示</b>電壓示波<b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    基于ARM7微處理器的中文液晶顯示技術(shù)

    基于ARM7微處理器的中文液晶顯示技術(shù) 液晶顯示屏lcd作為一種功耗低、體積小、無(wú)輻射的顯示器件,近幾年被廣泛應(yīng)用于各式各樣的嵌入式電子產(chǎn)
    發(fā)表于 01-14 11:14 ?866次閱讀
    基于<b class='flag-5'>ARM7</b><b class='flag-5'>微處理器</b>的中文液晶<b class='flag-5'>顯示</b>技術(shù)

    基于LPC2138的超市收銀機(jī)系統(tǒng)設(shè)計(jì)策略

    基于LPC2138的超市收銀機(jī)系統(tǒng)設(shè)計(jì)策略  ARM7 LPC2138介紹    Philips公司的32位的
    發(fā)表于 04-23 11:50 ?3757次閱讀
    基于<b class='flag-5'>LPC2138</b>的超市收銀機(jī)<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)策略

    基于ARM7微處理器的中文液晶顯示技術(shù)

    基于ARM7微處理器的中文液晶顯示技術(shù)
    發(fā)表于 02-08 02:13 ?12次下載

    基于ARM7嵌入式微處理器的重介工藝參數(shù)自動(dòng)調(diào)節(jié)系統(tǒng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于ARM7嵌入式微處理器的重介工藝參數(shù)自動(dòng)調(diào)節(jié)系統(tǒng)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-25 11:07 ?0次下載
    基于<b class='flag-5'>ARM7</b>嵌入式<b class='flag-5'>微處理器</b>的重介工藝參數(shù)自動(dòng)調(diào)節(jié)<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)