⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iicok.c

📁 俄罗斯方块的源代码雅俗文件
💻 C
📖 第 1 页 / 共 3 页
字号:
0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xbb,0xbb,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x9b,0xdd,
0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xbb,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xdd,
0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0xbb,0xbb,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xaa,0xaa,0xaa,0xab,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xaa,0xaa,0xab,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xaa,0xaa,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xaa,0xab,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xaa,0xbb,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xaa,0xab,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
0xab,0xbd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,
};





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;
 uchar temph,templ;
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));
  nack(1);
 }

 stop(); 
   SCL=1;
 SDA=1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -