这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » STC12C5A60S2单片机A/D转换

共1条 1/1 1 跳转至

STC12C5A60S2单片机A/D转换

助工
2014-11-25 20:29:26     打赏
#include "stc12c5a.h"          //包含STC12C5A60S2单片机寄存器定义文件

unsigned char data adc_hi _at_ 0x31;   //A/D转换结果变量高2位
unsigned char data adc_low _at_ 0x30;  //A/D转换结果变量低8位

void main(void)
{
 unsigned long i;

 ADC_CONTR|=0x80;        //开A/D转换电源,第一次使用时要打开内部模拟电源
 for (i=0;i<10000;i++);  //适当延时
 P1ASF=0x04;
 ADC_CONTR=0xE2;           //选择P1.2作为A/D转换通道
 for (i=0;i<10000;i++);   //适当延时
 AUXR1 |=0x04;    //ADRJ=1
 ADC_CONTR|=0x08;          //启动 A/D 转换
 EADC=1;                     //EADC=1, 开放ADC的中断控制位
 EA=1;                       //开放CPU总中断

 while(1);                  //循环等待ADC中断
}
void ADCSPI_ISR (void) interrupt 5       // ADC和SPI中断函数
{
 ADC_CONTR&=0xE7;           //将ADC_FLAG清0
 adc_hi=ADC_RES&0x03;      //保存A/D转换结果高2位
 adc_low=ADC_RESL;          //保存A/D转换结果低8位
 ADC_CONTR|=0x08;          //启动 A/D 转换
}

 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]