资源描述
基于51单片机的病房呼叫系统(软件)
段露露
摘 要:病房呼叫系统是一种常见的、必备的医疗设备。传统的病房呼叫系统[10]由单片机、蜂鸣器、数码管以及矩阵键盘构成,这种病房呼叫器存在多方面的缺陷:(1)传统的病房呼叫系统,病人按键后值班室有相应显示而病房里没有反馈信息,使得对于患者及家属而言,并不知道医护人员是否得知消息;(2)它只用一个数码管显示,当多人同时按键时,数码管只能显示最先按键的病房号,后面的号码依次排队。针对上述缺陷本设计开展的工作包括:(1)增加了医护人员获得病人呼叫后的反馈信息,这个反馈信息以病房中LED灯点亮的形式,反馈给病人医护人员是否得知信息,便于病人家属采取相应措施;(2)把一个数码管显示改为多个LED灯显示,所有按键的病房对应的LED灯同时点亮。该系统在原来的基础上实现了新的提升,大大增加了病房呼叫系统的时效性和实用性。
关键词:病房呼叫系统;单片机;反馈;同时显示
在时代科技迅猛发展的同时,电子信息技术已经深入到我们的生活当中,身边的电子产品随处可见。单片机[2][7]作为世界上数量最多的计算机,其在智能仪器仪表、工业控制、家用电器、计算机网络和通信领域、医用设备领域、汽车设备领域等方面的应用已十分广泛。因此,单片机技术开发和应用水平已逐步成为衡量一个国家工业发展水平的标志之一。病房呼叫系统[5][6]就是单片机在医用设备领域中的一个普通而重要的应用,是各个医院里的一项必须的设备。该系统是住院患者和医护人员之间的一种既方便又快捷的沟通方式,主要通过病人按键和值班室亮灯、蜂鸣器发声达到传达信息的目的。本设计是基于51单片机的病房呼叫系统,以AT89C52为主控核心,在LED灯、蜂鸣器以及矩阵键盘的组合下,完成了对传统病房呼叫系统缺陷的改善和进一步升级。
1 系统程序设计
1.1 主程序设计
流程图如图1所示,主函数[1]是一个完整的程序入口函数,即void main()。该设计的主函数是4*4矩阵键盘[4][5]、LED灯显示、蜂鸣器电路、按键应答和反馈电路5个子程序组。主要是通过对4*4矩阵键盘的初始化检测键盘是否有键值的输入,即判断是否有键按下。通过对键盘的扫描将键值进行处理,并送缓冲区,随之LED灯变亮,蜂鸣器发声,当应答部分的有键值的输入(即护士按键响应),护士站的LED灯灭,程序结束。同时,通过延时判断是否有应答,当无应答时则会反馈给病房,病房的LED灯点亮
开始
初始化
是否有呼叫
病房LED灯亮
扫描键盘
键盘值处理、送缓冲区
延时
初始化灯亮、蜂鸣器响
灯灭
响应复位
结束
图1 系统功能流程图
1.2 矩阵键盘程序读取
矩阵键盘如图2所示,首先需要对4*4矩阵键盘进行识别,判断键盘有无按键按下,若无键按下返回。如果有键按下,找出具体的按键值。键盘键值读取可分为4部分,每排为一个部分,当一排当中有一个键或多个键同时按下时,读取的键值是一样的。
图2 矩阵键盘图
1.3 LED灯介绍及设计
LED灯的主要部件是一快半导体的晶片[7],晶片的一端上有一个支架,一端是正极,而另一端则是负极,环氧树脂封装着整个晶片。半导体晶片可分为两部分,一部分是N型半导体,在这边主要是电子,另一端是P型半导体,在它里面空穴占主导地位。这两种半导体可以连形成一个“P-N结”。当这个晶片通过电流起作用的时候,被推向P区的电子就会与P区里的空穴复合,然后会放出能量,这就是LED发光的原理。
本设计采用LED灯亮灯显示。系统共设计8个LED灯显示,分别是护士站4个,设计中的4个病房,每个病房一个。在第一个病房一排按键中,如果有键按下,led11处于低电平,即护士站的第一个LED灯点亮;同理,当第二个病房的二排按键中有键按下,Led22处于低电平,护士站的第二个LED灯点亮;设计中的4个病房是同样的道理。
1.4 蜂鸣器设计
本设计利用蜂鸣器的发声达到系统功能的实现,蜂鸣器选用5V电磁式有源蜂鸣器,由于蜂鸣器的工作电流一般比较大,以至于单片机的I/O口是无法直接驱动的,所以要利用三极管开关电路来驱动。本处选用的是8550三极管,它是一个PNP型的三极管。基极串联一个1K的电阻连接到单片机的I/O口时。当I/O口输出低电平时,三极管导通,蜂鸣器鸣叫;当I/O口输出高电平时,三极管截止,蜂鸣器停止鸣叫。
2 程序
2.1 源程序
/**********************************************************
单片机中断头文件
单片机 AT89C52
实现功能:单片机中断的控制控制
********************************************************/
#ifndef _INTERRUPT_H_
#define _INTERRUPT_H_
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/**********************引脚定义************************/
sbit led1=P1^7; //LED灯
sbit led2=P1^6;
sbit led3=P1^5;
sbit led4=P1^4;
sbit led11=P2^7;
sbit led22=P2^5;
sbit led33=P2^3;
sbit led44=P2^1;
sbit led=P1^0; //工作指示灯
/**********************变量定义************************/
uint T0_num,T1_num;
/********************************************************
函数名称:void T0_init()
函数作用:定时器0初始化函数
参数说明:
********************************************************/
void T0_init()
{
EA=1; //开总中断
ET0=1; //定时器T0中断允许
TMOD=0x11; //使用定时器T0、T1的模式1
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
TR0=0; //关闭定时器
ET1=1; //定时器T0中断允许
TH1=(65536-50000)/256; //定时器T0的高8位赋初值
TL1=(65536-50000)%256; //定时器T0的高8位赋初值
TR1=0; //关闭定时器
}
/********************************************************
函数名称:void T0_interrupt(void) interrupt 1 using 0
函数作用:定时器0中断处理函数
参数说明:
********************************************************/
void T0_interrupt(void) interrupt 1 using 0
{
TH0=(65536-50000)/256; //定时器T0的高8位重新赋初值
TL0=(65536-50000)%256; //定时器T0的高8位重新赋初值
T0_num++;
if(T0_num==600)
{
T0_num=0;
T1_num=0; //打开按键旁边的灯
if(led11==0)
led1=0;
if(led22==0)
led2=0;
if(led33==0)
led3=0;
if(led44==0)
led4=0;
TR1=1; //开启10定时
TR0=0;
}
}
/********************************************************
函数名称:void T1_interrupt(void) interrupt 3
函数作用:定时器1中断处理函数
参数说明:
********************************************************/
void T1_interrupt(void) interrupt 3
{
TH1=(65536-50000)/256; //定时器T0的高8位重新赋初值
TL1=(65536-50000)%256; //定时器T0的高8位重新赋初值
T1_num++;
if(T1_num==200)
{
T1_num=0;
P1=0xff;
led=0;
TR1=0;
TR0=0;
}
}
#endif
#include<reg52.h>
#include<INTERRUPT.h>
sbit key=P2^0; //护士键
sbit key1=P3^7; //按键
sbit key2=P3^6;
sbit key3=P3^5;
sbit key4=P3^4;
sbit buzz=P0^4; //蜂鸣器
/******************************************************
函数名称:void main()
函数作用:主函数
******************************************************/
void main()
{
led=0;
T0_init();
while(1)
{
if(P3!=0xff) //检测键盘
{
while(P3!=0xff) //检测按键离开
{
if(key1==0) //第一排
{
led11=0;
TR0=1;
buzz=0;
}
if(key2==0) //第二排
{
led22=0;
TR0=1;
buzz=0;
}
if(key3==0) //第三排
{
led33=0;
TR0=1;
buzz=0;
}
if(key4==0) //第四排
{
led44=0;
TR0=1;
buzz=0;
}
}
}
if(key==0) //护士按键
{
buzz=1; //清除LED灯和蜂鸣器,定时器
led1=1;
led2=1;
led3=1;
led4=1;
led11=1;
led22=1;
led33=1;
led44=1;
TR0=0;
TR1=0;
T0_num=0;
T1_num=0;
}
}
}
3 程序调试及实现
3.1 软件开发环境
此设计的编程[8]实现由Keil μVision4进行。Keil C51是由美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。其C语言在结构性、可读性、可维护性、功能上都相较于汇编语言有明显的优势,便于学习和使用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。3.2 系统软件调试
本课题的程序使用Keil软件进行编写和调试[8],检查程序准确无误后将编写好的程序生成.hex文件,下载到单片机中,下载使用的下载器为PL2303。通过观察整个系统运行的状态,看其是否达到本课题的设计目标,然后进行反复修改、调试程序,以此得到一个最终确定的程序。
4 结束语
本次课题的设计是基于单片机的病房呼叫系统[6][7]的改进,新增的同时显示功能和反馈功能使得病房呼叫系统这项设备在原来的基础之上得到改善。其中(1)反馈功能避免了病人按键后,并不知道医护人员是否得知消息,只能等候。改进后的病房呼叫系统,当患者按键信息到达值班室,医护人员按下“应答”键,并及时为患者提供服务。假若值班室无人,“应答”键没有按下,则相应的患者房间里对应的LED灯点亮,方便患者家属采取相应措施。(2)同时显示功能避免了传统病房呼叫系统多人按键,必须按照按键时间先后顺序排队显示的烦恼。本课题改进的按键显示为一个病房对应一个LED灯,不同病房的多人按键可以同时显示,重症病房的前两排按键对应前面的两个LED灯,便于医护人员同时为需要帮助的患者服务。
改进之后的病房呼叫系统[4-10]将更适用于各医院,甚至是敬老院等场所,提高医院的服务质量,降低医用设备的成本。本次设计是在小组成员的共同合作下完成的,让我们在完成作品的同时懂得了分工与合作的重要性,制作过程使得平时课堂上的很多理论知识得了实践应用。其中,我涉及最多的是软件部分,当然,以上文章所述都是围绕软件部分展开,本次设计使我对计算机语言、程序的设计和编写有了一定的认识和提高。
参考文献
[1]谭浩强,张基温.C语言程序设计教程[M].北京:高等教育出版社,2011:3-199.
[2]阎石,等.数字电子技术基础[M].北京:高等教育出版社,1981:2-99.
[3]李中伟,朱永涛.新型无线病房呼叫系统的设计[J].电子世界,2014:224-224.
[4]苏家健,曹柏荣,汪志锋.单片机原理及应用技术[M].北京:高等教育出版社,2015:4-100.
[5]颜靖松,许建明等. 基于单片机的无线病房呼叫系统设计[D].北京:数字技术与应用,2015:151-152.
[6]陈新岗等.基于单片机的无线病房呼叫系统设计[D].重庆:重庆工学院学报,2008:126-130.
[7]艾学忠,刘伟,陈北辰.单片机原理及接口技术[M].北京:机械工业出版社,2012:2-168.
[8]夏宇闻,等.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2013:3-200.
[9]沈凯,吴清萍.基于单片机的病房呼叫系统设计[D].现代电子技术,2011:1-3.
[10]王安,丁晓迪,常亮.基于AT89C52单片机的单片机的病房呼叫系统设计[J].硅谷,2010:108-108.
目 录
第一章 总论 1
一、项目概况 1
二、项目提出的理由与过程 6
三、项目建设的必要性 8
四、项目的可行性 12
第二章 市场预测 15
一、市场分析 15
二、市场预测 16
三、产品市场竞争力分析 19
第三章 建设规模与产品方案 22
一、建设规模 22
二、产品方案 22
三、质量标准 22
第四章 项目建设地点 25
一、项目建设地点选择 25
二、项目建设地条件 25
第五章 技术方案、设备方案和工程方案 28
一、技术方案 28
二、产品特点 30
三、主要设备方案 32
四、工程方案 32
第六章 原材料与原料供应 35
一、原料来源及运输方式 35
二、燃料供应与运输方式 35
第七章 总图布置、运输、总体布局与公用辅助工程 37
一、总图布置 37
二、 运输 38
三、总体布局 38
四、公用辅助工程 39
第八章 节能、节水与安全措施 44
一、主要依据及标准 44
二、节能 44
三、节水 45
四、消防与安全 45
第九章 环境影响与评价 47
一、法规依据 47
二、项目建设对环境影响 48
三、环境保护措施 48
四、环境影响评价 49
第十章 项目组织管理与运行 50
一、项目建设期管理 50
二、项目运行期组织管理 52
第十一章 项目实施进度 55
第十二章 投资估算和资金筹措 56
一、投资估算 56
二、资金筹措 58
第十三章 财务评价与效益分析 61
一、项目财务评价 61
二、财务评价结论 65
三、社会效益 68
四、生态效益 68
第十四章 风险分析 70
一、主要风险分析识别 70
二、风险程度分析及防范风险的措施 70
第十五章 招标方案 72
一、招标范围 72
二、招标组织形式 72
三、招标方式 72
第十六章 结论与建议 74
一、可行性研究结论 74
二、建议 75
附 件 77
一、附表 77
二、附件 77
三、附图 77
展开阅读全文