历史上的今天
返回首页

历史上的今天

今天是:2025年01月22日(星期三)

正在发生

2018年01月22日 | 基于89C51的一个简单的警报系统

2018-01-22 来源:eefocus

#include "reg52.h"
#define   uchar unsigned char
#define   uint  unsigned int


sbit light = P1^0
sbit loud = P1^7;
sbit alarm = P2^0;
bit alarm_flag,flag_dec,flag_change;

uint t0_count = 1;
uint t0_set,second;

void delay_1ms(unsigned int count) //1MS的延时×count
{
 unsigned int i,j;
 for(i=0;i for(j=0;j<120;j++);
}

void light_show(int i)  //灯闪亮
{
 light = 0;
 delay_1ms(i);
 light = 1;
 delay_1ms(i);
}

void init_t0(void)   //初始化定时时钟
{
   TMOD=0x01; //方式2
   TH0=(65536-65436)/256; 
   TL0=(65536-65436)%256;  
   ET0=1; 
   EA=0; 
}
void init_IO(void)
{
 P1 = 0;
 P2 = 0;
}
void alarm_check(void)  //判断警报,为高电平打开警报
{
 if(alarm == 1)
 { 
  delay_1ms(10);
  if(alarm == 1);
  {
   alarm_flag = 1; //响铃标志
   flag_change = 1; //铃声改变标志
   t0_set = 5; //调响铃节奏
  }
 } 
}

void  alarm_close(void)   //低电平,解除警报
{
 if(alarm == 0)
 { 
  delay_1ms(10);
  if(alarm == 0);
  {
   alarm_flag = 0;
   light = 0;
   loud = 0;
   TR0 = 0;
   EA = 0;
  }
 }  
}
void main()
{
 uint i,j;
 init_t0();
 init_IO();
 while(1)
 {
  alarm_check();
  while(alarm_flag)
  {
   TR0 = 1;
   EA = 1;
   for(j = 0;j < 40;j++)
   {
    alarm_close();
    if(alarm_flag == 0)
    {
     break; //跳出循环
    }
    light_show(100);
   }   
  }

    
 }

}

void t0(void) interrupt 1 using 0 
{
 EA = 0;
 TR0 = 0;
 t0_count--;
 if(t0_count == 0)
 {
  t0_count = t0_set;
  if(flag_change == 1)
  {
   loud =  ~loud;
  }
 }
 if(flag_change == 0)
 {
  loud = 1;
 }
 second++;
 if(second == 30) //调时间长短
 {
  flag_dec = 1;
  second = 0;
  if(t0_set ==1)
  {
   t0_set = 1;
   flag_dec =0;
   flag_change = 0;
  }
  if(flag_dec == 1)
  {
   t0_set--;
  }
 }
 TR0 = 1;
 EA = 1;

}


推荐阅读

史海拾趣

Esterline Power Systems公司的发展小趣事

在质量管理方面,Esterline Power Systems始终坚持以客户为中心,追求卓越品质。公司引入了先进的质量管理体系,并通过了ISO 9001等国际标准认证。同时,公司还建立了严格的质量检测机制,确保每一件产品都符合高标准的质量要求。此外,公司还鼓励员工提出改进建议,通过持续改进来不断提升产品质量和客户满意度。

ETI Systems公司的发展小趣事

ETI Systems一直将产品品质视为企业的生命线。公司严格把控从原材料采购到产品生产的每一个环节,确保每一件产品都符合高标准的质量要求。正是这种对品质的执着追求,让ETI Systems的产品在市场上赢得了良好的口碑和广泛的认可。同时,公司也建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。

Digital Equipment Corp公司的发展小趣事

1998年,DEC被康柏公司以96亿美元的价格收购。这次收购标志着DEC成为康柏公司的一部分,开始了新的发展历程。在收购后,DEC的品牌和产品得到了保留和发展,同时康柏公司也为DEC带来了更多的资源和支持。通过业务整合和资源共享,DEC在康柏公司的领导下继续保持着其在计算机行业的领先地位。

BEKA Associates Ltd公司的发展小趣事

随着全球电子市场的不断发展,BCD Semi(Diodes)积极寻求国际化拓展的机会。公司通过与国外知名企业的合作,成功进入了多个海外市场。在国际市场上,BCD Semi凭借其高品质的产品和专业的服务,赢得了客户的信赖和支持。同时,公司还积极参加国际电子展会和交流活动,与全球同行进行深入的交流与合作,不断提升自身的国际影响力。

DBM Optix公司的发展小趣事

在竞争激烈的电子行业中,DBM Optix深知只有不断创新才能保持领先地位。因此,公司始终将研发作为核心竞争力之一,持续投入大量资金用于新技术、新产品的开发。通过与高校、研究机构等合作,DBM Optix不断引入新技术、新材料,并将其应用于产品中,从而不断提升产品的性能和品质。这些创新举措使得DBM Optix在光学通信领域始终保持领先地位。

DATATRONICS公司的发展小趣事

DATATRONICS深知产品质量是企业生存和发展的基石。因此,公司投入大量资源用于建立和完善质量管理体系,确保每一款产品都符合国际标准和客户要求。同时,DATATRONICS还注重品牌形象的塑造,通过一系列营销活动和公益活动,提高了品牌知名度和美誉度。

问答坊 | AI 解惑

C51教程完整版

这是在其他地方下到的东西,感觉很不错,拿过来和大家分享分享…

查看全部问答>

公司版STM32工作原理

公司版STM32工作原理  晶振:老板,带两个秘书(电容),有时老板不在秘书说了算(内部时钟模式) 时钟PLL:老板娘,老板控制局面,但还是要听老板娘的话。 CPU:人力资源部,调动人员齐心合力 APB1,APB2时钟:部门经理,发布任务进度, ...…

查看全部问答>

TEA 加解密算法在嵌入式系统通信中的应用

嵌入式系统的远程数据传输经常要使用公共通信线路这给数据安全带来隐患本文介绍的T E A 数据 加密算法高效可靠适用于资源有限的嵌入式系统同时文章还给出T E A 算法的一个应用实例…

查看全部问答>

谁能给详细的介绍下有源功率因数校正的工作原理步骤?

来自电源群:38592946 市电怎么一步一步转化的?…

查看全部问答>

tcpmp支持usb插拔吗,

如果支持 那么就会自动游览影音文件?…

查看全部问答>

机器人自主导航?

最近做一个家庭机器人的项目,需要用到激光传感器实现自主建立地图,自主导航。还没有什么明确的思路,各位高手有没有搞过这个的给学生一点建议,感谢…

查看全部问答>

求购开发板

需要嵌入式Linux与VxWorks开发板各一块,最好CPU频率400MHz以上, 必须带BSP支持。最好带完整的嵌入式Linux系统。VxWorks开发板支持WindML. 有意者请联系:010-51615759 邮箱:ancring.hk@163.com …

查看全部问答>

我用EVC作的MFC程序,为什么使用共享库在目标机上运行出错,使用静态库就可以正常运行?

我用EVC作的MFC程序,为什么使用共享库在目标机上运行出错,使用静态库就可以正常运行?…

查看全部问答>

evc下打开文件夹对话框

evc有没有打开文件夹对话框的api啊,SHBrowseForFolder()这个函数在evc里编译不过啊,还有没有其他的方法啊。 wince不会只能打开文件吧。 各位大虾帮帮忙啊!…

查看全部问答>