51单片机简易电感测量仪仿真设计
51单片机简易电感测量仪仿真设计( proteus仿真+程序+原理图+讲解视频)
仿真图proteus7.8及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0038
1.主要功能:
电路元件参数RC测量电路的设计
要求:
测量原理:采用电容和电感延时,只需测量出延时时间即可计算出电感大小
资料下载链接(可点击):
【腾讯文档】S0038 网盘链接
https://docs.qq.com/doc/DS3l0Q3p1SmVzRXRT
以下为本设计资料展示图:
2.仿真
开始仿真
测量80mH 实测数值80.57mH
测量120mH 实测数值123.15mH
3. 程序
#include "reg51.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit L_out=P2^7;//测量开始
uchar time=0;//系统变量
uchar start=0,flag=0;
unsigned long L_dat=0;//电感
uchar disp1[]="L:000.00uH";
//主函数
void main()
{
init_1602();
//设置INT0
IT0=1;//跳变沿出发方式(下降沿)
TMOD|=0X11;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
}
}
//定时器中断
void Timer0() interrupt 1
{
unsigned long i=0;
if(time<20)//1s
time++;
else
{
time=0;
//显示
if(L_dat/100<1000)
{
disp1[2]=L_dat/10000+0x30;
disp1[3]=L_dat%10000/1000+0x30;
disp1[4]=L_dat%1000/100+0x30;
disp1[6]=L_dat%100/10+0x30;
disp1[7]=L_dat%10+0x30;
disp1[8]='u';
}
else
{
if(L_dat/100<1000000)
{
i=L_dat/1000;
disp1[2]=i/10000+0x30;
disp1[3]=i%10000/1000+0x30;
disp1[4]=i%1000/100+0x30;
disp1[6]=i%100/10+0x30;
disp1[7]=i%10+0x30;
disp1[8]='m';
}
else
{
i=L_dat/1000000;
disp1[2]=i/10000+0x30;
disp1[3]=i%10000/1000+0x30;
disp1[4]=i%1000/100+0x30;
disp1[6]=i%100/10+0x30;
disp1[7]=i%10+0x30;
disp1[8]=' ';
}
}
write_string(1,0,disp1);
//开始测量
start=1;
}
TH0=0X3C;
TL0=0XB0;
}
void Int0() interrupt 0 //外部中断0的中断函数
{
uint i=0;
if(flag==0)//第一次触发
{
flag=1;
TH1=0;//计时器清零
TL1=0;
TR1=1;//开始计时,测量周期
}
else //第二次触发
{
flag=0;EX0=0;
TR1=0;//停止计时
i=TH1*256+TL1;
L_dat=i;//计算电感
L_dat=L_dat*L_dat;
L_dat=L_dat*378/100;//校准
}
}
4. 原理图
AD格式的原理图。仅供学习参考使用。
5.设计资料内容清单
下载方式见文章开头视频
资料下载链接(可点击):
https://docs.qq.com/doc/DS3l0Q3p1SmVzRXRT
更多资源 点击下方链接:
https://docs.qq.com/sheet/DS0xIa0llTmtNakRW
微信公众号:嘉盛单片机
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 嘉盛单片机!