单片机AD转换测量电压问题

核心提示查起来太麻烦了。把我的给你 你参考着来吧。#include <reg51.h>#include "ADC0809.h"//短延时函数:ShortDelay()void nNop(uchar i){ for(;i>0;i--) ;}//长延时

查起来太麻烦了。把我的给你 你参考着来吧。

#include <reg51.h>

#include "ADC0809.h"

//短延时函数:ShortDelay()

void nNop(uchar i)

{

for(;i>0;i--) ;

}

//长延时函数:LongDelay()

void LongDelay(uint i)

{

uint j;

for(;i>0;i--)

{ for(j=1000;j>0;j--);}

}

//启动A/D转换函数:StartADC()

void StartADC(uchar Address)

{

PinC = (bit) (Address & 0x04);

PinB = (bit) (Address & 0x02); //写入地址 选着输入路

PinA = (bit) (Address & 0x01);

PinALE=1; //地址所存

nNop(2);

PinSTART = 1; //上降沿 复位A/D转换

nNop(2);

PinALE=0; //地址所存

nNop(2);

PinSTART = 0; //下降沿 启动A/D转换

}

//位A/D提供时钟信号

void ADCClk(void)

{

PinCLK=1;

nNop(2);

PinCLK=0;

}

//等待A/D转换结束函数:WaitADCEnd()

void WaitADCEnd(void)

{

uchar tt=0x05;

while(!PinEOC)

{

void ADCClk();

}

while(tt--)

{

void ADCClk();

}

}

//读取A/D转换后的数据函数:ReadData()

uint ReadData(void)

{

uint temp;

nNop(10);

WaitADCEnd();//等待A/D转换结束

PinOE = 1;

nNop(2);

temp = PinData & 0xff;

PinOE = 0;

return(temp);

}

我来分析吧

首先 1 灯丝电阻R是固定的 额定6V电压的时候 功率4W 电流2/3 A 电阻R=9Ω A正确

2 故 B错误

3 温度影响不考虑 则阻值不变 为9Ω 加3V电压 则 灯丝中的电流为 3/9=1/3 A

实际功率 P=U*I=3 *1/3 =1W D正确

4 故 C错误

 
友情链接
鄂ICP备19019357号-22