欢迎来到天天文库
浏览记录
ID:6144871
大小:188.50 KB
页数:11页
时间:2018-01-04
《单片机医院病房呼叫系统设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机报告2010-05-0810一.整体设计临床求助呼叫(监护)是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。呼叫系统的优劣直接关系到病员的安危,历来受到各大医院的普遍重视。它要求及时、准确、可靠、简便可行。本呼叫系统基于Ateml89C51单片机,振荡电路的晶振采用12MHz,由控制核心AT89S52单片机、电源电路、振荡电路、复位电路、数码管解码芯片、
2、病房选择和七段数码管等部分组成,系统框图如下:选择电路电源电路AT89S51单片机复位电路振荡电路解码芯片数字显示电路二.硬件设计2.1电路原理图工作原理为:电源电路为单片机以及其他模块提供5V10电源。晶振模块为单片机提供时钟标准,使系统各部分能协调工作。复位电路模块为单片机系统提供复位功能。单片机作为主控制器,根据输入信号对系统进行相应的控制。病房一共为四个,从1号病房到4号病房病人的情况由重到轻,即1号病房的优先级最高,4号病房的优先级最低。所以,当有两个病房一起呼叫时,优先级高的病房号显示;当低优先级的病房呼叫完毕后高
3、优先级的病房呼叫,系统显示的号码改变;当优先级高的病房呼叫完毕后工作人员未复位的情况下,低优先级的病房呼叫无效。另外,当有病房呼叫时蜂鸣器响直至复位。此次设计的电路图如下:(2.2元器件列表元件名称型号数量/个用途单片机AT89S521控制核心排阻4.7KΩ1晶振12MHz1晶振电路电容22pF2电解电容10uF/10V1复位电路病房按钮按键5电阻10KΩ5电源5V/0.5A1电源电路数码管1位共阳2解码芯片74LS472BCD解码蜂呜器1电解电容1复位电路电容1041复位电路二极管1复位电路发光二极管1电源显示开关1电源开关
4、102.3仿真图:1、未通电:2、通电:101、低优先级病房先呼叫:(蜂鸣器响)高优先级病房后呼叫:(蜂鸣器响)呼叫有效2、高优先级病房先呼叫:(蜂鸣器响)低优先级病房后呼叫:(蜂鸣器响)10呼叫无效1、当有两个病房同时呼叫时1号3号病房同时呼叫显示1号三.软件设计3.1功能介绍10启动系统后,数码管显示0。当有一个病人呼叫时,数码管显示相应病房号,同时蜂鸣器响起;当有两个病人同时呼叫时,数码管显示优先级高的,同时蜂鸣器响起;当有一个病房呼叫后另一个病房呼叫,若后呼叫的病房优先级低,则数码管显示不变,若后呼叫的病房优先级高,则
5、数码管显示后呼叫的,两种情况下蜂鸣器都会叫,只是在有别的病房呼叫时有一点变音。3.2程序流程图程序流程图如下:开始工作有一个病房呼叫有多个病房呼叫判断优先级显示病房号并响铃开始有病房再次呼叫判断优先级10显示病房号并响铃3.3程序源代码:#include#defineucharunsignedcharsbitkey4=P3^0;//定义按键位置sbitkey3=P3^1;sbitkey2=P3^2;sbitkey1=P3^3;sbitreset=P3^4;//复位sbitBEEP=P1^7;//定义蜂鸣器端口
6、ucharflag1,i;voidchoice();voidclean();voiddelay();voidde();voidring();voidmain(){while(1){P3=0xff;reset=0;BEEP=0;flag1=0;choice();delay();clean();}}10voidchoice()//确定病人{while(reset!=1&&flag==0){if(key1==0){de();if(key1==0){P0=0X86;flag=1;}}elseif(key2==0){de();if(ke
7、y2==0&&key1!=0){P0=0Xdb;flag=1;}}elseif(key3==0){de();if(key3==0&&key1!=0&&key2!=0){P0=0Xcf;flag=1;}}elseif(key4==0){de();if(key4==0&&key1!=0&&key2!=0&&key3!=0){P0=0Xe6;flag=1;}}}}voidclean()//RESET为高的时候复位{if(reset==1){BEEP=0;P0=0x3f;}}voiddelay()//RESET为低的时候延时{10wh
8、ile(!reset){ring();}}voidring(){for(i=0;reset==0;i++)//喇叭发声的时间循环{de();BEEP=!BEEP;if(key1==0
9、
10、key2==0
11、
12、key3==0)//第二次呼叫{if(P0==0X86)P0=0X86;
此文档下载收益归作者所有