1、专业课程设计报告医院病人呼喊器课程设计 医院住院病人“呼喊”器设计与仿真 刘洋、王喜宝皖 西 学 院课程设计报告书系 别:专 业:学 生 姓 名:学 号:课程设计题目:医院住院病人“呼喊”器设计与仿真起 迄 日 期: 课程设计地点:指 导 教 师:完成日期: 09年 11月22日 目录第一章 课题名称及要求 1、1课题名称2 1、2主要技术要求2 第二章 总体方案论证及单元电路设计 设计方案和方案论证2 第三章 总体电路设计 总体模块设计 2各分模块设计4第四章 测试结果及心得体会 4、1测试结果9 4、2心得体会9第五章 致谢.9第六章 附带源程序.10摘 要:介绍一种以AT89C51单片机
2、为控制核心的医院呼叫器的设计方法。实验结果表明,系统硬件、软件设计方案合理,实现了住院病人可通过按动自己的床位按扭开关向医护人员发出“呼喊”信号;一旦有病人发出“呼喊”信号,医护人员值班室显示床位编号,扬声器发出提示声响信号;通过这次课程设计,让我们了解到医院呼叫器的原理和基本理论,锻炼了我们的实践能力和动手能力,在此我们运用我们所学到的专业知识,通过查阅相关资料做出了这个设计。关键词:呼叫器;单片机;医院;显示第一章 课题名称及要求1、1课题名称:医院住院病人“呼喊”器设计与仿真1、2主要技术要求:本课题要求1.住院病人可通过按动自己的床位按扭开关向医护人员发出“呼喊”信号;2.一旦有病人发
3、出“呼喊”信号,医护人员值班室显示床位编号,扬声器发出提示声响信号;3.“呼喊”器所需的直流稳压电源。4.用相关仿真软件对电路进行仿真。第二章 总体方案论证及单元电路设计设计方案和方案论证我们通过查阅相关资料,对各个模块进行独立分析。其中包括按键及信号处理、单片机控制及其显示、声光报警、所需5V直流稳压电源等各模块。我们通过对比和总结,结合实际能力,选择和搭配了如下的硬件模块结构。第三章 总体电路设计0 引 言 广泛用于医院,养老院,餐饮等公共场所。 护呼叫系统已经成为医院提高医护服务质量、提高医护人员工作效率和减少医疗事故的一种必不可少的基础设备。目前,用于病床呼叫的系统有很多,它们多数都是
4、有线通信,通过声光报警和LED屏显示告知呼叫求援的床位号码,一般由有线的床头分机、走廊显示屏和护士台的由发光二极管组成的病床一览表(板)组成。随着无线科技的发展和应用,医护呼叫系统可以摆脱线缆的束缚,实现即时通讯,移动接收呼叫信息。调频无线医院呼叫器是在调频无线技术基础上,结合了单片机控制和计算机软件技术,根据医院的规模、内部业务流程和管理需求开发的全新医护呼叫系统。本系统采用低辐射、低功率、高无线接收灵敏度、零电磁干扰的FM无线编码技术,发射功率不足手机的1/10,完全满足医院的低无线电辐射的要求。总体模块:装置组成及工作原理由于综合各方面考虑,我们采用有线模式,应用单片机设计该医院呼叫器系
5、统。对于无限发射模块,课题没做要求。所以我们为了力求简洁和考虑成本问题,采用该方案 系统组成如图1所示。此设计以单片机AT89C51为核心,由单片机I/O口采集检测开关信号,经过单片机内部MCU程序处理后通过数码管显示相应的按键号,并进行相应的声音报警,提醒医生注意。 声音报警单片机处理按钮开关数码显示图1 医院呼叫器装置原理框图各分模块设计:1. 按钮开关电路按钮开关电路如图2所示。图2 按钮开关电路按钮开关电路采用低电平有效。通过单片机检测P1口状态分别判断是几号按钮(病床)按下按钮。该电路总共采用7路,分别代表7个病床,如果想要扩展,可在该基础上进行扩展。此处为了便于设计,采用7路按钮开
6、关。备注:此处优先级是相同的,也就是说如果某一病床呼叫,在报警期间,其他按钮无效。我们设计的报警时长是5S。我们此处设计的是简易装置,如果需要优先级或者可查询,可在此基础上进行软硬件的扩展,实现所需功能。2.单片机控制及显示电路 单片机控制及显示电路如图3所示。采用静态显示方式,利用单片机的P0口的P0.0P0.6作为数码管七段码的输入。采用共阳极数码管 (见图3)。单片机检测到按键信号,通过内部程序处理进行相应病床的显示。 图3 单片机控制及显示电路3. 声音报警电路声光报警电路见图4。当有按键按下时,单片机从P1.7口输出一周期高低信号,控制三极管的通断,从而使扬声器通断,发出一定周期的音
7、频报警信号。报警时间为5S。图4 声音报警电路4.所需5V直流稳压电源电路集成稳压器的典型应用电路如图5所示,这是一个输出正5V直流电压的稳压电源电路。IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。当输出电较大时,7805应配上散热板。图5 所需5V直流稳压电源电路5.软件设计 系统软件流程图如图6所示。采用检测端口形式,当P1.0P1.6有低电平输入。即做相应处理。 当检测到按键1按下时,扬声器报警,共阳数码管显示1,说明是1病床按下呼叫按键。如此类推。图6 软件设计流程图6. 电路仿真 该电路的仿真,我采用Proteus这个仿真软件进行做的,仿真效果非
8、常好 ,达到课程实际之要求。仿真按键按下,声音报警和数码管显示相应的按键号码。效果图如图7所示。 该图为我按下按键6时的显示数值,在按下5S内,蜂鸣器持续发出音频报警信号。7. 结 语 目前,用于病床呼叫的系统有很多,它们多数都是有线通信,通过声光报警和LED屏显示告知呼叫求援的床位号码,一般由有线的床头分机、走廊显示屏和护士台的由发光二极管组成的病床一览表(板)组成。这种医护呼叫系统缺乏对病人呼叫信息的存储、统计和管理功能,病人呼叫求援方式单一,护士和医生只能在值班地点才能得到病人的声光报警,特别是值班医生和护士不在值班地点时,可能造成不能迅速找到值班医护人员而延误病人的抢救时机,给病人和医
9、院造成不可挽回的损失。 另外,一些有线医护呼叫设备具有双向通话的功能,但是这些系统也只能在医生和护士的值班室完成声光告警和语音对讲,不能摆脱点对点的呼叫缺陷。随着无线科技的发展和应用,医护呼叫系统可以摆脱线缆的束缚,实现即时通讯,移动接收呼叫信息。 所以我们所做的该系统只是一个简单的设计模型,在理论很好的实现设计要求,如果考虑实际用途等,我们需要更加深入的研究这个课题。工作原理1、 由单片机检测P0口的按键状态,单品机做相应的软件执行。2、 由单片机内的显示和声音报警程序进行相应输出,来告知医生某床位有病人呼叫。第四章 调试试结果及心得体会4.1 调试结果我们通过认真研究,对一些部件进行简化,
10、再结合软件模拟,得出了达到实验要求的设计结果。4.2 心得体会 虽然课程设计即将结束,但是对于我们来说,这才刚刚开始。因为我们还有很多不足需要学习。通过辛苦的前期准备工作,我们从中学到了很多。关于学习方面,由于自己个人的能力有限,所以就多了一些交流和互相学习。无论做什么都不能急于求成和眼高手低,只有改掉我们身上的缺点才能够离成功更近一步。 第五章 致谢首先,我们学校和系领导精心为我们安排了这次课程设计,不但可以检验我们的理论知识的掌握情况,更能锻炼我们的实际动手能力。这不仅可以提高我们的学习兴趣,同时还以使我们认识到我们所学专业在实际中的广泛应用,使我们不再对所学专业感到陌生,而且还可以培养大
11、家的积极性。尤其要感谢的是我们的指导老师张斌老师,他给予了我们理论知识上的悉心指导,使我们最后能顺利地完成设计任务,上识家一个良好的实习基地,工作人员也锻炼一下我们没有他的指导,我们是很难取得成功的。最后感谢我们的小组成员,是我们的相互配合相互鼓励才会有现在的成功。我觉得在此次课程设计培养了我们的团队合作精神,让我们几个人一起做一个设计,我想这样能更好地发挥我们各自的特长,对我们以后的工作和时间有很多的帮助。第六章 附带源程序#include#include#include#include#include#include#define uint unsigned int#define ucha
12、r unsigned charunsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; sbit com1=P10;sbit com2=P11;sbit com3=P12;sbit com4=P13;sbit com5=P14;sbit com6=P15;sbit com7=P16;sbit SPK=P17;uint i,j;void baojing(uchar yin,uchar xian);void display(uchar xian);void init();void delay(uint z
13、) uint x,y; for(x=110;x0;x-) for(y=z;y0;y-);void main() while(1) if(com1=0) delay(5); if(com1=0) baojing(14,1); if(com2=0) delay(5); if(com2=0) baojing(14,2); if(com3=0) delay(5); if(com3=0) baojing(14,3); if(com4=0) delay(5); if(com4=0) baojing(14,4); if(com5=0) delay(5); if(com5=0) baojing(14,5); if(com6=0) delay(5); if(com6=0) baojing(14,6); if(com7=0) delay(5); if(com7=0) baojing(14,7); void baojing(uchar yin,uchar xian) display(xian); for(i=0;i10;i+) for(j=0;j10;j+) SPK=0; delay(yin); SPK=1; delay(yin); void display(uchar xian) P0=tablexian;17