新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于TMS320F2812的液晶顯示的設計

基于TMS320F2812的液晶顯示的設計

作者: 時間:2009-03-04 來源:網(wǎng)絡 收藏

void checkBF()//檢查BF位,判斷LCD 是否忙

{

unsigned int check

EALLOW;

GpioMuxRegs.GPAMUX.all=0xff00;//設EVA前8腳為通用I/O口,其他為保留功能

GpioMuxRegs.GPBMUX.all=0xff00;//設GPIOB0~2為通用I/O口,其他為保留功能

GpioMuxRegs. GPBDIR.all=0x00ff;// 設GPIOB0~2為輸出引腳

EDIS;

GpioDataRegs. GPBDAT.bit.GPIOB0=0;

GpioDataRegs. GPBDAT.bit.GPIOB1=1;//讀BF的狀態(tài),RS=0,R/W=1

do {

GpioDataRegs. GPBDAT.bit.GPIOB2=1;//E=1

Check=GpioDataRegs. GPADAT.all;

Delay1();//延時140ns以上

GpioDataRegs. GPBDAT.bit.GPIOB2=0;//E=0

check=0x80check;//當?shù)?位,即BF為0時才可以操作

}while(!check= =0x00);

}

void InitialLCD()//液晶初始化

{

writeINS(0x30);//LCD選擇為8位并行數(shù)據(jù)傳輸,不擴充指令

Delay2(5);//延時大于100us

writeINS(0x0E);//開顯示,開游標,關反白

Delay2(5);//延時大于100us

writeINS(0x01);//清屏顯示

Delay2(500);//延時大于10ms

writeINS(0x06);//DDRAM的地址計數(shù)器(AC)加1

Delay2(5);//延時大于100us

}

void Delay1()//延時子程序

{

Int i;

for ( i=0;i5;i++ );

}

void Delay2(unsigned int nTime)

{

int ii,jj,kk=0;

for ( ii=0;iinTime;ii++ )

{

for ( jj=0;jj215;jj++ )

{

kk++;

}

}

}

欲在中某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。當字符編碼為兩字節(jié)時,應先寫入高位字節(jié),再寫入低位字節(jié)。的字符顯示地址RAM地址從80H到9FH,與4行8列共32個字符顯示區(qū)域一一對應。另外,顯示ASCII字符過程與顯示中文字符過程相同,不過在顯示連續(xù)字符時,只須設定一次顯示位置,有模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ASCII字符位置。本文以從字庫中顯示“液晶”字樣為例,給出顯示“液晶”字符的主程序如下:

main()

{

InitialLCD();//初始化液晶

writeINS(0x80);//設定顯示地址為首行首列

writeDATA (0xD2);

writeDATA (0xBA);//顯示“液”

writeDATA (0xBE);

writeDATA (0xA6);//顯示“晶”

for(;;);

}

3 結論

從上面的應用介紹可看出,本文所采用的方法不需要增加硬件,電路結構簡單,只占用了的多達56個I/O引腳中的11個。所以,對剩余較多不用I/O引腳的系統(tǒng)完全可以采用這種控制方法,絕大多數(shù)下是可以滿足要求的。通過該我們可以說,采用模擬外部慢速設備的實現(xiàn)與其外設的這種方法是一種簡單有效的方法,并為各種系統(tǒng)顯示、慢速外設的提供了一種可以借鑒的方法。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉