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

📄 ad.c

📁 NRF24E1的AD模块
💻 C
字号:
#include <reg24e1.h>
#include <ISD51.h>
volatile unsigned char data ADC_H=0x00;
volatile unsigned char data ADC_L=0x00;
/*  LED1-LED4  */
sbit LED1      = P0^7;
sbit LED2      = P0^6;
sbit LED3      = P0^5;
sbit LED4      = P0^4;

void Delay100us(volatile unsigned char n)
{
    unsigned char i;
    while(n--)
        for(i=0;i<35;i++)
            ;
}

void Delayms(volatile unsigned char n)
{
    unsigned char j;
    while(n--)
        for(j=0;j<10;j++)
	    	Delay100us(10);

}

void Init_ADC(void)
{
   ADCCON=0x20;//使能AD转换,同时选择AIN0角作为输入,连续的AD转换
   ADCSTATIC&=0x1C;
   ADCSTATIC|=0x03;//转换精度为10位
   ADCCON&=~0x80;//ADCCON.7的CSTARTN时钟同步位,启动AD转换
   ADCCON|=0x80;//持续AD转换
}
void ReadADC(void)
{
    while((EXIF & 0x10) == 0)       // Wait until ADC conversion complete
        ;
    EXIF &= ~0x10;                  // Clear ADC completion bit
     ADC_H= ADCDATAH; // Read ADC data
	 ADC_L=ADCDATAL;
    ADCCON &= ~0x80;                // Start..
    ADCCON |= 0x80;                 // ..new conversion
    
}
void main(void)
{ 
  
   P0_ALT=0x06;
   P0_DIR=0x0B;
    
    LED1=0;
    Delayms(20);  
    LED1=1;

    LED2=0;
    Delayms(20);  
    LED2=1;

    LED3=0;
    Delayms(20);  
    LED3=1;
 
    LED4=0;
    Delayms(20);  
    LED4=1;



   T2CON   = 0x34;      /* Use Timer 2 as baudrate generator  */
   RCAP2H  = 0xFF;
   RCAP2L  = 0xF7;      /* 57600 baud @ 16MHz                  */
   SCON    = 0x50;      /* enable serial uart & receiver      */
   EA = 1;              /* Enable global interrupt flag       */
   
   ISDinit();
   Init_ADC();
   while(1)
   {
     Delayms(20);
	 ISDcheck();                        
     ReadADC();
     if(ADC_H>8)
	{
	 P0=0x0F;
	 Delayms(20);
	 P0=0xFF;
	 }
}	 

⌨️ 快捷键说明

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