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

📄 iic.c

📁 此程序为CRT显示器的IIC总线的驱动
💻 C
字号:
/****************************************************************************/
#define I2C_C

/****************************************************************************/
/*  I N C L U D E    F I L E S                                              */
/****************************************************************************/
#include "mtv212.h"
#include "io51.h" 
#include "i2c.h"  

sbit   P37    = 0xB7;
sbit   P36    = 0xB6;
sbit   P35    = 0xB5;
sbit   P34    = 0xB4;
sbit   P33    = 0xB3;
sbit   P32    = 0xB2;
sbit   P31    = 0xB1;
sbit   P30    = 0xB0;

//===============================================
//   DEFINE   GLOABL     VARIANT
//===============================================
     bit   ack;
//================================================
 void Start(BYTE adr)                           
 {      
      EA = 0;
      ack = 0;
      P34 = 1;
      P35 = 1;
      P34 = 0;
      P35 = 0;
      Send(adr);                              
      return;
 }             
//==================================================
 void Send(BYTE dat)                           
 { 
      BYTE idata i;
      BYTE idata delay = 200;
 
      for (i=0; i<8; i++)
     { 
         if (dat&0x80)
         {
              P34 = 1;
         }
         else
         {
              P34 = 0;
         }                    
         P35 = 1;
         while ((!P35) && (delay--))
         {
                    P35 = 1;
         }   
         dat <<= 1;    
         P35 = 0;
      }
        P34 = 1;
        P35 = 1;
        i=0;   
        while (P34)
        {    
            i++;
            if (i>200) 
                    {
                           ack = 1;
                         
                           break;
                     }
        };
         P35 = 0;
         
         return;
 }                              

//============================================================
 BYTE Read(void)                           
{ 
      BYTE idata recdata;
      BYTE idata i;  
      BYTE idata delay = 200;

      recdata = 0;  
      P34 = 1;   
      for (i=0; i<8; i++)
     {    
         recdata = recdata<<1; 
         P35=1; 
         while ((!P35)&& (delay--))  
         {
              P35=1; 
          }     
         recdata = recdata|P34;
         P35=0;  
         P34=1;  
      }
         P34=1;   
         P35=1;  
         P35=1;          
        return(recdata);
 }              
 //=============================================================
 void Stop(void)                           
 {
      P34 = 0;
      P35 = 1;
      P34 = 1;
      P35 = 0;
      EA = 1;
      return;
 }

⌨️ 快捷键说明

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