|
驅(qū)動(dòng)個(gè)160*160的黑白屏,用的uc1698u芯片,采用16位彩色數(shù)據(jù)格式,必須兩個(gè)8位才能驅(qū)動(dòng)三個(gè)像素點(diǎn),想讓屏顯示一個(gè)160*160的圖片,網(wǎng)上找了很久沒有找到相關(guān)程序,只能自己啃手冊(cè)
程序如下:
- static unsigned char code pic[]={
- 0xaa,0xaa,0xaa};//三個(gè)8位做個(gè)試驗(yàn)
- void data8bit(unsigned char dat) //三位有效
- {
- if(dat==0x00){ transfer_data(0x00); transfer_data(0x00);}
- if(dat==0x01){ transfer_data(0x00); transfer_data(0x1f);}
- if(dat==0x02){ transfer_data(0x07); transfer_data(0xe0);}
- if(dat==0x03){ transfer_data(0x07); transfer_data(0xff);}
- if(dat==0x04){ transfer_data(0xf8); transfer_data(0x00);}
- if(dat==0x05){ transfer_data(0xf8); transfer_data(0x1f);}
- if(dat==0x06){ transfer_data(0xff); transfer_data(0xe0);}
- if(dat==0x07){ transfer_data(0xff); transfer_data(0xff);}
- }
復(fù)制代碼- void bmp()
- {
- unsigned long picdata=0;
- char temdata;
- set_lcd_address(0,0);
- picdata=(pic[0]<<16)|(pic[1]<<8)|pic[2];//三個(gè)八位數(shù)據(jù)組組合成24位
- temdata=picdata>>21; //
- data8bit(temdata&0x07);
- temdata=picdata>>18;
- data8bit(temdata&0x07);
- temdata=picdata>>15;
- data8bit(temdata&0x07);
- temdata=picdata>>12;
- data8bit(temdata&0x07);
- temdata=picdata>>9;
- data8bit(temdata&0x07);
- temdata=picdata>>6;
- data8bit(temdata&0x07);
- temdata=picdata>>3;
- data8bit(temdata&0x07);
- temdata=picdata;
- data8bit(temdata&0x07);
- }
復(fù)制代碼
為啥第一位數(shù)據(jù)pci[0]顯示不正常,而第二位pic[1]和第三位pic[2]顯示是正常的沒有問(wèn)題的。
我試過(guò),直接給data8bit()函數(shù)直接賦值顯示是沒有問(wèn)題的。
|
|