• 大小: 913KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-18
  • 语言: C/C++
  • 标签: 报警  单片机  输液  

资源简介

输液检测报警 有液滴红外传感器发送高电平 无液滴红外传感器发送低电平 检测无液滴是 蜂鸣器报警 LED报警灯亮 按下取消报警可以取消 人工按键报警防止意外发生 程序由C语言实现 用Proteus仿真

资源截图

代码片段和文件信息

#include 

#define uchar unsigned char

void init();
void alarm1();
void alarm2();
uchar watch();

sbit BUZ = P1^0;
sbit ALA = P1^5;
sbit D_ALA = P1^6;
sbit WARNING = P1^7;
sbit LED = P3^6;
uchar count;

void main()
{
init();
while(1)
watch();
}


void init()
{
P1 = 0xfe;
count = 0;
LED = 1;
TMOD = 0x01;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
EA = 1;
    ET0 = 1;
TR0 = 0;
}

void alarm1()
{
if(count == 10)
{
count = 0;
BUZ = ~BUZ;
LED = ~LED;
}
}

void alarm2()
{
 if(count == 5)
{
count = 0;
BUZ = ~BUZ;
LED = ~LED;
}
}

uchar watch()
{
   if(!ALA)
{
TR0 = 1;
while(!ALA)
{
alarm1();
if(!D_ALA)
{
while(!ALA)
{
BUZ = 0;
LED = 1;
if(ALA)
{
TR0 = 0;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
return 0;
}
}

}
}
BUZ = 0;
LED = 1;
}
if(!WARNING)
{
TR0 = 1;
while(1)
{
alarm2();
if(!D_ALA)
{
BUZ = 0;
LED = 1;
TR0 = 0;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
return 0;
}
}
}
TR0 = 0;
return 1;
}

void timer0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
count++;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      31630  2011-04-05 00:22  输液检测报警\sy.DSN

     文件    1213440  2011-04-04 19:23  输液检测报警\基于AT89C51单片机《医院输液监控系统》参考.doc

     文件       1314  2011-04-05 10:41  输液检测报警\sy.c

     文件        474  2011-04-05 10:41  输液检测报警\sy.hex

     目录          0  2011-03-21 16:38  输液检测报警

----------- ---------  ---------- -----  ----

              1246858                    5


评论

共有 条评论