找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1178|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

AD程序不知道對不對,求大神指導(dǎo)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:273783 發(fā)表于 2018-1-9 14:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式


#include "INTRINS.H"
#include"reg51.h"
#include"ADC.h"




sbit         AD_SCLK        =    P1^3;
sbit     AD_CS                =         P1^4;
sbit         AD_DIN                =    P1^0;
sbit         AD_DOUT        =    P1^1;
sbit         AD_DRDY        =    P1^2;


#define Delay2us()         _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
         
//=================================================================================================
/******************************************************************
名稱:void AD7705_Write_Reg(uchar Data_byte);
功能:寫AD7705寄存器
指令:無
調(diào)用:無
返回:無
/******************************************************************/
void AD7705_Write_Reg(UINT8 Data_byte)
{
        UINT8 i;
        AD_CS=0;
        Delay2us()
        AD_SCLK = 0;
          Delay2us()
        for(i = 0; i < 8; i++)
        {       
                AD_SCLK = 0;
                  if(Data_byte & 0x80)AD_DIN = 1;
                else
                        AD_DIN = 0;
                 
                  Delay2us()
                  AD_SCLK = 1;
      
          Data_byte <<= 1;
        }
          Delay2us()
       
        AD_CS=1;
}
/******************************************************************
名稱:uchar AD7705_Read_Reg();
功能:讀AD7705寄存器
指令:無
調(diào)用:無
返回:Data_read
/******************************************************************/
UINT8 AD7705_Read_Reg(void)
{
        UINT8 i,Data_read;
        UINT16 j;
        AD_SCLK = 1;
        Delay2us()  
        AD_DRDY=1;
        for(j=0;j<10000;j++)if(AD_DRDY)break;
       
        Delay2us()
        AD_CS=0;
        for(i = 0; i < 8; i++)
        {
             AD_SCLK = 0;
             Delay2us()
               
                  Data_read <<= 1;
                AD_SCLK = 1;
                if(AD_DOUT)
                                  Data_read = Data_read|0x01;
                else
                                Data_read = Data_read&0xfe;
                  Delay2us()
           
            Delay2us()
        }
           Delay2us()


          AD_DRDY = 1;
        AD_CS=1;
          return(Data_read);
}
//===================================================================


//===================================================================
void AD7705_Start(UINT8 temp )
{
          if(temp==1)
        {
                AD7705_Write_Reg(0x21);        //選擇時鐘寄存器,寫寄存器,正常模式
                AD7705_Write_Reg(0x08);        //時鐘寄存器,二分頻,主頻2.4576MHz,所以CLK=0;
                AD7705_Write_Reg(0x11);        //選擇設(shè)置寄存器,寫寄存器,正常模式
                  AD7705_Write_Reg(0x70);        //自校準,增益為1,單極性
        }
        else
        {
                AD7705_Write_Reg(0x20);        //選擇時鐘寄存器,寫寄存器,正常模式
                AD7705_Write_Reg(0x08);        //時鐘寄存器,二分頻,主頻2.4576MHz,所以CLK=0;


                AD7705_Write_Reg(0x10);        //選擇設(shè)置寄存器,寫寄存器,正常模式
                  AD7705_Write_Reg(0x78);        //自校準,增益為1,單極性
        }
}
//====================================================================================
void AD7705_Reset(UINT8 temp)  
{
        UINT8 i;
        AD_DIN=1;
        for(i=1;i<=50;i++)
        {
                Delay2us()
                AD_SCLK = !AD_SCLK;
                Delay2us()
        }
        AD7705_Start(temp);
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表