1. 單片機驅動TFT方案
2樓說得不對,其實不一定要16位色的圖片,一般工業用,8位色的圖片足夠了。他說的那種模塊,是類似一個終端類型的液晶模組。這種模組價格比較貴,當然用起來還是很方便的。可以用底端單片機驅動,也就是3樓說的串口驅動TFT。你可以去廣州銳顯科技的網站上搜索一下,我們也有類似的模塊。
另外我們還提供另外一種價格更低廉的彩屏模塊,是在TFT彩屏上加上控制電路和升壓電路等等。這種模組驅動3.5寸,4.3寸屏性價比會更高,採用8位或者16位並口驅動。
我是廣州銳顯科技的工程師,歡迎指教。1143946234
2. 單片機如何寫TFT彩屏的程序
武漢 谷鑫科技專業從事單片機驅動TFT彩屏的研發和生產。
下面是TFT6448BS-5.7模塊的驅動程序:
sfr AUXR = 0x8e;//////////////////////////////////注意增加該語句。
#include <reg51.h>
#include <absacc.h>
#define X_ADDR XBYTE[0x0000]
#define Y_ADDR XBYTE[0x0100]
#define CMD XBYTE[0x0200]
#define DAT XBYTE[0x0300]
unsigned char code zk[32] = {//請
0x00, 0x47, 0x20, 0x23, 0x00, 0xEF, 0x20, 0x23, //left
0x22, 0x23, 0x22, 0x23, 0x2A, 0x32, 0x22, 0x02,
0x48, 0xFC, 0x40, 0xF8, 0x40, 0xFE, 0x08, 0xFC, //right
0x08, 0xF8, 0x08, 0xF8, 0x08, 0x08, 0x28, 0x10};
unsigned char code picture[];
main()
{
unsigned int x,y,x2,y2;
unsigned int i;
unsigned char key,x1,y1,j,k,z,m,n,bright;
AUXR = 0x02;//////////////////////////////////注意增加該語句。
bright = 8;
key = 0;//////////////////////////////////////選擇液晶屏型號
//0:TFT2432;
//1:TFT3224;
//2:TFT480234
//3:TFT480272
//4:TFT6448
//5:TFT8048
//6:TFT8060
//7:TFT8060
if(P13==4)
{
if(key==0){x2=240;y2=320;x1=6; y1=16; goto loop1;}//x1/32,y1/20
if(key==1){x2=320;y2=240;x1=8; y1=12; goto loop1;}
if(key==2){x2=480;y2=240;x1=12;y1=12; goto loop1;}
if(key==3){x2=480;y2=272;x1=12;y1=14; goto loop1;}
if(key==4){x2=640;y2=480;x1=16;y1=24; goto loop1;}
if(key==5){x2=800;y2=480;x1=20;y1=24; goto loop1;}
if(key==6){x2=800;y2=600;x1=20;y1=30; goto loop1;}
if(key==7){x2=800;y2=600;x1=20;y1=30; goto loop1;}//亮度測試
}
loop1:
bright--;if(bright==255)bright=7;
CMD = 0x06;
DAT = bright;
///////////////////////以下是清屏功能///////////////////////////////////////
//用紅色清屏
CMD = 0x04;DAT = 0xe0;//背景色
CMD = 0x08;//啟動填充操作
for(y=0;y<260*12;y++);//延時16.6毫秒
CMD = 0x00;//退出填充操作
///////////////////////以上是清屏功能///////////////////////////////////////
while(key==7)
{
for(bright=7;bright!=255;bright--)
{
CMD = 0x06;
DAT = bright;
for(y=0;y<15;y++){x=1;while(x!=0)x++;}
}
CMD = 0x20;//關斷顯示,poweroff
for(y=0;y<15;y++){x=1;while(x!=0)x++;}
key = P1&0x07;
}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
//用紅色清屏
CMD = 0x04;DAT = 0x1c;//背景色
CMD = 0x08;//啟動填充操作
for(y=0;y<260*12;y++);//延時16.6毫秒
CMD = 0x00;//退出填充操作
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
//用紅色清屏
CMD = 0x04;DAT = 0x03;//背景色
CMD = 0x08;//啟動填充操作
for(y=0;y<260*12;y++);//延時16.6毫秒
CMD = 0x00;//退出填充操作
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
//用紅色清屏
CMD = 0x04;DAT = 0x00;//背景色
CMD = 0x08;//啟動填充操作
for(y=0;y<260*12;y++);//延時16.6毫秒
CMD = 0x00;//退出填充操作
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
//用紅色清屏
CMD = 0x04;DAT = 0xff;//背景色
CMD = 0x08;//啟動填充操作
for(y=0;y<260*12;y++);//延時16.6毫秒
CMD = 0x00;//退出填充操作
///////////////////////以上是清屏功能///////////////////////////////////////
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
///////////////////////以下是測試8點寫功能///////////////////////////////////////
//8點寫模式下清屏DAT=0;
CMD = 0x02;DAT=0xff;//前景色
CMD = 0x04;DAT=0x00;//背景色
CMD = 0x01;
for( y=0;y<y2;y++ )//用前景色清屏
{
X_ADDR = 0;
X_ADDR = 0;
Y_ADDR = y; ;
if( ((key==1)|(key==2))==0 )Y_ADDR = y/256;
for( x=0;x<(x2/8);x++ )DAT=0x55;
}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for( y=0;y<y2;y++ )//用背景色清屏
{
X_ADDR = 0;
X_ADDR = 0;
Y_ADDR = y;
if( ((key==1)|(key==2))==0 )Y_ADDR = y/256;
for( x=0;x<(x2/8);x++ )DAT=0x0f;
}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
//8點寫模式下寫單色圖片
CMD = 0x02;DAT=0x00;//前景色
CMD = 0x04;DAT=0xff;//背景色
CMD = 0x01;
for (y=0; y<80; y++)
{
X_ADDR = 0;
X_ADDR = 0;
Y_ADDR = y;
if( ((key==1)|(key==2))==0 )Y_ADDR = y/256;
for ( n=0; n<10; n++) DAT = picture[y*10+n];
}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
//8點寫模式下寫漢字
CMD = 0x02;DAT=0x00;//前景色
CMD = 0x04;DAT=0xff;//背景色
CMD = 0x01;
for ( n=0; n<=15; n++ )
{
X_ADDR = 0;
X_ADDR = 0;
Y_ADDR = n;
if( ((key==1)|(key==2))==0 )Y_ADDR = y/256;
DAT = zk[n];
DAT = zk[n+16];
}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
//以下是測試單點寫
CMD = 0x00;
i=0;
for(j=0;j<x1;j++)//20,x/40
{for (z=0;z<y1;z++)//24,y/20
{for (k=0;k<20;k++)
{x=j*40;
y=z*20+k;
X_ADDR = x;
if(key!=0)X_ADDR = x/256;
Y_ADDR = y;
if( ((key==1)|(key==2))==0 )Y_ADDR = y/256;
for (m=0;m<40;m++)DAT = i;
}
i++;
}
}
for(y=0;y<1;y++){x=1;while(x!=0)x++;}
http://tieba..com/club/10621043/p/14619152
3. 單片機控制TFT顯示,怎麼利用外擴的flash;
買個TFT液晶模塊吧,帶字型檔,和FLASH的。可以存圖片
推薦你個廠家:廣州銳顯,挺好用的。
4. 如何用單片機驅動tftlcd液晶屏
一般情況下按照TFTLCD的寄存器配置手冊對寄存器進行配置就可以實現。
5. 我買的51單片機tft模塊原理圖如下,能不能用到430單片機中 51 IO是5V,430單片機IO口3.3V。
這個電路圖單片機只是向245傳信號,那麼3.3V 5V都一樣,只是你的這個電路245供電3.3V,你用5V的可以???
6. 51單片機都能驅動什麼型號的TFT真彩
LS的說得都不對了,市面上大部分串口液晶模塊都能51驅動了。
有的並口的TFT模塊也能51驅動。
像廣州銳顯的,他們串並口都有。最大是7寸的,可以存圖片,常式就是51單片機寫的。
因為能存圖片,所以不需要51單片往裡面寫圖片,所以可以快速顯示。
7. 求高手指點,單片機怎麼用TFT 彩屏顯示圖像
一般的
單片機
直接驅動TFT
彩屏
很困難,資源以及速度都達不到。驅動
顏色數
較少的低解析度小
尺寸
屏還可以。
彩屏驅動還是用32位的ARM做吧。
如果一定要用普通的單片機驅動TFT彩屏,就選通用的彩色液晶
模塊
吧,這個
液晶
已經用32位的
嵌入式處理器
做好了驅動,並開發了
指令
集,你只需通過串口對
液晶模塊
發
命令
即可,如顯示
文字
,畫線,畫園,顯示預存的
圖像
等。液晶具體驅動已經由模塊內部做好了。這樣的彩色模塊市場有售,北京迪文科技的就不錯,價位也不高
8. 單片機控制7寸tft模塊液晶屏,具體怎麼寫程序,大概思路
第一,邏輯上是一樣的,如果接的口一樣,改動量會很小
第二,如果沒有gui的話那就需要你進行液晶屏的最底層操作,比如說初始化,畫點,畫線這些最基本的工作都需要自己來完成,最好還是用一個gui來減少這些麻煩,不然你浪費的精力不是一點兩點
9. 驅動tft觸摸屏用stm32單片機好還是用fpga好
如果你想省力的話,建議用stm32,因為這方面的現有程序太多了。況且關於C語言驅動的tft的模塊很多,直接改借口調用就可以了。