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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 1602.h

?? 本源碼是實現(xiàn)1602的液晶驅(qū)動,實驗平臺是AVR單片機(jī)
?? H
字號:
# define True           0x01 
# define False          0x00 
# define Enable         0x01 
# define Disable        0x00 
# define LCD_Write          0x00 
# define LCD_Read           0x01 
# define LCD_Command        0x00 
# define LCD_Data           0x01 
# define LCD_CMD_Init       0x28 
# define LCD_CMD_DispCtr    0x0c 
# define LCD_CMD_CLS        0x01 
# define LCD_CMD_EnterSet   0x06 
# define LCD_CMD_IconShow   0x0f 
# define LCD_CMD_IconHide   0x0c 
# define LCD_RS              _PB4 
# define LCD_RW              _PB7 
# define LCD_E               _PB5 
# define LCD_BF              Read_PB3 
# define LCD_HalfData_Port   PORTB 
# define LCD_HalfData_DDR    DDRB 
# define LCD_SetWriteData    LCD_HalfData_DDR |= 0x0f;LCD_HalfData_Port &= 0xf0; 
# define LCD_SetReadData     LCD_HalfData_DDR &= 0xf0;LCD_HalfData_Port |= 0x0f;  
# define LCD_SendHalfCharHigh(a) LCD_HalfData_Port &= 0xf0; LCD_HalfData_Port |= (a>>4); 
# define LCD_SendHalfCharLow(a)  LCD_HalfData_Port &= 0xf0; LCD_HalfData_Port |= (a<<4>>4); 
/*---------------------* 
*    動 作 宏 定 義    * 
*---------------------*/ 
# define SetReadState       LCD_SetReadData;LCD_RS = LCD_Command;LCD_RW = LCD_Read; 
# define SetRead            LCD_SetReadData;LCD_RW = LCD_Read; 
# define SetWrite           LCD_SetWriteData;LCD_RW = LCD_Write; 
# define SetCommand         LCD_RS = LCD_Command; 
# define SetData            LCD_RS = LCD_Data; 
# define RunLeft            0x00
# define RunRight           0x01
# define Print(a)           LCDDisplayString(a); 
# define Locate(x,y)        LCDSetXY(x-1,y-1); 
# define CLS                LCDWaitForReady();LCDSendCommand(LCD_CMD_CLS); 
# define PrintN(a,b)        LCDDisplayNum((unsigned long)a,b); 
# define ShowIcon           LCDWaitForReady();LCDSendCommand(LCD_CMD_IconShow); 
# define HideIcon           LCDWaitForReady();LCDSendCommand(LCD_CMD_IconHide); 
/*********************** 
*    全局變量聲明區(qū)    * 
***********************/ 
const char CHR[10] = {"0123456789"}; 
/*********************** 
*    系統(tǒng)函數(shù)聲明區(qū)    * 
***********************/ 
void LCDInit(void); 
void LCDSendCommand(char Command); 
void LCDSendData(char Data); 
void LCDWaitForReady(void); 
void LCDSetXY(char X,char Y); 
void LCDDisplayString(char *String); 
void LCDDisplayNum(unsigned int Num); 
void delay_nms(unsigned int n);
void RunString(char *String,char Direction,char Y,char StartX,char EndX);
char StringLenth(char *String);
void Flash(char *String,char Icon,char X,char Y);
/*
void Flash(char *String,char Icon,char X,char Y)
{
    char a = 0;
	char StringLong = StringLenth(String);
	
    if (SystemTimeCounter > 499)
	{
	    Locate(X,Y)
		Print(String)    
	}
	else
	{
	    for (a = X ;a < X+StringLong;a++)
		{
		    Locate(a,Y)
			Print(&Icon)
		}
	}
}
*/
char StringLenth(char *String)
{
    char n = 0;
	while (*String)
	{
	    n++;
		String ++;
	}
	
	return n;
}
/******************************************************** 
*  函數(shù)說明:LCD初始化函數(shù)                              * 
********************************************************/ 
void LCDInit(void) 
{ 
    delay_nms(15); 
    
   LCDWaitForReady(); 
   LCDSendCommand(LCD_CMD_Init); 
    
   LCDWaitForReady(); 
   LCDSendCommand(LCD_CMD_DispCtr); 
    
   LCDWaitForReady(); 
   LCDSendCommand(LCD_CMD_CLS); 
   delay_nms(2); 
   LCDSendCommand(LCD_CMD_EnterSet); 
} 

/******************************************************** 
*  函數(shù)說明:向LCD發(fā)送指令函數(shù)                          * 
*  輸入:    需要發(fā)送的指令                             * 
********************************************************/ 
void LCDSendCommand(char Command) 
{ 
   SetWrite; 
   SetCommand; 
   { 
       LCD_E = Enable; 
       
      LCD_SendHalfCharHigh(Command); 
       
       LCD_E = Disable; 
   } 
   { 
       LCD_E = Enable; 
       
        LCD_SendHalfCharLow(Command);    
       
      LCD_E = Disable; 
   } 
    SetRead;       
   SetCommand; 
} 

/******************************************************** 
*  函數(shù)說明:向LCD發(fā)送數(shù)據(jù)函數(shù)                          * 
********************************************************/ 
void LCDSendData(char Data) 
{ 
    SetWrite; 
   SetData; 
   { 
       LCD_E = Enable; 
       
      LCD_SendHalfCharHigh(Data); 
       
       LCD_E = Disable; 
   } 

   { 
       LCD_E = Enable; 
       
        LCD_SendHalfCharLow(Data);    
       
      LCD_E = Disable; 
   } 
    SetRead;       
   SetCommand; 
} 

/******************************************************** 
*  函數(shù)說明:等待LCD空閑狀態(tài)函數(shù)                        * 
********************************************************/ 
void LCDWaitForReady(void) 
{ 
    //DelayUs(30); 
   SetRead; 
   SetCommand; 
    
    LCD_E = Enable;    
     
   while (LCD_BF == Enable);   //RW=1,讀PD7,為0表示空閑; 
    
    LCD_E = Disable; 
} 

/******************************************************** 
*  函數(shù)說明:設(shè)置顯示坐標(biāo)函數(shù)                           * 
********************************************************/ 
void LCDSetXY(char X,char Y) 
{ 
    char Address; 
    if (Y == 0) 
   { 
       Address = 0x80 + X; 
   } 
    else 
   {  
        Address = 0xc0 + X; 
   } 
    
   LCDWaitForReady(); 
    LCDSendCommand(Address); 
} 

/******************************************************** 
*  函數(shù)說明:LCD字符串顯示函數(shù)                          * 
********************************************************/ 
void LCDDisplayString(char *String) 
{ 
    while(*String) 
   { 
       LCDWaitForReady(); 
       LCDSendData(*String); 
      String++; 
   } 
} 


/******************************************************** 
*  函數(shù)說明:數(shù)值顯示函數(shù)(HEX)                          * 
*  輸入:    需要顯示的數(shù)字                             * 
********************************************************/ 
void LCDDisplayNum(unsigned int Num)

{
char showtext[8]="0"; 

unsigned long temp;
unsigned int a1,a2,a3,a4,a5,a6,a7,a8;
char nn;
char a;
temp=Num;
a1=temp/10000000;
a2=temp/1000000-a1*10;
a3=temp/100000-(a2*10+a1*100);
a4=temp/10000-(a3*10+a2*100+a1*1000);
a5=temp/1000-(a4*10+a3*100+a2*1000+a1*10000);
a6=temp/100-(a5*10+a4*100+a3*1000+a2*10000+a1*100000);
a7=temp/10-(a6*10+a5*100+a4*1000+a3*10000+a2*100000+a1*1000000);
a8=temp-(a7*10+a6*100+a5*1000+a4*10000+a3*100000+a2*1000000+a1*10000000);

if      (a1>0)nn=8;
else if (a2>0)nn=7;
else if (a3>0)nn=6;
else if (a4>0)nn=5;
else if (a5>0)nn=4; 
else if (a6>0)nn=3; 
else if (a7>0)nn=2; 
else if (a8>0)nn=1; 
else nn=0;
switch(nn){
case 8:
showtext[0]=a1+0x30;
showtext[1]=a2+0x30;
showtext[2]=a3+0x30;
showtext[3]=a4+0x30;
showtext[4]=a5+0x30;
showtext[5]=a6+0x30;
showtext[6]=a7+0x30;
showtext[7]=a8+0x30;
for(a=0;a<8;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;
case 7:
showtext[0]=a2+0x30;
showtext[1]=a3+0x30;
showtext[2]=a4+0x30;
showtext[3]=a5+0x30;
showtext[4]=a6+0x30;
showtext[5]=a7+0x30;
showtext[6]=a8+0x30;
for(a=0;a<7;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;
case 6:
showtext[0]=a3+0x30;
showtext[1]=a4+0x30;
showtext[2]=a5+0x30;
showtext[3]=a6+0x30;
showtext[4]=a7+0x30;
showtext[5]=a8+0x30;
for(a=0;a<6;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;
case 5:
showtext[0]=a4+0x30;
showtext[1]=a5+0x30;
showtext[2]=a6+0x30;
showtext[3]=a7+0x30;
showtext[4]=a8+0x30;
for(a=0;a<5;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;
case 4:
showtext[0]=a5+0x30;
showtext[1]=a6+0x30;
showtext[2]=a7+0x30;
showtext[3]=a8+0x30;
for(a=0;a<4;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;
case 3:
showtext[0]=a6+0x30;
showtext[1]=a7+0x30;
showtext[2]=a8+0x30;
showtext[3]=0x20;
for(a=0;a<4;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;
case 2:
showtext[0]=a7+0x30;
showtext[1]=a8+0x30;
showtext[2]=0x20;
showtext[3]=0x20;
for(a=0;a<4;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);

}
break;
case 1:
showtext[0]=a8+0x30;
showtext[1]=0x20;
showtext[2]=0x20;
showtext[3]=0x20;
for(a=0;a<4;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;
case 0:
showtext[0]=0x30;
showtext[1]=0x20;
showtext[2]=0x20;
showtext[3]=0x20;
for(a=0;a<4;a++)
{
LCDWaitForReady(); 
LCDSendData(showtext[a]);
}
break;

}
}
void RunString(char *String,char Direction,char Y,char StartX,char EndX)
{
    static char StringHead = 0;
	char SCREEN[17];
	char a = 0;
	char Point = StringHead;
	char StringLong = StringLenth(String);
	static int RunTimeCounter = 0;
	
	for (a = 0;a<EndX - StartX + 1;a++)
	{
	     SCREEN[a] = String[Point];
		 Point ++;
		 if (Point == StringLong)
		 {
		     Point = 0;
		 }
	}
	
	for (;a < 17;a++)
	{
	    SCREEN[a] =' ';
	}
	
	RunTimeCounter ++;
	if (RunTimeCounter >50)
	{
	    StringHead ++;
		RunTimeCounter = 0;
		if (StringHead == StringLong)
	    {
	        StringHead = 0;
	    }
	}
	
	Locate(StartX,Y)
	Print(SCREEN)
}


void delay_1us(void)                 //1us延時函數(shù)
  {
   asm("nop");
  }

void delay_nus(unsigned int n)       //N us延時函數(shù)
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1us();
  }
  
void delay_1ms(void)                 //1ms延時函數(shù)
  {
   unsigned int i;
   for (i=0;i<1140;i++);
  }
  
void delay_nms(unsigned int n)       //N ms延時函數(shù)
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久免费| 亚洲欧美国产77777| 日韩精品乱码av一区二区| 国产一区二区电影| 日韩欧美国产1| 日本不卡视频在线观看| 欧美三级资源在线| 亚洲精品中文在线影院| 国产精品综合二区| 国产日产精品1区| 国产一区二区视频在线播放| 日韩视频在线观看一区二区| 蜜桃一区二区三区在线观看| 日韩三级视频中文字幕| 日韩国产欧美在线视频| 日韩一区二区三区在线视频| 免费看欧美美女黄的网站| 91精品国产色综合久久不卡蜜臀| 亚洲国产欧美日韩另类综合| 欧美日韩精品久久久| 日本欧美在线观看| 国产亚洲va综合人人澡精品| 成人午夜电影网站| 一区二区三区精品在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品456| 国产精品美女一区二区| 91网站在线播放| 午夜精品爽啪视频| 欧美精品一区二区三区在线| 国产麻豆91精品| 日韩av一二三| 亚洲精品一区二区三区福利| 不卡一区二区在线| 亚洲午夜精品网| 欧美国产激情二区三区| 欧美日韩一区二区在线观看| 国产麻豆精品theporn| 亚洲午夜久久久久久久久电影网| 91精品国产一区二区三区香蕉| 成人一区二区三区中文字幕| 日本视频在线一区| 亚洲在线中文字幕| 中文字幕在线观看一区| 久久品道一品道久久精品| 欧亚一区二区三区| 色呦呦国产精品| 久久久久国产精品麻豆ai换脸 | 国产盗摄一区二区三区| 亚洲午夜久久久| 亚洲午夜私人影院| 亚洲人xxxx| 亚洲精品国产品国语在线app| 国产喷白浆一区二区三区| 欧美一卡二卡三卡四卡| 91精品国产色综合久久ai换脸 | 3atv在线一区二区三区| 欧美军同video69gay| 91福利精品第一导航| 久久久99久久| 日本一区二区免费在线| 中文一区二区在线观看| 国产午夜精品在线观看| 国产午夜三级一区二区三| 国产精品久久久久一区| 亚洲美女免费视频| 婷婷综合五月天| 久99久精品视频免费观看| 国产一区二区三区在线看麻豆| 国产精品亚洲成人| 欧美午夜精品久久久久久孕妇| 日韩一区国产二区欧美三区| 国产女同互慰高潮91漫画| 自拍偷拍欧美精品| 午夜天堂影视香蕉久久| 久久精品国产999大香线蕉| 国产69精品一区二区亚洲孕妇| aaa欧美日韩| 欧美成人a在线| 一区二区久久久| 国产成人精品一区二区三区四区| 一本到不卡免费一区二区| 精品日韩av一区二区| 国产乱码字幕精品高清av | 一区二区三区在线播放| 精品一区二区三区蜜桃| 91久久香蕉国产日韩欧美9色| 久久久99精品免费观看| 五月天中文字幕一区二区| 不卡高清视频专区| 亚洲精品在线观| 麻豆freexxxx性91精品| 欧美色区777第一页| 亚洲美女免费视频| 91日韩精品一区| 亚洲欧美综合另类在线卡通| 国产suv精品一区二区883| 精品欧美乱码久久久久久| 亚洲一区二区不卡免费| 99精品视频在线免费观看| 国产亚洲欧洲一区高清在线观看| 日本成人超碰在线观看| 91精品国产高清一区二区三区蜜臀 | 亚洲老司机在线| 97精品电影院| 亚洲欧美怡红院| 色综合欧美在线视频区| 亚洲人成精品久久久久| 在线亚洲人成电影网站色www| 亚洲一区二区免费视频| 欧美日韩黄色影视| 久草这里只有精品视频| 精品欧美久久久| 成人激情开心网| 亚洲一二三四在线| 宅男在线国产精品| 国产一区二区精品久久99| 久久伊99综合婷婷久久伊| 精品一区二区三区不卡 | 粉嫩av一区二区三区| 亚洲老司机在线| 4438亚洲最大| 99视频有精品| 九九在线精品视频| 亚洲欧美激情在线| 精品国产免费一区二区三区香蕉| av在线不卡电影| 国产在线精品视频| 亚洲不卡av一区二区三区| 欧美一区二区三区爱爱| 狠狠色丁香婷综合久久| 国产精品嫩草影院av蜜臀| 欧美色图激情小说| 激情文学综合丁香| 26uuu色噜噜精品一区二区| 不卡的电视剧免费网站有什么| 手机精品视频在线观看| 中文字幕乱码亚洲精品一区| 欧美在线影院一区二区| 99麻豆久久久国产精品免费 | 欧美一区二区三区四区五区 | 日韩免费看的电影| 91麻豆国产福利在线观看| 久久综合综合久久综合| 亚洲免费观看视频| 国产欧美日韩另类一区| 欧美人xxxx| 色婷婷av一区| 精品亚洲欧美一区| 日韩专区中文字幕一区二区| 亚洲天天做日日做天天谢日日欢 | 亚洲精品菠萝久久久久久久| 91精品国产综合久久久久久久| 国产一区二区免费看| 亚洲午夜在线视频| 亚洲一卡二卡三卡四卡| 久久美女艺术照精彩视频福利播放| 欧美在线影院一区二区| 91在线一区二区三区| 成人免费av网站| 国产一区视频导航| 国产精品91一区二区| 美国毛片一区二区| 美女精品自拍一二三四| 青青青伊人色综合久久| 亚洲sss视频在线视频| 亚洲国产另类av| 五月天一区二区三区| 久久99精品久久久久婷婷| 国产一区二区三区四| 国产一区二区日韩精品| 国产精品一区二区三区四区| 国产白丝网站精品污在线入口 | 久久久精品免费网站| 日韩一区二区精品葵司在线| 久久蜜臀精品av| 国产精品国产三级国产普通话99 | 91麻豆国产福利在线观看| 日本高清不卡视频| 欧美亚洲国产bt| 91黄视频在线| 欧美日韩国产另类不卡| 欧美一级二级三级蜜桃| 久久先锋资源网| 一区二区国产视频| 亚洲成人1区2区| 国产一区二区三区香蕉| 在线视频中文字幕一区二区| 欧美第一区第二区| 国产精品成人免费精品自在线观看| 香蕉影视欧美成人| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 一本久久a久久免费精品不卡| 欧美一区三区四区| 中文字幕一区av| 久久国产综合精品| 欧美最新大片在线看| 国产精品久久久久久久久图文区| 久久66热re国产| 日韩欧美国产1|