AVR驱动TFT内含颜色设置教案资料.docx

上传人:b****6 文档编号:6307099 上传时间:2023-01-05 格式:DOCX 页数:13 大小:105.30KB
下载 相关 举报
AVR驱动TFT内含颜色设置教案资料.docx_第1页
第1页 / 共13页
AVR驱动TFT内含颜色设置教案资料.docx_第2页
第2页 / 共13页
AVR驱动TFT内含颜色设置教案资料.docx_第3页
第3页 / 共13页
AVR驱动TFT内含颜色设置教案资料.docx_第4页
第4页 / 共13页
AVR驱动TFT内含颜色设置教案资料.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

AVR驱动TFT内含颜色设置教案资料.docx

《AVR驱动TFT内含颜色设置教案资料.docx》由会员分享,可在线阅读,更多相关《AVR驱动TFT内含颜色设置教案资料.docx(13页珍藏版)》请在冰豆网上搜索。

AVR驱动TFT内含颜色设置教案资料.docx

AVR驱动TFT内含颜色设置教案资料

 

AVR驱动TFT(内含颜色设置)

AVR128驱动2.4寸TFT(主控芯片ILI9325)

单片机2010-08-2903:

46:

53阅读139评论0  字号:

大中小 订阅

 

1、原理图:

AVR128与TFT最小系统原理图。

 

 

2、程序

/************************************/*lcd.c************************************/

#include"lcd.h"

intmain(void)

{

 InitIO();/*IO口初始化*/

 ILI9325_Initial();/*LCD初始化*/

 ClearScreen(0xFFFF);/*清屏*/

 //LCD_SetPos(0,0,239,319);

 while

(1)

 {

 Pant(0xf800,0,240,0,40);   //红色

 Pant(0X07E0,0,240,40,80);  //绿色

 Pant(0x001f,0,240,80,120); //蓝色

 Pant(0xf800,0,240,120,160);//红色

 Pant(0X07E0,0,240,160,200);//绿色

 Pant(0x001f,0,240,200,240);//蓝色

 Pant(0xf800,0,240,240,280);//红色

 Pant(0X07E0,0,240,280,320);//绿色

 delayms(1000);

 delayms(1000);

 ClearScreen(0xFFFF);

 

 Pant(0xf800,0,240,0,320);//红色

 delayms(1000);

 delayms(1000);

 ClearScreen(0xFFFF);

 

 Pant(0X07E0,0,240,0,320);//绿色

 delayms(1000);

 delayms(1000);

 ClearScreen(0xFFFF);

 

 Pant(0x001f,0,240,0,320);//蓝色

 delayms(1000);

 delayms(1000);

 ClearScreen(0xFFFF);

   }

 return1;

}

 /************************************/*lcd.h************************************/

/*********************包含文件*************************/

#include

#include

#include

/*********************类型定义*************************/

typedefunsignedcharuint8;

typedefunsignedint uint16;

typedefunsignedlonguint32;

#defineWINDOW_XADDR_START 0x0050//HorizontalStartAddressSet

#defineWINDOW_XADDR_END 0x0051//HorizontalEndAddressSet

#defineWINDOW_YADDR_START 0x0052//VerticalStartAddressSet

#defineWINDOW_YADDR_END 0x0053//VerticalEndAddressSet

#defineGRAM_XADDR     0x0020//GRAMHorizontalAddressSet

#defineGRAM_YADDR     0x0021//GRAMVerticalAddressSet

#defineGRAMWR      0x0022//memorywrite

#define_nop_()asm("NOP")

#defineLCD_RS_DDR DDRG  //数据/命令切换

#defineLCD_RS_PORTPORTG

#defineLCD_RS_BIT 2

#defineLCD_CS_DDR DDRG //片选

#defineLCD_CS_PORTPORTG

#defineLCD_CS_BIT 3

#defineLCD_WR_DDR DDRG //写控制

#defineLCD_WR_PORTPORTG

#defineLCD_WR_BIT 0

#defineLCD_RD_DDR DDRG //读控制

#defineLCD_RD_PORT PORTG

#defineLCD_RD_BIT 1

#defineLCD_RST_DDRDDRG //复位

#defineLCD_RST_PORTPORTG

#defineLCD_RST_BIT4

#defineLCD_CS_H LCD_CS_PORT|=  1<

#defineLCD_CS_L LCD_CS_PORT&=~(1<

#defineLCD_RS_H LCD_RS_PORT|=  1<

#defineLCD_RS_L LCD_RS_PORT&=~(1<

 

#defineLCD_RST_H LCD_RST_PORT|=  1<

#defineLCD_RST_L LCD_RST_PORT&=~(1<

#defineLCD_WR_H LCD_WR_PORT|= 1<

#defineLCD_WR_L LCD_WR_PORT&=~(1<

#defineLCD_RD_H LCD_RD_PORT|= 1<

#defineLCD_RD_L LCD_RD_PORT&=~(1<

#defineComCtrl    PORTG

#defineComCtrlDDR DDRG

#defineDataH      PORTC

#defineDataL      PORTA

#defineDataDDRH   DDRC

#defineDataDDRL   DDRA

/****************************************************************************

作   者:

jundg

函数名:

voidInitIO(void)

函数功能:

IO口初始化

函数参数:

返回值:

********************************************************************************/

voidInitIO(void)

{

 ComCtrlDDR=0x1f;

 DataDDRH=0xff;

 DataDDRL=0xff;

 DataH=0xff;

 DataL=0xff;

 ComCtrl=0x1f;

}

/****************************************************************************

作   者:

jundg

函数名:

voiddelayms(unsignedintcount)

函数功能:

延时函数

函数参数:

时间值

返回值:

********************************************************************************/

voiddelayms(unsignedintcount)

{

   inti,j;                                                                               

   for(i=0;i

      {

     for(j=0;j<260;j++);

      }                                                                                    

}

/****************************************************************************

作   者:

jundg

函数名:

voidWrite_Cmd(unsignedcharDH,unsignedcharDL)

函数功能:

写命令

函数参数:

16bitCOM

返回值:

********************************************************************************/

voidWrite_Cmd(unsignedcharDH,unsignedcharDL)

{

 LCD_CS_L;

 LCD_RS_L;

 DataH=DH;

 LCD_WR_L;

 LCD_WR_H;

 DataL=DL;

 LCD_WR_L;

 LCD_WR_H;

 LCD_CS_H;

}

/****************************************************************************

作   者:

jundg

函数名:

voidWrite_Data(unsignedcharDH,unsignedcharDL)

函数功能:

写数据

函数参数:

16bitDATA

返回值:

********************************************************************************/

voidWrite_Data(unsignedcharDH,unsignedcharDL)

{

 LCD_CS_L;

 LCD_RS_H;

 DataH=DH;

 LCD_WR_L;

 LCD_WR_H;

 DataL=DL; 

 LCD_WR_L;

 LCD_WR_H;

 LCD_CS_H;

}

/****************************************************************************

作   者:

jundg

函数名:

void Write_Cmd_Data(unsignedcharx,unsignedinty)

函数功能:

写命令、数据

函数参数:

8bitCOM、8bitDATA

返回值:

********************************************************************************/

void Write_Cmd_Data(unsignedcharx,unsignedinty)

{

 unsignedcharm,n;

 m=y>>8;

 n=y;

 Write_Cmd(0x00,x);

 Write_Data(m,n);

}

/****************************************************************************

作   者:

jundg

函数名:

staticvoidLCD_SetPos(unsignedintx0,unsignedintx1,unsignedinty0,unsignedinty1)

函数功能:

设置显示区域

函数参数:

x0行起始点,x1行结束点,y0列起始点,y1列结束点

返回值:

********************************************************************************/

 

staticvoidLCD_SetPos(unsignedintx0,unsignedintx1,unsignedinty0,unsignedinty1)

{

 Write_Cmd_Data(WINDOW_XADDR_START,x0);

 Write_Cmd_Data(WINDOW_XADDR_END,x1);

 Write_Cmd_Data(WINDOW_YADDR_START,y0);

 Write_Cmd_Data(WINDOW_YADDR_END,y1);

 Write_Cmd_Data(GRAM_XADDR,x0);

 Write_Cmd_Data(GRAM_YADDR,y0);

 Write_Cmd(0x00,0x22);//LCD_WriteCMD(GRAMWR);

}

/****************************************************************************

作   者:

jundg

函数名:

voidPant(intdcolor,unsignedintx0,unsignedintx1,unsignedinty0,unsignedinty1)

函数功能:

设置显示区域并显示颜色

函数参数:

dcolor颜色值,x0行起始点,x1行结束点,y0列起始点,y1列结束点

返回值:

********************************************************************************/

voidPant(intdcolor,unsignedintx0,unsignedintx1,unsignedinty0,unsignedinty1)

{

 inti,j;

 LCD_SetPos(x0,x1,y0,y1);

   for(i=0;i<320;i++)

 {

  for(j=0;j<240;j++)

    {

        Write_Data(dcolor>>8,dcolor);

    }  

  }

}

/****************************************************************************

作   者:

jundg

函数名:

voidClearScreen(unsignedintbColor)

函数功能:

清屏

函数参数:

bColor=0xffff清屏

返回值:

********************************************************************************/

voidClearScreen(unsignedintbColor)

{

 unsignedinti,j;

 LCD_SetPos(0,240,0,320);//320x240

 for(i=0;i<322;i++)

 {

 

   for(j=0;j<240;j++)

       Write_Data(bColor>>8,bColor);

 }

}

/****************************************************************************

作   者:

jundg

函数名:

voidILI9325_Initial(void)

函数功能:

LCD初始化

函数参数:

返回值:

********************************************************************************/

voidILI9325_Initial(void)

{

  LCD_CS_H;

 delayms(5);

 LCD_RST_L;

 delayms(5);

 LCD_RST_H;

 delayms(5);

 delayms(50);

 Write_Cmd_Data(0x0001,0x0100);

 Write_Cmd_Data(0x0002,0x0700);

 Write_Cmd_Data(0x0003,0x1030);

 Write_Cmd_Data(0x0004,0x0000);

 Write_Cmd_Data(0x0008,0x0207); 

 Write_Cmd_Data(0x0009,0x0000);

 Write_Cmd_Data(0x000A,0x0000);

 Write_Cmd_Data(0x000C,0x0000);

 Write_Cmd_Data(0x000D,0x0000);

 Write_Cmd_Data(0x000F,0x0000);

//poweronsequenceVGHVGL

 Write_Cmd_Data(0x0010,0x0000);  

 Write_Cmd_Data(0x0011,0x0007); 

 Write_Cmd_Data(0x0012,0x0000); 

 Write_Cmd_Data(0x0013,0x0000);

//vgh

 Write_Cmd_Data(0x0010,0x1290);  

 Write_Cmd_Data(0x0011,0x0227);

 //delayms(100);

 //vregiout

 Write_Cmd_Data(0x0012,0x001d);//0x001b

 //delayms(100);

 //vomamplitude

 Write_Cmd_Data(0x0013,0x1500);

 //delayms(100);

 //vomH

 Write_Cmd_Data(0x0029,0x0018);

 Write_Cmd_Data(0x002B,0x000D);

//gamma

 Write_Cmd_Data(0x0030,0x0004);

 Write_Cmd_Data(0x0031,0x0307);

 Write_Cmd_Data(0x0032,0x0002);//0006

 Write_Cmd_Data(0x0035,0x0206);

 Write_Cmd_Data(0x0036,0x0408);

 Write_Cmd_Data(0x0037,0x0507);

 Write_Cmd_Data(0x0038,0x0204);//0200

 Write_Cmd_Data(0x0039,0x0707);

 Write_Cmd_Data(0x003C,0x0405);//0504

 Write_Cmd_Data(0x003D,0x0F02);

 //ram

 Write_Cmd_Data(0x0050,0x0000);

 Write_Cmd_Data(0x0051,0x00EF);

 Write_Cmd_Data(0x0052,0x0000);

 Write_Cmd_Data(0x0053,0x013F); 

 Write_Cmd_Data(0x0060,0xA700);

 Write_Cmd_Data(0x0061,0x0001);

 Write_Cmd_Data(0x006A,0x0000);

 //

 Write_Cmd_Data(0x0080,0x0000);

 Write_Cmd_Data(0x0081,0x0000);

 Write_Cmd_Data(0x0082,0x0000);

 Write_Cmd_Data(0x0083,0x0000);

 Write_Cmd_Data(0x0084,0x0000);

 Write_Cmd_Data(0x0085,0x0000);

 //

 Write_Cmd_Data(0x0090,0x0010);

 Write_Cmd_Data(0x0092,0x0600);

 Write_Cmd_Data(0x0093,0x0003);

 Write_Cmd_Data(0x0095,0x0110);

 Write_Cmd_Data(0x0097,0x0000);

 Write_Cmd_Data(0x0098,0x0000);

 Write_Cmd_Data(0x0007,0x0133);

// Write_Cmd_Data(0x0022);//  

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1