首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

STC单片机ADC变换的例子

2012-10-09 
STC单片机ADC转换的例子#include intrins.hsfr ADC_CONTR 0XBCsfr P1ASF 0X9Dsfr ADC_RES 0XBDsfr

STC单片机ADC转换的例子

#include <intrins.h>sfr ADC_CONTR= 0XBC;sfr P1ASF= 0X9D;sfr ADC_RES= 0XBD;sfr ADC_RESL= 0XBE;#define AD_SPEED   0x60void init_adc(){ADC_CONTR = ADC_CONTR|0x80; //打开adc电源P1ASF = 0X01;  //设置P1.7为模拟功能}void adc_delay(unsigned char delay_time)        // 延时函数{    unsigned int n;    while(delay_time--)     {         n = 6000;        while(--n);    }}unsigned int get_AD_result(unsigned char channel){    unsigned char AD_finished=0;      unsigned int h_val;unsigned int l_val;    ADC_RES = 0;    ADC_RESL = 0;    channel &= 0x07;          ADC_CONTR = AD_SPEED;    _nop_();    ADC_CONTR |= channel;           _nop_();    ADC_CONTR |= 0x80;        adc_delay(1);                ADC_CONTR |= 0x08;          AD_finished = 0;    while ( AD_finished ==0 )       {        AD_finished = (ADC_CONTR & 0x10);     }    ADC_CONTR &= 0xE7;             h_val = ADC_RES;h_val = h_val<<2;l_val = ADC_RESL & 0X03;h_val = h_val | l_val;return (h_val);               }

热点排行