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

📄 ad.txt

📁 stc12c408ad单片机A/D转换程序与比较程序
💻 TXT
字号:
/**************进行一次AD转换**************/
unsigned char get_ad_result(unsigned char n)
 {
   //打开AD转换电源
   ADC_CONTR=ADC_CONTR|0x80;
   delay_10us(100);      //延时1ms
   //设置p1.0~p1.6口为开漏模式
   P1M0=P1M0|0x7f;
   P1M1=P1M1|0x7f; 
   //选择p1.x做为AD转换通道
   ADC_CONTR =n;    //设置P1.x作为AD输入
   delay_10us(10);    //更换通道要加延时20到200us
   //进行AD转换及取结果
   ADC_DATA = 0;
   ADC_CONTR=ADC_CONTR|0x08;       //启动AD转换
   do 
     { ; }    
   while((ADC_CONTR & 0x10)==0);   //等待A/D转换结束 
      ADC_CONTR=ADC_CONTR&0x0E7;      //清标志位并停止转换
      adc_channel1_result= ADC_DATA; 
   return adc_channel1_result;     //结果用10位的如何处理?
 }

/****************ad转换值比较*******************/
void ad_compare(void)
 {
  unsigned int n;
  m[0] = get_ad_result(adc_channel1_0);      //多通道轮流转换(0~4光转换)
  delay_10us(10);
  m[1] = get_ad_result(adc_channel1_1);
  delay_10us(10);
  m[2] = get_ad_result(adc_channel1_2);
  delay_10us(10);
  m[3] = get_ad_result(adc_channel1_3);  
  delay_10us(10);
  m[4] = get_ad_result(adc_channel1_4);
  delay_10us(10);
  m[5] = get_ad_result(adc_channel1_5);      
  delay_10us(10); 
  m[6] = get_ad_result(adc_channel1_6);      
  delay_10us(10);
  max=m[0];           //比较5个AD转换值
  for(n=0; n<6;n++)
   { 
    if(max<m[n+1])  
     max=m[n+1]; 
   }
 }

⌨️ 快捷键说明

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