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

📄 ad197.c

📁 12位A/D MAX197转换子函数 子函数名:ad_cy() 参考电压:4.096v
💻 C
字号:
///////////////////////////////////////////////////////////////
//
//   12位A/D MAX197转换子函数。
//   子函数名:ad_cy()
//   参考电压:4.096v.
//
//   硬件连线:PB0--PB7为数据线D0--D7,控制线: (4+1)
//            adcs P1_7  adwr P1_6 
//            adrd P1_5  adhb P1_4  adint  P3_2 
//
//   入口条件:一个0---5V的模拟量从第八通道CH7对应UPSD的P3_2输入。
//   出口条件:返回一个无符号的整数值
//    
//
//////////////////////////////////////////////////////////////
////////A/D197中用到的申明
//////// 
xdata uchar PB_ctr _at_ 0x7f03;             //A/D中用到的申明。
xdata uchar PB_datout _at_ 0x7f05;          //A/D中用到的申明。
xdata uchar PB_dir _at_ 0x7f07;             //A/D中用到的申明。
xdata uchar PB_datin _at_ 0x7f01;           //A/D中用到的申明。
#define adcs P1_7                           //A/D中用到的申明。
#define adwr P1_6                           //A/D中用到的申明。
#define adrd P1_5                           //A/D中用到的申明。
#define adhb P1_4                           //A/D中用到的申明。
#define adint  P3_2                         //A/D中用到的申明。
///////////////////////////////A/D中用到的申明结束///////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
void ad_ini(void)
 { 
    PB_ctr = 0;
   PB_dir = 0xff;  
         
}		
   uint ad_cy(void)
{
  
   uint adcjieguo,adctemp;
  uchar i,j; 
    adcjieguo =0; 
   ad_ini();
   PB_datout=0;
    adcs=0;
   _nop_();
    adrd=1;
    _nop_();
    PB_datout=0x47;
     adhb = 0;       
      adwr = 0;//	AD写完读
      adcs=1;
        adwr = 1;
       while (adint);
       adcs=0;
       PB_dir = 0x00;
        adrd=0;
         _nop_();
          _nop_();
         _nop_();
          i=PB_datin; 
            adcs=1;
///////////////////////////////////////低位采样结束,高位开始//////////////////////////////////////////////////////
           
              PB_dir = 0xff;  
              adcs=0;
             _nop_();
             adrd=1;
             _nop_();
             PB_datout=0x47;
             adwr = 0;//	AD写完读
             adcs=1;
             adwr = 1;
             while (adint);
             adcs=0;
             PB_dir = 0x00;
             adrd=0;
             _nop_();
             _nop_();
             _nop_();
              adhb = 1;       
              j = PB_datin;
   adctemp = (j&0x0f)*256;
   adcjieguo = adctemp +i;
     _nop_();
  _nop_();
 
  return(adcjieguo);  
}

////////////////////////////////////A/D转换子函数结束////////////////////////////////////////

⌨️ 快捷键说明

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