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

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

?? lcd.c.bak

?? 基于at89c52的乒乓球游戲系統
?? BAK
字號:
/*************************************
 * 控制器: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;
	  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 CLR(uchar hang,uchar lie)

/*---------------------------------------------------------------------------
初始化
---------------------------------------------------------------------------*/
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++;   
   } 
}

//===================================================
//  屏幕向上移動
//===================================================
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| 奇米888四色在线精品| 奇米亚洲午夜久久精品| 久久精品国产亚洲高清剧情介绍| 成人高清视频在线观看| 日韩欧美亚洲国产精品字幕久久久| 国产日韩欧美综合一区| 青青草成人在线观看| 91麻豆免费看片| 国产女人18水真多18精品一级做| 日本不卡在线视频| 欧洲一区二区三区在线| 18涩涩午夜精品.www| youjizz国产精品| 亚洲欧洲日韩av| 91蝌蚪国产九色| 午夜在线成人av| 日韩视频123| 懂色av一区二区夜夜嗨| 成人免费一区二区三区视频| 成人黄色小视频| 亚洲免费观看高清在线观看| 欧美亚洲尤物久久| 中文成人综合网| 色综合久久88色综合天天| 亚洲欧洲日韩女同| 日韩免费高清视频| 日本精品视频一区二区三区| 久久超级碰视频| 悠悠色在线精品| 国产女同性恋一区二区| 欧美日韩国产一区| 91丨九色porny丨蝌蚪| 久久99国产精品成人| 亚洲一区二区三区影院| 中日韩av电影| 久久久亚洲午夜电影| 91精品免费观看| 欧美色图激情小说| 91尤物视频在线观看| 成人午夜免费视频| 国产一区在线视频| 日本亚洲电影天堂| 亚洲欧洲综合另类| 亚洲少妇最新在线视频| 中文一区二区在线观看| 国产日韩欧美高清| 国产精品久久夜| 国产精品乱人伦一区二区| 亚洲一区二区av电影| 国产精品国产三级国产专播品爱网| 26uuu精品一区二区在线观看| 欧美一区二区三区思思人| 欧美丰满高潮xxxx喷水动漫| 欧美综合在线视频| 欧美日韩五月天| 欧美电影在线免费观看| 这里是久久伊人| 精品捆绑美女sm三区| 欧美精品一区在线观看| 中文字幕精品三区| 一区二区免费在线| 日韩高清在线一区| 国产久卡久卡久卡久卡视频精品| 国产丶欧美丶日本不卡视频| 国产精品亚洲第一区在线暖暖韩国 | 亚洲一区在线观看免费观看电影高清| 亚洲欧美在线高清| 亚洲高清免费观看高清完整版在线观看 | 亚洲精品一区二区在线观看| 久久伊人中文字幕| 亚洲综合免费观看高清完整版| 视频一区二区欧美| 成人动漫av在线| 欧美日韩高清一区二区三区| 精品久久久久一区| 亚洲欧美视频在线观看视频| 久草精品在线观看| 欧美日韩视频不卡| 国产精品乱人伦中文| 精品一区二区久久久| 91久久精品日日躁夜夜躁欧美| 久久午夜色播影院免费高清| 中文字幕一区二区在线观看 | 国产精品女主播在线观看| 香蕉av福利精品导航| 一本色道久久综合亚洲精品按摩 | 欧美性生活一区| 国产精品国产精品国产专区不片 | 不卡的av在线播放| 久久久久久久免费视频了| 日本在线不卡一区| 91.xcao| 亚洲亚洲人成综合网络| 9色porny自拍视频一区二区| 精品国产三级a在线观看| 免费欧美在线视频| 91精品国产福利| 日本va欧美va精品| 日韩一级片网站| 日本不卡视频在线| 日韩三级伦理片妻子的秘密按摩| 亚洲成人午夜影院| 欧美一级一区二区| 国产在线播放一区二区三区| 久久久精品国产免费观看同学| 国产精品一区二区久激情瑜伽| 欧美成人vps| 免费在线看成人av| 91精品婷婷国产综合久久竹菊| 蜜桃一区二区三区在线| 欧美精品在线一区二区| 国产曰批免费观看久久久| 国产精品久久久久桃色tv| 色屁屁一区二区| 激情另类小说区图片区视频区| 国产女主播一区| 在线成人高清不卡| 高清免费成人av| 日韩在线卡一卡二| 国产精品久久久久三级| 宅男在线国产精品| av色综合久久天堂av综合| 日日夜夜一区二区| 一区视频在线播放| 欧美成va人片在线观看| 欧美日韩一区中文字幕| 国产成人精品亚洲777人妖| 亚洲韩国精品一区| 中文字幕在线视频一区| 欧美一区二区三区视频| 91成人免费电影| 国产寡妇亲子伦一区二区| 免费成人在线观看视频| 亚洲男人都懂的| 国产精品丝袜91| 久久精品综合网| 久久精品一区四区| 欧美成人福利视频| 欧美精品一区二区三区一线天视频| 色婷婷久久久综合中文字幕| 国产在线精品一区二区夜色| 蜜臀精品一区二区三区在线观看| 亚洲一本大道在线| 水野朝阳av一区二区三区| 亚洲国产乱码最新视频| 亚洲少妇30p| 一区二区三区在线播| 亚洲天堂av一区| 一区二区欧美国产| 日韩高清不卡一区二区| 美女视频一区二区| 国产999精品久久久久久绿帽| 国内外成人在线视频| 国产**成人网毛片九色 | 国产一区二区三区免费播放| 欧美日韩在线亚洲一区蜜芽| 在线免费视频一区二区| 懂色av一区二区三区蜜臀| 国产一区二区中文字幕| 国产999精品久久久久久绿帽| 成人免费毛片aaaaa**| 色爱区综合激月婷婷| 日韩欧美aaaaaa| 亚洲天堂av老司机| 美女高潮久久久| 成人午夜免费电影| 日韩一卡二卡三卡国产欧美| 一区二区三区四区五区视频在线观看| 亚洲成人综合在线| 国产精品美女久久久久久 | 久久亚洲二区三区| 色8久久精品久久久久久蜜| zzijzzij亚洲日本少妇熟睡| 国产一区二区三区高清播放| 国产白丝网站精品污在线入口| 国产成人精品午夜视频免费| 国产91富婆露脸刺激对白| 91蝌蚪国产九色| 久久精品一二三| 五月激情六月综合| 色综合久久精品| 亚洲精品一区在线观看| 亚洲mv在线观看| 成人91在线观看| 久久久久久久久久久黄色| 亚洲成a人片在线观看中文| 不卡的av在线播放| 国产清纯白嫩初高生在线观看91 | 91久久一区二区| 国产精品视频一区二区三区不卡| 久久精品72免费观看| 欧美日韩久久一区| 日韩精品欧美成人高清一区二区| 国产精品综合视频| 欧美亚洲国产一区二区三区va | 国产自产2019最新不卡| 7799精品视频| 日韩成人免费看| 欧美乱妇15p|