adc0809.c

来自「用于数模转换的c语言程序设计」· C语言 代码 · 共 82 行

C
82
字号
#include<Reg51.h>
#include<absacc.h>
#include<intrins.h>
#define nop _nop_()
#define uchar unsigned char
#define uint unsigned int
#define CH0 XBYTE[0xEEF8]  /*ADC0809地址*/
#define CH1 XBYTE[0xEEF9]
#define CH2 XBYTE[0xEEFA]
#define CH3 XBYTE[0xEEFB]
#define CH4 XBYTE[0xEEFC]
#define CH5 XBYTE[0xEEFD]
#define CH6 XBYTE[0xEEFE]
#define CH7 XBYTE[0xEEFF]
sbit NEOC=P3^3;           //AD0809的NEOC 端接单片机P33线
uchar AD_DAT;
uchar AD0809(uchar ADChanel)
{   
     switch(ADChanel)
     {
        case(0):
             CH0=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH0;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
         case(1):
             CH1=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH1;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
         case(2):
             CH2=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH2;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
         case(3):
             CH3=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH3;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
         case(4):
             CH4=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH4;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
         case(5):
             CH5=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH5;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
         case(6):
             CH6=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH6;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
         case(7):
             CH7=0;     //CH0可以=任意值,此处只是为了使单片机向外输出,触发 Wr 
             nop;
             while(NEOC);
             AD_DAT=CH7;           //从AD0809采集数据到CPU   
             return AD_DAT;
             break;
                    
     }
      
}

⌨️ 快捷键说明

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