標(biāo)題: 光敏自動調(diào)光程序 [打印本頁]

作者: qsfan1    時間: 2018-10-15 20:16
標(biāo)題: 光敏自動調(diào)光程序
#include <reg52.h>               
#include "i2c.h"
#include "delay.h"
#include "display.h"

#define AddWr 0x90   //寫數(shù)據(jù)地址
#define AddRd 0x91   //讀數(shù)據(jù)地址

extern bit ack;
unsigned char ReadADC(unsigned char Chl);
bit WriteDAC(unsigned char dat);
/*------------------------------------------------
              主程序
------------------------------------------------*/
main()
{
unsigned char num=0;
Init_Timer0();


while (1)         //主循環(huán)
  {

num=ReadADC(2);//
TempData[0]=DuanMa[num/100];   
TempData[1]=DuanMa[(num%100)/10];
TempData[2]=DuanMa[(num%100)%10];
//主循環(huán)中添加其他需要一直工作的程序
WriteDAC(num);//把當(dāng)前值寫入DA,用led演示亮度
DelayMs(100);
  }
}
/*------------------------------------------------
             讀AD轉(zhuǎn)值程序
輸入?yún)?shù) Chl 表示需要轉(zhuǎn)換的通道,范圍從0-3
返回值范圍0-255
------------------------------------------------*/
unsigned char ReadADC(unsigned char Chl)
{
   unsigned char Val;
   Start_I2c();               //啟動總線
   SendByte(AddWr);             //發(fā)送器件地址
     if(ack==0)return(0);
   SendByte(0x40|Chl);            //發(fā)送器件子地址
     if(ack==0)return(0);
   Start_I2c();
   SendByte(AddWr+1);
      if(ack==0)return(0);
   Val=RcvByte();
   NoAck_I2c();                 //發(fā)送非應(yīng)位
   Stop_I2c();                  //結(jié)束總線
  return(Val);
}
/*------------------------------------------------
               寫入DA轉(zhuǎn)換數(shù)值
輸入?yún)?shù):dat 表示需要轉(zhuǎn)換的DA數(shù)值,范圍是0-255
------------------------------------------------*/
bit WriteDAC(unsigned char dat)
{
   Start_I2c();               //啟動總線
   SendByte(AddWr);             //發(fā)送器件地址
     if(ack==0)return(0);
   SendByte(0x40);            //發(fā)送器件子地址
     if(ack==0)return(0);
   SendByte(dat);             //發(fā)送數(shù)據(jù)
     if(ack==0)return(0);
   Stop_I2c();  
}



作者: admin    時間: 2018-10-15 20:27
補(bǔ)全原理圖+頭文件或者詳細(xì)說明一下電路連接即可獲得100+黑幣




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1