资料编号:124 下面是相关功能视频演示:
124-基于51单片机八路电压表采集系统波形发生器(仿真+源码+设计报告)
功能介绍:
1)可实现8路数据的采集,假设8路信号均为0-5V的电压信号;
2)采集数据可通过数码管显示,显示格式为:[通道号] 电压值,如 [01] 4.5
3)具有异常数据声音报警功能:对第一路数据可设置正常数据的上限值和下限值,当采集的数据出现异常,发出报警信号。
4)可输出频率为1kHZ的方波,三角波。
全套资料齐全
下面是程序部分展示:
void ADC() //模数转换程序
{
TD=P3;
Aa=Bb=Cc=0;
if(P1_3==1)
{
Cc=4;
}
if(P1_2==1)
{
Bb=2;
}
if(P1_1==1)
{
Aa=1;
}
xuhao=Aa+Bb+Cc;//信道序号
buf[1]=zixing[xuhao];//将数字转换成字型码放入显示缓冲区
ad_data=P2;//读取转换完成的数字量
vv=(5*ad_data/255.0)*10;//扩大10以便显示出小数点后的1位数
//除以255.0时先转换成浮点数,而乘10后,又将乘积的结果浮点数转换成整型数
dig=vv%10;//取模要余数得出低位
buf[3]=zixing[dig];//将数字转换成字型码放入显示缓冲区
dig=vv/10;//求商
buf[2]=zixing1[dig]; //将数字转换成字型码放入显示缓冲区
}
void xianshi() //数码管显示程序
{
for(i=0;i<8;i++)
{
P1_4=1;
P1_7=a1[i];//送位选码
P1_6=b1[i];
P1_5=c1[i];
P0=buf[i]; //数据显示
delay(2);//亮一段时间
P1_4=0;//熄灭掉,否则会形成亮段码干扰
}
}
void jingbao() //警报程序
{
P3_1=1; //蜂鸣器不鸣
if(vv>=MAX)
{
P3_1=0;//蜂鸣器响
}
if(vv<=MIN)
{
P3_1=0;//蜂鸣器响
}
}
void up() interrupt 0 //上限电压调整中断
{
if(P3_4==1)
{
MAX++;
}
else
{
MAX--;
}
}
下面是该设计报告展示:
下面是该资料的分享下载链接: