TFTHD66772驱动程序Word下载.docx
《TFTHD66772驱动程序Word下载.docx》由会员分享,可在线阅读,更多相关《TFTHD66772驱动程序Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
5)|(GET_BIT(GPIO3DATA,4)<
<
6)|(GET_BIT(GPIO3DATA,5)<
7))&
0xff//输入指令
#defineRST_0P0_8_LOW()//液晶复位管脚
#defineRST_1P0_8_HIGHT()
#defineRD_0P0_9_LOW()//液晶的RD管脚
#defineRD_1P0_9_HIGHT()
#defineWR_0P0_3_LOW()//液晶的WR管脚
#defineWR_1P0_3_HIGHT()
#defineRS_0P0_7_LOW()//液晶的RS管脚
#defineRS_1P0_7_HIGHT()
#defineCS_0P2_4_LOW()//液晶的CS管脚
#defineCS_1P2_4_HIGHT()
voidInput(void);
//管脚设置为输入
voidOutput(void);
//管脚设置为输出
voidDelay_ms(INT32UulTime);
//ms延时程序
voidDelay_us(INT32UulTime);
//us延时
voidtft_initial(void);
//初始化
voidgpio_output(INT32Utft_data);
//管脚输出数据
voidLCD_WR_REG(INT8Uindex);
//tft写寄存器
voidLCD_WR_CMD(INT8Uindex,INT16Uval);
//tft写指令
voidLCD_WR_Data(INT16Uval);
//tft写数据
INT16ULCD_RD_REG16(INT8Uindex);
//tft读取数据
voidLCD_clear(INT16Up);
//tft清屏指令
voidLcd_Frame(void);
//显示边框
voidGUI_Line(INT8Ux0,INT8Uy0,INT8Ux1,INT8Uy1,INT16URGB_Color);
//lcd画线
voidLcd_SetDrop(INT8Upostion_x,INT8Upostion_y,INT16URGB_Color);
//lcd画点
voidDisplayString(INT8USelect,INT8U*s,INT8Ux,INT8Uy);
//显示字符串
voidDisplayGB2312(INT8USelect,INT8Ugb,INT8Upostion_x,INT8Upostion_y);
//显示字符
voidDisplayChar(INT8USelect,INT8Ucasc,INT8Upostion_x,INT8Upostion_y);
INT16UconstColor[]={0xf800,0x07e0,0x001f,0xffe0,0x0000,0xffff,0x07ff,0xf81f};
//对应颜色红绿蓝黄黑白浅绿粉红
enumRGB{red=0,green,blue,yellow,black,white,light_green,pink};
说明:
更改管脚输入输出属性
voidInput(void)
{
GPIO2DIR&
=~P2_5;
GPIO2DIR&
=~P2_6;
=~P2_7;
=~P2_8;
=~P2_9;
=~P2_10;
GPIO3DIR&
=~P3_4;
GPIO3DIR&
=~P3_5;
}
voidOutput(void)
GPIO2DIR|=P2_5;
GPIO2DIR|=P2_6;
GPIO2DIR|=P2_7;
GPIO2DIR|=P2_8;
GPIO2DIR|=P2_9;
GPIO2DIR|=P2_10;
GPIO3DIR|=P3_4;
GPIO3DIR|=P3_5;
/***************************************************************************************
ms延时程序
voidDelay_ms(INT32UulTime)
INT32Ui=0;
while(ulTime--){//1.36ms
for(i=0;
i<
5000;
i++);
}
voidDelay_us(INT32UulTime)
while(ulTime--){//1.36us
5;
TFT初始化
voidtft_initial(void)
//模式选择
//IM0_1;
IM3_0;
//8bit,65kcolors
RST_0;
Delay_ms(200);
RST_1;
LCD_WR_CMD(0x00,0x0001);
//Start_osc
Delay_us(1000);
LCD_WR_CMD(0x03,0x0030);
//LCD_WR_CMD(0x03,0x0230);
LCD_WR_CMD(0x01,0x011D);
Delay_us(100);
LCD_WR_CMD(0x0a,0x0106);
Delay_us
(1);
LCD_WR_CMD(0x08,0x0707);
LCD_WR_CMD(0x0c,0x01);
LCD_WR_CMD(0x02,0x0400);
LCD_WR_CMD(0x0a,0x0107);
LCD_WR_CMD(0x12,0x0001);
//VciOUT=3V×
0.83=2.49V
//only100(=VCI),000(.92VCI),001(.83),010(.73VCI)isvalid.otherisinhibited
LCD_WR_CMD(0x0a,0x0101);
//LCD_WR_CMD(0x13,0x404);
//Delay_us
(1);
LCD_WR_CMD(0x0a,0x0101);
LCD_WR_CMD(0x11,0x0505);
//CAD=0;
LCD_WR_CMD(0x14,0x2c0f);
//last4bitmustbe1vcomg=1,
//VDV4-0==09-0e,10-12//otherisinhibited.
LCD_WR_CMD(0x0a,0x0102);
LCD_WR_CMD(0x10,0x1a10);
//ifVci>
3.0V,use0x1a10.
LCD_WR_CMD(0x0a,0x0100);
LCD_WR_CMD(0x13,0x0616);
//////////VERYIMPORTANT
//setVRH3-0tofitREG1out=3toDDVDH-0.5
LCD_WR_CMD(0x30,0x0003);
LCD_WR_CMD(0x31,0x0404);
LCD_WR_CMD(0x32,0x0303);
LCD_WR_CMD(0x33,0x0406);
LCD_WR_CMD(0x34,0x0404);
LCD_WR_CMD(0x35,0x0303);
LCD_WR_CMD(0x36,0x0407);
LCD_WR_CMD(0x37,0x0604);
LCD_WR_CMD(0x07,0x0037);
//***********SAP,APset****************
//BT2-0Ok,and...
//***********PONset********************
//////////
De