光明电阻

#include <reg52.h>                

#include "i2c.h"

#include "delay.h"

#include "display.h"

 

#define AddWr 0x90   //写数据地址

#define AddRd 0x91   //读数据地址

 

extern bit ack;

unsigned char ReadADC(unsigned char Chl);

bit WriteDAC(unsigned char dat);

/*------------------------------------------------

              主程序

------------------------------------------------*/

main()

{

 unsigned char num=0;

 Init_Timer0();

 

 

while (1)         //主循环

  {

  

 num=255-ReadADC(0);//值取差值,用于显示光强越小,数值越小

 TempData[0]=dofly_DuanMa[num/100];    

 TempData[1]=dofly_DuanMa[(num%100)/10];

 TempData[2]=dofly_DuanMa[(num%100)%10];

 //主循环中添加其他需要一直工作的程序

 DelayMs(100);

  }

}

/*------------------------------------------------

             AD转值程序

输入参数 Chl 表示需要转换的通道,范围从0-3

返回值范围0-255

------------------------------------------------*/

unsigned char ReadADC(unsigned char Chl)

 {

   unsigned char Val;

   Start_I2c();               //启动总线

   SendByte(AddWr);             //发送器件地址

     if(ack==0)return(0);

   SendByte(0x40|Chl);            //发送器件子地址

     if(ack==0)return(0);

   Start_I2c();

   SendByte(AddWr+1);

      if(ack==0)return(0);

   Val=RcvByte();

   NoAck_I2c();                 //发送非应位

   Stop_I2c();                  //结束总线

  return(Val);

 }

/*------------------------------------------------

               写入DA转换数值

输入参数:dat 表示需要转换的DA数值,范围是0-255

------------------------------------------------*/

/*bit WriteDAC(unsigned char dat)

{

   Start_I2c();               //启动总线

   SendByte(AddWr);             //发送器件地址

     if(ack==0)return(0);

   SendByte(0x40);            //发送器件子地址

     if(ack==0)return(0);

   SendByte(dat);             //发送数据

     if(ack==0)return(0);

   Stop_I2c();  

}*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值