中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

单片机比例电压变换器程序问题 电压到3.95就无法...

 酱香饼

下载贤集网APP入驻自媒体

单片机比例电压变换器程序问题 电压到3.95就无法继续增加了? 
要求:利用A/D和D/A实现将A/D的输入电压反向变换的功能,即A/D的输入电压从0~+5V变化时,D/A的输出电压相应的从+5V~0V变化。
控制功能:将单片机实验箱上的电位器W1产生0~5V电压输入到ADC0809的通道0,利用数字万用表测量DAC0832输出的电压,看其是否随ADC0809的输入电压反向变化。利用74HC4040将8MHz晶振产生的脉冲信号十六分频后做为ADC0809的时钟信号。
使用的主要元器件:89C51、11.0592MHz晶振、74LS373、74LS138、8MHz晶振、74HC04、74HC4040、ADC0809、DAC0832、LM741、10k电位器W1等。
结果验证:①用示波器检查ADC0809的时钟频率是否为500kHz。②旋动电位器W1产生0~+5V的电压,用数字万用表测量D/A的输出是否从+5→0V变化。③使W1的输出电压从0V开始,以0.5V为增量,测量D/A的输出电压并记录。试分析误差产生的原因。
程序如下:
#include 
#include 
#define uchar unsigned char
#define DAC0832 XBYTE[0x7FFF]
uchar temp,i,a;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^7;
uchar getdata=0x0000;
void main(void)
{
        ET0=1;
        EA=1;
        TMOD=0x02;
        TH0=246;
        TL0=246;
        TR0=1;
        while(1)
        {
                ST=0;
                ST=1;
                ST=0;
                while(EOC==0){;}
                OE=1;
                getdata=P0;
                OE=0;
                temp=getdata;
                P1=temp;
                DAC0832=P1;
                }          }
void T0X(void) interrupt 1 using 0
{
        CLK=~CLK;
}

现在遇到的问题是电压到3.95就无法继续增加了					
最新回复
发布回复
单片机比例电压变换器程序问题,可能是程序中的某种条件或逻辑导致在电压达到3.95时无法继续增加。需要查看程序代码,特别是与电压变换相关的部分,以确认问题出在哪里。
有可能是程序中存在错误导致无法继续增加。请检查程序并确保变换器可以正确地读取和处理输入的电压信号。还要确保使用的编程语言和工具正确配置。
P5.4可以被用作10口准双向输入,并且RST不会触发复位。作为10口准双向输入口时,P5.4口可以检测电平并发出输入响应信号。此时,RST不会触发复位,因此可以同时进行输入操作和其他功能操作。

为您推荐

热门交流