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

📄 stc_ad.c

📁 stc单片机开发AD采集
💻 C
字号:




#include "Reg51.H"
#include "stc12c.h"

sfr AUXR=0x8e;
sfr WDT_CONTR = 0XE1;
sfr ADC_CONTR = 0XC5;
sfr ADC_DATA =  0XC6;
sfr ADC_Channel_2_Result=0xc6;
//#define ADC_Channel_2_Result  0X32


void Initial_uart( void ) 
{ 
  SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr 
  TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload 
  PCON |= 0x80 ; //SMOD=1; 
  TH1 = 0xFF ; //Baud:9600 fosc=11.0592MHz 
  IE |= 0x90 ; //Enable Serial Interrupt 
  //AUXR&=0XBF; 
  TR1 = 1 ;
  EX0=1; // timer 1 run // TI=1; }
  EA=1;
}

void Serial_send(unsigned char send_data)
 {
   
   SBUF=send_data;
   while(TI==0);
   TI=0;
  
 }

void delay(unsigned char i)
 { 
   unsigned char j,k;
   for (j=0;j<i;j++)
     for (k=0;k<100;k++);
 }


void main(void)
{

  int i;
  int count=1;
  unsigned char str[5], *p;
  unsigned char rdata;
  p = str;   
  WDT_CONTR=0X00;
  P3M0=0X00;
  P3M1=0X00;
  //P1=0xdc;
  ADC_DATA =0X00;
  ADC_CONTR=0X00;  //关闭ADC电源
   
  Initial_uart();
    
  P1M0=0X04;
  P1M1=0X04;  //设置P1.2为开漏模式
  ADC_CONTR=0X80;  //开ADC电源
   delay(100);
  ADC_CONTR=0XE2;  //P1.2作为AD转换通道
   delay(100);
 
    
  ADC_CONTR=0XEA;  //启动AD转换
   delay(200);

   	//*p = ADC_Channel_2_Result; //保存AD转换结果
		//*p=0x03;  
         //*p++;
		 //i=p;
	//ADC_Channel_2_Result=0x05;
    // for(i=0;i<5;i++)
    while(1)
	 {
	    //delay(10000);
	   
      while(ADC_CONTR&0x10==0x10)
        {
         //delay(100);
	    }
		ADC_CONTR=0xE2;//清ADC_FLAG,ADC_START位,停止ADC转换
       
		//P1M0=0X00; //设置p1口为准双向口
        //P1M1=0X00;
		
	    rdata=ADC_Channel_2_Result;
		
	   
		 Serial_send(0xbf);
           //delay(200);
		Serial_send(rdata);   
		//	delay(200);
         Serial_send(0xff);
	 };
	 while(1)
	  {};


   for(i=0;i<5;i++)
   {
        delay(100);
	
      while(ADC_CONTR&0x10==0)
        {
         delay(100);
	    }
     
      //  ADC_CONTR=0xE2;//清ADC_FLAG,ADC_START位,停止ADC转换

       // *p = ADC_Channel_2_Result; //保存AD转换结果
		
	   // *p++;
	    //count++;
         //ADC_CONTR=0X00;  //关闭ADC电源

	 // P1M0=0X00; //设置p1口为准双向口
     // P1M1=0X00;
	  //P1=ADC_Channel_2_Result;
      
	  Serial_send(0xbf);
           delay(200);
		Serial_send(P1);   
			delay(200);
         Serial_send(0xff);

    }
 }
	   
   
 

   /*
    if(count==5)
       {

           Serial_send(0xbf);
           delay(200);
		Serial_send(count);   
			delay(200);
         Serial_send(0xff);
		 while(1)
		  {};
	     /*
          for(i = 0, p = str; i <5; i++)
	       {
		    
			delay(200);

			Serial_send(0xbf);

		
			delay(200);
		    Serial_send(str[i]);
			Serial_send(count);
			
			delay(200);
            Serial_send(0xff);

		
			delay(200);
	       }
		*/
    /* 	}
        else
	    {
		Serial_send(0xee);
	    break;
	    }
		
      P1M0=0X00; //设置p1口为准双向口
      P1M1=0X00;
	  P1=ADC_Channel_2_Result;

	  delay(200);
    }
 } 	*/    

	
	   
	   
	  
    
 
  
  
  
 
	

    

  
  
  
  


  

      
    
	
	

     

	   
     

⌨️ 快捷键说明

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