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

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

?? lcd-ad.c

?? 基于ARM的LCD液晶顯示與輸出,輸出波形,以夠實現,波形變換
?? C
字號:
/***********************************************************************************************
** 文件名稱:_LCD_C
** 功能說明:ST7920驅動LCD顯示軟件包
** 使用說明:軟件包用到LPC213x的二個引腳,默認為P1.24,P1.25,如需修改,請修改頭文件中的宏定義數據即可
			 (接觸一天,時間不足,理解不深,代碼有待優化,鑒諒)
***********************************************************************************************/
#include "config.h"
#include  "lad.h"
uint8  chartab4[1024] ={0x00 };
/***********************************************************************************************
** 函數名稱:LCD_Init()
** 函數功能:LCD初始化
** 入口參數:無
** 出口參數:無
***********************************************************************************************/
void LCD_Init(void)	
{
	  PIN_INITI;
	  LCD_Dly(50); 								//啟動等待,等LCD進入工作狀態    	 								
	  LCD_Write(0,0x30);  						//8 位介面,基本指令集
	  LCD_Write(0,0x0c);  						//顯示打開,光標關,反白關
	  LCD_Write(0,0x01);  						//清屏,將DDRAM的地址計數器歸零  
	  
}

/***********************************************************************************************
** 函數名稱:LCD_Write()
** 函數功能:LCD寫指令或數據
** 入口參數:control_flow		數據控制流,0 為寫指令 1 為寫數據
			 ddata				數據
** 出口參數:無
***********************************************************************************************/
void LCD_Write(unsigned char control_flow, unsigned char ddata) 
{
	  unsigned char start_data,Hdata,Ldata;
	  if(0==control_flow) start_data=0xf8;	//寫指令
	    else       start_data=0xfa;  		//寫數據
	  
	  Hdata=ddata&0xf0;		 				//取高四位
	  Ldata=(ddata<<4)&0xf0;  				//取低四位
	  LCD_SendByte(start_data);	  			//發送起始信號
	  LCD_Dly(1); 							//延時是必須的
	  LCD_SendByte(Hdata);	      			//發送高四位
	  LCD_Dly(1);  						//延時是必須的
	  LCD_SendByte(Ldata);		  			//發送低四位
	  LCD_Dly(1);  						//延時是必須的
}

/***********************************************************************************************
** 函數名稱:LCD_SendByte()
** 函數功能:發送一個字節
** 入口參數:bbyte		字節數據
** 出口參數:無
***********************************************************************************************/
void LCD_SendByte(unsigned char bbyte) 
{
	 unsigned char i;
	 
	 for(i=0;i<8;i++)
	 {
		if( (bbyte&0x80)!=0 ) SID_1;
    	else 
    	{
    		SID_0 ;					//SID=bbyte&0x80;取出最高位
    	}
		SCKL_1;								//SCLK=1;
		__asm
		{
			nop
		}
	 	SCKL_0;								//SCLK=0;
	 	bbyte<<=1; 							//左移
	 }  
}
/***********************************************************************************************
** 函數名稱:LCD_Dly()
** 函數功能://延時
** 入口參數:dly	延時參數,值越大,延時時間越長
** 出口參數:無
***********************************************************************************************/
void LCD_Dly(unsigned int dly) 
{
 	unsigned int i,j;
 	for(i=dly;i>0;i--)
   		for(j=500;j>0;j--);
}
/***********************************************************************************************
** 函數名稱:LCD_Point()
** 函數功能:寫LCD畫點數據
** 入口參數:uint16 x		橫坐標
			 uint16 y		縱坐標
			 uint8 disp_onoff	0:清零某一點;1:點亮某一點
** 出口參數:無
***********************************************************************************************/
void  LCD_Point(uint16 x, uint16 y, uint8 disp_onoff)
{
	uint16 z=0;
	z = (63-x) * 16 + (y/8);
	if (disp_onoff == 0)
		chartab4[z] = (chartab4[z] & (~(0x80 >> (y%8))));
	else
		chartab4[z] = (chartab4[z] | (0x80 >> (y%8)));
	LCD_GRP(chartab4);
}


/***********************************************************************************************
** 函數名稱:Modify_Point()
** 函數功能:修改chartab4數組函數
** 入口參數:uint16 x		橫坐標
			 uint16 y		縱坐標
** 出口參數:無
***********************************************************************************************/
void Modify_Point(uint16 x, uint16 y)
{
	uint16 z=0;
	z = (63-x) * 16 + (y/8);
	chartab4[z] |= (0x80 >> (y%8));
}
void  Draw_Point(uint16 x, uint16 y)
{
	uint16 z=0;
	z = (63-x) * 16 + (y/8);
	chartab4[z] |= (0x80 >> (y%8));
	
}

/***********************************************************************************************
** 函數名稱:Draw_HLine()
** 函數功能:在第row(0~63)行畫從最左端至最右端的直線
** 入口參數:uint8 row ;LCD行參數,取值范圍0~63
** 出口參數:無
***********************************************************************************************/
void Draw_HLine(uint8 row)
{
	uint8 x,y;
	for(x=row,y=0;y<128;y++)
    Modify_Point(x,y);
	LCD_GRP(chartab4);
}

/***********************************************************************************************
** 函數名稱:Draw_HLine2()
** 函數功能:在第row(0~63)行畫從starty至endy的直線
** 入口參數:uint8 row ;LCD行參數,取值范圍0~63;starty和endy在0~127之間
** 出口參數:無
***********************************************************************************************/
void Draw_HLine2(uint8 starty,uint8 endy,uint8 row)
{
	uint8 x,y;
	for(x=row,y=starty;y<endy;y++)
		Modify_Point(x,y);
	LCD_GRP(chartab4);
}

/***********************************************************************************************
** 函數名稱:Draw_VLine()
** 函數功能:在第colm(0~127)列畫從最下端至最上端的直線
** 入口參數:uint8 row ;LCD行參數,取值范圍0~63
** 出口參數:無
***********************************************************************************************/
void Draw_VLine(uint8 colm)
{
	uint8 x,y;
	for(x=0,y=colm;x<64;x++)
		Modify_Point(x,y);
	LCD_GRP(chartab4);
}

/***********************************************************************************************
** 函數名稱:Draw_HLine()
** 函數功能:修改chartab4數組函數
** 入口參數:uint16 x		橫坐標
			 uint16 y		縱坐標
			 uint8 disp_onoff	畫點
** 出口參數:無
***********************************************************************************************/
void Draw_VLine2(uint8 startx,uint8 endx,uint8 colm)
{
	uint8 x,y;
	for(x=startx,y=colm;x<endx;x++)
		Modify_Point(x,y);
	LCD_GRP(chartab4);
}
/***********************************************************************************************
** 函數名稱:Draw_HArrow()
** 函數功能:在LCD水平方向上畫直線末端的箭頭
** 入口參數:(x,y)需要箭頭的水平直線末端點坐標
** 出口參數:無
***********************************************************************************************/

void Draw_HArrow(uint8 x,uint8 y)
{	
	Modify_Point(x,y+1);
	Modify_Point(x,y+2);
	Modify_Point(x,y+3);
	Modify_Point(x,y+4);
	Modify_Point(x,y+5);
	
	Modify_Point(x+2,y+3);
	Modify_Point(x-2,y+3);
	Modify_Point(x+1,y+4);
	Modify_Point(x-1,y+4);
	
	LCD_GRP(chartab4);						//取數組數據來繪圖
}

/***********************************************************************************************
** 函數名稱:LCD_HLine()
** 函數功能:在LCD垂直方向上畫直線末端的箭頭
** 入口參數:(x,y)需要箭頭的垂直直線末端點坐標
** 出口參數:無
***********************************************************************************************/
void Draw_VArrow(uint8 x,uint8 y)
{	
	uint8 i;//i<4決定箭頭大小
	Draw_VLine2(x,x+6,y);//先延長原直線3個像素點
	for(i=1;i<3;i++)
	{
		Modify_Point(x+6-i,y+i);//右側
		Modify_Point(x+6-i,y-i);//左側
	}
	
	LCD_GRP(chartab4);					//取數組數據來繪圖
}
/***********************************************************************************************
** 函數名稱:LCD_GRP()
** 函數功能:繪圖函數
** 入口參數:string_num		液晶點陣數組
** 出口參數:無
***********************************************************************************************/
void LCD_GRP(uint8 const *string_num)
{     
	uint8 i,j,k;
	
  
    k = 0x80;
     
	LCD_Write(0,0x32);		// 功能設定
    LCD_Dly(2);
    LCD_Write(0,0x36);		 
    LCD_Dly(2);
    
	// 上半屏
    for (i = 0; i<32; i++)
    {
		LCD_Write(0,k);
		LCD_Dly(2);
		k++;
		LCD_Write(0,0x80);
		LCD_Dly(2);		
		for (j = 0;j <16;j++) 
		{
			LCD_Write(1,*string_num);
			string_num++;
			LCD_Dly(1);
			     
		}
		
    }
    // 下半屏
   k = 0x80;
    for (i = 0;i < 32;i++)
    {
		LCD_Write(0,k);
		LCD_Dly(2);
		k++;
		LCD_Write(0,0x88);
		LCD_Dly(2);		
		for (j = 0;j < 16;j++) 
		{
			LCD_Write(1,*string_num);
			string_num++;
			LCD_Dly(1);
		      
		}
    }
  }
    void DrawX(uint8 x,uint8 y)
{	
	Modify_Point(x,y);
	
	Modify_Point(x+1,y-1);
	Modify_Point(x+1,y+1);
	Modify_Point(x+2,y-2);
	Modify_Point(x+2,y+2);
	
	Modify_Point(x-1,y-1);
	Modify_Point(x-1,y+1);
	Modify_Point(x-2,y-2);
	Modify_Point(x-2,y+2);
	
	LCD_GRP(chartab4);					//取數組數據來繪圖
}

void DrawY(uint8 x,uint8 y)
{	
	Modify_Point(x,y);
	Modify_Point(x-1,y);
	Modify_Point(x-2,y);
	
	Modify_Point(x+1,y-1);
	Modify_Point(x+1,y+1);
	
	Modify_Point(x+2,y-2);
	Modify_Point(x+2,y+2);
	
	LCD_GRP(chartab4);					//取數組數據來繪圖
}



void Draw0(uint8 x,uint8 y)
{		
	Modify_Point(x,y-1);
	Modify_Point(x,y+1);
	Modify_Point(x-2,y);
	Modify_Point(x-2,y-1);
	Modify_Point(x-2,y+1);
	Modify_Point(x+2,y);
	Modify_Point(x+2,y-1);
	Modify_Point(x+2,y+1);
	Modify_Point(x+1,y-1);
	Modify_Point(x-1,y-1);
	Modify_Point(x+1,y+1);
	Modify_Point(x-1,y+1);
	
	LCD_GRP(chartab4);
}

void Draw1(uint8 x,uint8 y)
{	uint8 i;
	for(i=1;i<3;i++)
	{
		Modify_Point(x+i,y);
		Modify_Point(x-i,y);
	}
	Modify_Point(x,y);
	LCD_GRP(chartab4);
}

void Draw2(uint8 x,uint8 y)
{		
	Modify_Point(x,y);
	Modify_Point(x+1,y+1);
	Modify_Point(x,y+1);
	Modify_Point(x,y-1);
	
	Modify_Point(x+2,y);
	Modify_Point(x+2,y+1);
	Modify_Point(x+2,y-1);
	
	Modify_Point(x-2,y);
	Modify_Point(x-2,y+1);
	Modify_Point(x-2,y-1);
	
	Modify_Point(x-1,y-1);
		
	LCD_GRP(chartab4);
}

void Draw3(uint8 x,uint8 y)
{		
	Modify_Point(x,y);
	Modify_Point(x,y+1);
	Modify_Point(x,y-1);
	
	Modify_Point(x+2,y);
	Modify_Point(x+2,y+1);
	Modify_Point(x+2,y-1);
	
	Modify_Point(x-2,y);
	Modify_Point(x-2,y+1);
	Modify_Point(x-2,y-1);
	
	Modify_Point(x+1,y+1);
	Modify_Point(x-1,y+1);
	
	LCD_GRP(chartab4);
}


void Draw4(uint8 x,uint8 y)
{		
	Modify_Point(x,y);
	Modify_Point(x,y+1);
	Modify_Point(x,y-1);
	Modify_Point(x,y-2);
	
	Modify_Point(x+1,y-2);
	Modify_Point(x+2,y-2);
	Modify_Point(x-2,y);
	Modify_Point(x+1,y);
	Modify_Point(x+2,y);
	Modify_Point(x-1,y);
	
	LCD_GRP(chartab4);
}

void Draw5(uint8 x,uint8 y)
{		
	Modify_Point(x,y);
	Modify_Point(x,y+1);
	Modify_Point(x,y-1);
	
	Modify_Point(x+1,y-1);
	Modify_Point(x+2,y-1);
	
	Modify_Point(x+2,y-1);
	Modify_Point(x+2,y);
	Modify_Point(x+2,y+1);
	
	Modify_Point(x-1,y+1);
	Modify_Point(x-2,y);
	
	Modify_Point(x-2,y);
	Modify_Point(x-2,y-1);
	Modify_Point(x-2,y+1);
	
	LCD_GRP(chartab4);
}

void Draw6(uint8 x,uint8 y)
{		
	Modify_Point(x,y);
	Modify_Point(x,y-1);
	Modify_Point(x,y+1);
	Modify_Point(x-1,y+1);
	Modify_Point(x-1,y-1);
	
	Modify_Point(x-2,y);
	Modify_Point(x-2,y-1);
	Modify_Point(x-2,y+1);

	
	Modify_Point(x+1,y-1);
	
	Modify_Point(x+2,y);
	Modify_Point(x+2,y-1);
	Modify_Point(x+2,y+1);

	
	LCD_GRP(chartab4);
}

void Draw7(uint8 x,uint8 y)
{		
	Modify_Point(x+2,y+1);
	Modify_Point(x+1,y+1);
	Modify_Point(x,y+1);
	Modify_Point(x-1,y+1);
	Modify_Point(x-2,y+1);
	
	Modify_Point(x+2,y);
	Modify_Point(x+2,y-1);
	
	LCD_GRP(chartab4);
}

void Draw8(uint8 x,uint8 y)
{		
	Modify_Point(x,y);
	Modify_Point(x,y-1);
	Modify_Point(x,y+1);
	Modify_Point(x-2,y);
	Modify_Point(x-2,y-1);
	Modify_Point(x-2,y+1);
	Modify_Point(x+2,y);
	Modify_Point(x+2,y-1);
	Modify_Point(x+2,y+1);
	Modify_Point(x+1,y-1);
	Modify_Point(x-1,y-1);
	Modify_Point(x+1,y+1);
	Modify_Point(x-1,y+1);
	
	LCD_GRP(chartab4);
}


void Draw9(uint8 x,uint8 y)
{		
	Modify_Point(x-1,y);
	Modify_Point(x-2,y);
	Modify_Point(x,y);
	Modify_Point(x+1,y);
	Modify_Point(x+2,y);
	Modify_Point(x+2,y-1);
	Modify_Point(x+2,y-2);
	Modify_Point(x+1,y-2);
	Modify_Point(x,y-2);
	Modify_Point(x,y-1);
    LCD_GRP(chartab4);
}
 void  drawquxian(void)
{  uint8 dangwei;
   uint8 x;
   uint8 i;
   uint8 k=0;
   for(i=3;i<127;i++)
     {  dangwei=((i-4)%20)/10;
        switch(dangwei)
       {  case 0:
          i=i-20*k;
          x=63+13*i/5-(i*i)/10-379/10;
          i=i+20*k;                                       //還原i
          Modify_Point(x,i);
          LCD_GRP(chartab4);
          break;
         
         case 1:
          i=i-20*k;
          x=63+13*i/5-(i*i)/10-379/10;
          i=i+20*k;                                            //還原i
         Modify_Point(x,i);
         LCD_GRP(chartab4);
         break;
       }
       if(i==3+20*(k+1))
       {
        k++;
       }
    }   
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三区在线观看| 国内外成人在线视频| 天堂精品中文字幕在线| 国产99精品国产| 欧美日韩一区视频| 国产精品欧美一区二区三区| 蜜桃视频一区二区三区| 精品国产网站在线观看| 亚洲精品久久久蜜桃| 国产在线国偷精品免费看| 在线亚洲一区观看| 国产精品久久久久久久岛一牛影视 | 在线播放中文一区| 国产日韩亚洲欧美综合| 日韩中文字幕av电影| 欧洲国内综合视频| 中文字幕字幕中文在线中不卡视频| 蜜桃视频免费观看一区| 国产精品系列在线播放| 日韩精品一区二区在线| 亚洲va天堂va国产va久| 欧美午夜影院一区| 亚洲国产日韩精品| 色噜噜狠狠成人网p站| 亚洲人成精品久久久久久| 成人av网在线| 国产精品家庭影院| va亚洲va日韩不卡在线观看| 欧美激情在线看| 国产成人免费视频网站高清观看视频| 26uuu精品一区二区三区四区在线| 偷拍与自拍一区| 91精品国产91热久久久做人人| 日韩高清不卡在线| 精品三级av在线| 国产99久久精品| 亚洲三级理论片| 欧美最新大片在线看| 丝袜脚交一区二区| 欧美视频日韩视频在线观看| 奇米在线7777在线精品| 精品日韩欧美在线| 高清免费成人av| 亚洲欧美日本韩国| 欧美日韩高清一区二区不卡| 久久精品国产免费| 欧美国产亚洲另类动漫| 91麻豆免费看片| 石原莉奈一区二区三区在线观看| 日韩欧美一区二区视频| 大美女一区二区三区| 亚洲人成影院在线观看| 欧美日韩欧美一区二区| 精品亚洲成av人在线观看| 中文字幕欧美国产| 在线视频欧美精品| 国内欧美视频一区二区| 亚洲天堂2014| 日韩欧美中文一区二区| 成人亚洲一区二区一| 亚洲精品你懂的| 欧美大胆人体bbbb| 91麻豆精品一区二区三区| 日本亚洲天堂网| 日本一区二区久久| 欧美日韩国产另类一区| 国产九九视频一区二区三区| 亚洲综合免费观看高清完整版| 欧美一区二区三区播放老司机| 风间由美中文字幕在线看视频国产欧美| 亚洲另类一区二区| 精品国产麻豆免费人成网站| 色综合一区二区| 久久99国产精品麻豆| 亚洲欧美经典视频| 久久久精品影视| 欧美麻豆精品久久久久久| 成人激情综合网站| 日本视频在线一区| 一区二区三区波多野结衣在线观看| 精品91自产拍在线观看一区| 欧美色电影在线| 91丨porny丨蝌蚪视频| 精品一区中文字幕| 午夜伊人狠狠久久| 亚洲精品国产一区二区三区四区在线| 欧美va亚洲va在线观看蝴蝶网| 欧美中文字幕不卡| 成人av在线资源网站| 国产精品99久久久久久似苏梦涵 | 亚洲精品视频在线观看网站| 久久久久久久久伊人| 日韩欧美电影一区| 在线播放视频一区| 91豆麻精品91久久久久久| 不卡的av在线播放| 国产99久久久久| 激情综合网最新| 麻豆传媒一区二区三区| 爽好多水快深点欧美视频| 亚洲综合一区二区三区| 日韩理论片网站| 中文字幕日韩一区二区| 国产日韩综合av| 国产日韩一级二级三级| 国产视频一区在线观看| 久久久久9999亚洲精品| 久久久久久久久蜜桃| 久久九九全国免费| 久久久久久久久久久久久夜| 久久综合五月天婷婷伊人| 精品国产成人系列| 久久久精品黄色| 久久你懂得1024| 中文字幕不卡在线| 国产精品久久久久久久浪潮网站 | 国产一区二区中文字幕| 国产美女精品人人做人人爽| 国产成人免费xxxxxxxx| 国产99久久久久| 99久久精品情趣| 色偷偷一区二区三区| 欧美三级中文字| 日韩欧美一卡二卡| 国产日韩欧美精品一区| 日韩美女视频19| 一区二区在线观看视频| 国产精品欧美综合在线| 亚洲精品五月天| 日韩成人av影视| 精品一区二区三区在线观看| 国产a视频精品免费观看| 99久久久久免费精品国产| 欧美综合在线视频| 日韩欧美国产午夜精品| 久久新电视剧免费观看| 成人欧美一区二区三区在线播放| 亚洲欧美日韩国产成人精品影院| 亚洲电影一区二区三区| 亚洲福利视频三区| 国产麻豆精品一区二区| 一本大道久久a久久综合婷婷| 欧美日韩高清一区二区不卡| 久久久久久一二三区| 亚洲欧美日韩小说| 精品一区二区三区在线视频| 91在线免费视频观看| 日韩午夜在线影院| 18成人在线观看| 免费在线观看一区| 99国产精品久久久久| 日韩欧美区一区二| 亚洲精品午夜久久久| 加勒比av一区二区| 欧美吻胸吃奶大尺度电影| 日韩欧美你懂的| 亚洲精品成人天堂一二三| 精品一区二区三区久久| 欧美亚洲综合色| 国产女同性恋一区二区| 日韩精品一区第一页| av电影天堂一区二区在线观看| 欧美一级精品大片| 一区二区三区成人在线视频| 大尺度一区二区| 日韩久久久久久| 亚洲一卡二卡三卡四卡五卡| 成人av在线网| 久久久精品国产免大香伊 | 国产成人精品免费视频网站| 91精品国产综合久久精品| 亚洲色图20p| 国产成人精品一区二区三区四区 | 亚洲电影欧美电影有声小说| 国产成人在线看| 欧美成人a视频| 亚洲黄色小说网站| 99精品热视频| 国产精品天美传媒| 国产大陆亚洲精品国产| 欧美一级xxx| 五月天亚洲婷婷| 欧美性受极品xxxx喷水| 亚洲日本一区二区| 99精品桃花视频在线观看| 国产日韩欧美精品一区| 国产成人免费视频网站| 久久久蜜桃精品| 国产一区二区三区香蕉| 日韩精品中文字幕在线一区| 蜜乳av一区二区三区| 欧美一二三四在线| 久久99精品国产| 欧美成人一区二区三区在线观看 | 日本久久电影网| 亚洲码国产岛国毛片在线| 色婷婷久久久久swag精品| 亚洲蜜臀av乱码久久精品蜜桃| 91蝌蚪porny成人天涯| 亚洲综合视频在线观看|