单片机论文参考:2、基于单片机的病床呼叫系统设计

任务要求

        设计病床呼叫系统,使用3X8矩阵开关分别模拟医院病房与病床位数,当某开关按下时,系统显示呼叫的病房与病床、呼叫的时间。处理完毕可清除该呼叫显示记录。同时有数个病床呼叫时,可以循环呼叫记录显示。

摘要

        病房呼叫系统是传送临床信息的重要手段,可将病人的请求快速传送给值班医生或护士,它主要用于协助医院病员在病床上方便地呼叫医务人员,是提高医院和病室护理水平的必备设备之一。让患者需要服务时,只要按一下随身携带的呼叫器,信息立马就能传至护工处.避免没有看护人在时,病人急需服务却无法通知医生的情况.它要求及时、准确、可靠、简便可行。

        本设计的呼叫系统由按键检测,数据处理,信息显示三部分组成。由C51单片机作为主要控制器,利用液晶显示器作为显示部分,使用3X8矩阵开关分别模拟医院病房与病床位数。病人按下按键时,C51立即获取病人的病房号和病床号,同时采集此时的时间并一起显示在液晶显示器上,当护士看到显示器上病人的信息,并按下清零键后,液晶显示器恢复到初始状态。本系统对键盘的检测采用中断的方式,能够提高系统的立即性和高效性。当同时有数个病床呼叫时,本系统还可以循环呼叫记录显示。

关键词:病房呼叫 单片机 中断 液晶显示

一、要求分析

近年来,随着人们生活水平的不断提高,人们对医疗水平的要求也不断提高,特别是突发情况下病人请求值班医生或护士进行及时诊断或护理,这一环节对提高医院的管理服务质量显得尤其重要,这同时也大大提高了医院医护人员应对突发事件的能力。因此,一种新型临床呼叫仪器的研制成为近些年来的研究热点之一。呼叫系统的优劣直接关系到病员的安危,历来受到各大医院的普遍重视。它要求及时、准确、可靠、简便可行、利于推广。利用电力线载波通信技术、单片机多机通信和计算机监控管理技术设计的具有呼叫、振铃、显示排队、优先权设定、存储记录等功能的病床呼叫系统,满足了医院的病房管理和护理要求。

通过对上述设计任务的分析,可以将之细分为以下几点,最后的调试也将以下面各点为依据。

①当有病人按下按键时,液晶显示器上显示病人的病房号,病床号,以及按键时的时间。

②在护士按下清零键后,液晶显示器上内容恢复到初始状态。

③若在护士按下清零键前有多个病人按键,则液晶显示器上将循环显示各个病人的信息,直到护士按下清零键后,液晶显示器上内容恢复到初始状态。

二、系统设计和方案选择

2.1设计思路

根据设计要求,该病床呼叫系统利用C51单片机作为核心,外接3X8矩阵键盘,每一个键对应着不同的床位。在没有病人呼叫时,单片机循环等待按键按下;当病人按下床头对应的按键,产生中断信号。单片机收到中断信号后调用中断服务程序识别出呼叫病床的病房号码和床位号码,同时记录当时系统的时间,将呼叫记录通过LCD12864显示出来,护士通过读取屏幕上提示的呼叫信息即可快速的、正确的查出病人的床位,并做相应的准备以及时处理,处理完成后,按下清除按钮,即可清除本次呼叫记录,等待下次呼叫,同时液晶屏幕上再次显示“一切正常”。其结构图如下:

2.2 键盘采集方案选择

键盘的工作方式应该根据实际应用系统中CPU的工作状况而定其选取的原则是既要保证CPU能及时响应按键操作又不要过多占用CPU的工作时间。通常键盘的工作方式有三种即编程扫描、定时扫描和中断扫描。

2.2.1编程扫描方式

编程扫描方式是利用CPU完成其他工作的空余时间调用键盘扫描子程序来检验按键态响应键盘输入。执行键功能程序时CPU不再享有键输入要求直到CPU重新扫描键盘为止。

2.2.2 定时扫描方式

定时扫描方式就是每隔一段时间对键盘扫描一次她利用单片机内部的定时器产生一定时间如20ms的定时定时时间到产生定时器溢出中断。CPU在中断服务程序中键盘进行扫描并在有键按下时识别出该键并保存键号然后在中断服务程序或主程序中执行该键的功能程序。

2.2.3中断扫描方式

中断扫描方式就是当按键有按下时,产生中断信号,CPU收到中断信号后就执行相应的中断服务子程序响应该按键,处理完后CPU又开始循环等待下一次按键按下。

当采用前两种键盘描方式时,无论是否有键按下CPU都要定时扫描键盘而单片机应用系统工作时并非经常需要键盘输入。因此CPU经常处于空扫描状态,浪费CPU大量时间。CPU不扫描键盘而有键按下时通过相应电路产生中断请求,CPU响应中断,执行键盘扫描子程序并识别键号。

  所以本设计中采用中断扫描方式采集键盘信息。

2.3 电子器件选择

C51单片机:

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的CPU、RAM、ROM、多路I/O口和中断系统、定时器/计数器等功能集成到一块芯片上的一个小系统,通过编写程序下载到单片机的程序存储器以实现不同的功能。

液晶显示器LCD12864

相对于数码管、LED二极管点阵等,液晶显示具有可以实现汉字的显示,硬件电路连接比较简单等优点。

三、硬件电路设计

3.1 单片机控制系统设计

单片机控制系统功能是:键盘数据采集并保留采集结果、控制液晶显示设计要求的内容、读取实时时间,并作适当的数据处理。

该控制系统中单片机AT89C51的P0,P1,P2及P3.0,P3.1接口作普通I/O使用,其中P0口作为LCD12864的数据传输口,P2.0~P2.5口的作为其控制端口,P2.6、P2.7、P3.0以及P1口为键盘的行列口,P3.0作为清除按键的数据输入口。P3.2作为外部中断信号输入口。P3部分口与时钟芯片DS1302相连实现时间的通信。具体电路图显示如图3.1所示。

3.2 液晶显示硬件设计

液晶显示的功能包括:没有病人呼叫时,显示“一切正常”;当有病人呼叫时,显示病人的具体位置和呼叫的时间、日期。

通用型LCD12864共有18个引脚,其中DB7~DB0是连接控制器的数据总线,其他的引脚中6根控制线,另外还有电源线,具体连接见图3.2。

3.3 扫描键盘的硬件设计

键盘输入的功能:每个按键对应着一张病床,由3X8矩阵键盘组成。

该矩阵键盘的总共需要11个接口,其中列分别与单片机P2.6、P2.7、P3.0口相接,行占用了整个P1口。具体连接如图3.3所示。

3.4 时钟芯片硬件电路设计

时钟芯片DS1302有两个电源引脚,VCC1和VCC2,其中VCC1是主电源,VCC2是备份电源。当VCC2>VCC1+0.2V时,由VCC2向DS1302供电,当VCC2<VCC1时,由VCC1向DS1302供电,以防止系统掉电时芯片内部的数据不会丢失。其通信引脚有3个,另外外接32.768KHz晶振是为芯片提供计时脉冲。其连接电路图如图3.4所示。

3.5 中断电路设计

若系统初始化时将L1,L2,L3设置为高电平,P0口设置为低电平,则当有按键按下时,L1,L2,L3会有一个变为低电平。同样当按下清除键时,CLEAR也会为低电平。这样通过一个4输入与门连接到P3.2上即可实现对键盘的中断检测。其连接电路图如图3.5所示。

四、病房呼叫系统软件设计

对于一个完整的设计,除了需要设计硬件电路外,还需要根据功能需求设计要求设计一个运行高效、冗余指令少、稳定性强的软件系统。在这一块的完成上,我们采用的主要是各个子程序设计,主函数只需要做简单的数据处理和各个子程序的调用,从而逐步完成题目的全部要求。

4.1 主程序设计

主程序主要是对各子程序,中断服务子程序进行初始化,并循环显示病人信息。其流程图如图4.1所示。

4.2矩阵键盘程序设计

矩阵键盘的中断程序主要是对按键的扫描以实现对按键的键号识别,同时对键号对应的病房,病床号以及按键的时间进行存储。主函数通过调用存储的数据便可实现病房信息的循环显示。

其设计流程图如图4.2所示。

需要说明的是,在此中断程序中抖动的识别可以通过延时一段时间后再对L1,L2,L3及CLEAR的高低电平进行判断来实现,若延时后仍然有低电平则不是抖动而是真的有按键按下。

矩阵键盘的中断程序设计如下:

4.3 LCD12864驱动程序设计

编写液晶LCD12864驱动程序前首先要对系统中用到的汉字,数字以及特殊字符的数据组进行设计。针对液晶驱动程序主要考虑以下的编写:

4.4 实时时钟DS1302驱动程序设计

由于DS1302是SPI总线驱动方式,它不仅要向寄存器写入控制字,还需要读取相应的寄存器数据,所以要想与其通信,首先得了解DS1302控制字,而且SPI总线进行数据通行时只有两条数据线,即SCLK和RST,通过不同时刻两条总线的电瓶变化不同可以进行不同的操作。

五、仿真结果及分析

在protues和单片机编译软件keil C51中分别完成硬件电路设计和软件系统的设计后,生成HEX文件载入单片机中开始逐步调试程序,经过多次调试,系统能够正常的运行,并能够正确的在液晶屏上显示呼叫病床的病房号和床位号以及系统当时的时间与日期。

5.1 无病人呼救时的仿真结果

点击“运行”按钮,系统开始运行,并在液晶屏上显示“一切正常”表示没有病人求救,如图4.1所示。

5.2 有病人呼救时的仿真结果

当某一房间的病人按下求救按钮(如按下2-3键)时液晶屏提示值班人员的显示,如图4.2,左边是DS1302内部系统时间,通过对比可以看出显示时间是定在按键时间的。

当按下“清除”键后,在没有病人求救的情况下,液晶屏幕会再次出现“一切正常”。与运行开始时的结果是一致的。

5.3 有多个病人呼救时的仿真结果

当有多个病人同时按键时,液晶显示屏上以一定的时间间隔循环显示各个病人的病房,病床信息以及按键时间。其仿真结果见图5.3,图5.4(这里假设只有两个病人同时按键)。

当按下“清除”键后,在没有病人求救的情况下,液晶屏幕会再次出现“一切正常”。与运行开始时的结果是一致的。

六、心得体会

本设计是以AT89C51为核心的病人呼叫系统,对该系统的硬件和软件结构进行了相应的描述。通过对病区的数据采集实现医院医疗人员值班室和病人房之间的通信联系具有使用方便、操作简单等特点。此次设计为有线呼叫系统虽存在布线复杂、维修不便、病房不能与值班室的语音对话等缺陷。但相对于无线呼叫系统而言它的可靠性能高而且不干扰其他医疗设备。如果采用无线传输会节约布线和改造线路的资金为医院节约成本并且及时、简便可行比目前的同类产品更能受到医院及病人的认可有更强的竞争力能大量推广。

在系统设计期间,尤其是程序的调试间段出现很多次差错,主要包括LCD12864显示和DS1302部分子程序的错误,这主要是由于自己对LCD12864的显示原理和对DS1302的子函数返回值不熟悉所导致。在设计多病人呼叫循环显示时,我也遇到了许多难题。为了将病人的键号和按键时间及时存储下来,我在主程序外定义了两个无符号整型的数组,并按24个病人的长度进行定义,结果导致数据段内存不够,不能编译。后来将数组改能无符号字符型,并将长度降为10,这样已经可以满足实际需要。修改后程序才能顺利编译运行。

通过本次设计不仅让我对医院病床呼叫系统有了进一步的了解,也在熟悉芯片的同时,加强了我在编程方面的技巧。另外,在这次的设计过程中,我不断地查阅资料并请将同学,这让我的自学能力也有了很大的提高。

参考文献:

附录:

猜你喜欢

转载自blog.csdn.net/m0_49968063/article/details/132917149