功能描述:
a:单片机最小系统设计
b:电流传感器与电压传感器
c:数码管电池的电压、电流、累计的电量显示
一、Proteus仿真设计
元件清单:
仿真图:
仿真运行:
二、程序设计
程序框图设计
主程序设计
void main()
{
uint i=0;
adc0809_init();//初始化
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
//显示
i=volt*10;
P0=smgduan1[i/10];smg1=0;delay(100);smg1=1;
P0=smgduan0[i%10];smg2=0;delay(100);smg2=1;
i=current*10;
P0=smgduan1[i/10];smg3=0;delay(100);smg3=1;
P0=smgduan0[i%10];smg4=0;delay(100);smg4=1;
i=power*100;
P0=smgduan0[i/1000];smg5=0;delay(100);smg5=1;
P0=smgduan1[i%1000/100];smg6=0;delay(100);smg6=1;
P0=smgduan0[i%100/10];smg7=0;delay(100);smg7=1;
P0=smgduan0[i%10];smg8=0;delay(100);smg8=1;
//清零
if(!k1)
power=0;
}
}
void Timer0() interrupt 1
{
uint i=0;
if(time<20) //1s测量一次
time++;
else
{
time=0;
i=adc0809_read(0);//测量电压
i=i*50/255;
volt=i;
volt=volt/10+0.1;
i=adc0809_read(1);//测量电流
i=i*50/255;
current=i;
current=current/10;
power+=volt*current;//计算电量
}
TH0=0X3C;
TL0=0XB0;
}
三、项目获取
工程文件
工程渠道
链接:https://pan.baidu.com/s/123j2vtD6m1O7l15-PZF1Jg?pwd=w1y0
提取码:w1y0