用adc0809做了一个转换,定义了一个转换之后的上限电压值3.5,超过这个值就声光报警,但是现在遇到一点麻烦,无论怎么调整时钟频率和显示函数,超过3.5之后数码管显示一直和蜂鸣器、led一点闪烁,不能稳定显示,低于3.5完全没有问题,请教到底应该怎么解决呢?
贴下仿真图
while(1) { ST=0; ST=1; ST=0; //启动转换 alarm(); display(); while(!EOC); //等待转换结束 OE=1; //允许输出 dataproc(); //数据处理 }
原因可能是超过上限电压值后执行alarm()函数,导致数码管的刷新变慢即display()函数的执行频率降低,所以出现闪烁
贴下工程文件