• 大小: 61KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: 其他
  • 标签: 51  光敏电阻  寻光  

资源简介

51单片机光敏电阻寻光程序,测试可用,可用数码管显示电阻值大小

资源截图

代码片段和文件信息


/*************************此部分为I2C总线的驱动程序*************************************/

#include
#include 
#include 

#define  NOP()   _nop_()   /* 定义空指令 */
#define  _Nop()  _nop_()   /*定义空指令*/

 
sbit     SCL=P2^1;       //I2C  时钟 
sbit     SDA=P2^0;       //I2C  数据 
bit ack;                 /*应答标志位*/
   

/*******************************************************************
                     起动总线函数               
函数原型: void  Start_I2c();  
功能:     启动I2C总线即发送I2C起始条件.  
********************************************************************/
void Start_I2c()
{
  SDA=1;         /*发送起始条件的数据信号*/
  _Nop();
  SCL=1;
  _Nop();        /*起始条件建立时间大于4.7us延时*/
  _Nop();
  _Nop();
  _Nop();
  _Nop();    
  SDA=0;         /*发送起始信号*/
  _Nop();        /* 起始条件锁定时间大于4μs*/
  _Nop();
  _Nop();
  _Nop();
  _Nop();       
  SCL=0;       /*钳住I2C总线,准备发送或接收数据 */
  _Nop();
  _Nop();
}

/*******************************************************************
                      结束总线函数               
函数原型: void  Stop_I2c();  
功能:     结束I2C总线即发送I2C结束条件.  
********************************************************************/
void Stop_I2c()
{
  SDA=0;      /*发送结束条件的数据信号*/
  _Nop();       /*发送结束条件的时钟信号*/
  SCL=1;      /*结束条件建立时间大于4μs*/
  _Nop();
  _Nop();
  _Nop();
  _Nop();
  _Nop();
  SDA=1;      /*发送I2C总线结束信号*/
  _Nop();
  _Nop();
  _Nop();
  _Nop();
}

/*******************************************************************
                 字节数据发送函数               
函数原型: void  SendByte(UCHAR c);
功能:     将数据c发送出去可以是地址也可以是数据发完后等待应答并对
          此状态位进行操作.(不应答或非应答都使ack=0)     
           发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
********************************************************************/
void  SendByte(unsigned char  c)
{
 unsigned char  BitCnt;
 
 for(BitCnt=0;BitCnt<8;BitCnt++)  /*要传送的数据长度为8位*/
    {
     if((c<       else  SDA=0;                
     _Nop();
     SCL=1;               /*置时钟线为高,通知被控器开始接收数据位*/
      _Nop(); 
      _Nop();             /*保证时钟高电平周期大于4μs*/
      _Nop();
      _Nop();
      _Nop();         
     SCL=0; 
    }
    
    _Nop();
    _Nop();
    SDA=1;                /*8位发送完后释放数据线,准备接收应答位*/
    _Nop();
    _Nop();   
    SCL=1;
    _Nop();
    _Nop();
    _Nop();
    if(SDA==1)ack=0;     
       else ack=1;        /*判断是否接收到应答信号*/
    SCL=0;
    _Nop();
    _Nop();
}

/*******************************************************************
                 字节数据接收函数               
函数原型: UCHAR  RcvByte();
功能:        用来接收从器件传来的数据并判断总线错误(不发应答信号),
          发完后请用应答函数应答从机。  
********************************************************************/    
unsigned char   RcvByte()
{
  unsigned char  retc;
  unsigned char  BitCnt;
  
  retc=0; 
  SDA=1;                     /*置数据线为输入方式*/
  for(BitCnt=0;BitCnt<8;BitCnt++)
      {
        _Nop();           
        SCL=0;                  /*置时钟线为低,准备接收数据

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14702  2012-12-05 12:15  光敏(最终)\AD转换

     文件       3052  2012-12-05 12:15  光敏(最终)\AD转换.hex

     文件         71  2012-12-05 12:15  光敏(最终)\AD转换.lnp

     文件      16307  2012-12-05 12:15  光敏(最终)\AD转换.M51

     文件       1106  2012-12-05 13:21  光敏(最终)\AD转换.Opt

     文件        205  2012-12-06 12:54  光敏(最终)\AD转换.plg

     文件       2198  2012-10-31 23:53  光敏(最终)\AD转换.Uv2

     文件       1369  2012-12-05 12:55  光敏(最终)\AD转换_Opt.Bak

     文件       2092  2009-06-05 00:01  光敏(最终)\AD转换_Uv2.Bak

     文件       3878  2012-11-03 07:36  光敏(最终)\DA-AD.C

     文件       7240  2012-11-03 07:36  光敏(最终)\DA-AD.LST

     文件       8227  2012-11-03 07:36  光敏(最终)\DA-AD.OBJ

     文件         35  2012-11-03 07:36  光敏(最终)\DA-AD.__i

     文件       4471  2011-03-28 15:40  光敏(最终)\I2C.c

     文件        548  2010-06-15 16:10  光敏(最终)\I2C.H

     文件       7920  2012-11-01 20:37  光敏(最终)\I2C.LST

     文件       7982  2012-11-01 20:37  光敏(最终)\I2C.OBJ

     文件         33  2012-11-01 20:37  光敏(最终)\I2C.__i

     文件        907  2008-09-14 21:22  光敏(最终)\main.LST

     文件        563  2008-09-14 21:22  光敏(最终)\main.OBJ

     文件       5115  2002-04-16 14:32  光敏(最终)\STARTUP.A51

     文件      11665  2011-09-29 11:14  光敏(最终)\STARTUP.LST

     文件        749  2011-09-29 11:14  光敏(最终)\STARTUP.OBJ

     文件      15985  2012-12-07 16:21  寻光\AD转换

     文件       2115  2012-12-07 16:21  寻光\AD转换.hex

     文件         71  2012-12-07 16:21  寻光\AD转换.lnp

     文件      20130  2012-12-07 16:21  寻光\AD转换.M51

     文件       1238  2012-12-07 17:18  寻光\AD转换.Opt

     文件        199  2012-12-07 17:18  寻光\AD转换.plg

     文件       2198  2012-10-31 23:53  寻光\AD转换.Uv2

............此处省略21个文件信息

评论

共有 条评论