| 6800時序 | 8080時序 | 串行接口 | BS0 | 0 | 0 | 0 | BS1 | 0 | 1 | 0 | BS2 | 1 | 1 | 0 |
圖 一 P09703與uPSD3234BV硬件連接原理圖 
圖二 P09703OLED顯示屏8080時序圖 3 軟件編程 在與計算機連接方面,SSD1303的接口,包括數(shù)據(jù)輸入緩存器、數(shù)據(jù)輸出鎖存器,指令寄存器及譯碼器,忙狀態(tài)觸發(fā)器以及時序控制電路等,具有高性能的接口控制電路。計算機可以隨時訪問SSD1303而不需要判斷其當前狀態(tài),與以前用的以T6963C控制器不同,SSD1303判斷忙狀態(tài)在操作上不是那么重要,因為SSD1303的接口部能夠適時地接收計算機的訪問。只是在計算機對顯示存儲器大量的數(shù)據(jù)傳輸時與控制部向驅(qū)動部傳輸顯示數(shù)據(jù)相沖突,會在顯示屏上出現(xiàn)“雪花”。但是由于這個間隙時間很短,加上人眼在視覺上的惰性而看不出“雪花”現(xiàn)象,有時判斷忙標志再進行顯示數(shù)據(jù)傳輸時,忙標志已經(jīng)消失了。正是由于這些,計算機訪問SSD1303的操作流程非常簡單。 sbit DC_PIN_NUM = P0^5; //P0.5 數(shù)據(jù)/指令控制位,低電平—指令操作,高電平—數(shù)據(jù)操作 sbit WR_PIN_NUM = P0^6; //P0.6 寫數(shù)據(jù)/指令控制位,高電平變低電平時寫入 sbit RD_PIN_NUM = P0^7; //P0.7 讀數(shù)據(jù)/指令控制位,低電平有效 unsigned char ReadData(void) //從P09703OLED顯示屏讀取數(shù)據(jù) { unsigned char temp; DC_PIN_NUM = 1; RD_PIN_NUM = 0; RD_PIN_NUM = 1; temp = P4; return temp; } unsigned char ReadCommand(void) //從P09703OLED顯示屏讀取寄存器狀態(tài) { unsigned char temp; DC_PIN_NUM = 1; RD_PIN_NUM = 0; RD_PIN_NUM = 1; temp = P4; return temp; } void WriteCommand(unsigned char Data) //寫指令代碼到P09703OLED顯示屏 { DC_PIN_NUM = 0; P4=Data; WR_PIN_NUM = 0; WR_PIN_NUM = 1; } void WriteData(uint8 Data) //寫參數(shù)及數(shù)據(jù)到P09703OLED顯示屏 { DC_PIN_NUM = 1; P4=Data; WR_PIN_NUM = 0; WR_PIN_NUM = 1; } main(){ int j, i; InitOled(); //初始化P09703OLED顯示屏,由于SSD1303軟件控制指令非常豐富,該函數(shù)內(nèi)容較長,在這里不做描述,詳情見P09703應(yīng)用筆記,這里要說明的是:InitOled()中的comm_out2()函數(shù)用WriteCommand()函數(shù)替代 for(i=0;i<8;i++) WriteCommand (0xB0+i); //設(shè)置顯示位置—行 WriteCommand (0x02); //設(shè)置顯示位置—列低地址 WriteCommand (0x10); //設(shè)置顯示位置—列高地址 for(j=0;j<128;j++) WriteData((0xFF); //屏幕顯示,全亮 } } 上述僅是對P09703基本的應(yīng)用,有關(guān)更多的SSD1303軟件控制指令,通過該文介紹的方法,并結(jié)合SSD1303的指令集[3],讀者能夠?qū)09703有更深了解。對于按鍵我們給出了電路原理圖,由于編成相對簡單,這里就不做描述了。 參考文獻 1 鄒德春. 新一代超薄顯示技術(shù)-OLED. 電子產(chǎn)品世界,2003;3 2 uPSD3200 family http://www.st.com 3 SSD1303 Advance Information 132 x 64 Dot Matrix OLED/PLED Segment/Common Driver with Controller http://www.solomon-systech.com |