用ADC0804芯片进行数模转换,在单片机上进行数码显示,但无法实现数值的自动更新,程序循环有问题???

用ADC0804芯片进行数模转换,在单片机上对转换值进行数码显示,在protel仿真电路中可以实现0-255的自由变化,但在硬件电路中却不能实现数值的实时更新,每次都要复位一次单片机才可以(但每次显示的数值是正确的),是软件循环有问题还是硬件问题(硬件电路是我自己动手焊的)???求同行专业大神指导啊!
电路见图片,程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char code smg_we[]={0xfe,0xfd,0xfb};
uchar zhi[3]={0};
sbit adcs=P3^2;
sbit adrd=P3^3;
sbit adwr=P3^4;
uint z;
void delay_50us(uint t){
uchar j;
for(;t>0;t--)
for(j=19;j>0;j--);
}

void shuzhi(void)
{
zhi[0]=z/100;
zhi[1]=z%100/10;
zhi[2]=z%10;
}
void SEG7_Static_Display(uchar Num,uchar Position){
P2=0xff;
P0=smg_du[Num];
P2=smg_we[Position];
}
//动态显示(3位)
void SEG7_Dynamic_Display()
{
uchar i;
for(i=0;i<3;i++)
{
SEG7_Static_Display(zhi[i],i);
delay_50us(40);
}
}
void main(){
P1=0xff;
while(1)
{
adcs=0;
adwr=0;
delay_50us(2);
adwr=1;
adcs=1;
delay_50us(10);
adcs=0;
adrd=0;
delay_50us(3);
z=P1;
adrd=1;
adcs=1;
shuzhi();
SEG7_Dynamic_Display();

}
}

估计A/D转换时间和你的延时不匹配。
如果A/D转换过程太慢,在你的AD启动和读取之间加大延时试试吧
不过更可能是太快了,
看了一下你AD芯片的参数(好像是频率640K时100us转换时间),典型转换频率值是f=1/(R*C)=1/(10K*150pf)=667K,
你现在f=1/(10K*56pF)=1.785M>>667K,换一个150pf电容,并调整下AD启动和读取之间的延时看看。来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机开发板怎么用?
5. 数码管模块:由6个一位一体数码管组成,可以显示0,1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f等简单信息,构成信息交流的人机界面。 6. 蜂鸣器模块:可以用来做报警实验,也可以对歌曲进行编码,用来唱歌。 7. AD模块:主芯片为ADC0804,采集模拟信号(1路输入),并转化为数字信号,内置8位转换器(分辨率为8...

求51单片机实现AD转换及串口数据发送的程序?谢谢了!
rd=1;temp=(temp*100*0.01961);\/\/8位的ADC0804的分辨率为1\/256,5x1\/255=0.01961;A1=temp\/1000;\/\/数码管第一位显示数据 A2=temp%1000\/100; \/\/ 数码管第二位显示数据 A3=temp%1000%100\/10;\/\/数码管第三位显示数据 A4=temp%1000%100%10; \/\/数码管第四位显示数据 } } ...

郭天祥单片机开发板能用到什么程度
4、MAX232芯片RS232通讯接口(可以做为与计算机通迅的接口同时也可做为STC单片机下载程序的接口)。5、USB供电系统,直接插接到电脑USB口即可提供电源,不需另接直流电源。6、蜂鸣器(做单片机发声实验)。7、ADC0804芯片(做模数转换实验)。8、DAC0832芯片(做数模转换实验)9、PDIUSBD12芯片(USB设备开发...

用单片机控制的连续可调基准源怎么做啊
2.电压控制:通过键盘S1、S2,控制MCU产生8位数字信号(0-255),通过P3口送至8位数模转换芯片(DAC0832)转换成模拟电流信号,再经运放作I\/U转换,得到控制稳压电源输出部分的基准电压。3.电流取样:采用8位模数转换芯片(ADC0804)作为显示电流的模数转换器件,ADC0804的取样电压由串联在电源输出电路的电流...

求dac0832与51单片机接口电路图,
我做的滤波器 include<reg51.h> include"math.h"define N 25 define PI 3.1415926 sbit da_wr1=P3^6;sbit da_cs=P2^7;void InputWave();float FIR();void da0832();float fHn[N]={0.0,0.0,0.001,-0.002,0.01,-0.09,-0.018,0.049,-0.02,0.11,0.28,0.64,0.28,...

...输出电压转化成压力输出并显示,要求用单片机实现采集和显示_百度知 ...
一般传感器都是mV级电压信号,通过放大电路转换成标准信号,如0~5V或1~5V然后接个精密数显电压表把最大压力定为5V,无压力负荷时定为0V或1V就行了

相似回答