您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>C/C++语言编程>

AD1674 c语言程序

大小:2 人气: 2010-08-18 需要积分:10
楼斌的空间

用户级别:注册会员

贡献文章:

贡献资料:


#include
#include
#include

// define P1.0 to check STATUS.
sbit STATUS = P1^0;

unsigned char xdata CTRL  _at_ 0x2FFF;
unsigned char xdata ADSEL _at_ 0x4FFF;
unsigned char hByte;
unsigned char lByte;

void adc_Convert (void)
 { // Start a conversion with A0 and A/$C$ low.
   // The convesion takes place on rising CE edge.
   CTRL  = 0x00;
   ADSEL = 0x00;
   // Wait until we have completed a conversion .
   while(STATUS==1);
   // Set R/$C$ with A0 low and read the low byte.
   CTRL  = 0x02;
   hByte = ADSEL;
   // Set R/$C$ with A0 high and read the high.
   CTRL  = 0x03;
   lByte = ADSEL;
 }


void main(void)
 { unsigned int delay, MSB , LSB, adc_Res;
   // Initialize serial interface
   SCON  = 0xDA;        // SCON: mode 1, 8-bit UART, enable rcvr      */
   TMOD |= 0x20;        // TMOD: timer 1, mode 2, 8-bit reload        */
   TH1   = 0xFD;         // TH1:  reload value for 1200 baud @ 12MHz   */
   TR1   = 1;           // TR1:  timer 1 run                          */
   TI    = 1;           // TI:   set TI to send first char of UART    */
  
   while(1)
    { adc_Convert();
      MSB=(unsigned int)(hByte << 4);
      LSB=(unsigned int)(lByte >> 4);
      // adc_Res now has the converted data with 12-bit resolution.
      adc_Res = MSB + LSB;
      // Send adc results to the serial interface
      printf("ADC READINGS: %03Xh\n", adc_Res);
     // simple delay - it is mcu clock dependent !
      for (delay=0; delay<10000; delay++)
       ;
    }
 }

非常好我支持^.^

(6) 100%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!