本帖最后由 浪迹天涯AS 于 2017-4-18 23:13 编辑
这个AT89C51电压表是交直流的1-25V
电路已经完成 C语言程序 有点问题不会 现在正常运行 程序是测试1-5V电压的 我想把显示的电压变成1-25V 但是怎么该都是有问题 麻烦大神帮忙看一下怎么改 想加一个求后5秒求平均值的程序 这是网上的程序 但是我不会加进去void read_key()//键盘扫描函数
{
sta
tic uchar key_state=0;
switch(key_state)
{
case key_state0:
if(key==0)
key_state=key_state1;
break;
case key_state1:
if(key==0)
{
TR0=1;
display_zifu(1,0,tab3);
key_state=key_state2;
}
else
key_state=key_state0;
break;
case key_state2:
if(key)
key_state=key_state0;
break;
}
}
void main()
{
long float dat;
long float dat_aver,dat1,dat2,dat3,dat4,dat5;//定义5个随机电压值变量
uchar flag;//后五秒取随机电压的标志
init_timer0();
init_1602();
delay(10);
while(1)
{
dat=read_value();
if(dat>=100)//当电压值大于1V时,用V显示,否则用mV显示
{
display_zifu(0,1,tab2);
display(0,7,dat);
display_zifu(0,13,tab0);
}
else
{
display_zifu(0,1,tab2);
display(0,7,dat*1000);
display_zifu(0,13,tab1);
}
read_key(); //当键盘按下时,计算后五秒的平均电压值
if(t==20)
{
t=0;
flag++;
}
if(flag==1)
dat1=dat;
if(flag==2)
dat2=dat;
if(flag==3)
dat3=dat;
if(flag==4)
dat4=dat;
if(flag==5)
{
dat5=dat;
dat_aver=(dat1+dat2+dat3+dat4+dat5)/5;
display(1,7,dat_aver);
display_zifu(1,13,tab0);
dat_aver=0;
}
if(flag==8)
{
flag=0;
write_com(0x01);
TR0=0;
}
}
}
玛法大神么都过来看看 求助小弟一臂之力
玛法大神么都过来看看 求助小弟一臂之力
玛法大神么都过来看看 求助小弟一臂之力
玛法大神么都过来看看 求助小弟一臂之力 玛法大神么都过来看看 求助小弟一臂之力
-
-
基于单片机的数字电压表.zip
下载积分: 积分 -1 分
77.82 KB, 下载次数: 14, 下载积分: 积分 -1 分
电路的衰减 已经完成 基本上没问题 现在时程序不会改写 求平均是 我按键之后 的5秒钟 5个随机测量的电压 求一个平均值 显示出来
一周热门 更多>