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

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

?? lcd.c

?? 基于at89c52的乒乓球游戲系統
?? C
字號:
/*************************************
 * 控制器:KS0108 
 * MCU:AT89C52 ,晶體頻率:6MHz 
 * 取模方式:縱向字節倒序 
 * CS1和CS2為低電平有效  
 * copyright:tiany
 * time:2008-9-20
**************************************/
#include <reg52.h>
#include "LCD.h"

//全局變量=====
uchar status;
uchar cbyte;

void Delay_us(uint DelayTime)        //*******us延時*****//
{
   while(DelayTime) DelayTime--;
}



/*--------------------------
*忙信號檢測 
----------------------------*/ 
void LCD_Check_Busy(void)
{
  /* while(1)
	{
	  LCD_EN = 0;
 	  LCD_RS = 0;
	  LCD_RW = 1;
	  LCD_BUS = 0xFF;
      Delay_us(5);
	  LCD_EN = 1;
	  if(!LCD_Busy) break;   /***在proteus中仿真查忙會引起死循環,程序的BUG!***/
    // }
   LCD_EN = 0;
}
  
/*---------------------------------------------------------------------------- 
寫入控制指令代碼。 
函數入口參數:Command ------ 寫入的控制指令代碼 。 
              CS_Num  ------ 左右半屏的選數值 
----------------------------------------------------------------------------*/ 
void LCD_WriteCommand(uchar Command, uchar CS_Num) 
{ 
  LCD_Check_Busy();
  if(CS_Num==L)			/*選左半屏*/
   {
     LCD_CS1 = 0;
	   LCD_CS2 = 1;
	}
  else if(CS_Num==R)	/*選右半屏*/
   {
     LCD_CS1 = 1;
	   LCD_CS2 = 0;
	}
  LCD_EN = 0;           
  LCD_RS = 0;           
  LCD_RW = 0;          
  LCD_BUS = Command;   
  LCD_EN = 1;          
  Delay_us(1);         
  LCD_EN = 0;          
  LCD_CS1 = 1;         
  LCD_CS2 = 1;          
} 
/*---------------------------------------------------------------------------- 
寫入定位信息 
函數入口參數:hang ------ 寫入的行位置 
              lie  ------ 寫入的列位置 
----------------------------------------------------------------------------*/ 
void Locatexy(uchar hang,uchar lie)
{
   uchar  x, y, right;
   switch(lie&0xc0)
    {
    case 0:   { right = L;break;} //置左半屏標志
    case 0x40:{ right = R;break;}//置右半屏標志
     }
   x=lie&0x3f|SETX; //把列數據變成列命令 40
   y=hang&0x07|SETY;//把行數據變成行命令 b8
   LCD_WriteCommand(y, right);/***送行命令***/
   LCD_WriteCommand(x, right);/***送列命令***/
   
   if(right==R)
    status = R;
   else
    status = L;//置左又半區標志
}
/*---------------------------------------------------------------------------- 
寫入顯示數據。 
函數入口參數: data    --------寫入的顯示數據 。 
               hang,lie--------寫入定位位置
----------------------------------------------------------------------------*/ 
void LCD_WriteData(uchar Data,uchar hang,uchar lie) 
{ 
  Locatexy(hang,lie);//定位顯示位置
  if(status==L)		 /*選擇左半屏*/
   {
     LCD_CS1 = 0;
	 LCD_CS2 = 1;
	}
  else if(status==R)  /*選擇右半屏*/
   {
     LCD_CS1 = 1;
	 LCD_CS2 = 0;
	}
  LCD_Check_Busy();
  LCD_EN = 0;
  LCD_RS = 1;       
  LCD_RW = 0;       
  LCD_BUS = Data;  
  LCD_EN = 1;       
  Delay_us(1);     
  LCD_EN = 0;    
  LCD_CS1= 1;    
  LCD_CS2= 1;       
} 
//=========數據讀取====================
/*uchar LCD_ReadData(uchar  hang,uchar lie)
{   
   uchar rdata;
   Locatexy(hang,lie);//定位顯示位置
   if(status==L)
   {  
    LCD_Check_Busy();
    LCD_CS1= 0;    
    LCD_CS2= 1; 
   }
   else
   {
    LCD_Check_Busy();
    LCD_CS1= 1;    
    LCD_CS2= 0; 
   }
  P0 =0xFF;   //數據送到P0口
  LCD_EN = 0;  
  LCD_RS = 1;       
  LCD_RW = 1;
  LCD_EN = 1; 
  Delay_us(1);
  rdata=P0;
  
  LCD_RS = 1;       
  LCD_RW = 1; 
  //P0 =0xFF;   //數據送到P0口 要讀兩次,第二次的才正確
  Delay_us(1);
  rdata=P0;
  
  LCD_EN = 0;    
  LCD_CS1= 1;    
  LCD_CS2= 1; 
  return rdata;
}*/
/*---------------------------------------------------------------------------
液晶模塊的清屏
---------------------------------------------------------------------------*/
void LCD_CLR(uchar Side_Num)
{
   uchar i,k;
   for(i=0;i<8;i++)				  
   {	
     if(Side_Num==L)
	     for(k=0;k<64;k++)
	      {
		    LCD_WriteData(0x00,i,k);
		  }
	 else if(Side_Num==R)
	     for(k=64;k<128;k++)
	      {
		    LCD_WriteData(0x00,i,k);
		  }
    }
}

/*---------------------------------------------------------------------------
初始化
---------------------------------------------------------------------------*/
void LCD_Initial(void) 
{   
   LCD_WriteCommand(DISPOFF,L);	  /*顯示關*/
   LCD_WriteCommand(DISPOFF,R);
   Delay_us(1);
   LCD_WriteCommand(DISPON,L);	  /*顯示開*/
   LCD_WriteCommand(DISPON,R);  
   LCD_WriteCommand(DISPFIRST,L);  /*起始行*/
   LCD_WriteCommand(DISPFIRST,R);			    
   LCD_CLR(L);
   LCD_CLR(R);
} 
/*---------------------------------------------------------------------------
輸出全屏圖片: 128*64
---------------------------------------------------------------------------*/
/*
void put_picture(uchar* pictureName)//128*64
{
  uchar i,j;
  uint  x;
    for(j=0;j<8;j++)
	{
     x=j*128; 
     for(i=0;i<128;i++)
      {
          cbyte=*(pictureName+x);
          LCD_WriteData(cbyte,j,i);
          x++;
      }     
    }   
}
*/
/*---------------------------------------------------------------------------
輸出半屏圖片: 64*64
---------------------------------------------------------------------------*/

void put_picture_half(uchar* pictureName,uchar Side_Num)//64*64
{
  uchar i,j;
  uint  x;
    for(j=0;j<8;j++)
    {
      x=j*64; 
      if(Side_Num==L)
      {
       for(i=0;i<64;i++)
        {
          cbyte=*(pictureName+x);
          LCD_WriteData(cbyte,j,i);
          x++;
        } 
      }  
      else if(Side_Num==R)
      {
       for(i=64;i<128;i++)
        {
          cbyte=*(pictureName+x);
          LCD_WriteData(cbyte,j,i);
          x++;
        } 
      }   
    }
}
/*---------------------------------------------------------------------------
輸出英文和數字:8*8
---------------------------------------------------------------------------*/
/*
void put_char(uchar* Data, uchar hang, uchar lie,uchar reverse)//8*8
{
   uchar i;
   uint x;
   x=0;
   for(i=0;i<8;i++)
    {
      if(reverse) cbyte=~(*(Data+x));
       else cbyte=*(Data+x);
       
      LCD_WriteData(cbyte,hang,lie);
      x++;
      lie++;
    }

}*/
/*---------------------------------------------------------------------------
輸出漢字: 16*16
---------------------------------------------------------------------------*/
void put_chinese(uchar* Data, uchar hang, uchar lie,uchar reverse)//16*16
{   
  uchar i,j,lie0;
  uint x;
  x=0;
  lie0=lie;
  for(j=0;j<2;j++)
   {
     for(i=0;i<16;i++)
      {
       if(reverse) cbyte=~(*(Data+x));
       else cbyte=*(Data+x);  
        LCD_WriteData(cbyte,hang,lie);
        x++;
        lie++;
      }   
     lie=lie0;
     hang++;   
   } 
}

/*---------------------------------------------------------------------------
輸出數字和字母: 16*8
---------------------------------------------------------------------------*/
void put_num(uchar* Data, uchar hang, uchar lie,uchar reverse)//16*16
{   
  uchar i,j,lie0;
  uint x;
  x=0;
  lie0=lie;
  for(j=0;j<2;j++)
   {
     for(i=0;i<8;i++)
      {
       if(reverse) cbyte=~(*(Data+x));
       else cbyte=*(Data+x);  
        LCD_WriteData(cbyte,hang,lie);
        x++;
        lie++;
      }   
     lie=lie0;
     hang++;   
   } 
}
//===================================================
//  屏幕向上移動   有問題  ????
//===================================================
/*void MoveUp()
{ 
   uint hang;
   uchar lie;
   //uchar hang2;
       for(hang=0;hang<8;hang++)
       {
            for(lie=0;lie<128;lie++)
            { 
               uchar buf; 
               //uchar lie2=lie+1;
               buf =LCD_ReadData(hang,lie);
               //if(hang==0)
                //continue ;
               //else
               // hang2=hang-1; 
               LCD_WriteData(buf,hang,lie);       
            }
           Delay_us(1000);  
       }
}*/


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲综合在线| 欧美日韩亚洲不卡| 国产馆精品极品| 国产一区二区在线影院| 成人免费观看视频| 国产麻豆一精品一av一免费| 国产主播一区二区| 国产乱码精品一区二区三区五月婷| 精品在线视频一区| 麻豆精品视频在线观看免费| 久久精品国产第一区二区三区| 看片的网站亚洲| 国产一区二区三区久久久 | 日本人妖一区二区| 毛片不卡一区二区| 国产乱理伦片在线观看夜一区| 国产91在线观看丝袜| 不卡一区二区中文字幕| 一本一道久久a久久精品综合蜜臀| 91丨porny丨国产| 欧美三级一区二区| 日韩欧美黄色影院| 欧美高清一级片在线观看| 国产精品久久久久久久久晋中 | 免费不卡在线视频| 国产精品一区二区在线观看网站| 国产成人免费视频精品含羞草妖精| 国产成人在线网站| 在线一区二区三区| 日韩一级视频免费观看在线| 久久九九99视频| 一区二区三区日韩精品| 亚洲成人免费在线观看| 久久av中文字幕片| 99riav久久精品riav| 这里只有精品电影| 日本一区免费视频| 亚洲国产日韩一级| 国产成人亚洲精品狼色在线| 91久久精品日日躁夜夜躁欧美| 91精品国产乱| 国产精品久久久久久一区二区三区| 亚洲国产精品久久久久婷婷884| 久久99精品久久久久久动态图| 99视频超级精品| 欧美一级艳片视频免费观看| 中文字幕va一区二区三区| 亚洲大型综合色站| 国产成人免费视频一区| 欧美三区在线观看| 中文幕一区二区三区久久蜜桃| 午夜欧美视频在线观看| 成人永久看片免费视频天堂| 欧美福利一区二区| 中文字幕在线不卡一区二区三区| 日本欧美大码aⅴ在线播放| av不卡免费在线观看| 日韩精品一区二区三区视频播放 | 欧美一级夜夜爽| 日韩一区中文字幕| 国产在线看一区| 欧美色偷偷大香| 中国色在线观看另类| 看片的网站亚洲| 精品视频一区三区九区| 国产精品区一区二区三| 精彩视频一区二区| 666欧美在线视频| 亚洲免费高清视频在线| 国产高清在线精品| 日韩视频免费观看高清完整版| 伊人一区二区三区| av一区二区不卡| 国产亚洲成aⅴ人片在线观看| 日韩精品三区四区| 欧美亚洲一区二区在线| 综合激情成人伊人| 成人av综合在线| 久久久精品tv| 久久激情五月激情| 欧美一区三区四区| 亚洲www啪成人一区二区麻豆 | 国产视频一区二区三区在线观看| 日韩国产在线观看| 欧美日韩国产中文| 亚洲一卡二卡三卡四卡五卡| 97se亚洲国产综合自在线 | 精品一区二区在线观看| 制服丝袜亚洲网站| 婷婷中文字幕一区三区| 欧美日韩一区二区在线观看| 国产精品久久精品日日| 福利一区二区在线观看| 国产欧美精品日韩区二区麻豆天美| 蜜臀精品久久久久久蜜臀| 欧美久久久久久久久久| 午夜伦欧美伦电影理论片| 欧美色偷偷大香| 天天操天天干天天综合网| 欧美在线观看一区| 亚洲国产精品久久久久婷婷884| 在线观看欧美黄色| 亚洲图片一区二区| 欧美日韩精品专区| 日欧美一区二区| 日韩一区二区在线观看视频播放| 日韩高清一区二区| 欧美成人精品福利| 国产一区二区精品久久| 国产人久久人人人人爽| 成人理论电影网| 亚洲精品写真福利| 欧美亚洲综合在线| 日韩精品久久久久久| 日韩一级片网站| 国产精品系列在线观看| 亚洲mv大片欧洲mv大片精品| 欧美人xxxx| 老司机精品视频在线| 久久久精品中文字幕麻豆发布| 成人性生交大合| 亚洲自拍都市欧美小说| 91精品中文字幕一区二区三区| 久久av老司机精品网站导航| 久久久亚洲国产美女国产盗摄| 不卡在线观看av| 亚洲电影一区二区三区| 精品国产青草久久久久福利| 国产a区久久久| 洋洋成人永久网站入口| 日韩写真欧美这视频| 国产成人在线网站| 亚洲一区二区av电影| 精品欧美久久久| 9l国产精品久久久久麻豆| 天堂一区二区在线免费观看| 久久精品一区二区三区不卡| 91麻豆国产精品久久| 日韩高清一区二区| 国产精品久久久久一区二区三区| 欧美午夜免费电影| 韩日精品视频一区| 亚洲精品日日夜夜| 精品国产a毛片| 色婷婷久久久亚洲一区二区三区| 蜜桃av一区二区| 亚洲欧洲在线观看av| 欧美日本一道本| www.欧美日韩| 日本v片在线高清不卡在线观看| 国产精品麻豆99久久久久久| 欧美日韩不卡一区| 高清国产午夜精品久久久久久| 亚洲123区在线观看| 中文字幕免费不卡| 91精品国产乱码| 94色蜜桃网一区二区三区| 另类小说色综合网站| 亚洲视频一区二区在线观看| 日韩欧美不卡一区| 一本久久综合亚洲鲁鲁五月天| 韩国女主播成人在线| 亚洲va欧美va国产va天堂影院| 国产亚洲欧美激情| 91精品国产综合久久久久| 9久草视频在线视频精品| 韩国三级电影一区二区| 日韩国产欧美一区二区三区| 亚洲美女偷拍久久| 欧美激情资源网| 精品对白一区国产伦| 欧美老肥妇做.爰bbww| 色播五月激情综合网| 国产91精品久久久久久久网曝门| 蜜臀久久99精品久久久画质超高清 | 日韩亚洲欧美一区二区三区| 91麻豆国产精品久久| 国产91精品在线观看| 国模冰冰炮一区二区| 天堂蜜桃91精品| 亚洲国产精品一区二区尤物区| 中文字幕一区不卡| 国产欧美视频在线观看| 欧美大片在线观看| 国产精品三级av| 久久天天做天天爱综合色| 91精品国产麻豆国产自产在线| 欧美日韩一区 二区 三区 久久精品| 99久久99久久综合| 97久久人人超碰| 成人不卡免费av| av资源网一区| av电影天堂一区二区在线观看| 成人美女视频在线观看| 岛国一区二区三区| 国产精品一区专区| 国内久久婷婷综合| 国产麻豆日韩欧美久久| 国产在线不卡一卡二卡三卡四卡| 韩国女主播一区|