1. 如何用單片機驅動tftlcd液晶屏
一般情況下按照TFTLCD的寄存器配置手冊對寄存器進行配置就可以實現。
2. 單片機怎麼連接tft液晶屏呢
WP8酷七網團隊為你解答
關鍵是要看你什麼單片機,而且,有些tft液晶支持spi控制,所以說應該單片機都可以驅動的,還有些是fsnm驅動的,就需要帶這種介面的單片機了,比如stm32。
3. AT89s52單片機TFT怎樣插入圖片
沒說清楚,單片及內部的存儲器是不能存一張圖片的,你需要外接存儲器
4. 單片機如何寫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
5. 哪裡可以學習如何用51單片機使用tft
要用51單片機驅動TFT的話,最好用銳顯科技的屏,他們的TFT全部可以用51單片機驅動,包括快速刷圖片。常式都是51的,基本上到手一個星期可以完成你要的所有界面。
6. 用51單片機如何控制TFT彩屏
如果只用51的話,控制不了。因為TFT彩屏的數據處理量不是51能完成的,如果非要用51控制,中間要加個控制卡。
51隻是8位機,也就是同一時刻最多處理8位數據。
建議用16位機或者是32位機控制彩屏。
7. 我買的51單片機tft模塊原理圖如下,能不能用到430單片機中 51 IO是5V,430單片機IO口3.3V。
這個電路圖單片機只是向245傳信號,那麼3.3V 5V都一樣,只是你的這個電路245供電3.3V,你用5V的可以???
8. 單片機是否可用接彩色TFT 液晶屏
可以!
當今99%的液晶電視 都是 單片機驅動的。
這些單片機有些是基於32位ARM CPU的SOC,有些是基於32位MIPS CPU的SOC,還有些是基於8051 或x86的單片機。
9. c51單片機tft彩屏開發會經常用到嗎
我建議你還是買過一塊液晶學。是這樣的:對於工業控制的話我們常用4寸的液晶(我因為成本問題買了3.2寸的- -),你要搞清楚的是液晶屏顯示原理,然後要學會配置相關的寄存器。對於買回來的液晶模塊還是簡單的,你覺得液晶的手冊難懂的話,你必須看懂人家的代碼。到了你學arm11(推薦你買arm6410的)用的不是一般的液晶模塊,而是大TFT屏,人家單片機內部還集成液晶控制模塊。因此你要通過簡單的液晶模塊掌握液晶編程套路(顯示文字,圖片),在你學arm11的LCD驅動時因為你有著基礎,可以專注於新的知識:配置單片機液晶控制介面然後根據時序圖配置寄存器。這是我給你的建議,我大四了,學校教arm7但是感覺沒什麼用,我買了一塊cortex a8板子,太高級了,玩起來夠嗆的。人家用的多數是6410驅動。所以我建議你買arm6410的板子,因為它資料多和視頻也多。你買了高級板子吃不消的是自己。。。總之液晶屏你不許不會,工業控制的51,avr,arm7你怎麼和用戶進行交互?通過液晶屏。上了操作系統的arm11 cortexA8 更不可能不用液晶屏。並且大屏的TFT液晶也比工控的液晶屏(我們51上的液晶屏模塊)復雜。正如一部手機,可能用6410作為cpu,但是誰的手機能不用液晶屏呢?是吧?