2.4寸彩屏430例程 彩屏驱动部分

2026/4/26 16:36:57

这是我自己参照王伟明老师的视屏教程和他提供的51例程所更改的MSP430 14系列单片机的TFT彩屏例程,该例程分为含三部分,一为主函数(main())部分,彩屏驱动部分,和彩屏GUI函数部分。本部分为彩屏驱动函数部分。

本彩屏是使用的是16位的数据线 彩屏图片为:

接线图片为:

注意:图中排针脚标号不对,接地的为1;

彩屏驱动程序.h文件 TFT.h

#include

#define Bus_16 //16位数据模式,如果使用8位模式,请注释此语句,如果使用16位模式,请打开此句

#define LCD_DataPortH P2OUT //高8位数据口,8位模式下只使用高8位 #define LCD_DataPortL P1OUT //低8位数据口 ,8位模式下低8位可以不接线 #define LCD_RS_H P4OUT|=(1<<6) //数据切换 #define LCD_RS_L P4OUT&=~(1<<6) //命令切换 #define LCD_WR_H P4OUT|=(1<<5) //写控制 #define LCD_WR_L P4OUT&=~(1<<5) //写关控制 #define LCD_RD_H P4OUT|=(1<<4) //读控制 #define LCD_RD_L P4OUT&=~(1<<4) //读关控制 #define LCD_CS_H P4OUT|=(1<<3) //片选 #define LCD_CS_L P4OUT&=~(1<<3) //关片选 #define LCD_REST_H P4OUT|=(1<<1) //复位 #define LCD_REST_L P4OUT&=~(1<<1) //关复位

void delayms(int count);

void LCD_Writ_Bus(char VH,char VL); void LCD_Write_COM(char VH,char VL); void LCD_Write_DATA(char VH,char VL);

void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2); void LCD_Init(void);

void Pant(char VH,char VL);

void write_data_u16(unsigned int dat);

void LCD_setxy(unsigned char x,unsigned int y);

彩屏驱动程序.c文件 TFT.c

#include #include \//#include \//#include \

unsigned int color[]={0xf800,0x07e0,0x001f,0xffe0,0x0000,0xffff,0x07ff,0xf81f};

void delayms(int count) // /* X1ms */ {

int i,j;

for(i=0;i

for(j=0;j<100;j++); }

//#ifdef Bus_16 //条件编译-16位数据模式

void LCD_Writ_Bus(char VH,char VL) //并行数据写入函数 {

LCD_DataPortH=VH; LCD_DataPortL=VL; LCD_WR_L; LCD_WR_H; }

/*#else //条件编译-8位数据模式

void LCD_Writ_Bus(char VH,char VL) //并行数据写入函数 {

LCD_DataPortH=VH; LCD_WR_L; LCD_WR_H; LCD_DataPortH=VL; LCD_WR_L; LCD_WR_H; }

#endif*/

void LCD_Write_COM(char VH,char VL) //发送命令 {

LCD_RS_L; LCD_Writ_Bus(VH,VL); }

void LCD_Write_DATA(char VH,char VL) //发送数据 {

LCD_RS_H; LCD_Writ_Bus(VH,VL); }

//==============================================================

//写16位数据

//功能: 写一个数据到TFT控制器。 //入口参数: dat为要写入的16位数据。 //出口参数: 无

void write_data_u16(unsigned int dat) { unsigned char m,n; m=dat>>8; n=dat; LCD_Write_DATA(m,n); }

void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2) {

LCD_Write_COM(0x00,0x20);LCD_Write_DATA(x1>>8,x1); //设置X坐标位置 LCD_Write_COM(0x00,0x21);LCD_Write_DATA(y1>>8,y1); //设置Y坐标位置 LCD_Write_COM(0x00,0x50);LCD_Write_DATA(x1>>8,x1); //开始X LCD_Write_COM(0x00,0x52);LCD_Write_DATA(y1>>8,y1); //开始Y LCD_Write_COM(0x00,0x51);LCD_Write_DATA(x2>>8,x2); //结束X LCD_Write_COM(0x00,0x53);LCD_Write_DATA(y2>>8,y2); //结束Y LCD_Write_COM(0x00,0x22); }

//===============================================================

//设定当前显示坐标

//入口参数: x,y为当前显示坐标。 //出口参数: 无

//说明:本函数实际上是LCD_setwindow函数的一个特例,显示窗口为最小,仅是一个像素点。

void LCD_setxy(unsigned char x,unsigned int y) { Address_set(x,y,x,y); }

void LCD_Init(void) {

LCD_REST_H; delayms(10); LCD_REST_L; delayms(10); LCD_REST_H; LCD_CS_H; LCD_RD_H;


2.4寸彩屏430例程 彩屏驱动部分.doc 将本文的Word文档下载到电脑
搜索更多关于: 2.4寸彩屏430例程 彩屏驱动部分 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219