8583 xinpian chengxv

来自「8583芯片编程应用写入器件地址写8574端口」· 代码 · 共 73 行

TXT
73
字号
/******************************************************
*函数原形:bit function e_address(byte byt_ad),
*功    能:写入器件地址和一个指定的字节地址。
********************************************************/
bit function E_address(byte byt_add)
{
        I2C_start();
        if (I2C_send(u8583w))
               return(I2C_send(byt_add));
        else
               return(FALSE);
}

/****************************************************************
*函数原形:bit function u8583_read(void)
*功    能:从8583芯片中读取时钟数据,(16字节)并转存于RAM
*           clock_image中,如果8583不接受指定的地址则返回0(false)
*****************************************************************/
bit function u8583_read(void)
{
         byte i;
         if(E_address(1))
         {
                I2C_start();
                if (I2C_send(u8583r))
                {
                    for(i=1;i<=clock_size;i++)
                    {
                         clock_image[i]=(I2C_receive());
                         if(i!=clock_size-2)
                                I2C_ACK();
                         else{
                               I2C_clock();
                               I2C_stop();
                             }
                     }
                      return(TRUE);
                 }
                  else{
                          I2C_stop();
                          return(FALSE);
                      }

           }
           else{
                   I2C_stop();
                   return(FALSE);
                }
}

/****************************************************************
*函数原形:bit function u8583_write(void)
*功    能:把RAM  clock_image中的时钟数据,(16字节)转存于8583芯片中
*          ,如果8583不接受指定的地址则返回0(false)
*****************************************************************/
bit function u8583_write(void)
{
         byte i;
         for (i=1;i<=clock_size;i++)
         {
                if (E_address(i)&&I2C_send(clock_image[i]))
                      I2C_stop();
                else   return(FALSE);
         }
          return(TRUE);
}
bit function u8583_write0(void)
{
                if (E_address(0)&&I2C_send(0))
                      I2C_stop();
                else   return(FALSE);
                return(TRUE);
}

⌨️ 快捷键说明

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