資源簡介
輸液檢測報警 有液滴紅外傳感器發送高電平 無液滴紅外傳感器發送低電平 檢測無液滴是 蜂鳴器報警 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
評論
共有 條評論