【毕设课设】基于51单片机智能电表插座交流电压流检测阈值报警
程序员文章站
2022-06-17 18:41:56
【资源下载】下载地址如下:https://docs.qq.com/doc/DTlRSd01BZXNpRUxl51单片机智能电表插座交流电压流检测阈值报警86本系统由STC89C52单片机、交流电压互感器TV1005M、交流电流互感器TA1005M、继电器、AD转换PCF8591、LCD1602液晶显示、蜂鸣器及电源组成。1、220V市电经过互感器后产生微弱交流电,经过整流滤波后变为直流,然后通过PCF8591进行AD转换传送给单片机,单片机换算实际值。2、将交流电压、交流电流、和功率值实时显...
【资源下载】下载地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
51单片机智能电表插座交流电压流检测阈值报警86
本系统由STC89C52单片机、交流电压互感器TV1005M、交流电流
互感器TA1005M、继电器、AD转换PCF8591、LCD1602液晶显示、
蜂鸣器及电源组成。
1、220V市电经过互感器后产生微弱交流电,经过整流滤波后变为直流,
然后通过PCF8591进行AD转换传送给单片机,单片机换算实际值。
2、将交流电压、交流电流、和功率值实时显示在lcd1602上。
3、如果交流功率超过200W,则继电器断开(继电器默认闭合),
同时,蜂鸣器鸣叫报警。除非复位回复,因为这时候功率过大会
造成电器使用的危险。
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include "i2c.h"
#include "1602.h"
#include "delay.h"
sbit relay =P1^0;
sbit buzzer =P1^3;
unsigned char disFlag ; //更新显示标志
unsigned int times = 0; //时间计数
unsigned long time_20ms=0; // 系统定时计数
float volt,current,power; //电压 电流 功率变量
unsigned char count =0;//采集计数
xdata float sumVolt,midV; //用于滤波 中间变量
xdata float sumAcur,midA; //用于滤波 中间变量
unsigned char dis0[16]; //液晶显示第一行
unsigned char dis1[16]; //液晶显示第二行
void Init_Timer0(void);//函数声明
void UART_Init(void);
void uartSendByte(unsigned char dat);
void uartSendStr(unsigned char *s,unsigned char length);
void main (void)
{
Init_Timer0(); //定时器0初始化
UART_Init(); //串口初始化
relay = 0;buzzer = 0 ; //上电蜂鸣器响一声
DelayMs(120);
LCD_Init(); //初始化液晶
DelayMs(20); //延时有助于稳定
LCD_Clear(); //清屏
uartSendStr("ready ok!",9);
buzzer = 1; //关闭蜂鸣器
本文地址:https://blog.csdn.net/weixin_51254112/article/details/109564329
下一篇: ExtJs使用IFrame的实现代码