基于单片机病房呼叫器亲测可用课设

更新时间:2024-01-27 18:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子信息工程专业课程设计任务书

题目:单片机病房呼叫系统设计

设计内容

设计一个单片机病房呼叫系统,可容64张床位的病房呼叫,每当患者需要呼叫护士时,按下按钮,此时护士值班室内的呼叫系统板上显示该患者的床位号,并振铃3秒。当护士按下“响应”键时,结束当前呼叫。

设计步骤

一、 总体方案设计

基于单片机的病房呼叫系统设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。

二、硬件选型工作:对所使用的电路元件应选择型号。 三、硬件的设计和实现 1. 选择所用的51单片机;

2. 设计单片机最小系统,在此基础上进行扩展; 3. 设计支持系统工作的外围电路; 四、软件设计

1. 编写系统初始化和主程序模块; 2. 画出电路流程图; 3. 编写子程序; 4. 显示程序。

五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。

课程设计说明书要求

1. 课程设计说明书应书写在学院统一印制的课程设计(论文)说明书上,书写应认真,字迹工整,论文格式参考国家正式出版的书籍和论文编排。

2. 论理正确、逻辑性强、文理通顾、层次分明、表达确切,并提出自己的见解和观点。

3. 打印不少于12页(除附图外)。 4. 每组单独一个题目,每组上限5人。

时间安排

课程设计计划时间4周。课程设计题目于17周下发。课程设计完成后于20周三中午下班前送交电子信息办公室(实验楼三楼),届时指导教师安排短暂答辩。

辅导时间和地点

17~20周每周2、周3和周4。

目录

一、设计要求 ........................................... 3 二、设计目的 ........................................... 4 三、设计的具体实现 ..................................... 5

3.1系统概述 ........................................ 5 3.2单元电路设计 .................................... 6

3.2.1 单片机的引脚介绍 .......................... 6 3.2.2 单片机复位电路介绍 ........................ 7 3.2.3 时钟电路的介绍 ............................ 8 3.2.4 详细设计 ................................. 10 3.3软件程序设计 ................................... 12

3.3.1 系统软件的设计 ........................... 12 3.3.2 主程序流程图 ............................. 13 3.3.3子程序流程图 ............................. 13 3.3.4 源程序代码 ............................... 16

四、结论与展望 ........................................ 21 五、心得体会及建议 .................................... 22 六、附录 .............................................. 24 七、参考文献 .......................................... 26

单片机病房呼叫系统设计报告

一、设计要求

1、设计一个可容64张床位的病房呼叫系统。

2、要求每个床位都有一个按钮,当患者需要呼叫护士时,按下按钮。此时护士值班室内的呼叫系统板上显示该患者的床位号,并振铃3秒。

3、当护士按下“响应”键时,取消当前呼叫。

二、设计目的

在大型机关,旅馆和医院中,常需要有一种内部联络和呼叫系统,以便在旅客(病员)和服务人员之间建立必要的联络,而一般的内部通话系统都比较少,经常使用的是比较便宜的呼叫指示,这种呼叫指示系统在提示的同时,能够用数码管显示各呼叫的号码。

病房呼叫系统是病人请求值班医生或护士进行诊断或护理的紧急呼叫工具,它主要用于协助医院病员在病床上方便地呼叫医务人员,可将病人的请求快速传送给值班医生或护士,是提高医院和病房护理水平的必备设备之一。医院的竞争越来越激烈,商业医院的生存是第一位的,提升档次和服务质量迫在眉睫,陪护问题一直是医患矛盾的主体,也是长期困扰卫生系统服务质量的大问题,使用病房呼叫系统,方便病人更快找到医生,以节约病人的宝贵时间。。因此该系统具有很大的应用前景和广阔的市场发展空间。

本设计是以AT89C51为核心的病人呼叫系统,对该系统的硬件和软件结构进行了相应的描述。此系统主要由89C51单片机,按键,数码管,喇叭等组成。每个病人要呼叫可以按键,同时会有喇叭响,数码管显示不同床位号,相应的指示灯亮

通过对病区的数据采集,实现医院医疗人员值班室和病人房之间的通信呼叫联系,具有使用方便、操作简单等特点。

三、设计的具体实现

3.1系统概述

在本系统中,我采用单片机AT89C51为核心的系统主要包括2个部分:数据采集和数据的输出,数据的输出用来进行呼叫,编码使用单片机完成,数据采集负责接收分机发来的信号,并显示该患者的床位号,并响铃,主机上设有键盘可以取消当前呼叫。

其实现结构框图如图3.1所示。

护士台病房显示AT89C51蜂鸣8*8键盘64个LED图3.1 系统总体方案图

由8×8键盘矩阵采集到的键值经过P1、P2口输入到单片机AT89C51中,然后通过P0口把相关信息传送到数码管显示。同时报警警示灯闪烁、报警声响起。医疗人员可以通过控制键盘操作,

图3.7 报警电路设计图

(3) 键盘模块电路设计

8×8键盘矩阵和64个LED警示灯模块组成,在键盘扫描和LED驱动部分,使用了LED显示电路原理图如图3.8所示。

图3.8 键盘模块电路图

(4) 键盘的工作方式介绍

键盘的工作方式应该根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要

过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。

编程扫描方式:

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

定时扫描方式:

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

中断扫描方式:

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

该系统软件主要完成以AT89C51为核心的数据的采集、处理和有线传输。采用模块化程序设计方法,将系统软件的设计主要分为显示模块,输入模块,输出模块。单片机扫描发射键,如果扫描到有发射键按下,系统便扫描拨码开关的状态以确定地址码,通过P1口和P2口开始地址码传送当服务台接收到呼叫信号后,

护士值班室内的呼叫系统板上显示该患者的床位号,并振铃。当护士按下“响应”键时,结束当前呼叫。 3.3.2 主程序流程图

单片机扫描发射键,如果扫描到有发射键按下,系统便扫描拨码开关的状态以确定地址码,再进行中断初始化,去除键的延时抖动,分辨行、列值,进入死循环,这时病房指示灯点亮,服务台显示出床号并响铃,病房等待服务台的回应,如果没有扫描到信号输入,则单片机始终处于初始状态。如图3.9所示。

开始初始化系统N有键按下?Y病房指示灯亮,服务台显示床号,并响铃服务台回应N停止?Y结束

图3.9 主程序流程图

3.3.3子程序流程图

子程序如图3.10是一个中断式键盘的流程图,当单片机收到信号后,中断入口开始初始化,去除键的延时抖动。而一般的削抖方式有软件和硬件两种,硬件削抖虽能够解决键抖动问题,但

如果应用系统所需按键较多,本系统采用的是软件削抖,当检测出有键闭合时,先执行一个延时子程序产数毫秒的延时,待接通时的前沿抖动消失后再判别是否有键按下,分辨出行、列值。当按键释放时,也要经过数毫秒延时,待后沿抖动消失后再判别是否有键按下。

中断入口中断初始化有键按下延时去键抖动分辨行、列 图3.10 子程序流程图

中断程序:

中断返回void key(void) 扫描键盘值 {

uchar hang,lie; P1=0x00;P2=0xff; delay(1); if(P2!=0xff) {

delay(5); 延迟后查询行列值 if(P2!=0xff) {

switch(P2&0xff) 扫描列值

{

case 0xfe:lie=0;break; case 0xfd:lie=1;break; case 0xfb:lie=2;break; case 0xf7:lie=3;break;

case 0xef:lie=4;break; case 0xdf:lie=5;break; case 0xbf:lie=6;break; case 0x7f:lie=7;break;

}

P2=0x00;P1=0xff;

switch(P1&0xff) 扫描行值 {

case 0xfe:hang=0;break; case 0xfd:hang=1;break; case 0xfb:hang=2;break; case 0xf7:hang=3;break; case 0xef:hang=4;break; case 0xdf:hang=5;break; case 0xbf:hang=6;break; case 0x7f:hang=7;break;

}

P2=0xff;P1=0x00; while(P2!=0xff);

bed_NO=keytab[hang][lie];TR0=1; 赋值给bed_NO

} else

bed_NO=0;

行列值

}

}

void time_init(void) 计数器的初始化 { }

void time(void) interrupt 1 using 1 定义中断块 3.3.4 源程序代码

源程序代码如下: #include

#define uchar unsigned char #define uint unsigned int sbit B1=P3^6; sbit B2=P3^7; sbit buzzer=P3^5; sbit clear=P3^4; sbit FMQ=P3^1;

ucharcodedistab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code keytab[8][8]={

{1,2,3,4,5,6,7,8},

{9,10,11,12,13,14,15,16}, {17,18,19,20,21,22,23,24}, {25,26,27,28,29,30,31,32}, {33,34,35,36,37,38,39,40},

TMOD=0x01;

TH0=(65536-8333)/256; 装入初值 TL0=(65536-8333)%6; EA=1; ET0=1;

{41,42,43,44,45,46,47,48}, {49,50,51,52,53,54,55,56}, {57,58,59,60,61,62,63,64}, };

uchar bed_NO; uchar btime; uchar itime;

void delay(uint x) { uint i,j; }

void display(void) {

uchar a10,a1; a10=bed_NO/10; a1=bed_NO; P0=distab[a10]; B1=0; delay(10); B1=1;

P0=distab[a1]; B2=0; delay(10); B2=1;

for(i=0;i

for(j=0;j<10;j++) {;;}

}

void key(void) {

uchar hang,lie; P1=0x00;P2=0xff; delay(1); if(P2!=0xff) {

delay(5); if(P2!=0xff) {

switch(P2&0xff)

{

case 0xfe:lie=0;break; case 0xfd:lie=1;break; case 0xfb:lie=2;break; case 0xf7:lie=3;break; case 0xef:lie=4;break; case 0xdf:lie=5;break; case 0xbf:lie=6;break; case 0x7f:lie=7;break; }

P2=0x00;P1=0xff; switch(P1&0xff)

{

case 0xfe:hang=0;break; case 0xfd:hang=1;break; case 0xfb:hang=2;break;

}

case 0xf7:hang=3;break; case 0xef:hang=4;break; case 0xdf:hang=5;break; case 0xbf:hang=6;break; case 0x7f:hang=7;break; }

P2=0xff;P1=0x00; while(P2!=0xff);

bed_NO=keytab[hang][lie];TR0=1; } bed_NO=0;

else }

void time_init(void) { }

void time(void) interrupt 1 using 1 {

TH0=(65536-8333)/256; TL0=(65536-8333)%6; itime++; if(itime>=100) {

TMOD=0x01;

TH0=(65536-8333)/256; TL0=(65536-8333)%6; EA=1; ET0=1;

}

itime=0; btime++;

if(btime>6){TR0=0;btime=0;} buzzer=!buzzer; FMQ=!FMQ;

}

void main(void) { }

FMQ=1; time_init(); for(;;) { }

key(); display();

if(TR0==0){buzzer=1;} if(clear==0) { }

delay(10); if(clear==0) { }

bed_NO=0;

四、结论与展望

本设计是以AT89C51为核心的病人呼叫系统,对该系统的硬件和软件结构进行了相应的描述。通过对病区的数据采集,实现医院医疗人员值班室和病人房之间的通信联系,具有使用方便、操作简单等特点。伴随着医疗体制改革的不断深化和医疗事业的飞速发展,越来越多的人们需要迅捷、方便地得到医院的各种各样的医疗服务。

这使得衡量一个医院的综合水平高低,不再仅局限于软、硬件的建设上,更要比服务。临床呼叫求助装置是传送临床信息的重要手段,关系病员安危,传统的有线呼叫系统历来受到各大医院的普遍重视。

在医院的病房里每个床位边都装有一个呼叫按钮,当病人需要帮助时,按下呼叫按钮,护士办公室里呼叫显示板上相应房间号的指示灯点亮并进行声音提示,同时在值班室里安装一个电子显示牌,使值班护土能及时的知道哪个房间的病人需要帮助或需要进行抢救。

五、心得体会及建议

本次课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。千里之行始于足下,通过这次毕业设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。

通过这次单片机设计,我在多方面都有所提高。通过这次基于单片机的病房呼叫器设计,综合运用本专业所学课程的理论和生产实际知识进行一次单片机设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了单片机课程所学的内容,掌握单片机设计的方法和步骤,掌握单片机设计的基本的技能懂得了怎样分析电路,了解了单片机的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

在这次设计过程中,体现出团队设计的团结以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。转眼之间课程设计就要结束了,这几周我过得虽然忙碌但是很充实,因为通过这次设计我学到了很多知识,对单片机也有了更深的认识,并且把以前学的知识又重新梳理了一遍,除此之外我也感觉到了

自己知识的匮乏,设计过程中遇到许多困难,比如由于之前对单片机应用知识的不熟悉,程序编写无从下手以及对以前所学知识掌握的不够牢固等等,给了我很大的压力,真正的感觉到是学无止境这句话是什么含义。我一遇到不会的知识或者以前学过但现在却忘记的知识,我就上图书馆,上网去查,或者拿出以前的书再看看,尽力把它弄明白。我们小组在设计时一起讨论,一起研究,在大家的互相帮助下我们提高的很快,解决了很多问题,也通过这次设计我们在彼此身上学到了很多知识,并且在我们即将面临实习的重要时刻,这次设计过程也让我们对我们自己的专业,和学习,工作的方向有了更清晰的认识。让我知道不论做什么工作都要努力,都要不断学习。

此次设计为有线呼叫系统,虽存在布线复杂、维修不便、病房不能与值班室的语音对话等缺陷。但相对于无线呼叫系统而言,它的可靠性能高,而且不干扰其他医疗设备。

如果采用无线传输,会节约布线和改造线路的资金,为医院节约成本,并且及时、简便可行,比目前的同类产品更能受到医院及病人的认可,有更强的竞争力,能大量推广。

六、附录

附录一:系统电路图

图6.1 病房呼叫系统电路图

附录二:元器件明细表

表6.2 元件器件表

器件 参数 数量 电阻 500Ω 2 电容 22pF,20uF 22pF2个,20uF1个 芯片 AT89C51 1 晶振 1 蜂鸣器 1 数码管 两位 1 排阻 1 按键 66 LED

RED 1 七、参考文献

1·孙俊逸,盛秋林·《单片机原理与应用》·北京清华大学出版社·2006.

2·何立民· 《单片机高级教程-应用与设计》·北京航天航空大学出版社·2000.

3·李朝青·《单片机原理及接口技术》·北京航天航空大学出版社·1999.

本文来源:https://www.bwwdw.com/article/67kw.html

Top