基于OLED液晶顯示器的顯示系統(tǒng)_第1頁
基于OLED液晶顯示器的顯示系統(tǒng)_第2頁
基于OLED液晶顯示器的顯示系統(tǒng)_第3頁
基于OLED液晶顯示器的顯示系統(tǒng)_第4頁
基于OLED液晶顯示器的顯示系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于OLED液晶顯示器的顯示系統(tǒng) 姓名:唐旭晴學號:班級:11電子2班一、實習目的(1)了解飛思卡爾單片機的基本原理,掌握其基本的工作流程。(2)了解OLED液晶顯示屏的基本原理及用法。(3)能夠熟練使用CodeWarrior軟件編寫C語言程序,使用BDM仿真器下載程序。(4)能夠熟練焊接電路板。二、實驗設備與器件CodeWarrior軟件,BDM仿真器,萬用電路板,飛思卡爾單片機,OLED液晶顯示器三、實驗內(nèi)容內(nèi)容:利用飛思卡爾單片機制作基于OLED液晶顯示器的顯示系統(tǒng)要求:用四個按鍵控制,按下第一個按鍵顯示“北”,按下第二個按鍵顯示“京”,按下第三個按鍵顯示“印刷”,按下第四個按鍵顯示“學

2、院”。(1)OLED,即有機發(fā)光二極管(Organic Light-Emitting Diode),又稱為有機電激光顯示(Organic Electroluminesence Display, OELD)。OLED由于同時具備自發(fā)光,不需背光源、對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優(yōu)異之特性,被認為是下一代的平面顯示器新興應用技術。LCD都需要背光,而OLED不需要,因為它是自發(fā)光的。這樣同樣的顯示,OLED效果要來得好一些。以目前的技術,OLED的尺寸還難以大型化,但是分辨率確可以做到很高。我們使用的是ALINETEK的OLED顯示模塊,

3、該模塊有以下特點:1)模塊有單色和雙色兩種可選,單色為純藍色,而雙色則為黃藍雙色。2)尺寸小,顯示尺寸為0.96寸,而模塊的尺寸僅為27mm*26mm大小。3)高分辨率,該模塊的分辨率為128*64。4)多種接口方式,該模塊提供了總共4種接口包括:6800、8080兩種并行接口方式、4線SPI接口方式以及IIC接口方式。5)不需要高壓,直接接3.3V就可以工作了。這里我們采用的是4線串行(SPI)方式,4先串口模式使用的信號線有如下幾條:CS:OLED片選信號。RST(RES):硬復位OLED。DC:命令/數(shù)據(jù)標志(0,讀寫命令;1,讀寫數(shù)據(jù))。SCLK:串行時鐘線。在4線串行模式下,D0信號

4、線作為串行時鐘線SCLK。SDIN:串行數(shù)據(jù)線。在4線串行模式下,D1信號線作為串行數(shù)據(jù)線SDIN。模塊的D2需要懸空,其他引腳可以接到GND。在4線串行模式下,只能往模塊寫數(shù)據(jù)而不能讀數(shù)據(jù)。在4線SPI模式下,每個數(shù)據(jù)長度均為8位,在SCLK的上升沿,數(shù)據(jù)從SDIN移入到SSD1306,并且是高位在前的。DC線還是用作命令/數(shù)據(jù)的標志線。在4線SPI模式下,寫操作的時序如圖17.1.6所示: 4線SPI寫操作時序圖模塊的顯存:SSD1306的顯存總共為128*64bit大小,SSD1306將這些顯存分為了8頁,其對應關系如下表所示:SSD1306顯存與屏幕對應關系表(2)飛思卡爾單片機的功能

5、及特點:MC9S12XS128 是 16 位單片機,由 16 位中央處理單元(CPU12X)、128KB 程序、Flash(P-lash)、8KB RAM、8KB 數(shù)據(jù) Flash(D-lash)組成片內(nèi)存儲器。主要功能模塊包括:內(nèi)部存儲器, 內(nèi)部 PLL 鎖相環(huán)模塊 ,2 個異步串口通訊 SCI ,1個串行外設接口 SPI MSCAN 模塊 ,1 個 8 通道輸入/輸出比較定時器模塊 TIM ,周期中斷定時器模塊 PIT ,16 通道 A/D 轉換模塊 ADC ,1 個 8 通道脈沖寬度調(diào)制模塊 PWM ,輸入/輸出數(shù)字 I/O 口。本次設計中主要用到PORTA,PORTB端口:PORTA:

6、PORTA 為通用 I/O 口, 共 8 個,作為通用數(shù)字 I/O 口使用,未集成特殊功能.主要配置寄存器有:數(shù)據(jù)寄存器 PORTA、數(shù)據(jù)方向寄存 DDRA、上拉電阻控制寄存器PUCR 和驅動控制寄存器 RDR。a. 數(shù)據(jù)寄存器 PORTA通過寫 1/0 使單片機對應引腳輸出高低電平,或通過讀取數(shù)據(jù)寄存器獲得對應引腳的高低電平值 。例:PORTA_PB0=1b. 數(shù)據(jù)方向寄存器 DDRADDRA 寄存器配置引腳為輸出口還是輸入口,“0”,輸入口;“1”,輸出口。MCU 復位后,DDRA 值為 0x00, 引腳默認為輸入口。例:DDRA=0xFF /配置 PORTA 口為輸出 PORTB:POR

7、TB 為通用數(shù)字 I/O 口, 共 8 個。其使用與 PORTA 基本一樣。主要配置寄存器有:數(shù)據(jù)寄存器 PORTB、數(shù)據(jù)方向寄存 DDRB。上拉電阻控制寄存器 PUCR 和驅動控制寄存器 RDR 與 PORTA 、PORTB、PORTE、PORTK 共用。a.數(shù)據(jù)寄存器 PORTBb.數(shù)據(jù)方向寄存器 DDRB四、原理圖: 器件說明:OLED液晶顯示器(8管腳), 4個1k電阻,4個按鍵 ,飛思卡爾芯片(64管腳) 管腳連接:GNDGNDFMQAN07VCCVCCKEYMOSI0D0PB4PA1PA1D1PB3PA2PA2RSTPB1PA3PA3DCPB2PA4PA4五、流程圖 復位SSD13

8、06驅動IC初始代碼開啟顯示清0顯存開始顯示六、程序設計1. void pll_set(void):內(nèi)部鎖相環(huán)模塊,單片機使用PLL功能能夠獲得更高的總線頻率,這對于需要提高單片機運行速度的應用場合非常必要。2. void OLED_Init(void):初始化OLED液晶顯示屏 3. void LCD_WrCmd(byte cmd):寫指令函數(shù)4. void LCD_WrDat(byte data):寫數(shù)據(jù)函數(shù)5.void LCD_PutPixel(byte x,byte y):填充一個點6. void LCD_P6x8Str(byte x,byte y,byte ch):顯示字符串函數(shù)7.

9、 void main(void):主函數(shù)#include main.h /所有頭文件已包含在在include.h里 unsigned char ch_data= -By tangxuqing; /顯示數(shù)組/* 延時函數(shù)*/void delayms(unsigned long ms) unsigned int ii,jj; if(ms1) ms=1; for(ii=0;iims;ii+) for(jj=0;jj3338*2;jj+); /80MHz-1ms /* 時鐘設置 * 通過鎖相環(huán)(PLL)設置系統(tǒng)時鐘為56M */void pll_set(void) CLKSEL=0X00; PLLCT

10、L_PLLON=1; SYNR =0xc0 | 0x06; REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); _asm(nop); _asm(nop); while(!(CRGFLG_LOCK=1); CLKSEL_PLLSEL =1; /* 對I/O口的初定義 * */void init_IO(void) DDRA = 0xff; PORTA = 0xfb; /* 主函數(shù) * */void main(void) /* put your own code here */ _DISABLE_COP(); /關看門狗 DisableInt

11、errupts; /關中斷 pll_set(); /鎖相環(huán)初始化56MHz uart_init(); /串口初始化(中斷,9600) OLED_Init(); /OLED初始化 sound_init(); /聲音初始化 init_IO(); /通用I/O口初始化 LCD_P6x8Str(1,6,ch_data); /顯示開機界面 kaiji_fmq();/開機聲音 DDRA_DDRA1 = 0; DDRA_DDRA2 = 0; DDRA_DDRA3 = 0; DDRA_DDRA4 = 0; /SET PORTA I/O INPUT PORTAB_PA1 = 1; PORTAB_PA2 = 1;

12、 PORTAB_PA3 = 1; PORTAB_PA4 = 1;EnableInterrupts; for(;) /_FEED_COP(); /* feeds the dog */ /* for(i=0;i32;i+) /掃描顯示點 for(j=0;j128;j+) LCD_PutPixel(j,i); delayms(1); */ / LCD_P6x8Str(0,0,ch_data); if(!PORTA_PA1) LCD_P6x8Str(1,2,1); if(!PORTA_PA2) LCD_P6x8Str(1,3,2); if(!PORTA_PA3) LCD_P6x8Str(1,4,3);

13、 if(!PORTA_PA4) LCD_P6x8Str(1,5,4); /* loop forever */ /* please make sure that you never leave main */OLED.c函數(shù)(子程序函數(shù)) #define OLED_GLO#include oled.h#define XLevelL0x00#define XLevelH0x10#define XLevel(XLevelH&0x0F)*16+XLevelL)#define Max_Column128#define Max_Row 64#defineBrightness0xCF/*4線SPI使用說明:

14、VBT 供內(nèi)部DC-DC電壓,3.34.3V,如果使用5V電壓,為保險起見串一個100500歐的電阻VCC 供內(nèi)部邏輯電壓 1.86VGND 地BS0 低電平BS1 低電平BS2 低電平CS 片選管腳DC 命令數(shù)據(jù)選擇管腳RES 模塊復位管腳D0(SCLK) ,時鐘腳,由MCU控制D1(MOSI) ,主輸出從輸入數(shù)據(jù)腳,由MCU控制D2 懸空D3-D7 , 低電平 , 也可懸空,但最好設為低電平RD 低電平 ,也可懸空,但最好設為低電平RW 低電平 ,也可懸空,但最好設為低電平RD 低電平 ,也可懸空,但最好設為低電平C7-D0(SCLK)時鐘腳,由MCU控制C6-D1(MOSI)主輸出從輸入

15、數(shù)據(jù)腳,由MCU控制C0-RST 模塊復位管腳C4-DC 命令數(shù)據(jù)選擇管腳*/* 引腳定義 *PB1 RSTPB2 DCPB3 D1PB4 D0*/ #define X_WIDTH 128#define Y_WIDTH 64/=const byte F6x86 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , / sp 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 , / ! 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 , / 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 , / # 0x00

16、, 0x24, 0x2a, 0x7f, 0x2a, 0x12 , / $ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 , / % 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 , / & 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 , / 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 , / ( 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 , / ) 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 , / * 0x00, 0x08, 0x08, 0

17、x3E, 0x08, 0x08 , / + 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 , / , 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 , / - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 , / . 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 , / / 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E , / 0 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 , / 1 0x00, 0x42, 0x61, 0x51, 0x49, 0x

18、46 , / 2 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 , / 3 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 , / 4 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 , / 5 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 , / 6 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 , / 7 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 , / 8 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E , / 9 0x00

19、, 0x00, 0x36, 0x36, 0x00, 0x00 , / : 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 , / ; 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 , / 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 , / ? 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E , / 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C , / A 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 , / B 0x00, 0x3E, 0x41, 0x4

20、1, 0x41, 0x22 , / C 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C , / D 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 , / E 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 , / F 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A , / G 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F , / H 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 , / I 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01

21、 , / J 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 , / K 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 , / L 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F , / M 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F , / N 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E , / O 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 , / P 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E , / Q 0x00,

22、0x7F, 0x09, 0x19, 0x29, 0x46 , / R 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 , / S 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 , / T 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F , / U 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F , / V 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F , / W 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 , / X 0x00, 0x07, 0x08, 0

23、x70, 0x08, 0x07 , / Y 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 , / Z 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 , / 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 , / 55 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 , / 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 , / 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 , / _ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 ,/

24、 0x00, 0x88, 0x48, 0x28, 0x18, 0xff , /a 0x00, 0xff, 0xa0, 0x90, 0x88, 0xe4 , /b 0x00, 0x02, 0x82, 0x7A, 0x2A, 0xEA , / c 0x2B, 0x7a, 0x82, 0x02, 0x02, 0x00 , / d 0x00, 0x7C, 0x54, 0x54, 0x54, 0x00 , / e 0xFE, 0x02, 0x22, 0x3E, 0x00, 0x00 , / f 0x00, 0xFF, 0x05, 0x75, 0x15, 0xFD , / g 0x15, 0x75, 0x

25、07, 0x38, 0x80, 0xFF , / h 0x00, 0x06, 0x02, 0x23, 0xAA, 0xFB , / i 0x2A, 0x23, 0x02, 0x06, 0x00, 0x00 , / j 0xFE, 0x22, 0x3E, 0x00, 0x06, 0x12 , / k 0x7A, 0x1B, 0x7A, 0x52, 0x66, 0x00 , / l / 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 , / a / 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 , / b / 0x00, 0x38, 0x44, 0x4

26、4, 0x44, 0x20 , / c / 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F , / d / 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 , / e / 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 , / f / 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C , / g / 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 , / h / 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 , / i / 0x00, 0x40, 0x80, 0x

27、84, 0x7D, 0x00 , / j / 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 , / k / 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 , / l 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 , / m 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 , / n 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 , / o 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 , / p 0x00, 0x18, 0x24, 0x24, 0x18,

28、 0xFC , / q 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 , / r 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 , / s 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 , / t 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C , / u 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C , / v 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C , / w 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 , / x 0

29、x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C , / y 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 , / z 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 / horiz lines;/*A13-D0(SCLK)時鐘腳,由MCU控制 13A12-D1(MOSI)主輸出從輸入數(shù)據(jù)腳,由MCU控制 12A15-RST 模塊復位管腳 15A14-DC 命令數(shù)據(jù)選擇管腳 14*/ void OLED_Init(void) DDRB=DDRB|0x1e; DCHIGH();CLKHIGH();RESLOW(); LCD_DLY_

30、ms(50); RESHIGH(); LCD_WrCmd(0xae);/-turn off oled panel LCD_WrCmd(0x00);/-set low column address LCD_WrCmd(0x10);/-set high column address LCD_WrCmd(0x40);/-set start line address Set Mapping RAM Display Start Line (0x000x3F) LCD_WrCmd(0x81);/-set contrast control register LCD_WrCmd(0xcf); / Set SE

31、G Output Current Brightness LCD_WrCmd(0xa1);/-Set SEG/Column Mapping 0xa0左右反置 0xa1正常 LCD_WrCmd(0xc8);/Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 / LCD_WrCmd(0xa0);/-Set SEG/Column Mapping 0xa0左右反置 0xa1正常 / LCD_WrCmd(0xc0);/Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 LCD_WrCmd(0xa6);/-set normal displ

32、ay LCD_WrCmd(0xa8);/-set multiplex ratio(1 to 64) LCD_WrCmd(0x3f);/-1/64 duty LCD_WrCmd(0xd3);/-set display offsetShift Mapping RAM Counter (0x000x3F) LCD_WrCmd(0x00);/-not offset LCD_WrCmd(0xd5);/-set display clock divide ratio/oscillator frequency LCD_WrCmd(0x80);/-set divide ratio, Set Clock as 1

33、00 Frames/Sec LCD_WrCmd(0xd9);/-set pre-charge period LCD_WrCmd(0xf1);/Set Pre-Charge as 15 Clocks & Discharge as 1 Clock LCD_WrCmd(0xda);/-set com pins hardware configuration LCD_WrCmd(0x12); LCD_WrCmd(0xdb);/-set vcomh LCD_WrCmd(0x40);/Set VCOM Deselect Level LCD_WrCmd(0x20);/-Set Page Addressing

34、Mode (0x00/0x01/0x02) LCD_WrCmd(0x02);/ LCD_WrCmd(0x8d);/-set Charge Pump enable/disable LCD_WrCmd(0x14);/-set(0x10) disable LCD_WrCmd(0xa4);/ Disable Entire Display On (0xa4/0xa5) LCD_WrCmd(0xa6);/ Disable Inverse Display On (0xa6/a7) LCD_WrCmd(0xaf);/-turn on oled panel OLCD_Fill(0); /初始清屏 LCD_Set

35、_Pos(0,0);/DZXH_LOGO();/*A26-D0(SCLK)時鐘腳,由MCU控制 13A27-D1(MOSI)主輸出從輸入數(shù)據(jù)腳,由MCU控制 12A24-RST 模塊復位管腳 15A25-DC 命令數(shù)據(jù)選擇管腳 14*/ void LCD_WrDat(byte data)byte i=8;/LCD_CS=0;DCHIGH();/DC=1 ;/ NOP(); CLKLOW();/D0=0 ;/NOP(); while(i-) if(data&0x80)MISOHIGH();/D1=1 elseMISOLOW();/D1=0 CLKHIGH();/D0=1 ;/NOP();/asm

36、(nop); CLKLOW();/D0=0 data=1; /LCD_CS=1;void Dis_Num(byte y, byte x, unsigned int num,byte N)/ byte line; byte j=0; byte n6=0; x=x*8; n0=(num/10000)%10; n1=(num/1000)%10; n2=(num/100)%10; n3=(num/10)%10; n4=num%10;/ n6=0; for(j=0;j5;j+)nj=nj+16+32; LCD_P6x8Str(x,y,&n5-N);/從ACSII碼表中讀取字節(jié),然后寫入液晶/*A26-D

37、0(SCLK)時鐘腳,由MCU控制 E4A27-D1(MOSI)主輸出從輸入數(shù)據(jù)腳,由MCU控制 E3A24-RST 模塊復位管腳 E6A25-DC 命令數(shù)據(jù)選擇管腳 E5 */void LCD_WrCmd(byte cmd)byte i=8;/LCD_CS=0;DCLOW(); CLKLOW(); /asm(nop); while(i-) if(cmd&0x80)MISOHIGH(); elseMISOLOW(); CLKHIGH(); ;/NOP();/asm(nop); CLKLOW(); cmd4)|0x10); LCD_WrCmd(x&0x0f);/|0x01);原來的版本圖像整體右

38、移一列,導致低128列移到第一列顯示,不知道這么做是為什么,暫時先改回來void OLCD_Fill(byte bmp_data)byte y,x;for(y=0;y8;y+)LCD_WrCmd(0xb0+y);LCD_WrCmd(0x01);LCD_WrCmd(0x10);for(x=0;xX_WIDTH;x+)LCD_WrDat(bmp_data);void LCD_CLS(void)byte y,x;for(y=0;y8;y+)LCD_WrCmd(0xb0+y);LCD_WrCmd(0x01);LCD_WrCmd(0x10);for(x=0;xX_WIDTH;x+)LCD_WrDat(0

39、);void LCD_DLY_ms(uint16 ms) word a; while(ms) a=2350; while(a-); ms-; return;/=/函數(shù)名: void LCD_PutPixel(byte x,byte y)/功能描述:繪制一個點(x,y)/參數(shù):真實坐標值(x,y),x的范圍0127,y的范圍064/返回:無/=void LCD_PutPixel(byte x,byte y)byte data1; /data1當前點的數(shù)據(jù) LCD_Set_Pos(x,y);data1 = 0x013);LCD_WrCmd(x&0xf0)4)|0x10);LCD_WrCmd(x&0

40、x0f)|0x00);LCD_WrDat(data1); /=/函數(shù)名: void LCD_Rectangle(byte x1,byte y1,/ byte x2,byte y2,byte color,byte gif)/功能描述:繪制一個實心矩形/參數(shù):左上角坐標(x1,y1),右下角坐標(x2,y2)/ 其中x1、x2的范圍0127,y1,y2的范圍063,即真實坐標值/返回:無/=void LCD_Rectangle(byte x1,byte y1,byte x2,byte y2,byte gif)byte n;LCD_Set_Pos(x1,y13);for(n=x1;n=x2;n+)L

41、CD_WrDat(0x013); for(n=x1;n=x2;n+)LCD_WrDat(0x01126)x=0;y+; LCD_Set_Pos(x,y); for(i=0;i6;i+) LCD_WrDat(F6x8ci); x+=6; j+; /=/函數(shù)名: void Draw_BMP(byte x,byte y)/功能描述:顯示BMP圖片12864/參數(shù):起始點坐標(x,y),x的范圍0127,y為頁的范圍07/返回:無/=void Draw_BMP(byte x0,byte y0,byte x1,byte y1,byte *bmp) / word ii=0; byte x,y; if(y1

42、%8=0) y=y1/8; else y=y1/8+1; for(y=y0;y=y1;y+) LCD_Set_Pos(x0,y); for(x=x0;x=x1;x+) LCD_WrDat(*bmp+); void Draw_BMP2(byte x0,byte y0,byte x1,byte y1,byte *bmp) / word ii=0; byte x,y; if(y1%8=0) y=y1/8; else y=y1/8+1; for(y=y0;y=y1;y+=2) LCD_Set_Pos(x0,y); for(x=x0;x0x80) LCD_WrDat(0x01); elseLCD_WrDat(0x00); void LED_PrintImage(byte *pucTable, uint16 usRowNum,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論