• 1


    #include"include.h"

    bit write=0;
    uchar sec;
    uchar  segment1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
    void IIC_Init(void)
    {
     IIC_SDA=1;
     IIC_SCL=1;
    }

    void IIC_Start(void)
    {
     IIC_SDA=1;
     Delay();
     IIC_SCL=1;
     Delay();
     IIC_SDA=0;
     Delay();
    }

    void IIC_Stop(void)
    {
     IIC_SDA=0;
     Delay();
     IIC_SCL=1;
     Delay();
     IIC_SDA=1;
     Delay();
    }

    void IIC_Response(void)
    {
     uchar i;
     IIC_SCL=1;
     Delay();
     while((IIC_SDA==1)&&(i<250))
      i++;
     IIC_SCL=0;
     Delay();
    }

    void IIC_WriteOneByte(uchar Data)
    {
     uchar i,temp;
     temp=Data;
     for(i=0;i<8;i++)
      {
       temp=temp<<1;
       IIC_SCL=0;
       Delay();
       IIC_SDA=CY;
       Delay();
       IIC_SCL=1;
       Delay();
      }
     IIC_SCL=0;
     Delay();
     IIC_SDA=1;
     Delay();
    }

    uchar IIC_ReadOneByte(void)
    {
     uchar i,k;
     IIC_SCL=0;
     Delay();
     IIC_SDA=1;
     Delay();
     for(i=0;i<8;i++)
      {
       IIC_SCL=1;
       Delay();
       k=(k<<1)|IIC_SDA;
       IIC_SCL=0;
       Delay();
      }
      return k;

    void IIC_WriteOneByteOnAddr(uchar Addr,uchar Data )
    {
     IIC_Start();
     IIC_WriteOneByte(0xa0);
     IIC_Response();
     IIC_WriteOneByte(Addr);
     IIC_Response();
     IIC_WriteOneByte(Data);
     IIC_Response();
     IIC_Stop();
    }

    uchar IIC_ReadOneByteOnAddr(uchar Addr)
    {
     uchar Data;
     IIC_Start();
     IIC_WriteOneByte(0xa0);
     IIC_Response();
     IIC_WriteOneByte(Addr);
     IIC_Response();
     IIC_Start();
     IIC_WriteOneByte(0xa1);
     IIC_Response();
     Data=IIC_ReadOneByte();
     IIC_Stop();
     return Data;    
    }

    void IIC_Func(void)
    {
     IIC_Init();
     sec=IIC_ReadOneByteOnAddr(2);
     if(sec>100)
      sec=0;
     TMOD=0x01;
     ET0=1;
     EA=1;
     TH0=(65535-50000)/256;
     TL0=(65535-50000)%256;
     TR0=1;
     while(1)
      {
       Segment1_Display(sec/10, sec%10);
       if(write=1)
        {
         write=0;
         IIC_WriteOneByteOnAddr(2, sec);
        }
      }
    }

    void Segment1_Display(uchar bai_c,uchar shi_c)
    {
     dula=0;
     P0=segment1[bai_c];
     dula=1;
     dula=0;
     wela=0;
     P0=0x7e;
     wela=1;
     wela=0;
     Delay_MS(5);
     dula=0;
     P0=segment1[shi_c];
     dula=1;
     dula=0;
     wela=0;
     P0=0x7d;
     wela=1;
     wela=0;
     Delay_MS(5);
    }

  • 相关阅读:
    centos7安装gitlab并汉化
    Centos7系统安装yum遇到的问题failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try. http: (中断yum或者换yum源出问题)
    Git 服务器搭建
    set prompt = "任意匹配字符" 当前目录详解
    java循环嵌套与跳转语句(break,continue)
    java循环语句for与无限循环
    java循环语句while与do-while
    java流程控制语句if
    java引用数据类型之Scanner与Random
    java运算符二
  • 原文地址:https://www.cnblogs.com/spartan/p/2332032.html
Copyright © 2020-2023  润新知