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

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

?? iic.c

?? 一款用51單片機寫的俄羅斯方塊游戲完整項目下載
?? C
字號:
/*
本項目專門為本站的51 PIC AVR 多功能學習開發板而寫,僅供參考,請勿做商業用途,歡迎轉載但要保留本站信息
                                  志博電子專注于8位單片機開發板設計和教學  
                                      讓人耳目一心的經濟又豪華型開發板
                                                性價比最高 
                                                 僅售378! 
歡迎訪問我們的網站 www.elecmcu.com                                              
*/
#define IIC_READ 0XA1    //定義讀指令
#define IIC_WRITE 0XA0   //定義寫指令
#define NOP _nop_()
#define uchar unsigned char
#define uint  unsigned int
#include "reg52.h"
#define IIC_READ 0XA1    //定義讀指令
#define IIC_WRITE 0XA0   //定義寫指令
#define NOP _nop_()
uchar readbyteseq(uint add,uchar *ptr,uint readlen);
uchar writebyteseq(uint add,uchar *ptr,uint writelen);
void delay10ms(void);
//#define SDA INT0
//#define SCL T0
//==============================
uchar xdata buff[2000]; //save the byte read out  form iic device in test operation
uchar xdata readbuff[232];//測試數組,暫存寫入讀出數據
//uchar writebuff[32];
//===============================
sbit SDA=P3^5;//P2^7; //THE SDA BIT IS PORT 2 BIT 7
sbit SCL=P3^4;//P2^6; //THE SCL BIT IS PORT 2 BIT 6
sbit SEN=P3^3;//P2^6; //THE SCL BIT IS PORT 2 BIT 6
sbit STE=P3^2;//P2^6; //THE SCL BIT IS PORT 2 BIT 6
uchar bdata bbyte;//定義位操作用數組,采用此方法可提高位操作速度
sbit a0=bbyte^0;
sbit a1=bbyte^1;
sbit a2=bbyte^2;
sbit a3=bbyte^3;
sbit a4=bbyte^4;
sbit a5=bbyte^5;
sbit a6=bbyte^6;
sbit a7=bbyte^7;
//========================================
bit IFACK; //record the SDA state to confirn if ACK has happened 
bit NO_ACK; //no ack flag
bit BUS_FAULT; //bus fault flag
//========================================
void start(void)
{
 SCL=0;
 SDA=1;
 SCL=1;
 SDA=0;
 SCL=0;
}
//=======================================
//FUNCTION:ROUTES TO PROVIDE A STOP SIGNAL
void stop(void)
{
 SCL=0;
 SDA=0;
 SCL=1;
 SDA=1;
 SCL=0;
}
//=====================================
//FUNCTION:ROUTES TO PROVIDE ACK SINGAL
void ack(void)
{
 SCL=0;
 SDA=0;
 SCL=1;
 SCL=0;
}
//=====================================
//FUNCTION:ROUTES TO RELEASE THE SDA TO RECEIVE A ACK SIGNAL 
//              OR TO PROVIDE A NO_ACK SIGNAL
//type=1等待應答信號
//type=0 產生無應答信號
void nack(uchar type)
{
SCL=0;
SDA=1;
SCL=1;
IFACK=SDA;
SCL=0;
 if(type)
 {
  if(IFACK)//如果無應答信號,則置標志位NO_ACK,程序中止
  { 
   NO_ACK=1;//用戶可以加入自己的異常處理程序
   //while(1);
  }
  else NO_ACK=0;
 }
}
//=======================================================
//FUNCTION:THE IIC DEVICE SHIFT OUT A BYTE  TO THE MASTER
uchar  inbyte(void) {//從IIC器件中讀出數據
 SDA=1;
 SCL=1;
 a7=SDA;
 SCL=0;
 SCL=1;
 a6=SDA;
 SCL=0;
 SCL=1;
 a5=SDA;
 SCL=0;
 SCL=1;
 a4=SDA;
 SCL=0;
 SCL=1;
 a3=SDA;
 SCL=0;
 SCL=1;
 a2=SDA;
 SCL=0;
 SCL=1;
 a1=SDA;
 SCL=0;
 SCL=1;
 a0=SDA;
 SCL=0;
 return(bbyte);
}
//=======================================================
//FUNCTION:THE IIC DEVICE SHIFT IN A BYTE FROM THE MASTER 
void outbyte(uchar outdata) {//將數據寫放IIC器件
 bbyte=outdata;
 SDA=a7;
 SCL=1;
 SCL=0;
 SDA=a6;
 SCL=1;
 SCL=0;
 SDA=a5;
 SCL=1;
 SCL=0;
 SDA=a4;
 SCL=1;
 SCL=0;
 SDA=a3;
 SCL=1;
 SCL=0;
 SDA=a2;
 SCL=1;
 SCL=0;
 SDA=a1;
 SCL=1;
 SCL=0;
 SDA=a0;
 SCL=1;
 SCL=0;
}
/*
//======================================================
//FUNCTION:BYTE WRITE.  'add'     THE WRITE ADDRESS, 'wbyte'   THE DATA WANT TO WRITE
void writebyte(uint add,uchar wbyte)//add為寫入地址,wbyte為寫入數據
{
 uchar temph,templ;
 temph=(uchar)(add/256);
 templ=(uchar)(add%256);
 if(!STE)
 return;
 SEN=0;
 if(!STE)
 {
 SEN=1;
 SCL=1;
 SDA=1;
 return;
 }
 start();    //開始信號
 outbyte(IIC_WRITE|(temph<<1));   //寫命令
 nack(1);   //等待應答
 outbyte(templ);  //寫地址
 nack(1);
 outbyte(wbyte);   //寫數據
 nack(1);   //等待應答
 stop();    //停止信號
 SCL=1;
 SDA=1;
 SEN=1;
}
//=====================================================
//FUNCTION:RANDOM READ.'add' IS THE ADDRESS WANT TO READ
uchar readbyte (uint add)//add為讀地址
{
uchar temp,temph,templ; 
 temph=(uchar)(add/256);
 templ=(uchar)(add%256);
 if(!STE)
 return 0XFF;
 SEN=0;
 if(!STE)
 {
  SCL=1;
 SDA=1;
 SEN=1;
 return 0XFF;
 }
 start();   //開始信號
 outbyte(IIC_WRITE|(temph<<1));   //寫命令
 nack(1);   //等待應答
 outbyte(templ);  //寫地址
 nack(1);
 start();   //開始信號
 outbyte(IIC_READ|(temph<<1));   //讀命令
 nack(1);   //等待應答
 temp=inbyte();   //讀數據
 nack(0);   //無應答
 stop();    //停止信號
 SEN=1;
 SCL=1;
 SDA=1;
 return(temp);
}
*/
//=================================================
//連寫函數
//add為讀起始地址,ptr數據保存指針,writelen為寫入數據長度
uchar writebyteseq(uint add,uchar *ptr,uint writelen)
{
 //uchar temp;
 data uchar temph,templ;
data uint i;
 temph=(uchar)(add/256);
 templ=(uchar)(add%256);
  if(!STE)
 return 0XFF;
 SEN=0;
 if(!STE)
 {
  SCL=1;
 SDA=1;
 SEN=1;
 return 0XFF;
 }
 start();   
 outbyte(IIC_WRITE|(temph<<1));  
 nack(1);  
 outbyte(templ);
 nack(1);
 for(i=0;i<writelen;i++)
 {
  outbyte(*(ptr+i));    
  SCL=0;
SDA=1;
SCL=1;
SCL=0;
  //nack(1);
 }

 stop(); 
   SCL=1;
 SDA=1;
 SEN=1;
  return 0;
}
//=================================================
//連讀函數
//add為讀起始地址,ptr數據保存指針,writelen為讀出數據長度
uchar readbyteseq(uint add,uchar *ptr,uint readlen)
{

xdata uchar temph,templ;
 uint i;

 temph=(uchar)(add/256);
 templ=(uchar)(add%256);
   if(!STE)
   {
     SCL=1;
 SDA=1;
 SEN=1;
 return 0XFF;
 }
 SEN=0;
 if(!STE)
 {
  SCL=1;
 SDA=1;
 SEN=1;
 return 0XFF;
 }
 start();
 outbyte(IIC_WRITE|(temph<<1));
 nack(1);
 outbyte(templ);
 nack(1);
 start();
 outbyte(IIC_READ|(temph<<1));
 nack(1);
 for(i=0;i<readlen-1;i++)
 {
  *(ptr+i)=inbyte();
  ack();
  
 }
 *(ptr+readlen-1)=inbyte();
 nack(0);
 stop();
   SCL=1;
 SDA=1;
 SEN=1;
 return 0;
}


void delay10ms(void)
{
xdata int i;
for(i=0;i<1000;i++)
;
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲综合另类| 椎名由奈av一区二区三区| 精品国产三级a在线观看| 国产清纯白嫩初高生在线观看91| 一区二区三区在线观看国产| 美女脱光内衣内裤视频久久网站| 91麻豆国产在线观看| 久久久久久久久久美女| 午夜av一区二区三区| 色综合一个色综合| 久久久久久久综合色一本| 国产精品综合在线视频| 欧美高清视频一二三区| 一区二区三区高清在线| 在线观看国产91| 亚洲丝袜自拍清纯另类| 欧美亚洲另类激情小说| 亚洲码国产岛国毛片在线| 欧美视频精品在线观看| 精品一区二区影视| 日韩欧美国产电影| 日韩av高清在线观看| 欧美日韩午夜精品| 亚洲黄色片在线观看| 99久久综合色| 国产精品美女久久久久aⅴ| 国产精品1区2区| 亚洲人亚洲人成电影网站色| 欧美日韩一区二区电影| 国产九色精品成人porny| 亚洲精品日产精品乱码不卡| 91精品国产乱| 久久精品国产精品亚洲精品| 欧美大片日本大片免费观看| 国产成人福利片| 国产精品久久久久9999吃药| 成人av在线播放网址| 国产欧美精品一区| 欧美日韩视频在线第一区| 国产一区二区三区不卡在线观看| 久久影音资源网| 成人午夜在线视频| 自拍偷拍国产精品| 久久麻豆一区二区| 欧美日韩在线免费视频| 不卡的av中国片| 久久综合综合久久综合| 亚洲精品国产一区二区精华液 | 91精品婷婷国产综合久久竹菊| 亚洲黄色免费电影| 欧美xxxx老人做受| jizz一区二区| 韩国理伦片一区二区三区在线播放 | 欧美日韩精品一区二区天天拍小说 | 亚洲成人免费av| 日韩一区二区三区精品视频| 精品一区二区成人精品| 亚洲成人第一页| 亚洲欧洲综合另类| 国产精品久久久久久福利一牛影视| 777色狠狠一区二区三区| 91蜜桃网址入口| 大尺度一区二区| 黑人巨大精品欧美黑白配亚洲| 亚洲成人免费在线观看| 亚洲综合男人的天堂| 欧美一区二区在线免费播放 | 91久久精品国产91性色tv| 午夜精品福利在线| 一级中文字幕一区二区| 日韩一区欧美一区| 91精品国产一区二区| 欧美亚洲禁片免费| 欧美综合视频在线观看| 色婷婷综合久色| 精品一区免费av| 激情深爱一区二区| 精品一区二区三区av| 久久国产夜色精品鲁鲁99| 美女性感视频久久| 免费欧美在线视频| 亚洲自拍都市欧美小说| 亚洲毛片av在线| 一区二区三区在线观看动漫| 亚洲综合免费观看高清在线观看| 亚洲精品视频在线观看免费| 亚洲麻豆国产自偷在线| 亚洲一区在线观看免费观看电影高清 | 日韩视频免费观看高清在线视频| 精品视频资源站| 欧美日韩大陆在线| 欧美一区在线视频| 亚洲精品一区二区三区影院| 国产午夜精品理论片a级大结局| 欧美在线不卡一区| 欧美男男青年gay1069videost | 国产精品初高中害羞小美女文| 久久久久国产精品麻豆ai换脸| 久久精品视频一区二区三区| 欧美激情中文不卡| 精品国产乱码久久久久久蜜臀| www国产亚洲精品久久麻豆| 久久九九国产精品| 亚洲欧美色图小说| 五月天亚洲婷婷| 国产一区二区三区美女| 91看片淫黄大片一级在线观看| 欧美日韩精品综合在线| 久久久久久久性| 亚洲三级小视频| 男女性色大片免费观看一区二区| 国产精品亚洲专一区二区三区| eeuss鲁片一区二区三区| 欧美日韩久久一区| 国产免费久久精品| 香蕉影视欧美成人| 成人午夜视频免费看| 精品视频在线免费| 久久精品一区二区三区不卡牛牛| 亚洲日本护士毛茸茸| 日韩黄色小视频| 蜜臀久久99精品久久久久宅男| 国产精品18久久久久久vr| 色噜噜久久综合| 3d成人h动漫网站入口| 国产精品对白交换视频| 视频一区二区三区在线| 成人91在线观看| 欧美一二三区在线观看| 亚洲欧美另类久久久精品2019| 蜜桃久久久久久| 在线观看日韩一区| 国产调教视频一区| 免费国产亚洲视频| 欧美亚洲国产一卡| 国产精品久久久久国产精品日日| 久久超级碰视频| 日本精品一区二区三区高清| 久久精子c满五个校花| 日韩高清在线电影| 欧美中文字幕不卡| 国产精品久久国产精麻豆99网站| 久久精品国产99| 欧美午夜精品久久久| **欧美大码日韩| 国产另类ts人妖一区二区| 这里是久久伊人| 亚洲一区二区三区在线看| 成人黄色大片在线观看| 精品国产免费久久| 三级在线观看一区二区| 8x福利精品第一导航| 亚洲一区二区在线免费看| 99久久婷婷国产综合精品电影 | 成人激情黄色小说| 久久网站热最新地址| 日本欧美肥老太交大片| 欧美色图免费看| 夜夜嗨av一区二区三区四季av| 不卡一区二区三区四区| 国产欧美日韩三区| 国产精品91xxx| 久久久av毛片精品| 国产成人综合在线| 久久综合色之久久综合| 国产真实乱子伦精品视频| 91精品国产综合久久小美女| 午夜国产精品影院在线观看| 欧美日韩亚洲综合| 偷拍一区二区三区四区| 91精品在线观看入口| 日韩精品午夜视频| 欧美一区二区三区成人| 毛片av一区二区| 欧美精品一区二区三区很污很色的| 美国精品在线观看| 久久精子c满五个校花| 高清在线不卡av| 欧美高清精品3d| 视频在线观看91| 欧美xxxx老人做受| 国产成人小视频| 综合久久久久久久| 色av成人天堂桃色av| 亚洲va韩国va欧美va精品| 欧美一区二区网站| 国产主播一区二区| 亚洲欧美日韩中文字幕一区二区三区 | 欧洲av在线精品| 三级在线观看一区二区| 久久视频一区二区| av毛片久久久久**hd| 亚洲午夜久久久| 91免费看视频| 五月天婷婷综合| 久久一区二区三区国产精品| 国产成人av影院| 一区二区免费视频| 精品久久久久久最新网址| 成人涩涩免费视频|