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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? +

?? STM32的恒溫消毒柜設計
??
?? 第 1 頁 / 共 2 頁
字號:
/******************** CHD1807 Team **************************
 * 文件名  :lcd.c
 * 描述    :LCD 應用函數庫。
 *           實現的功能:清屏、畫點、劃線、顯示數字、字符串、圖片、漢字         
 * 實驗平臺:CHD1807-STM32開發板
 * 庫版本  :ST3.5.0
**********************************************************************************/
#include "lcd.h"
#include "sd_fs_app.h"
#include "ascii.h"		
#include "asc_font.h"
#include <stdlib.h>


u16 POINT_COLOR = RED;					      /*描點默認顏色*/
extern volatile u8 display_direction;		/*0:橫屏 1:豎屏*/


/*************************************API START*************************************************************/


/*****************************************
 * 函數名:LCD_Init
 * 描述  :LCD 控制 I/O 初始化
 *         LCD FSMC 初始化
 *         LCD 控制器 HX8347 初始化 
 * 輸入  : 無
 * 輸出  :無
 * 舉例  :無
 * 注意  :無
******************************************/    
void LCD_Init(void)
{
    unsigned long i;   
    LCD_GPIO_Config();
    LCD_FSMC_Config();		
    LCD_Rst();
		Lcd_init_conf();		     
    Lcd_data_start();   
    for(i=0; i<(320*240); i++)		 		
    {
        LCD_WR_Data(BLUE); 					    
    }    


}



/******************************************************
 * 函數名:LCD_Rectangle
 * 描述  :在指定坐標處顯示指定長寬的矩形
 * 輸入  : -x1      橫向矩形起點 0~319
           -y1      縱向矩形起點 0~239
		   -len     橫向長度 0~319
		   -wid     縱向寬度 0~239
		   -rgb565  填充顏色
 * 輸出  :無
 * 舉例  :	LCD_Rectangle(10,10,120,160,0);
		    LCD_Rectangle(200,200,120,40,0);
 * 注意  :	已測試
*********************************************************/    
void LCD_Rectangle(u16 x,u16 y,u16 len,u16 wid,u16 rgb565)
{                    
   u32 n, temp;
	 Set_direction(0);	 						/*設定方向為橫向*/
   LCD_open_windows(x,y,len,wid);   
   temp = (u32)len*wid;    
   for(n=0; n<temp; n++)
	 {
        LCD_WR_Data( rgb565 );
	 }
	 
	  
}


/******************************************************
 * 函數名:LCD_Point
 * 描述  :在指定坐標處顯示一個點
 * 輸入  : -x 橫向顯示位置 0~319
           -y 縱向顯示位置 0~239
 * 輸出  :無
 * 舉例  :	LCD_Point(100,200);
		   	LCD_Point(10,200);
		   	LCD_Point(300,220);
 * 注意  :	(0,0)位置為液晶屏左上角 已測試
*********************************************************/    
void LCD_Point(u16 x,u16 y)
{
    LCD_open_windows(x,y,1,1);   
    LCD_WR_Data(POINT_COLOR);	
} 


/******************************************************
 * 函數名:LCD_ColorPoint
 * 描述  :在指定坐標處顯示一個指定顏色的點
 * 輸入  : -x      橫向顯示位置 0~319
           -y      縱向顯示位置 0~239
					 -rgb565 指定顏色
 * 輸出  :無
 * 舉例  :	LCD_ColorPoint(100,200,0);
		   	LCD_ColorPoint(10,200,100);
		   	LCD_ColorPoint(300,220,1000);
 * 注意  :	(0,0)位置為液晶屏左上角 已測試
*********************************************************/    
void LCD_ColorPoint(u16 x,u16 y, u16 rgb565)
{

      LCD_open_windows(x,y,1,1); 
      LCD_WR_Data(rgb565);	
} 


/******************************************************
 * 函數名:LCD_Line
 * 描述  :在指定兩點之間畫直線
 * 輸入  : -x1  橫向起點 0~319
           -y1  縱向起點 0~239
		   -x2  橫向終點 0~319
		   -y2  縱向終點 0~239 
 * 輸出  :無
 * 舉例  :	LCD_Line(10,10, 319, 239);
			LCD_Line(10,10, 100, 150);
			LCD_Line(100, 150,10,10 );
 * 注意  :	已測試
 *********************************************************/    
void LCD_Line(u16 x1, u16 y1, u16 x2, u16 y2)
{
    u16 x, y, t;

		Set_direction(0);
    if( (x1 == x2) && (y1 == y2) )
        LCD_Point(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軸為基準*/ 
        {
            x = (u32)(y-y1)*(x2-x1) / (y2-y1) + x1;
            LCD_Point(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軸為基準*/ 
        {
            y = (u32)(x-x1)*(y2-y1) / (x2-x1) + y1;
            LCD_Point(x, y);

        }
    } 
}





/******************************************************
 * 函數名:LCD_Char_6x12_O
 * 描述  :在指定位置懸浮顯示指定字符
 * 輸入  : 	-x
           	-y 
      		-acsii 要寫入的字符 
      		-Color 字符顏色
 * 輸出  :無
 * 舉例  :無
 * 注意  :橫屏 內部調用
 *********************************************************/    
void LCD_Char_6x12_O(u16 x, u16 y, u8 acsii, u16 Color)	
{       
#define MAX_CHAR_POSX (320-6)
#define MAX_CHAR_POSY (240-12)
    u8 temp, t, pos;  
 
     if(x > MAX_CHAR_POSX || y > MAX_CHAR_POSY)
     {
			 return;
		 }

    LCD_open_windows(x,y,6,12);
   
    acsii = acsii - ' ';											 /*得到偏移后的值*/
    for(pos=0; pos<12; pos++)
    {
        temp = asc2_1206[acsii][pos];
        for(t=0; t<6; t++)											/* 低位開始,丟棄高兩位*/
        {                 
            if(temp & 0x01)
			 {
                if(t==0)
				{
					LCD_open_windows(x,y+pos,6,12-pos);
					LCD_WR_Data(Color);
				}
				else
				{
					LCD_WR_Data(Color);	
				}
			 }
            else 	
            {
        		if(t==5)											/*如果是末尾點--開啟剩下窗戶*/
				{
						LCD_open_windows(x,y+pos+1,6,12-pos-1);	 	
				}
				else
				{
						LCD_open_windows(x+t+1,y+pos,6-t,1);  		/*前進一位 開啟一行線*/	
				}				
            }   
            temp >>= 1; 
        }
    }
    
#undef MAX_CHAR_POSX
#undef MAX_CHAR_POSY   
}





/******************************************************
 * 函數名:LCD_Char_6x12_O_P
 * 描述  :在指定位置懸浮顯示指定字符
 * 輸入  : 	-x
           	-y 
      		-acsii 要寫入的字符
      		-Color 字符顏色 			 
 * 輸出  :無
 * 舉例  :無
 * 注意  :豎屏 內部調用
 *********************************************************/    
void LCD_Char_6x12_O_P(u16 x, u16 y, u8 acsii,u16 Color)	//豎屏
{       
#define MAX_CHAR_POSX (320-12)
#define MAX_CHAR_POSY (240-6) 
    u8 temp, t, pos;     
    if(x > MAX_CHAR_POSX || y > MAX_CHAR_POSY)
        return;
    
    LCD_open_windows(x,y,12,6);
    acsii = acsii - ' ';									//得到偏移后的值
    for(pos=0; pos<12; pos++)
    {

        if(display_direction==0)
            temp = asc2_1206[acsii][pos];
        else
            temp = asc2_1206[acsii][12-pos];

        for(t=0; t<6; t++)														// 低位開始,丟棄高兩位
        {                 
            if(temp & 0x01)
			{
                if(t==0)
				{
					 LCD_open_windows(x+pos,y,12-pos,6);
					 LCD_WR_Data(Color);
				}
				else
				{
					LCD_WR_Data(Color);
				}
            }
			else 	
            {
                 if(t==5)														/*如果是末尾點--則直接開啟下一個矩形*/
				{
					LCD_open_windows(x+pos+1,y,12-pos-1,6);	 	
				}
				else
				{
					LCD_open_windows(x+pos,y+t+1,1,6-t);					/*前進一位 開啟一行線*/	
				}
		
            }   
            temp >>= 1; 
        }
    }
    
#undef MAX_CHAR_POSX
#undef MAX_CHAR_POSY    
}





/******************************************************
 * 函數名:LCD_Char_O
 * 描述  :在指定位置懸浮顯示指定字符
 * 輸入  : 	-x
 *          -y 
 *     		-acsii 要寫入的字符
 *     		-Color 字符顏色  
 * 輸出  :無
 * 舉例  :無
 * 注意  :橫屏 內部調用
*********************************************************/  
void LCD_Char_O(u16 x, u16 y, u8 acsii,u16 Color)
{       
#define MAX_CHAR_POSX (320-8)
#define MAX_CHAR_POSY (240-16)
    u8 temp, t, pos;     
    if(x > MAX_CHAR_POSX || y > MAX_CHAR_POSY)
        return;
       
    LCD_open_windows(x,y,8,16); 
    
    for (pos=0;pos<16;pos++)
    {
        temp=ascii_8x16[((acsii-0x20)*16)+pos];
        
        for(t=0; t<8; t++)
        {
            
            if(temp & 0x80)
            {
			   if(t==0)									   /*如果是一行起點--則重新開啟一個矩形*/
				{
					LCD_open_windows(x,y+pos,8,16-pos);
					LCD_WR_Data(Color);
				}
				else
				{
					LCD_WR_Data(Color);	
				}
            }
			else 	
            {
				if(t==7)									/*如果是末尾點--則直接開啟下一個矩形*/
				{
						LCD_open_windows(x,y+pos+1,8,16-pos-1);	 	
				}
				else
				{
						LCD_open_windows(x+t+1,y+pos,8-t,1);/*前進一位 開啟一行線*/	
				}

            } 
            
            temp <<= 1;	
            
        }        
    }
#undef MAX_CHAR_POSX
#undef MAX_CHAR_POSY   
}




/******************************************************
 * 函數名:LCD_Char_O_P
 * 描述  :在指定位置懸浮顯示指定字符
 * 輸入  : 	-x
 *          -y 
 *     		-acsii 要寫入的字符 
 *     		-Color 字符顏色 
 * 輸出  :無
 * 舉例  :無
 * 注意  :豎屏 
*********************************************************/  
void LCD_Char_O_P(u16 x, u16 y, u8 acsii,u16 Color) 
{       
#define MAX_CHAR_POSX (320-16)
#define MAX_CHAR_POSY (240-8)
    u8 temp, t, pos;       
    if(x > MAX_CHAR_POSX || y > MAX_CHAR_POSY)
        return;
      
    LCD_open_windows(x,y,16,8);    
    
    for (pos=0;pos<16;pos++)
    {
        temp=ascii_8x16[((acsii-0x20)*16)+16-pos];
        
        for(t=0; t<8; t++)
        {
            
            if(temp & 0x80)
			{
				if(t==0)
				{
					LCD_open_windows(x+pos,y,16-pos,8);
					LCD_WR_Data(Color);
				}
				else
				{
                	LCD_WR_Data(Color);
				}
            }
			else 	
            {
                if(t==7)									/*如果是末尾點--則直接開啟下一個矩形*/
				{
						LCD_open_windows(x+pos+1,y,16-pos-1,8);	 	
				}
				else
				{
						LCD_open_windows(x+pos,y+t+1,1,8-t);/*前進一位 開啟一行線*/	
				}
            } 
            
            temp <<= 1;	
            
        }
        
        
    }
#undef MAX_CHAR_POSX
#undef MAX_CHAR_POSY     
}







/****************************************************************
 * 函數名:LCD_Str_O
 * 描述  :在指定坐標處懸浮顯示8*16大小的字符串
 * 輸入  : -x   顯示位置橫向坐標 0 ~ 319
           -y   顯示位置縱向坐標 0 ~ 239
 * 		   -str 字符串首址
 * 		   -Color字符顏色
 * 輸出  :無
 * 舉例  :	LCD_Str_O(0, 0, "Runing", 0);
		    LCD_Str_O(320-8*6, 239-16, "Runing",0); 
 * 注意  :	字符串顯示方向為橫向 已測試					
******************************************************************/    
void LCD_Str_O(u16 x, u16 y,const u8 *str,u16 Color)
{

   	Set_direction(0);     
    while(*str != '\0')
    {       
        if(x > (320-8)) 
        {	
					//換行
           x = 0;
           y += 16;
        }
        if(y > (240-16)) 
        {	
					//一屏
           x = y = 0;
        }
        
        LCD_Char_O(x ,y, *str,Color);
        x += 8;
        str ++ ;
    }
		
}






/************************************************************
 * 函數名:LCD_Char
 * 描述  :在液晶坐標(x,y)中,顯示一個16*8大小的字符
 * 輸入  : 	-x 0~(239-6)
 *         	-y 0~(319-12)
 *      	-acsii    要寫入的字符
 *			-Color    字符顏色
 *			-bkColor  背景顏色
 * 輸出  :無
 * 舉例  :無
 * 注意  :字符串顯示方向為橫 已測試
******************************************************************/    
void LCD_Char(u16 x, u16 y,const u8 ascii, u16 Color, u16 bkColor)
{       
#define MAX_CHAR_POSX (320-8)
#define MAX_CHAR_POSY (240-16)
    u8 temp, t, pos;     
    if(x > MAX_CHAR_POSX || y > MAX_CHAR_POSY)
        return;
       
    LCD_open_windows(x,y,8,16); 
    
    for (pos=0;pos<16;pos++)
    {
        temp=ascii_8x16[((ascii-0x20)*16)+pos];
        
        for(t=0; t<8; t++)
        {
            
            if(temp & 0x80)              
						{
							LCD_WR_Data(Color);
						}
            else 	
            {
              LCD_WR_Data(bkColor);  
            }            
            temp <<= 1;	
            
        }
        
        
    }
#undef MAX_CHAR_POSX
#undef MAX_CHAR_POSY   
}





/************************************************************
 * 函數名:LCD_Str_R
 * 描述  :在液晶坐標(x,y)中,顯示一個16*8大小的字符串,右對齊
 * 輸入  : -x 0~(239-6)
 *         -y 0~(319-12)
 *         -str 字符串首址
 		   -len 字符串長度
		   -strColor 字符顏色
		   -bkColor  背景顏色
 * 輸出  :無
 * 舉例  :LCD_Str_R(304,59,“12345”,14,0x0000,0xffff)
 * 注意  :字符串顯示方向為橫 已測試
******************************************************************/    
void LCD_Str_R(u16 x,u16 y,const u8 *str,u8 len,u16 Color,u16 bkColor)    //右對齊,超過35位,僅顯示最后35位
{
  u16 i=1,strlen=0;	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人三级在线视频| 91国偷自产一区二区使用方法| 一区精品在线播放| 99视频在线精品| 欧美喷潮久久久xxxxx| 亚洲人快播电影网| 日韩一区二区影院| 欧美中文字幕不卡| 高清不卡一区二区在线| 免费美女久久99| 国产一区激情在线| 国产精品一区二区无线| 成人免费看片app下载| 97se亚洲国产综合在线| 色视频欧美一区二区三区| 97aⅴ精品视频一二三区| 色综合天天综合| 欧美日韩一卡二卡三卡| 欧美一区二区三区四区久久| 精品美女在线观看| 欧美国产精品专区| 亚洲欧美日韩中文字幕一区二区三区 | 五月婷婷激情综合网| 免费人成在线不卡| 国产精品一区久久久久| 成人免费黄色大片| 欧美亚洲图片小说| 日韩美女视频在线| 国产日韩精品一区二区三区| 精品一区二区免费视频| 国产精品99精品久久免费| 色狠狠一区二区| 在线综合视频播放| 国产午夜精品久久久久久久| 亚洲三级电影全部在线观看高清| 午夜天堂影视香蕉久久| 六月丁香综合在线视频| jlzzjlzz欧美大全| 欧美日韩成人在线一区| 久久久久久久国产精品影院| 一区二区三区精品久久久| 蜜桃久久av一区| 99国产精品99久久久久久| 91精品国产福利| 国产精品国产三级国产普通话蜜臀 | 国产精品福利电影一区二区三区四区| 一区二区三区在线观看国产| 美女在线观看视频一区二区| 不卡的av电影在线观看| 欧美一区三区二区| 国产精品免费视频网站| 男男成人高潮片免费网站| 97国产一区二区| 欧美变态tickle挠乳网站| 亚洲欧美偷拍卡通变态| 国内精品视频666| 欧美日韩精品久久久| 国产精品麻豆久久久| 麻豆精品在线播放| 一本色道**综合亚洲精品蜜桃冫| 精品99久久久久久| 亚洲电影一区二区三区| 成人高清av在线| ww亚洲ww在线观看国产| 亚洲丰满少妇videoshd| av毛片久久久久**hd| 精品乱人伦小说| 午夜久久久久久| 成人精品免费看| 久久你懂得1024| 麻豆精品国产传媒mv男同| 欧美亚洲丝袜传媒另类| 中文字幕一区在线观看| 国产福利精品一区| 精品国产免费一区二区三区四区| 亚洲午夜电影网| 色综合天天综合网天天看片| 2020国产成人综合网| 欧美bbbbb| 69堂成人精品免费视频| 亚洲一二三专区| 972aa.com艺术欧美| 欧美激情在线一区二区| 国产老妇另类xxxxx| 日韩美女视频一区二区在线观看| 亚洲不卡在线观看| 日本福利一区二区| 综合分类小说区另类春色亚洲小说欧美| 国产二区国产一区在线观看| 精品精品国产高清一毛片一天堂| 青草国产精品久久久久久| 欧美日韩国产经典色站一区二区三区| 亚洲乱码国产乱码精品精的特点 | 欧美一级搡bbbb搡bbbb| 午夜精彩视频在线观看不卡| 欧美午夜电影一区| 一区二区三区中文字幕电影| 日本高清不卡视频| 亚洲精品国产无天堂网2021 | 中文字幕一区二区三区四区| 成人午夜短视频| 国产亚洲一区二区三区在线观看| 国产一区二区三区四区五区入口| 久久一区二区视频| 国产乱子轮精品视频| 国产欧美一区二区精品性色| 国产福利视频一区二区三区| 中文字幕第一区综合| 成人精品视频.| 亚洲精品成人精品456| 91黄色在线观看| 亚洲二区视频在线| 在线播放中文一区| 精品一区二区国语对白| 久久久国产精品午夜一区ai换脸| 国产福利一区在线| 亚洲三级视频在线观看| 欧美伊人久久久久久久久影院 | 日本丰满少妇一区二区三区| 一区二区三区.www| 欧美日韩视频在线观看一区二区三区| 亚洲一区在线视频观看| 欧美一区二区三区播放老司机| 精品在线免费视频| 国产欧美一区二区三区鸳鸯浴| 99久久综合国产精品| 亚洲激情一二三区| 日韩视频123| 国产精品一区二区男女羞羞无遮挡 | 亚洲精品国产品国语在线app| 欧美日韩中文字幕精品| 蜜桃一区二区三区在线| 国产精品毛片高清在线完整版| 91搞黄在线观看| 久草中文综合在线| 中文字幕一区免费在线观看| 欧美专区日韩专区| 久色婷婷小香蕉久久| 中文字幕av在线一区二区三区| 91视频一区二区三区| 日韩主播视频在线| 国产午夜精品美女毛片视频| 欧美综合久久久| 国产一区不卡精品| 有码一区二区三区| 日韩女同互慰一区二区| 99久久久无码国产精品| 免费成人av在线播放| 国产精品久久久一本精品 | 国产日产欧美一区| 欧美在线色视频| 精品系列免费在线观看| 亚洲国产精品二十页| 欧美精品乱码久久久久久按摩 | 欧美精品一区男女天堂| 91老司机福利 在线| 精品在线你懂的| 亚洲福利视频导航| 欧美激情艳妇裸体舞| 日韩午夜在线播放| 一本高清dvd不卡在线观看| 国产一区三区三区| 亚洲综合激情另类小说区| 久久久久久久久蜜桃| 欧美三电影在线| jlzzjlzz亚洲女人18| 精品亚洲aⅴ乱码一区二区三区| 亚洲高清免费观看| 综合中文字幕亚洲| 亚洲精品在线免费观看视频| 欧美三级午夜理伦三级中视频| 成人免费毛片嘿嘿连载视频| 蜜桃视频一区二区| 一区二区激情视频| 久久99国产精品尤物| 亚洲国产人成综合网站| 国产精品系列在线| 2014亚洲片线观看视频免费| 欧美日韩一区二区在线观看| 99精品欧美一区二区三区综合在线| 国产综合色精品一区二区三区| 日韩精品欧美精品| 亚洲主播在线播放| 中文字幕综合网| 国产精品视频观看| 久久精品综合网| 欧美岛国在线观看| 日韩一区二区免费电影| 欧美日韩国产免费| 色噜噜久久综合| 91小视频免费看| 波多野结衣91| 成人黄色国产精品网站大全在线免费观看| 麻豆91免费看| 美女一区二区久久| 久久精品99国产精品| 青椒成人免费视频| 久久av资源站| 久久精品99国产国产精| 久久99精品久久久|