单片机源码如下:

#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单片机汇编指令的小合集

推荐阅读

        芯科技消息(文/Allis),根据《VentureBeat》报导,中国目前宛如一座专门为AI技术以及区块链所建造的游乐园,有着许多的科技巨擘,还有大力支持AI及区块链发展的政府为此下达了许多相关命令,且愿意为其注资数十亿,而各家大型科技公司得以快速实验并实施计划,还有着由政府提供的无数数据供其取用。        2017年7月国务院提出了...
11月5日,“DJI大疆农业2019新品发布会”在深圳市南山区赤湾嘿吼小镇4HLIVE隆重举办。发布会上,DJI大疆农业发布了最新产品——T20植保无人飞机、播撒系统2.0,以及相关服务保障和培训赋能计划。据发布会主讲人大疆农业全球市场销售总监陈韬介绍,T20植保无人飞机载重提升到20L,流量达到6L/分钟,有效作业喷幅达到7m。为了达到最好的喷洒效果,T20采用...
今天,华为正式推出了 Nova 8 SE 新机。Nova 8 SE 采用了带水滴设计的 OLED 屏幕,配备了 6400 万像素的四摄相机,并且与华为 Mate 40 机型一样具有快速充电功能。Nova 8 SE 的屏幕宽高比为 20:9,6.53 英寸的 OLED 屏幕,并与指纹读取器集成在一起。正面配有一个 1600 万像素的前置摄像头。该设备的背面为四摄系统,包括一个 64...
从单摄到双摄,再到多摄,在中国摄像头的快速发展之下,诞生了多家营收上亿的光学企业,也壮大了光学上市公司的“阵营”,同时促使更多的企业迅速走向国际舞台。在智能手机端,200万像素摄像头的大量需求,曾一度令非一线阵营且大批量生产200万像素的摄像头厂赚的盆满钵盈,而明年谁可能会成为商业红利下的接盘侠?日前,一位资深的业内人士曾与笔者沟通时...

史海拾趣

问答坊 | AI 解惑

FPGA基础知识2

这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。   你咨询一位布局专家的时间越晚, ...…

查看全部问答∨

散分,买什么板子好呢?

我是软件工程专业嵌入式方向的,但我们学校是个不太响的2批学校,这方向的毕业生都没几个做嵌入式的。但我想通过自己的努力往嵌入式方向发展。 最近想买一款板子,不知道买什么的好,在网上看了一下S3C2440的,发现有mini2440,OK2440,TQ2440,GT ...…

查看全部问答∨

EVC listCtrl背景透明

  怎样使listCtrl透明(有背景图,EVC)…

查看全部问答∨

linux 的驱动层中的互斥机制和应用层互斥机制有什么不同?

有人研究过这个嘛? 我觉得有些奇怪 似乎二者没有什么区别 那是不是在使用时我二选一就可以了? 比如,如果在驱动中我没有做互斥,那在应用层做多进程互斥就好了 同样,如果在驱动中作了,是不是就可以在应用层多进程随意访问该驱动都没有关系? 2: ...…

查看全部问答∨

救命啊。。。。。。。

我刚配的电脑,不知道是什么原因,我每次一编译NIOS工程,电脑就自动的从新启动 重装了系统也不行,问问,到底是什么原因啊。。。 谁遇到过类似问题的,谢谢给我答案.......…

查看全部问答∨

关于串行通信

我用msp430f169+max3221E,例子程序下载到里边可是 串口调试助手发了字符却什么也收不到。 我用万用表量了一下,发现Pc-Txd输出-11V不变,Rxd输出0.5V不变, 大侠给我解答一下,到底怎么回事,电压应该多少才对。…

查看全部问答∨

MSP430 支持触摸IO的使用

小弟快要毕业了  毕设是MSP430电容触摸按键的实现   我选用的是MSP430G2553单片机    单片机说多达24个支持触摸感应IO   像知道这IO是怎么使用的谢谢了 …

查看全部问答∨

【TI文献】LED 参考设计指南ZHCT063A

LED 参考设计指南ZHCT063A,欢迎下载!…

查看全部问答∨

有关单片机 PWM方面的问题 懂得进来 帮个忙

我们要采集的PWM信号频率是500hz ,打算用51单片机12M的测量PWM的占空比,精度要求达到1%,这个可以达到吗 ?…

查看全部问答∨

stm32F1的19264显示程序????

HG19264测试程序出问题了,没有显示内容,有测试过的么?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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