单片机控制电力柜用操控状态仪表程序

发布者:cwm6269310最新更新时间:2019-11-06 来源: 51hei关键字:单片机控制  电力柜  操控状态 手机看文章 扫描二维码
随时随地手机看文章

单片机源码如下:

#include

#include

#include

#include

#include

#include

#include

/*********************************************************************************************************/

#include "IO.h"

#include "uart.h"

#include "lcd.h"

#include "key.h"

#include "sht.h"

/*********************************************************************************************************/

#pragma data:data 


unsigned char temp_flag=0;

unsigned char wd_shang;

unsigned char wd_xia;

unsigned char sd_shang;

unsigned char sd_xia;

unsigned char pf_shang;

unsigned char pf_xia;

unsigned char Body_Flag;                                    //人体靠近带电标志位

unsigned char rt_gy;                                       // 人体感应非投入,1:投入,2:非投入 

unsigned char db_du;

unsigned char InIt_Para[]={0x0a,0x05,0x5D,0x55,0x37,0x32,0x01,0x01};

/*********************************************************************************************************/

unsigned char wd_bz;

unsigned char sd_bz;

unsigned char pf_bz;

unsigned char wendu1_biaozhi;

unsigned char wendu2_biaozhi;

unsigned char mima;

/*********************************************************************************************************/

unsigned int  R_ms_Timer,mincount1;

unsigned int  timer_count;

unsigned char timer_count1;

unsigned char timer_count2;

unsigned char timer_count3;

unsigned char Cls_Lcd_Flag;

unsigned char  GPIOSamp_counter_Flag;

unsigned char  GPIOSamp_counter;

/*********************************************************************************************************/

extern unsigned char  bz;                                //位标志                   

extern unsigned char  bz1;                               //位标志,判断是地址还是数据

extern unsigned char  di_zhi;

extern unsigned char  Receiver_Flag;                     //  接受数据标志

extern unsigned char  Back_Light_Flag;

extern unsigned char  rx0_buf[16];                       // 接收数据缓存器

extern unsigned char  rx0_index;                         // 接收数据计数器 

extern unsigned char  Tx0_buf[16];                       // 发送数据缓存器

extern unsigned char  R_KeyValue1;

/*********************************************************************************************************/

//todao[0]:湿度测量  1; todao[1]:  温度测量  1;   todao[2]:湿度测量  2;   todao[3]:温度测量  2

extern float   todao[4];                       //{temp,rh};  模拟量寄存器从1到2   

                                                                                          

extern unsigned char  rx0_index;                                              

                                                                                           

extern unsigned char  Q,n,TT1,T,TT2; 

extern unsigned char  ch,cl;       

extern unsigned char  Up_Counter;

extern unsigned char  Page_Flag;

extern unsigned char  Page_Flag1;

/**********************************************************************************************************

** 函数名称:init_para()

** 函数功能:开机时取得、设定各项参数

** 入口参数:      

** 出口参数:无

** 说    明:

*********************************************************************************************************/

void init_para(void)

{

        EEPROMReadBytes(0x0010,&wd_shang,1);                                 

        delay_nms(10); 

        EEPROMReadBytes(0x0011,&wd_xia,1);                            

                                 

    delay_nms(10); 

    EEPROMReadBytes(0x0012,&sd_shang,1);

        EEPROMReadBytes(0x0013,&sd_xia,1);

    delay_nms(10); 

        EEPROMReadBytes(0x0014,&pf_shang,1);                                

    EEPROMReadBytes(0x0015,&pf_xia,1);

    EEPROMReadBytes(0x0016,&rt_gy,1);

    EEPROMReadBytes(0x0017,&di_zhi,1);

                            

}

/**********************************************************************************************************

* 函数名称:EEprom_init()

* 函数功能:开机时取得、设定各项参数

* 入口参数:      

* 出口参数:无

* 说    明:

********************************************************************************************************/

void EEprom_init(void)

{  

   unsigned char EEP_Read=0,Eep_Write=0;

   

   EEPROMReadBytes(0x03,&EEP_Read,1);

   if( EEP_Read != 0x55)

    {

            Eep_Write = 0x55;

            EEPROMWriteBytes(0x0003,&Eep_Write,1);

            EEPROMWriteBytes(0x0010,InIt_Para,8);

            init_para();

          }

   else

    {

           init_para();

        }

}

/**********************************************************************************************************

** 函数名称:timer0_init()

** 函数功能:初始化定时器0,10ms定时器

** 入口参数:无       

** 出口参数:无

** 说明:    8位定时器,和8051相似,只是注意定时器时钟是晶振分频以后

*********************************************************************************************************/

void Timer0_init(void)

{

   TCCR0 = 0x00; 

   ASSR  = 0x00; 

   TCNT0 = 0xB1;                      // 定时初值 8Mhz

   //TCNT0 = 0x93;                    // 定时初值 11Mhz

   OCR0  = 0x00;                     

   TCCR0 = 0x07;                      // 时钟1024分频 ,启动定时器

   TIMSK |= 0x01;                     // timer0中断使能

}

/**********************************************************************************************************

** 函数名称:timer0_ovf_isr()

** 函数功能:定时器0溢出中断服务程序 

** 入口参数:无       

** 出口参数:无

** 说明:

*********************************************************************************************************/

#pragma interrupt_handler Timer0_ovf_isr:iv_TIMER0_OVF

void Timer0_ovf_isr(void)

{

   TCNT0 = 0xB1;

         R_ms_Timer++;

         timer_count1++;

         if(timer_count1>=4)

         {

           KeyValue_Pro();

           timer_count1=0;

         }

         if(GPIOSamp_counter_Flag)

          GPIOSamp_counter++;

         

         

         if((Back_Light_Flag==1)&&((Body_Flag == 0)||(Body_Flag == 2)))                   //    液晶背光

          {

             mincount1++;

             if(mincount1 >= Ldc_Timer )                              //    30秒 

                  {

                        mincount1 = 0;

            DI_jdq5_ZHMIN_OUT1;  

                        LCD_LED_OUT1; 

                  }

          }

         if(Back_Light_Flag==0)

         {

              LCD_LED_OUT0; 

                  DI_jdq5_ZHMIN_OUT0; 

                  mincount1 = 0;

         }

         

}


/**********************************************************************************************************

[1] [2] [3]
关键字:单片机控制  电力柜  操控状态 引用地址:单片机控制电力柜用操控状态仪表程序

上一篇:单片机全场定位系统程序
下一篇:AVR单片机汇编指令的小合集

推荐阅读最新更新时间:2024-11-18 17:18

51单片机PWM控制电机
小时候玩的四驱车,给直流马达接通电源就嗤嗤的跑出去了。电机种类众多,就属控制直流电机最简单,只要对调正负极就能改变电机的转向。另外,直流电机负载能力强,适合做越野车的驱动电机。为了做可调速的越野车,就有了这篇文章。 电源电压输出是固定的,电机的转速也因此是固定的,为了调节电机的转速,就得改变电源电压的输出(为嘛要改变电机转速?举个简单的列子,双电机驱动小车-一边一个电机-如何实现转向?让两边轮胎上的速度不同即可)。how?用PWM调制的方法,把恒定的直流电源电压调制成频率一定宽度可变的脉冲电压序列,从而可以改变平均输出电压的大小,以调节电机的转速。电源电压在此处就是51MCU的引脚输出,4.5-5V,只要在引脚上产生频率可调
[单片机]
51<font color='red'>单片机</font>PWM<font color='red'>控制</font>电机
蓝牙5模块携手TI无线微控制器 带你走进蓝牙5时代
 2017年9月8日 – 专注于新产品引入 (NPI) 并提供极丰富产品类型的业界顶级半导体和电子元器件分销商贸泽电子 (Mouser Electronics),宣布即日起开始备货Laird Technologies的SaBLE-x-R2蓝牙® 5模块。SaBLE-x-R2 模块采用初始版SaBLE-x模块经过现场验证的硬件,缩短了系统开发时间,可以为物联网 (IoT) 传感器实现领先的低能耗蓝牙连接,为商业、医疗和工业应用实现信标技术。下面就随网络通信小编一起来了解一下相关内容吧。 贸泽电子备货的Laird SaBLE-x-R2模块采用外部或PCB引线天线,其传输范围、速度和吞吐率完全符合蓝牙5规范,并针对应用目标和OTA能
[网络通信]
基于单片机的电梯自动控制系统的设计与实现
伴随着社会的发展与进步,人们的生活水平的提高和节约用地的倡导,越来越多的高楼耸立,使人们的生活和工作受到很大的影响,垂直运输的问题也随之出现,人们迫切需要一套安全、快捷、高效、稳定的电梯控制系统。电梯控制模型的设计主要涉及数电、模电、单片机及接口技术、C51的编程等知识,可谓知识面含量非常广,但因现代的微电子技术、计算机技术和嵌入式微控制器技术等的飞速发展,让我们做出应用型的电梯已成为可能。目前各小区居民楼都已经安装上了快捷、方便的电梯系统,但某些方面如安全性和稳定性还有待提高,用户也给出了更高的要求。 目前电梯控制主要有继电器控制、可编程控制器控制、微机控制(单片机控制)这3种控制方式。利用单片机控制电梯具有成本低、高精度的重量检
[单片机]
基于<font color='red'>单片机</font>的电梯自动<font color='red'>控制</font>系统的设计与实现
东芝推出适用于电机控制的Arm® Cortex®-M4微控制
进一步丰富TXZ+™族高级系列的M4K组,将代码闪存扩充至512 KB/1 MB 中国上海,2024年3月26日——东芝电子元件及存储装置株式会社(“东芝”)今日宣布, 采用Cortex®-M4内核并搭载FPU的TXZ+™族高级系列32位微控制器的M4K组新增8款新产品,闪存容量达512 KB/1 MB,同时提供4种不同的封装类型。 支持物联网的电机应用功能不断发展,需要更大的编程容量以及更好的固件OTA支持。 东芝新推出的M4K组产品将现有产品的最大代码闪存容量从256 KB扩充至512 KB /1 MB (具体容量视产品而定),RAM容量也从24 KB扩充至64 KB。 在容量提升的同时,其他特性也得以保留,包
[工业控制]
东芝推出适用于电机<font color='red'>控制</font>的Arm® Cortex®-M4<font color='red'>微控制</font>器
基于单片机控制的便携式篮球计时器设计
0 引言 本设计利用单片机AT89C51完成了计时的功能,详细地介绍了系统硬件与软件的设计过程,设计由AT89C51编程控制Led七段数码管作显示的篮球计时系统。该系统具有赛程时间设定,计时启功,暂停,报警,24 s及复位等功能。 1 系统原理 篮球比赛计时的准确性和计时的精确度是要求很高的,而单片机在这方面有着出色的表现。该系统采用频率为12 MHz的芯片,整个系统由按键、计时显示、报警,箭头方向等部分组成。该系统组成方框图如图1所示。 单片机是该系统电路的核心组成部分,系统的各种功能都是在单片机内通过编程来实现。单片机选用AT89C51。它的X1(19脚)和X2(18脚)外接12MHz晶振,为单片机提供时钟信号
[单片机]
基于<font color='red'>单片机</font><font color='red'>控制</font>的便携式篮球计时器设计
如何实现车规微控制器的ECC机制?使用时有哪些注意事项?
引言 ECC是微控制器系统中用于保障信息安全的常用机制,主要是避免存储设备中存放的数据因硬件干扰被篡改。国产车规微控制器原厂云途半导体设计和发布的YTM32微控制器芯片,全系配备了存储器的ECC机制,可以有效的增强芯片运行稳定性,避免因为内存位翻转导致芯片产生严重故障。本文将以YTM32微控制器芯片为例,对内存ECC的基本机制、实现原理和使用时的注意事项等进行介绍。 ECC的基本原理 ECC全称 Error Checking and Correcting,属于一种错误检查和纠正算法,典型的ECC算法一般可以做到纠正单比特错误和检查2比特错误。 在介绍ECC算法之前,先看一种简单的校验算法:奇偶校验。奇偶校验是在传输数据流的末尾
[嵌入式]
如何实现车规<font color='red'>微控制</font>器的ECC机制?使用时有哪些注意事项?
英飞凌推出M2M系统全新车载微控制
  英飞凌科技股份公司近日在法国巴黎“智能卡暨身份识别 技术 工业展”上推出其适用于汽车机器对机器(M2M)系统的全新SLI76系列“车载”微控制器。它们是业界首批通过 汽车电子 委员会(AEC)Q100质量标准严格认证的UICC(通用集成电路卡)微控制器。SLI76“车载”芯片具备更长的使用寿命、更高的数据存储容量、更宽的温度范围、更大的负载周期数等特性。   SLI76器件可使汽车部件供应商轻松满足整车制造商对于实现各种先进的车载服务——例如紧急呼叫(e-Call)、遥控车锁、车队 管理 和车辆跟踪——的质量要求。为满足AECQ100标准,英飞凌采用十分可靠的工艺制造SLI76器件,并根据生产件批准程序(PPAP)的要求,提
[汽车电子]
一种用单片机控制的采用电话遥控的简易远程教学系统
本文介绍了一种用单片机控制的采用电话遥控的简易远程教学系统。它借助于现有的丰富的电话网络资源,具有结构简单,造价低廉,易于操作等特点,可以实现对录像机的各种远距离控制操作。非常适合于贫困地区的电化教育的普及与发展。 1 系统的总体结构 该电话遥控教学系统的总体结构如图1所示。 该系统由电话机、小型程控机、远程控制器和数台录像机、电视机组成,该系统既可以通过小型程控机构成一个局域的小系统,也可以利用电信网构成一个跨省市的远距离遥控系统。在该系统中,远程控制器的设计与制造是该系统的核心与关键。 2 远程控制器的结构及工作原理 该控制器的 CPU 采用美国Microchip 公司生产的 PIC16C54 一次性用户可编程(O
[单片机]
一种用<font color='red'>单片机</font><font color='red'>控制</font>的采用电话遥控的简易远程教学系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved