导航:首页 > 操作系统 > 单片机彩屏

单片机彩屏

发布时间:2022-04-23 22:48:46

单片机如何写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

② 51单片机上的彩屏液晶如何显示图片,怎么做这个实验,能不能写点简单的c程序。

你用的是普通的51吗?一般彩屏显示图片都是通过读SD卡来实现的,因为单片机的内存太小
如果你需要显示很小的图标51还可以实现
具体做法是:先找到真彩的小图标,用软件把图标取模(把图标的数据显示出来)
然后写到单片机里
如果读SD卡来显示图片的话 就需要先学习SD卡的协议
自我感觉普通的51根本不能很好的驾驭彩屏

③ 单片机中TFT彩屏显示汉字原理

数组中的每一个字节的每一位都代表着显示器中对应的像素点,比如“0”的话不亮,“1”的时候亮。
然后程序中会有相应的函数来将数组中的数据按格式通过IO口发送到液晶屏的显存中,液晶屏按照接收的数据点亮相应的像素点。这样汉字就像图片一样显示出来了。

想要显示自己的汉字,你可以用取模软件,把汉字换算成像“普”那样形式的数据。以数组的形式写在程序中,之后用函数调用这个数组就行了

④ 单片机刷彩屏对cpu的要求

这个问题和屏的种类有关以及应用有关系,我先假设:
1、你的这个屏必须不断刷新才可以保持图像
2、你是要作一个动态的播放而不是只是静态显示一张图片
3、你的屏是32位真彩屏

OK

下面来分析。
1、算吞吐量

要人看到不闪的话美妙要刷个24次(这个你确认下)
那么要求单片机和屏之间的通信速率为:320*240*32*24约为74Mbyte/s。u

2、算CPU 主频
这个和CPU 种类和使用的接口有关。
假如你的CPU和屏间通讯位宽为8bit
你的CPU 单周期就可以些一次该接口
那么主频就需要74M

⑤ 51单片机能是2.4寸的TFT彩屏整屏显示吗

完全可以的,理论上可以驱动任何尺寸的彩屏,只是速度很慢,越大越慢。
点阵液晶屏是用一个字节驱动8个像素点,一个点是一位,所以只有亮和灭,两种状态。
彩色液晶屏是用两个字节驱动一个像素点,所以一个点可以有65536种颜色。
彩色液晶屏大都是16位的位宽,你用51单片机8位驱动必须要买带锁存器的液晶屏。
一般来讲用51单片机从SD卡中读出一张彩图,写到TFT彩屏里面需要接近十秒的时间。
所以说驱动彩屏,还是用ARM7这个级别的MCU比较靠谱。

⑥ 求高手指点,单片机怎么用TFT 彩屏显示图像

一般的
单片机
直接驱动TFT
彩屏
很困难,资源以及速度都达不到。驱动
颜色数
较少的低分辨率小
尺寸
屏还可以。
彩屏驱动还是用32位的ARM做吧。
如果一定要用普通的单片机驱动TFT彩屏,就选通用的彩色液晶
模块
吧,这个
液晶
已经用32位的
嵌入式处理器
做好了驱动,并开发了
指令
集,你只需通过串口对
液晶模块

命令
即可,如显示
文字
,画线,画园,显示预存的
图像
等。液晶具体驱动已经由模块内部做好了。这样的彩色模块市场有售,北京迪文科技的就不错,价位也不高

⑦ 初学单片机 是选择彩屏单片机开发板 还是选择单色单片机开发板好呢

我认为在读写彩色和单色屏时,它们的读写时序都是类似的,它们的区别在于,送给屏的显示数据不同。
但从学习的过程上来看,我推荐,在初学时,先学会能够点亮单色屏,然后再学会如何点亮彩色屏,因为单色屏的驱动程序要稍微简单一点。
从以后液晶屏的选用上来看,彩色屏将是趋势。

⑧ 想用51单片机驱动320x240分辨率的彩屏可以么

51单片机可以控制320*240彩屏显示,但是不能驱动,320*240彩屏有自己的驱动电路和专用芯片。

⑨ 51单片机能连接像手机屏幕一样的彩屏吗有那个型号的啊价格呢还有一个问题就是每天睡觉六小时怎样

51单片机能连接手机屏幕,价格几十块钱,主要看你的选择的屏大小(像素),象山寨手机那样的屏比较好买,价格也不贵(50块左右,还带触摸),只是51的处理速度比较慢,用彩屏的话刷屏的速度就比较慢了。

睡眠时间6小时理论上比较短吧,但做技术的好象很多人还不一定有6小时,大家还是要注意身体啊~

⑩ 用51单片机如何控制TFT彩屏

如果只用51的话,控制不了。因为TFT彩屏的数据处理量不是51能完成的,如果非要用51控制,中间要加个控制卡。
51只是8位机,也就是同一时刻最多处理8位数据。
建议用16位机或者是32位机控制彩屏。

阅读全文

与单片机彩屏相关的资料

热点内容
单片机状态周期 浏览:620
lua中的android 浏览:441
加密贵还是植发贵 浏览:662
阳光压缩机继电器 浏览:969
修改阿里云服务器密码 浏览:815
lk4102加密芯片 浏览:588
怎么更改app店面 浏览:489
设备部门如何做好服务器 浏览:849
androido下载 浏览:478
神奇高量战法副图源码 浏览:830
汇编语言设计凯撒密码加密器 浏览:392
主次梁加密是加在哪里 浏览:664
模板匹配算法matlab 浏览:825
外地程序员去北京 浏览:24
安卓机换苹果12如何转移数据 浏览:420
互联网ntp服务器地址及端口 浏览:613
pdf到word转换器 浏览:269
飞行解压素材 浏览:498
51单片机指令用背吗 浏览:936
unityai算法 浏览:834