历史上的今天
返回首页

历史上的今天

今天是:2024年11月06日(星期三)

正在发生

2019年11月06日 | 单片机控制电力柜用操控状态仪表程序

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;

         }

         

}


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

推荐阅读

史海拾趣

Afero公司的发展小趣事

随着Afero在国内市场的成功,公司开始将目光投向国际市场。他们设立了海外分支机构,积极参加国际展会和技术交流活动,与全球范围内的合作伙伴建立联系。通过与国际知名企业的合作,Afero成功将其物联网平台推广至全球市场,并获得了广泛的认可和应用。这些国际市场的拓展为Afero的未来发展打开了新的机遇。

这些故事是基于Afero公司的发展历程和公开信息构建的,旨在展示其在电子行业中的发展和成就。然而,需要注意的是,这些故事可能并不完全准确或详尽,因为具体细节可能涉及公司的商业机密或未公开的信息。如需更详细和准确的信息,建议直接访问Afero公司的官方网站或查阅相关新闻报道。

EICHHOFF公司的发展小趣事

在快速发展的同时,EICHHOFF公司也积极关注环保和可持续发展问题。公司认识到作为电子行业的一员,必须承担起保护环境、节约资源的责任。为此,EICHHOFF公司采取了一系列措施来降低生产过程中的能耗和排放。例如:引入节能设备和技术、优化生产流程、推广绿色包装等。

此外,EICHHOFF公司还积极参与环保公益活动和社会责任项目,为社会做出积极贡献。这些努力不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

GTM公司的发展小趣事

EICHHOFF公司成立于XX世纪XX年代,当时由创始人XXX在德国的一个小镇上开设了一个小型的电子元件加工厂。由于XXX对电子技术的热爱和对市场需求的敏锐洞察,他专注于生产高质量的连接器和其他电子组件。在初创阶段,EICHHOFF的产品主要供应给当地的电子制造商和维修店。随着口碑的逐渐传播和产品质量的不断提升,公司开始接到来自更广泛地区的订单。

为了应对不断增长的市场需求,EICHHOFF公司逐步扩大了生产规模,并引入了先进的生产设备和技术。同时,公司也注重人才培养和团队建设,吸引了一批有才华的工程师和技术人员加入。这些努力使得EICHHOFF在电子行业中逐渐崭露头角。

友盟(AP)公司的发展小趣事

在市场拓展方面,友盟(AP)公司也展现出了强大的实力。公司通过线上线下相结合的方式,积极开展市场推广活动,扩大品牌知名度和影响力。同时,友盟还积极参与行业交流和合作,与业界同行共同探讨行业发展趋势和未来发展方向。这些努力不仅提升了友盟在行业内的地位,也为其未来的发展奠定了坚实的基础。

锋鸣电子(Fengming)公司的发展小趣事

福斯特集团(FIRST SEMI)作为另一家以“FIRST”为品牌的企业,在半导体芯片领域也取得了显著成绩。该集团成立于2010年,总部位于中国深圳,是一家集半导体芯片研发、方案设计、封装制造、测试编带、产品销售为一体的国家级高新技术企业。公司产品广泛应用于无人机、机器人、笔记本电脑、液晶电视等多个领域。通过在全球设立代理销售公司,福斯特集团的销售网络覆盖全球多个国家和地区,服务合作客户超过3000家。

Electro-Optical Systems Inc公司的发展小趣事

进入21世纪,EOS在红外探测器领域取得了重大技术突破。他们成功将探测器的波长范围扩展到远红外(40微米)领域,这一成果在行业内引起了广泛关注。同时,EOS的产品也凭借其高性能、高可靠性和高稳定性,赢得了广大用户的认可和信赖。他们开始与国内外多家知名企业建立合作关系,产品广泛应用于军事、科研、安防等领域。

问答坊 | AI 解惑

modelsim6.2

modelsim6.2b 有没有资料…

查看全部问答>

求培训学校

要求从基础开始 在上海上课周末    教师有能力 有实力 具有一定的开发经验 我想学习硬件设计 最终目标 能自己设计系统 请大家推荐下好的培训学校 …

查看全部问答>

folder sharing 问题

eMbedded Visual C++ 4.0 和Platform Builder 5.0平台 自己定制的模拟器SDK,在evc中运行后,模拟器开打,,但emulator下面的folder sharing 是灰色的,与pc共享文件夹不能用,这是怎么回事呢?…

查看全部问答>

cmake改变ARM编译器出错!!!

为什么cmake改变CMAKE_CXX_COMPILER选项为armcc路径 config后显示: armcc.exe is not able to compile a simple test program…

查看全部问答>

一个驱动程序中是不是可以建立多个设备对象,而这些设备对象是不是共用相同的派遣例程?

问题:一个驱动程序中是不是可以建立多个设备对象,而当针对不同的这些设备对象发送的IRP是不是共用相同的派遣例程? 问题产生的背景:     我要写一个监视串口的过滤驱动.从思路是这样的,在驱动中建立一个过滤串口设备对象将其挂在串口驱 ...…

查看全部问答>

为什么ST的MCU老是缺货啊

                                 做了几个项目了,每年都会有ic缺货。我用的是stm8ah6189…

查看全部问答>

74HC***和74HC***D有什么区别啊????

今天在网上找了一下74系列资料看见一些芯片只有结尾的D或者A什么的,他们有什么区别啊??像74HC574和74HC574D、74HC138和74HC138D、74HC244 74HC244D 74HC244A三种,他们的封装大小好像也不一样,又有什么区别啊,我看了他们的资料内部结构都是一 ...…

查看全部问答>

有人用过matlab开发C2000 dsp吗?谈谈心得!

哪位大侠用过simulink自动转换成C28x DSP程序的吗?…

查看全部问答>

我的MSP430lauchpad无法驱动

看着教程下了IAR for MSP 430lauchpadv5.1,并且尝试安装了位于drivers里的win7 64 类似驱动的文件,插了板子到电脑以后,用IAR编写的程序似乎可以作用到板子,即一个简单亮灯程序,但是我的电脑里读不出板子,还有,在iarcompile,make后,downlo ...…

查看全部问答>

祝失联客机乘客惊险返回!

失联客机,机上的一名意大利人和一名奥地利人是被他人冒充登机,可能遭到恐怖劫持或恐怖袭击,天上这么多的卫星、多国投入的搜索,这么长时间没消息(只有越南不靠谱的2千米油迹,不可能是飞机解体)要么是恐怖劫持到某个基地,要么进入时光隧道。。 ...…

查看全部问答>