++全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等++
资料下载:
通过网盘分享的文件:资料分享
链接: 百度网盘 请输入提取码 提取码: tgnu
目录
[四、Keil c语言程序源代码](#四、Keil c语言程序源代码)
项目功能:
基于51单片机的断路器
1、测量电压、电流、温度
2、判断过压、欠压、过流和温度报警,并控制系统关闭。
设计是基于单片机控制的智能断路,该智能断路器能实时检测现场的电流、电压和温度,能实现短路瞬时保护、以及欠电压保护和过电压保护,并能够通过液晶屏显示实时的电流、电压和温度。
项目文件:
一、Proteus仿真源文件
二、AD原理图文件

二、报告说明书

三、系统流程图
四、器件清单
|-------|----------|----|
| 元件 | 型号 | 数量 |
| 单片机 | AT89C51 | 1 |
| 电容 | 10uf | 1 |
| 电容 | 30pf | 2 |
| 晶振 | 12MHZ | 1 |
| 电阻 | 10k | 5 |
| 按钮 | | 10 |
| 温度传感器 | DS18B20 | 1 |
| 模数芯片 | ADC0832 | 2 |
| 电位器 | 1k | 2 |
| LED | 红色 | 5 |
| 电阻 | 100欧 | 5 |
| 三极管 | NPN | 2 |
| 显示器 | LCD1602 | 1 |
| 排阻 | 10k | 1 |
| 变压器 | 220V-12V | 1 |
| 电流互感器 | 10mA | 1 |
| 整流桥 | 2W01G | 2 |
| 继电器 | 5V | 2 |
| 电容 | 100uf | 3 |
五、Keil c语言程序源代码(部分)
/*
电脑端说明:电脑端使用串口调试助手与单片机通讯
指令(字符格式):A电压上限加,B电压上限减,C电压下限加,D电压下限减,E电流上限加,F电流上限减,G温度上限加,H温度上限减,I继电器复位
*/
#include <REG51.h>
#include <intrins.h>
#include "adc0832.h"
#include "delay.h"
#include <temp.h>
#include <lcd.h>
#define uint unsigned int
#define uchar unsigned char
sbit button=P1^6; //复位按键
sbit out =P1^5; //继电器驱动
sbit v_up0=P2^2; //电压下限加
sbit v_down0=P2^3;//电压下限减
sbit v_up=P3^2; //电压上限加
sbit v_down=P3^3; //电压上限减
sbit i_up=P3^4; //电流上限加
sbit i_down=P3^5; //电流上限减
sbit t_up=P3^6; //温度上限加
sbit t_down=P3^7; //温度上限减
sbit led1=P1^7;//过压故障
sbit led2=P2^0;//欠压故障
sbit led3=P2^1;//短路故障
sbit led4=P3^1;//过热保护
//量程20V,1000mA
uint v_limit1=15,v_limit2=3,i_limit=400,t_limit=40;//定义极限参数
uint votage=0,current=0;//存储电压和电流
uint time=0;
uchar dat1[16]=" ";//第一行显存
uchar dat2[16]=" ";//第二行显存
//*********************************************
//显示极限函数
void lcd_see_limit()
{
dat2[0]=(v_limit1%100)/10+0x30;//电压上限
dat2[1]=v_limit1%10+0x30;
dat2[3]=(v_limit2%100)/10+0x30;//电压下限
dat2[4]=v_limit2%10+0x30;
dat2[7]=(i_limit%1000)/100+0x30;//电流上限
dat2[8]=(i_limit%100)/10+0x30;
dat2[9]=i_limit%10+0x30;
dat2[12]=(t_limit%1000)/100+0x30;//温度上限
dat2[13]=(t_limit%100)/10+0x30;
dat2[14]=t_limit%10+0x30;
write_string(2,0,dat2);
}
//*********************************************
//显示数值函数
void lcd_see_zhi()
{
dat1[1]=(votage %100)/10+0x30;//电压
dat1[2]=votage%10+0x30;
dat1[6]=(current%1000)/100+0x30;//电流
dat1[7]=(current%100)/10+0x30;
dat1[8]=current%10+0x30;
dat1[12]=(temp1%1000)/100+0x30;//温度
dat1[13]=(temp1%100)/10+0x30;
dat1[14]=temp1%10+0x30;
write_string(1,0,dat1);
}
//*********************************************
//按键检测
void key()
{
if(!button)
{
out=0;//打开继电器
time=100;
lcd_see_limit();
while(!button);//等待按钮松开
}
if(!v_up)//电压上限+
{
if(v_limit1<20)//限制20V
v_limit1++;
lcd_see_limit();
while(!v_up);
}
if(!v_down)//电压上限-
{
if(v_limit1>v_limit2)//不能低于下限
v_limit1--;
lcd_see_limit();
while(!v_down);
}
if(!v_up0)//电压下限+
{
if(v_limit2<v_limit1)//不能高于上限
v_limit2++;
lcd_see_limit();
while(!v_up0);
}
if(!v_down0)//电压下限-
{
if(v_limit2>0)//不能小于0
v_limit2--;
lcd_see_limit();
while(!v_down0);
}
if(!i_up)//电流上限+10
{
if(i_limit<999)//电流不能大于1A
i_limit+=10;
lcd_see_limit();
while(!i_up);
}
if(!i_down)//电流上限-
{
if(i_limit>0)
i_limit-=10;
lcd_see_limit();
while(!i_down);
}
if(!t_up)//温度上限+
{
if(t_limit<100)
t_limit++;
lcd_see_limit();
while(!t_up);
}
if(!t_down)//温度上限-
{
if(t_limit>0)
t_limit--;
lcd_see_limit();
while(!t_down);
}
}
//*********************************************
void main()
{
led1=0;
led2=0;
led3=0;
CLK=0;//ADC时钟初始化
out=1;//打开继电器
init_1602();//初始化LCD
dat1[3]='V';//显示初始化
dat1[9]='m';
dat1[10]='A';
dat1[15]='C';
write_string(1,0,dat1);//显示符号
lcd_see_limit();//显示极限值
while(1)
{
//读取电压
votage=ADC1();
//读取电流
current=ADC2();
//读取温度
Ds18b20ReadTemp();
votage=votage/6;//电压修正,电路测试环节可以修改
current=current*7;//电流修正,电路测试环节可以修改
lcd_see_zhi();//显示
if(time>0)
{
time--;
if(current>i_limit)//过流
{
led3=1;
}
else
{
led3=0;
}
}
else
{
//判断
if(votage>v_limit1)//过压
{
out=1;//关闭继电器
led1=1;
}
else
{
led1=0;
}
if(votage<v_limit2)//欠压
{
out=1;//关闭继电器
led2=1;
}
else
{
led2=0;
}
if(current>i_limit)//过流
{
out=1;//关闭继电器
led3=1;
}
else
{
led3=0;
}
if(temp1>t_limit)//过热
{
out=1;//关闭继电器
led4=1;
}
else
{
led4=0;
}
}
key();//读取按键
delay_uint(5000);
}
}
六、全套资料包含
七:项目资源获取
需要完整的资料可以点击下面的名片关注,回复"资料"!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓