⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad7705.txt

📁 ad7705.rar
💻 TXT
字号:
/*****************************************
**函数名称:void WriteToReg(char writed_byte )
**函数功能:写一个字节到7705
**入口参数:无
**返 回 值:无
**说    明:
*****************************************/
void WriteToReg(uchar writed_byte)
{
   uchar i;
   SCK7705 = 1;
   _nop_();
   _nop_();
   for(i = 0; i < 8; i++)
   {
      DIN7705 = (bit)(writed_byte & 0x80);
      SCK7705 = 0;
      _nop_();
      _nop_();
      _nop_();
      SCK7705 = 1;
      writed_byte = writed_byte<<1;
   }
   _nop_();
   
}

/*****************************************
**函数名称:void ReadFromReg( )
**函数功能:写一个字节到7705
**入口参数:无
**返 回 值:无
**说    明:
*****************************************/
uint ReadFromReg(void) /*读一个字从7705*/
    {
    uchar i;
    uint readed_data;
    readed_data =0;
    for (i=1;i<=16;i++)
      {
       readed_data*=2;
       SCK7705 = 1;
	   _nop_();
       SCK7705 = 0;
	   _nop_();
       if (DOUT7705) 
	   {
	      readed_data++;
		  _nop_();
          _nop_();
          _nop_();
	   }
       SCK7705 = 1;
	   }
    return(readed_data);
    }
/*****************************************
**函数名称:uint AD7705(uchar channel)
**函数功能:写一个字节到7705
**入口参数:无
**返 回 值:无
**说    明:
*****************************************/
uint AD7705(uchar channel)           /*选A/D通道,返回转换结果/通道号0/1*/
   {
    uint Ad_result,i;

	for (i = 0 ;i < 40 ;i++ )
	{
	   SCK7705= 0 ;
	   Delay(1);
	   SCK7705= 1 ;
	}
	   
    WriteToReg(0x20|(channel&0x01));/*首先写通讯寄存器,并约定下一个要写的寄存器是时钟寄存器
		                             并选中A/D通道0/1 */
    WriteToReg(0x0c) ;               /*0X09 使能振荡,4.9152MHZ的主频,A/D转换最快时间为4MS,
	                                滤波器稳定时间160MS,输出数据率500HZ,滤波器稳定时间8MS,
									即每次测量需10MS*/
		                            /*0x0c 使能振荡,4.9152MHZ的主频,A/D转换最快时间为20MS
		                            输出数据率50HZ,滤波器稳定时间80MS, 每次测量需100MS*/
	Delay(1);
    WriteToReg(0x10|(channel&0x01));/*写通讯寄存器,并约定下一个要写的寄存器是设置寄存器
		                             并选中A/D通道0/1 */
	Delay(1);
    WriteToReg(0x4e);               /*0x6e 通道0/1自校准,带输入缓冲器,增益为2,单极性,*/
    Delay(1);
	WriteToReg(0x38|(channel&0x01)); /*写/通讯寄存器,并约定下一个要读的寄存器是数据寄存器
		                              并选中A/D通道0/1 */
    while (DRDY7705);              /*等待通道0/1自校准完成,等待时间为9/输出数据率*/
    
    Ad_result=ReadFromReg();          /*读A/D转换高字节*/

    return(Ad_result);
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -