ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:255.07KB ,
资源ID:26215008      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26215008.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(病床呼叫系统.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

病床呼叫系统.docx

1、病床呼叫系统 电子课程设计报告姓名: 郭鹏程 叶青 胡乾 学号: 1204080319 班级: 电子信息1201 学院: 电气与电子工程学院 专业: 电子信息工程 教师: 肖忠 基于单片机的病床呼叫系统摘要 病房呼叫系统是病人请求值班医生或护士进行诊断、护理的紧急呼叫工具,它主要用于协助医院病员在病床上方便地呼叫医务人员,可将病人的请求快速传送给值班医生或护士,是提高医院和病房护理水平的必备设备之一。医院的竞争越来越激烈,商业医院的生存是第一位的,提升档次和服务质量迫在眉睫,陪护问题一直是医患矛盾的主体,也是长期困扰卫生系统服务质量的大问题,使用病房呼叫系统,方便病人更快找到医生,以节约病人的

2、宝贵时间。 系统是基于51系列的单片机设计的病床呼叫系统。该系统以AT89C52单片机为核心辅以独立键盘、LED显示电路和部分简单模拟和数字电路组成的能够实现病人和医护人员之间信息的传递。每个病人要呼叫可以按键,同时会有蜂鸣器响,不同的数码管显示房间号。这里主要是独立键盘输入信号,这是编程的关键。 在该设计中每个病房都有一个按键,当患者有需要时,按下按键,此时值班室的显示屏可显示此患者的房间号,多人使用时可实现循环显示,根据按键按下时间长短判断情况缓急,医护人员按下“响应”键取消当前呼叫,按下清零键清除所有呼叫。此系统能够为医院提供一个成本低、效率高、操作方便和易于安装维护的快捷系统。 关键词

3、:AT89C52,独立键盘,LED,病床呼叫 前言伴随着医疗体制改革的不断深化和医疗事业的飞速发展,越来越多的人们需要迅捷、方便地得到医院的各种各样的医疗服务,这必将使医院之间的竞争日趋激烈。这使得衡量一个医院的综合水平高低,不再仅仅局限于软、硬件的建设上,更要比服务。原有的服务体系已不足以适应现代社会需求,谋求适合现代社会需求的客户服务系统,是所有企事业单位计划做或正在做的工作。这些工作有利于改善服务量,提高效率并增加企业效益,从而赢得良好的社会声誉。如何利用先进的信息技术为医院服务,更大程度的提高医院的服务质量及利润,是医院信息化建设中的一个重要着眼点。医院的竞争越来越激烈,商业医院的生存

4、是第一位的,提升档次和服务质量迫在眉睫,陪护问题一直是医患矛盾的主体,也是长期困扰卫生系统服务质量的大问题,使用病房呼叫系统,方便病人更快找到医生,以节约病人的宝贵时间。病床呼叫系统是一种应用于医院病房、养老院等地方,用来联系沟通医护人员和病员的专用呼叫系统,是提高医院水平的必备设备之一。病床呼叫系统的优劣直接影响到病员的安危,历来受到各大医院的普遍重视。它要求及时、准确可靠、简便可行、利于推广。目前市场上存在着许多种型号不一功能各异的医院病房呼叫系统,主要为两大类:有线式和无线式。无线式病房呼叫系统不存在铺设线路的问题,但是可靠性差,而且无线电波会干扰其他医疗仪器设备。本文设计的是有线式的,

5、适合较小的医院病房使用,具有成本低,易于操作、安装和维护,而且具有可靠稳定,对其他医疗设备不会产生干扰的特点;但受到布线较多,影响美观,故不适宜较大的医院。病床呼叫管理系统便于病员快捷的呼叫护士,缩短人工呼叫的时间。当今病房呼叫系统正在逐步地向智能化发展,它可以和录像机一起使用,当病人按下开关时,在护士值班室的大屏幕能够观察病人的需要。并且可以配备对讲机等设备,能够使病员及时快捷地与医护人员进行沟通。第一章 系统整体设计1功能要求:1)呼叫功能:能实现8个病房对护士站的呼叫,病人有情况时,按一下自己床边的呼叫按键就能呼叫护士;2)显示功能:有病房呼叫时,护士站的数码管显示器上会显示相应的床位号

6、;无呼叫时显示器上无显示;3)报警功能:有病房呼叫时,护士站的喇叭会发出持续的报警声,同时,数码管显示器上显示床位号会;4)紧急呼叫功能:当呼叫按键被长按时,护士站的数码管和蜂鸣器会比短按时闪烁和报警的频率更高,以提示有紧急情况。5)按错撤销功能:当不小心按长按后可以短按取消紧急呼叫;同样,如果之前短按,再长按可以撤销短按而显示紧急呼叫。6)呼叫智能排序功能:紧急呼叫的优先级高于普通呼叫优先级,同等级的呼叫则按照时间顺序排序。7)呼叫提示功能:若有呼叫时,则亮红色指示灯。当多余两人呼叫时,会闪烁黄色指示灯。8)呼叫保持功能:有呼叫键按下后,即使按键松开了,呼叫显示和报警声也能保持,直到护士响应

7、呼叫;9)清除功能:护士响应呼叫后,按下清除键即可清除排在最先得病房号,按复位键可以清除所有呼叫报警声及显示。2系统模块方案的选择与论证1)系统单片机的选择与论证方案一:采用单片机AT89S52,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。方案二:采用单片机PIC16F877(A),PIC16F877(A)也是八位的单片机同时具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机的I/O口是双向

8、的,其输出电路为CMOS互补推挽输出电路,它的专用寄存器(SFR)是分散在四个地址区间内而51系列是集中在一个固定的区间地址即80H-FFH之间。以上两种方案,方案一优点:ATS52的储存空间大,而且ROM可以扩展并且其引脚数比方案二多。最重要是方案要求编程简单,它的寄存器只有一个地址区间因此编程要比方案二简单的多。方案二缺点:因为寄存器的地址区间分散,所以给编程带来很多瓶颈。还有PIC单片机的性能没有51系列稳定。因此综上所述,选择方案一。2)键盘方案的选择与论证方案一:采用矩阵式键盘,此类键盘采用矩阵式行列扫描方式,优点是可减少占用单片机的I/O口数目,使CPU有足够的资源去处理其他的工作

9、(多机通讯)。方案二:采用独立式按键电路,每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点为当按键较多时占用单片机的I/O口数目较多。方案三:采用由8255驱动的PC机键盘。优点:占用单片机的I/O口少。缺点:键盘太大且驱动程序复杂,影响美观。综合考虑以上的方案及题目要求,由于独立键盘操作方便,所以采用了方案二。3)显示方案的选择与论证方案一:采用传统的两个8位数码管(LED)动态扫描显示传输的数据信息。方案二:采用16位字符型液晶(LCD)显示各种相关数据和信息,充分用4行液晶显示的大容量特性。以上两种方案中,方案一优点:软件驱动简单,硬件

10、电路调试方便,显示信息量足够用,而且结构简单;而方案二缺点:采用的16位字符型液晶(LCD)显示属于低功耗器件,但是构造复杂,而且成本比较高。经过比较选用方案一。3框架模块功能描述1图表 1 整体设计框图1)输入部分包括按键输入,按键输入相当于一个外界的干扰信号,用于向单片机传输命令或数据。2)调节电路部分包括晶振和复位,需要时对控制器发出中断信号,以对系统进行调节。3)微处理器采用常见的AT89C51单片机为控制核心,通过软件编程,对实时采集的信息进行处理,同时也调节电路进行驱动和控制。4)输出部分包括LED显示电路,将从键盘上输入的信号显示出来,给人以直观的印象。5)系统过程的综述:键盘(

11、按钮)输入信号,AT89C51单片机收到信号后进行处理,通过输出系统将信号显示在LED屏上,此时还可以通过按键进行中断调节,显示会发生相应变化,实际情况出发,人们易于操作。第二章 系统硬件设计1供电电路KBP310的作用将交流电变为直流。C1的作用为滤波,由于普通铝电解电容的寄生电感和电阻较大,频率特性差,仅适用于50-200Hz频率的电路;若将其用在频率较高的电路中,等效阻抗明显增大,旁路作用大为减弱,且损耗也很大。因为大容量电解电容C1有一定的绕制电感分布电感,易引起自激振荡,形成高频干扰,稳压电路的自激振荡频率大都较高,因此只用大容量普通电容难以对自激信号起到良好旁路作用,需另用频率特性

12、好的电容与之并联才行。所以C2用以抑制过电压,抵消因输入线过长产生的电感效应并消除自激振荡;C3用以改善负载的瞬态响应,即瞬时增减负载电流时不致引起输出电压有较大的波动和消除高频噪声。C4的作用是减小输出纹波电压。 对于滤波电容的选择,要考虑:1.整流管的压降;2.7805、7905最小允许压降Ud;3.电网波动10%。从而允许波纹的峰峰值t=18(1-10%)-0.7-Ud-15=4.9v 接近似电流放电计算,假设=0(通角),则C=1430f选取滤波电容C=2200f/30V1主控电路AT89C51单片机简介单片机就是在一片半导体硅片上集成了微处理器(CPU),存储器(RAM,ROM,EP

13、ROM)和各种输入、输出接口(定时器/计数器,并行I/O接口,串行口,A/D转换器以及脉宽调制器PWM等),这样一块电路集成芯片具有一台计算机的属性,因而被称为单片微型计算机,简称单片机。2报警电路蜂鸣器一般用于一些要求不高的声音报警及按键操作提示音等场合。蜂鸣器和普通扬声器相比,它有自己的固有频率,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单。由于单片机输出的电压、电流有限,不能直接驱动蜂鸣器响起,因此实际连接电路中加入了三极管放大器,使用三极管的开关功能一起控制蜂鸣器的鸣响。3显示电路LED显示器为8段或7段,每一个段对应一个发光二

14、极管。这种显示器有共阴极和共阳极两种。共阳极显示器的发光二极管的阳极接到一起,通常此公共阳极接正电压,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。共阴极显示器的发光二极管的阴极接到一起,通常此公共阴极接地,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。此次设计中使用了一个共阴极的单数码管,显示病房号,数码管单独工作,分别接了单片机的P0、P2口。以查表的方式使数码管来显示。驱动采用排阻然后拉低IO口的方式驱动。4时钟电路本设计采用内部时钟产生方式。内部振荡方式所得的时钟信号比较稳定。晶振选用的是12MHZ的内部振荡方式,电路如图:电容器C1,C2起稳定振荡频率,快速起振的作用

15、,电容值取30P。 5复位电路本设计有两个复位电路;其中系统总的复位电路如下左图,采用上电+按键复位电路如下,上电后,由于电容充电,使RST持续一段高电平时间。C7选择30uF,R2选择10K。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。下面右图中是程序中的复位电路,可用来实现程序跳出循环,从头开始执行。6输入电路图中1-8号按键,分别代表8个病房的呼叫源,按下按键时便开始呼叫。且有不同的优先级,9号按键为护士按键,按下解除一位呼叫;10号按键全部清零按键。 第三章 系统软件设计病房呼叫系统软件设计均采用模块化设计,整个程序主要包括主程序、键盘扫描程序、显示程序。所有程序均采用

16、C语言编写。病房呼叫系统的软件设计思路说明如下:通过按键扫描,按下一个开关时数码管会对应显示按键号码,用定时器中断控制数码管和LED的亮灭,蜂鸣器的响停,主要难点在键盘长按与短按的优先级判断和重复按键的处理办法。1.系统主程序首先对各存储单元初始化,设定定时初值,检测LED,数码管,蜂鸣器是否有损坏,扫描键盘。2.显示程序分别定义了display和display0两个子函数,然后通过定时器中断的方法让其闪烁显示,当长按时数码管和LED闪烁的时间为300ms,短按时闪烁时间为1s.3.按键判断首先扫描整个队列,如果此队列中没有所按下的键盘数,直接将此数放入队列中,再判断如果此次按键为长按时须与队

17、列中的其他数相比较,将其移到长按的末尾,如果此队列中有所按下的键盘数且与上次状态不同,则需将此数移到队列的末尾,再次判断。第四章 系统调试与结果1.Protues仿真当按键7按下时的情况:2.系统调试过程与问题分析1)增加了对系统错误检查测试时,有时会因为电路焊接问题出现蜂鸣器不响,数码管某段不亮等问题。而病房呼叫系统对的稳定性要求较高,因此加入了开机检测,即在开机时让数码管,指示灯,蜂鸣器工作,以方便人为检查系统是否出现故障。2)优化了呼叫排序机制测试时,设计的是按顺序显示呼叫病房号,为了发挥紧急呼叫的作用,因此加入了每次按键按下后进行排序,以实现按优先级显示。3)消除按键无响应问题测试时,

18、之前由于显示程序采用的是延时方法,因此在延时过程中无法检测按键而使按键按下不起作用,未解决此问题,在程序上做了改进,即用中断取代延时。4)按键重复按下问题最开始没有想到按键重复按下的问题,那么当一个房间连续按下几次,数码管会一直显示这个房间,给护士带来不便,后增添了解决重复按键的问题,用一个判断语句,判断这个按键之前是否出现过。5)数码管,LED闪烁问题开始时,未让数码管,LED闪烁,后觉得闪烁能让人更有紧迫感,并设计了闪烁,且长按与短按闪烁状态也不同。3.结果分析系统可以很好地满足病房呼叫系统的基本需求,同时又拓展的紧急呼叫,呼叫等待,优先呼叫选择等功能。在最大程度上拓展了系统功能。可完善的

19、地方:可增加通话功能,让病人和护士能直接对话,提高了护士的工作效率第五章 设计总结、心得1.设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机片内有哪些资源。2.设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图。3.在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。4.要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。5.在设计程序过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的

20、问题。参考文献1谭浩强.C程序设计:清华大学出版社2康华光.电子技术基础.(数字部分):高等教育出版社3康华光.电子技术基础(模拟部分).:高等教育出版社,附录附1元件名称 价格 变压器220v转9v5元51单片机4元蜂鸣器1元数码管1元按键11个1元L78051元KBP3101元发光二极管3个0.5元电解电容1元附2 源程序#include #define uint unsigned int#define uchar unsigned charsbit key1 = P10; sbit key2 = P11;sbit key3 = P12; sbit key4 = P13;sbit key5

21、 = P14; sbit key6 = P15;sbit key7 = P16; sbit key8 = P17; /前8个按键对应8个病房sbit key9 = P20; sbit key10 = P37; /后两个按键分别为单个取消和全部取消sbit spy_com = P27; /数码管的公共端sbit beep = P23; sbit LED1 = P24; sbit LED2 = P25; /状态指示灯,LED1为有人呼叫时就点亮,LED2为多余两人时点亮uchar code table = 0x00,0x14,0xad,0x9d,0x1e,0x9b,0xbb,0x15,0xbf;

22、/数码管段码第一个为0char num=0,numpre8,temp,flag=0,len=0,a8;uint n,m,f8; /n为数码管刷新频率与蜂鸣器响停频率,值越大刷新越慢 m为中断执行次数uint i;uchar j;void delayms(uint xms) /延时x ms uint a , b; for (a = xms ;a 0; a-) for (b = 110; b 0; b-); void display(uchar numdis) /都亮响 m=0; /数码管每刷新一次,使中断计数器m清零 if(numpre1!=0) /当队列大于1时 即有至少两人呼叫时,LED2点

23、亮 LED2=0; beep=0; /闪烁LED1与蜂鸣器 LED1=0; n=fnumdis-1; /将待显示队列中的病房号的数码管刷新频率(蜂鸣器响停频率即呼叫的状态是普通还是紧急)赋给n,n的检测交给中断函数处理,numdis为当前病房号,但是f是从0开始 故numdis-1 P0 = tablenumdis; /给数码管幅值,numdis为当前病房号 delayms(1); flag=1; /显示标志位void display0() /都灭 LED2=1; m=0; beep=1; LED1=1; P0 = table0; delayms(10); flag=0; void keysc

24、an() if (key1 = 0) delayms(10); /消抖 if (key1 = 0) i=0; num = 1; /键值num while (!key1) if(i15000) f0=500; /长按 else i+; f0=2000; /短按 /检测队列 for (i=0;i8;i+) if(numprei=num) if(a0=f0-2000|a0=f0-499|i=7) break; else for(j=i;j0;j-) /倒序循环,将之前最后的一位的按键(即当前键值),移至长按队列的尾部,如83265410,其中832为长按队列,1也为长按(上面的for将其移至尾部),

25、则处理完为83216540 if(fnumprej-1-1!=500) /当上一位为短按时,交换当前键值与上位键值 temp=numprej-1; numprej-1=numprej; numprej=temp; else break; if(i=0) display(numpre0); if (key2 = 0) delayms(10); if (key2 = 0) i=0;num = 2; while (!key2) if(i15000) f1=500; else i+; f1=2000; for (i=0;i8;i+) if(numprei=num) if(a1=f1-2000|a1=f

26、1-499|i=7) break; else for(j=i;j0;j-) if(fnumprej-1-1!=500) temp=numprej-1; numprej-1=numprej; numprej=temp; else break; if(i=0) display(numpre0); if (key3 = 0) delayms(10); if (key3 = 0) i=0;num = 3; while (!key3) if(i15000) f2=500; else i+; f2=2000; for (i=0;i8;i+) if(numprei=num) if(a2=f2-2000|a2=f2-499|i=7) break; else for(j=i;j7&numprej+1!=0;j+) numprej=numprej+1; numprej=0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1