亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? tftlcd.c

?? 多功能MP3代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "COMM.H"	 
#include "font.h"      
//液晶顯示 淘寶超值27元的液晶
//加入了GRAM 讀寫(xiě)的函數(shù),可以讀取指定GRAM的內(nèi)容了				 	    
//正點(diǎn)原子@SCUT
//2009/6/08 
//V1.3
//修改了數(shù)字顯示函數(shù)TFT_ShowNum,可以支持0~65536數(shù)字范圍.		   
//-----------------TFT端口定義---------------- 
#define	TFT_RS	(1<<0)  //數(shù)據(jù)/命令選擇端口	PB0
#define	TFT_WR	(1<<1)  //數(shù)據(jù)端口			PB1
#define	TFT_CS	(1<<2)  //片選端口  	    PB2
#define	TFT_LED (1<<2)  //TFT背光    		PA2
#define	TFT_RST	(1<<3)  //硬復(fù)位			PA3
#define	TFT_RD	(1<<4)  //時(shí)鐘端口			PA4
														    
#define TFT_RS_SET(x)   GPIOB->ODR=(GPIOB->ODR&~TFT_RS)|(x ? TFT_RS:0)
#define TFT_WR_SET(x)   GPIOB->ODR=(GPIOB->ODR&~TFT_WR)|(x ? TFT_WR:0)
#define TFT_CS_SET(x)   GPIOB->ODR=(GPIOB->ODR&~TFT_CS)|(x ? TFT_CS:0)
													    
#define TFT_LED_SET(x)  GPIOA->ODR=(GPIOA->ODR&~TFT_LED) |(x ? TFT_LED:0) 
#define TFT_RST_SET(x)  GPIOA->ODR=(GPIOA->ODR&~TFT_RST)|(x ? TFT_RST:0)	
#define TFT_RD_SET(x)   GPIOA->ODR=(GPIOA->ODR&~TFT_RD) |(x ? TFT_RD:0)		  
 
//PC0~7,作為數(shù)據(jù)線
#define DATAOUT(x) GPIOC->ODR=(GPIOC->ODR&0xffffff00)|(x&0xff);//數(shù)據(jù)輸出	
#define DATAIN     GPIOC->IDR&0xff;//數(shù)據(jù)輸入    
//畫(huà)筆顏色
u16  POINT_COLOR=RED;//默認(rèn)紅色    
u16  BACK_COLOR=WHITE;//背景顏色.默認(rèn)為白色
/*------------------------液晶說(shuō)明------------------------------
液晶型號(hào)位置
大小:320*240
像素:65K色
VCC   3.3V
VCCIO 2.7~3.3V
數(shù)據(jù)線操作電壓:3.3V
顏色排列:以一個(gè)十六位的數(shù)存放一個(gè)點(diǎn)的顏色 RGB:565 即:最高五位為紅色
灰階.中間六位為綠色灰階.最低五位為藍(lán)色灰階.
例如:0XF800 純紅色 
     0X07E0 純綠色
     0X001F 純藍(lán)色
----------------------------------------------------------------*/
		 
//寫(xiě)8位數(shù)據(jù)函數(shù)
//用宏定義,提高速度.
#define TFT_WR_DATA(data){\
TFT_RS_SET(1);\
TFT_CS_SET(0);\
DATAOUT(data);\
TFT_WR_SET(0);\
TFT_WR_SET(1);\
TFT_CS_SET(1);\
TFT_RS_SET(0);\
} 	 			    

//寫(xiě)寄存器函數(shù)
void TFT_WR_REG(u8 data)
{ 
	TFT_RS_SET(0);//寫(xiě)地址  
 	TFT_CS_SET(0); 
	DATAOUT(data); 
	TFT_WR_SET(0); 
	TFT_WR_SET(1); 
	TFT_CS_SET(1); 
	TFT_RS_SET(1);
}  
//寫(xiě)寄存器數(shù)據(jù)函數(shù)   
//dbw:數(shù)據(jù)位數(shù),1為16位,0為8位。
//index:寄存器編號(hào)
//val:值
//輸入:dbw 數(shù)據(jù)位數(shù),1為16位,0為8位。
void TFT_WR_CMD(u8 dbw,u8 index,u16 val)
{
	TFT_WR_REG(index);  
	if(dbw)TFT_WR_DATA(val>>8);	  
	TFT_WR_DATA(val&0xff);
}  		 
//寫(xiě)16位數(shù)據(jù)函數(shù)
void TFT_WR_Data16(u16 val)
{  
	TFT_WR_DATA(val>>8);  
    TFT_WR_DATA(val&0xff);
} 
//畫(huà)點(diǎn)
//x:0~239
//y:0~319
//POINT_COLOR:此點(diǎn)的顏色
void TFT_DrawPoint(u8 x,u16 y)
{
	TFT_WR_CMD(0,0x2,x);//設(shè)置到原點(diǎn)
	TFT_WR_CMD(1,0x3,y);						  
	//TFT_WR_CMD(0,0x04,0xEF);  //結(jié)束列數(shù)(0~239)	
	//TFT_WR_CMD(1,0x05,0x013F);//結(jié)束行數(shù)(0~319) 
	TFT_WR_REG(0x0E);
	TFT_WR_Data16(POINT_COLOR); 
}  
u16 Screen_Data[756];
//讀取指定點(diǎn)的GRAM
unsigned int TFT_RD_GRAM(u8 x,u16 y) 
{
	u16 t;
	TFT_WR_CMD(0,0x2,x);//設(shè)置到原點(diǎn)
	TFT_WR_CMD(1,0x3,y);  
	TFT_WR_REG(0x0F);
	GPIOC->CRL=0X88888888; //PC0-7 上拉輸入
	GPIOC->ODR|=0X00FF;    //全部輸出高

	TFT_RS_SET(1);
	TFT_CS_SET(0); 

	TFT_RD_SET(0);					   
	TFT_RD_SET(1);
	//丟棄第一個(gè)不確定的數(shù)	 
	TFT_RD_SET(0);	  
	TFT_RD_SET(1);
	t=DATAIN;
	t<<=8;
	TFT_RD_SET(0);	   
	TFT_RD_SET(1);
	t+=DATAIN;	 
	TFT_CS_SET(1);
	TFT_RS_SET(0);
	GPIOC->CRL=0X33333333; //PC0-7 輸出
	GPIOC->ODR|=0X00FF;    //全部輸出高
	return t;
}
//從指定地址開(kāi)始讀取 42*18大小的方塊 
void READ_GRAM(u8 x,u16 y)
{
	u8 t,i;
	u16 temp;
	for(t=0;t<18;t++)
	{
		for(i=0;i<42;i++)
		{
			temp=(u16)t*42+i;
			Screen_Data[temp]=TFT_RD_GRAM(x+i,y+t);
		}
	}
}
//恢復(fù)指定地址的數(shù)據(jù)
void RECOVER_GRAM(u8 x,u16 y)
{
	u8 t,i;
	u16 temp;   			   
	for(t=0;t<18;t++)
	{
		for(i=0;i<42;i++)
		{
			temp=(u16)t*42+i;
			POINT_COLOR=Screen_Data[temp];
			TFT_DrawPoint(x+i,y+t);
		}
	}						   
}

//清屏函數(shù)   
//全屏顯示單色
void TFT_CLEAR(u16 color)
{                    
    u32 n;
	TFT_WR_CMD(0,0x2,0);//設(shè)置到原點(diǎn)
	TFT_WR_CMD(1,0x3,0);    
	 
	TFT_WR_CMD(0,0x04,239);	//結(jié)束列數(shù)(0~239)	
	TFT_WR_CMD(1,0x05,319);//結(jié)束行數(shù)(0~319)    			 
	TFT_WR_REG(0x0E);	   
	for(n=0;n<76800;n++)TFT_WR_Data16(color);//顯示白色 
	SD_Init();//初始化SD卡,在意外拔出之后可以正常使用
} 
//在指定區(qū)域內(nèi)填充指定顏色
//區(qū)域大小:
//  (xend-xsta)*(yend-ysta)
void TFT_Fill(u8 xsta,u16 ysta,u8 xend,u16 yend,u16 color)
{                    
    u32 n;
	TFT_WR_CMD(0,0x2,xsta);//設(shè)置到原點(diǎn)
	TFT_WR_CMD(1,0x3,ysta);    
	 
	TFT_WR_CMD(0,0x04,xend);//結(jié)束列數(shù)(0~239)	
	TFT_WR_CMD(1,0x05,yend);//結(jié)束行數(shù)(0~319)   
	
	TFT_WR_REG(0x0E);
	n=(u32)(yend-ysta+1)*(xend-xsta+1);    
	while(n--)TFT_WR_Data16(color);//顯示所填充的顏色. 
	//恢復(fù)初始狀態(tài)
	TFT_WR_CMD(0,0x2,0);//設(shè)置到原點(diǎn)
	TFT_WR_CMD(1,0x3,0);
	TFT_WR_CMD(0,0x04,239);//結(jié)束列數(shù)(0~239)	
	TFT_WR_CMD(1,0x05,319);//結(jié)束行數(shù)(0~319) 
}   
 
 
//畫(huà)線
//x1,y1:起點(diǎn)坐標(biāo)
//x2,y2:終點(diǎn)坐標(biāo)  
void TFT_DrawLine(u8 x1, u16 y1, u8 x2, u16 y2)
{
    u16 x, y, t;
	if((x1==x2)&&(y1==y2))TFT_DrawPoint(x1, y1);
	else if(abs(y2-y1)>abs(x2-x1))//斜率大于1 
	{
		if(y1>y2) 
		{
			t=y1;
			y1=y2;
			y2=t; 
			t=x1;
			x1=x2;
			x2=t; 
		}
		for(y=y1;y<y2;y++)//以y軸為基準(zhǔn) 
		{
			x=(u32)(y-y1)*(x2-x1)/(y2-y1)+x1;
			TFT_DrawPoint(x, y);  
		}
	}
	else     //斜率小于等于1 
	{
		if(x1>x2)
		{
			t=y1;
			y1=y2;
			y2=t;
			t=x1;
			x1=x2;
			x2=t;
		}   
		for(x=x1;x<=x2;x++)//以x軸為基準(zhǔn) 
		{
			y =(u32)(x-x1)*(y2-y1)/(x2-x1)+y1;
			TFT_DrawPoint(x,y); 
		}
	} 
}
//畫(huà)矩形
void TFT_DrawRectangle(u8 x1, u16 y1, u8 x2, u16 y2)
{
	TFT_DrawLine(x1,y1,x2,y1);
	TFT_DrawLine(x1,y1,x1,y2);
	TFT_DrawLine(x1,y2,x2,y2);
	TFT_DrawLine(x2,y1,x2,y2);
}
//在指定位置畫(huà)一個(gè)指定大小的圓
//(x,y):中心點(diǎn)
//r    :半徑
void draw_circle(u8 x0,u16 y0,u8 r)
{
	int a,b;
	int di;
	a=0;
	b=r;
	di=3-2*r;             //判斷下個(gè)點(diǎn)位置的標(biāo)志
	while(a<=b)
	{
		TFT_DrawPoint(x0-b,y0-a);             //3           
		TFT_DrawPoint(x0+b,y0-a);             //0           
		TFT_DrawPoint(x0-a,y0+b);             //1       
		TFT_DrawPoint(x0-b,y0-a);             //7           
		TFT_DrawPoint(x0-a,y0-b);             //2             
		TFT_DrawPoint(x0+b,y0+a);             //4               
		TFT_DrawPoint(x0+a,y0-b);             //5
		TFT_DrawPoint(x0+a,y0+b);             //6 
		TFT_DrawPoint(x0-b,y0+a);             
		a++;
		/***使用Bresenham算法畫(huà)圓**/     
		if(di<0)di +=4*a+6;	  
		else
		{
			di+=10+4*(a-b);   
			b--;
		} 
		TFT_DrawPoint(x0+a,y0+b);
	}
} 
//畫(huà)一個(gè)觸摸點(diǎn)
//用來(lái)校準(zhǔn)用的
void drow_touch_point(u8 x,u16 y)
{
	TFT_DrawLine(x-12,y,x+13,y);//橫線
	TFT_DrawLine(x,y-12,x,y+13);//豎線
	TFT_DrawPoint(x+1,y+1);
	TFT_DrawPoint(x-1,y+1);
	TFT_DrawPoint(x+1,y-1);
	TFT_DrawPoint(x-1,y-1);
	draw_circle(x,y,6);//畫(huà)中心圈
}			  
//在指定位置顯示一個(gè)字符
//x:0~234
//y:0~308
//num:要顯示的字符:" "--->"~"
//size:字體大小 12/16
//mode:疊加方式(1)還是非疊加方式(0)
void TFT_ShowChar(u8 x,u16 y,u8 num,u8 size,u8 mode)
{       
#define MAX_CHAR_POSX 232
#define MAX_CHAR_POSY 304 
    u8 temp;
    u8 pos,t;      
    if(x>MAX_CHAR_POSX||y>MAX_CHAR_POSY)return;
    //設(shè)定一個(gè)字符所占的大小 
    //開(kāi)辟空間
	TFT_WR_CMD(0,0x00,0x04);
	TFT_WR_CMD(0,0x2,x);//
	TFT_WR_CMD(1,0x3,y); 
	TFT_WR_CMD(0,0x04,x+(size/2-1));	//結(jié)束列數(shù)(0~239)	
	TFT_WR_CMD(1,0x05,y+size-1);//結(jié)束行數(shù)(0~319)   
	TFT_WR_REG(0x0E);  
	if(num<' '||num>'~')num=' ';//對(duì)非法字符處理,用空格代替
	num=num-' ';//得到偏移后的值
	if(!mode) //非疊加方式
	{
		for(pos=0;pos<size;pos++)
		{
			if(size==12)temp=asc2_1206[num][pos];//調(diào)用1206字體
			else temp=asc2_1608[num][pos];		 //調(diào)用1608字體
			for(t=0;t<size/2;t++)
		    {                 
		        if(temp&0x01)TFT_WR_Data16(POINT_COLOR);
		        else TFT_WR_Data16(BACK_COLOR);     
		        temp>>=1; 
		    }
		}	
	}else//疊加方式
	{
		for(pos=0;pos<size;pos++)
		{
			if(size==12)temp=asc2_1206[num][pos];//調(diào)用1206字體
			else temp=asc2_1608[num][pos];		 //調(diào)用1608字體
			for(t=0;t<size/2;t++)
		    {                 
		        if(temp&0x01)TFT_DrawPoint(x+t,y+pos);//畫(huà)一個(gè)點(diǎn)     
		        temp>>=1; 
		    }
		}
	}		
	//恢復(fù)窗體大小						    					     
	TFT_WR_CMD(0,0x04,239);//結(jié)束列數(shù)	
	TFT_WR_CMD(1,0x05,319);//結(jié)束行數(shù) 
} 
//在指定位置顯示一個(gè)大字符
//30*60大小的
//num:0~9
//:/./C這三個(gè)字符
void TFT_ShowBigChar(u8 x,u16 y,u8 num)
{
    u8 n,t;
	u8 temp;
	u8 t1,deadline;
	TFT_WR_CMD(0,0x2,x);//設(shè)置到原點(diǎn)
	TFT_WR_CMD(1,0x3,y);   
	TFT_WR_CMD(0,0x04,x+29);//結(jié)束列數(shù)(0~239)	
	TFT_WR_CMD(1,0x05,y+59); //結(jié)束行數(shù)(0~319)
	if(num==':')t1=150;
	else if(num=='.')t1=165;
	else if(num=='C')t1=180;
	else t1=15*num;
	deadline=t1+15;
	TFT_WR_REG(0x0E);	   
	for(;t1<deadline;t1++)
	{	 
		for(n=0;n<16;n++)
		{
			temp=BIG_ASCII[t1][n];
			for(t=0;t<8;t++)
			{
				if(temp&0x80) TFT_WR_Data16(POINT_COLOR); 
				else TFT_WR_Data16(BACK_COLOR);
				temp<<=1;
				if(((n%4)==3)&&t==5)break;
			}
		}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区在线播放 | 国产一级精品在线| 日本乱码高清不卡字幕| 2019国产精品| 精品制服美女丁香| 久久综合九色综合97婷婷| 96av麻豆蜜桃一区二区| 欧美激情在线一区二区三区| 国产一区激情在线| 亚洲一区二区三区中文字幕在线| 成人av电影在线播放| 国产精品福利一区二区三区| 9i看片成人免费高清| 亚洲码国产岛国毛片在线| 色综合色狠狠天天综合色| 亚洲美女屁股眼交| 国产蜜臀97一区二区三区| 成人av在线电影| 蜜乳av一区二区| 精品国产精品网麻豆系列| 不卡视频在线看| 国产美女在线观看一区| 看电影不卡的网站| 中文字幕一区二区三中文字幕| 欧美伊人精品成人久久综合97| 美女网站一区二区| 石原莉奈在线亚洲三区| 日韩免费视频一区| 成人性视频免费网站| 亚洲资源在线观看| 一区二区三区四区乱视频| 日韩网站在线看片你懂的| 国产一区二区毛片| 精品在线观看视频| 久久www免费人成看片高清| 日本美女一区二区| 综合分类小说区另类春色亚洲小说欧美| 欧美色图一区二区三区| 三级影片在线观看欧美日韩一区二区 | 国产成人综合亚洲91猫咪| 亚洲三级在线观看| 中文字幕日本不卡| 亚洲色图在线播放| 一区二区三区四区在线播放 | 正在播放亚洲一区| 国产一区二区免费看| 国产中文字幕精品| 性做久久久久久久免费看| 久久久另类综合| 在线不卡a资源高清| 成人国产精品免费网站| av电影天堂一区二区在线| 成人综合在线视频| 99久久国产综合精品女不卡| 一本久道中文字幕精品亚洲嫩 | 久久影院午夜论| 久久精品欧美一区二区三区麻豆| 欧美日韩在线三区| 欧美丰满少妇xxxxx高潮对白| 欧美日韩精品欧美日韩精品| 成人午夜免费av| 99riav一区二区三区| 在线一区二区三区| 91麻豆精品国产91久久久久| 精品国产成人在线影院| 国产亚洲欧美日韩在线一区| 国产精品成人在线观看| 亚洲最大成人综合| 轻轻草成人在线| 婷婷亚洲久悠悠色悠在线播放 | 国内精品久久久久影院一蜜桃| 国产精品资源在线观看| 免费人成在线不卡| 国产不卡在线视频| 国产一区二区福利视频| 91亚洲男人天堂| 成人av片在线观看| 欧美日韩视频一区二区| 久久综合资源网| 亚洲日本电影在线| 日本午夜一本久久久综合| 国产精品18久久久久久久网站| 一本大道久久a久久精品综合| 欧美一区二区三区免费视频| 欧美另类久久久品| 国产欧美一区二区三区沐欲| 一区二区三区在线高清| 国产九色sp调教91| 欧美在线一二三| 欧美老肥妇做.爰bbww视频| 久久久久久夜精品精品免费| 曰韩精品一区二区| 亚洲国产欧美一区二区三区丁香婷| 亚洲欧美综合网| 毛片av一区二区| 91在线视频免费观看| 欧美一区二区网站| 亚洲精品伦理在线| 国产综合久久久久久鬼色| 欧美美女bb生活片| 亚洲欧洲一区二区在线播放| 国模一区二区三区白浆 | 国产日韩三级在线| 日韩高清在线不卡| 色婷婷激情一区二区三区| 久久久www成人免费毛片麻豆| 亚洲成人免费看| 99精品视频一区| 久久久久国产精品厨房| 日韩成人午夜电影| 欧美在线免费观看视频| 国产精品国产精品国产专区不蜜 | 洋洋成人永久网站入口| www.欧美日韩国产在线| 久久丝袜美腿综合| 日本aⅴ精品一区二区三区| 日本电影欧美片| 亚洲欧美在线视频观看| 成人精品免费视频| 久久久综合激的五月天| 美腿丝袜一区二区三区| 欧美一级久久久久久久大片| 亚洲 欧美综合在线网络| 欧美在线你懂得| 亚洲一级二级三级| 在线观看精品一区| 亚洲欧美一区二区三区久本道91| 成人一区二区三区在线观看| 国产日韩亚洲欧美综合| 粉嫩绯色av一区二区在线观看 | 亚洲女人****多毛耸耸8| 成a人片国产精品| 国产精品高潮呻吟| 99精品国产99久久久久久白柏| 国产精品国产自产拍在线| 成人黄色一级视频| 中文字幕 久热精品 视频在线| 国产成a人亚洲精| 国产欧美精品国产国产专区| 成人午夜视频在线观看| 国产精品午夜免费| 久久99久久精品| 精品国产伦理网| 国产一区福利在线| 国产精品欧美久久久久一区二区| 不卡区在线中文字幕| 亚洲六月丁香色婷婷综合久久 | 欧美乱妇15p| 秋霞午夜av一区二区三区| 日韩女优制服丝袜电影| 国产真实乱子伦精品视频| 国产欧美一区二区精品久导航| 粗大黑人巨茎大战欧美成人| 国产精品的网站| 在线观看视频91| 日韩精品一二三四| 精品国产3级a| 成人av中文字幕| 亚洲福利视频三区| 欧美大白屁股肥臀xxxxxx| 国产乱子伦视频一区二区三区 | 亚洲日本免费电影| 在线不卡欧美精品一区二区三区| 精品一区二区三区免费播放| 国产日韩v精品一区二区| 色拍拍在线精品视频8848| 天天操天天色综合| 国产亚洲欧美一级| 欧美综合天天夜夜久久| 奇米精品一区二区三区在线观看一| 精品久久一区二区| 99久久伊人精品| 日本亚洲视频在线| 国产精品成人免费| 欧美男同性恋视频网站| 国产精品一线二线三线精华| 日韩理论片一区二区| 日韩欧美在线不卡| 97精品久久久午夜一区二区三区 | 亚洲黄色免费电影| 久久亚洲精品国产精品紫薇| 在线一区二区观看| 国产成人在线观看| 香蕉成人伊视频在线观看| 国产午夜三级一区二区三| 在线观看成人小视频| 国产一区久久久| 五月激情六月综合| 国产精品免费久久| 日韩精品一区二区三区在线| 色婷婷香蕉在线一区二区| 国产一区二区影院| 日韩国产成人精品| 亚洲欧美日韩国产手机在线| 欧美大片一区二区三区| 欧美色视频在线| 99精品视频一区二区| 国产乱人伦精品一区二区在线观看| 五月婷婷久久综合| 亚洲女人****多毛耸耸8|