【C51006】基于51单片机的安培计(测量电压、电流、电量)+proteus仿真

功能描述:

a:单片机最小系统设计

b:电流传感器与电压传感器

c:数码管电池的电压、电流、累计的电量显示

一、Proteus仿真设计

元件清单:

667436cb5717462b8438ecc73cdccf28.jpg

 

 

 

仿真图:

9ebbf2a0bbc94223940e2614c2007b70.jpg

 

仿真运行:

b45a4c86a59547d88776764852232e4c.jpg

 

二、程序设计

程序框图设计

34090874d76e4c0fba46d030267a159b.jpg

 

主程序设计

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;

 

}

、项目获取

工程文件

91f258bddd024686b41365e830c51219.jpg

 

 

 

 

工程渠道

链接:https://pan.baidu.com/s/123j2vtD6m1O7l15-PZF1Jg?pwd=w1y0 

提取码:w1y0 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅_望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值