C51单片机AD转换 50

我用C8051F040单片机做AD转换时,参考电压为2.4V,但是无论我输入电压是多少,采样值要么是0,要么是4095附近的数字,导致始终得不到正确的结果,这是为什么?#... 我用C8051F040单片机做AD转换时,参考电压为2.4V,但是无论我输入电压是多少,采样值要么是0,要么是4095附近的数字,导致始终得不到正确的结果, 这是为什么?

#include <globalvar.h>

void main()

{
EA=0;
Init_Device();
EA=1;
delay(200);
while(1);
}

void Init_Device(void)
{
PORT_Init();
Oscillator_Init();
Reset_Sources_Init();

ADC0ac_init();
ADC0timer_init();

}
#include <extern_var.h>
void PORT_Init ()
{
char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page

SFRPAGE = CONFIG_PAGE; // set SFR page

XBR0 = 0x00;
XBR1 = 0x00;
XBR2 = 0x44; // Enable crossbar and weak pull-up
// Enable UART1

P0MDOUT |= 0x01; // Set TX1 pin to push-pull
P1MDOUT |= 0x40; // Set P1.6(LED) to push-pull

SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
}

void Reset_Sources_Init() // ½ûÖ¹¿´ÃŹ·
{

WDTCN = 0xDE; // Disable WDT
WDTCN = 0xAD;
}

void Oscillator_Init()
{
temp=SFRPAGE;
SFRPAGE = CONFIG_PAGE;
OSCICN = 0x83;
CLKSEL=0x00; //ÄÚ²¿¾§Õñ×öʱÖÓ
SFRPAGE=temp;
}

void ADC0ac_init()
{
temp=SFRPAGE;
SFRPAGE = ADC0_PAGE;
AMX0SL = 0x00;
REF0CN = 0x03;
ADC0CN = 0x84;
EIE2|=0X02;
SFRPAGE=temp;
}

void ADC0timer_init()
{
temp=SFRPAGE;
SFRPAGE = TMR3_PAGE;
TMR3CN = 0x00; //stop timer3,clear TF3
RCAP3L = 0x10;
RCAP3H = 0x00;
TMR3CF = 0x08;
TMR3L = 0x10;
TMR3H = 0x00;
EIE2&=~0X01; // disable timer3 interrupt
TR3=1;
SFRPAGE=temp;
}

void ADC0_ISR() interrupt 15
{

temp=SFRPAGE;
SFRPAGE=0x00;
//result[n]=ADC0H;
result[n]=ADC0H*256+ADC0L;
n++;
total++;
AD0INT=0;
SFRPAGE = TMR3_PAGE;
TF3=0; //Çå³ýT3Òç³ö±êÖ¾
SFRPAGE=temp;
delay(50000);
if(total==127)
{
EA=0;
}
}
展开
 我来答
文质彬彬又柔润的纯真s
2017-05-16 · TA获得超过319个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:56.5万
展开全部
用c51单片机做AD转换,只要用一个简单的延时就可以,没必要动用定时器这么高级的东西,DMA就更别提了,我写了很多程序,还真没有人能用C51实现DMA,DMA一般在arm系列和FPGA等的高级嵌入式里面才会用到的。
追问
大哥  你看清楚   哪来的DMA   不用定时器怎么采样
相甜淳于高洁
2019-08-14 · TA获得超过3713个赞
知道大有可为答主
回答量:3154
采纳率:32%
帮助的人:200万
展开全部
这个应该是c51的c语言编程吧?->的意思是info这个指向结构体的指针所指的结构中取名叫irqsource的成员变量。也可以写成(*info).irqsource=0x00;
效果是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式