基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx

上传人:b****1 文档编号:4777076 上传时间:2023-05-04 格式:DOCX 页数:12 大小:83.77KB
下载 相关 举报
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第1页
第1页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第2页
第2页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第3页
第3页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第4页
第4页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第5页
第5页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第6页
第6页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第7页
第7页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第8页
第8页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第9页
第9页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第10页
第10页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第11页
第11页 / 共12页
基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx

《基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx(12页珍藏版)》请在冰点文库上搜索。

基于51单片机的病房呼叫系统软件段露露12406070黄成强物理与机电工程学院文档格式.docx

1系统程序设计

1.1主程序设计

流程图如图1所示,主函数[1]是一个完整的程序入口函数,即voidmain()。

该设计的主函数是4*4矩阵键盘[4][5]、LED灯显示、蜂鸣器电路、按键应答和反馈电路5个子程序组。

主要是通过对4*4矩阵键盘的初始化检测键盘是否有键值的输入,即判断是否有键按下。

通过对键盘的扫描将键值进行处理,并送缓冲区,随之LED灯变亮,蜂鸣器发声,当应答部分的有键值的输入(即护士按键响应),护士站的LED灯灭,程序结束。

同时,通过延时判断是否有应答,当无应答时则会反馈给病房,病房的LED灯点亮

图1系统功能流程图

1.2矩阵键盘程序读取

矩阵键盘如图2所示,首先需要对4*4矩阵键盘进行识别,判断键盘有无按键按下,若无键按下返回。

如果有键按下,找出具体的按键值。

键盘键值读取可分为4部分,每排为一个部分,当一排当中有一个键或多个键同时按下时,读取的键值是一样的。

图2矩阵键盘图

1.3LED灯介绍及设计

LED灯的主要部件是一快半导体的晶片[7],晶片的一端上有一个支架,一端是正极,而另一端则是负极,环氧树脂封装着整个晶片。

半导体晶片可分为两部分,一部分是N型半导体,在这边主要是电子,另一端是P型半导体,在它里面空穴占主导地位。

这两种半导体可以连形成一个“P-N结”。

当这个晶片通过电流起作用的时候,被推向P区的电子就会与P区里的空穴复合,然后会放出能量,这就是LED发光的原理。

本设计采用LED灯亮灯显示。

系统共设计8个LED灯显示,分别是护士站4个,设计中的4个病房,每个病房一个。

在第一个病房一排按键中,如果有键按下,led11处于低电平,即护士站的第一个LED灯点亮;

同理,当第二个病房的二排按键中有键按下,Led22处于低电平,护士站的第二个LED灯点亮;

设计中的4个病房是同样的道理。

1.4蜂鸣器设计

本设计利用蜂鸣器的发声达到系统功能的实现,蜂鸣器选用5V电磁式有源蜂鸣器,由于蜂鸣器的工作电流一般比较大,以至于单片机的I/O口是无法直接驱动的,所以要利用三极管开关电路来驱动。

本处选用的是8550三极管,它是一个PNP型的三极管。

基极串联一个1K的电阻连接到单片机的I/O口时。

当I/O口输出低电平时,三极管导通,蜂鸣器鸣叫;

当I/O口输出高电平时,三极管截止,蜂鸣器停止鸣叫。

2程序

2.1源程序

/**********************************************************

单片机中断头文件

单片机AT89C52

实现功能:

单片机中断的控制控制

********************************************************/

#ifndef_INTERRUPT_H_

#define_INTERRUPT_H_

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

/**********************引脚定义************************/

sbitled1=P1^7;

//LED灯

sbitled2=P1^6;

sbitled3=P1^5;

sbitled4=P1^4;

sbitled11=P2^7;

sbitled22=P2^5;

sbitled33=P2^3;

sbitled44=P2^1;

sbitled=P1^0;

//工作指示灯

/**********************变量定义************************/

uintT0_num,T1_num;

/********************************************************

函数名称:

voidT0_init()

函数作用:

定时器0初始化函数

参数说明:

{

EA=1;

//开总中断

ET0=1;

//定时器T0中断允许

TMOD=0x11;

//使用定时器T0、T1的模式1

TH0=(65536-50000)/256;

//定时器T0的高8位赋初值

TL0=(65536-50000)%256;

TR0=0;

//关闭定时器

ET1=1;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

TR1=0;

}

voidT0_interrupt(void)interrupt1using0

定时器0中断处理函数

{

//定时器T0的高8位重新赋初值

T0_num++;

if(T0_num==600)

{

T0_num=0;

T1_num=0;

//打开按键旁边的灯

if(led11==0)

led1=0;

if(led22==0)

led2=0;

if(led33==0)

led3=0;

if(led44==0)

led4=0;

TR1=1;

//开启10定时

TR0=0;

}

voidT1_interrupt(void)interrupt3

定时器1中断处理函数

T1_num++;

if(T1_num==200)

P1=0xff;

led=0;

TR1=0;

#endif

INTERRUPT.h>

sbitkey=P2^0;

//护士键

sbitkey1=P3^7;

//按键

sbitkey2=P3^6;

sbitkey3=P3^5;

sbitkey4=P3^4;

sbitbuzz=P0^4;

//蜂鸣器

/******************************************************

voidmain()

主函数

******************************************************/

led=0;

T0_init();

while

(1)

if(P3!

=0xff)//检测键盘

{

while(P3!

=0xff)//检测按键离开

{

if(key1==0)//第一排

{

led11=0;

TR0=1;

buzz=0;

}

if(key2==0)//第二排

led22=0;

buzz=0;

if(key3==0)//第三排

led33=0;

if(key4==0)//第四排

led44=0;

}

}

if(key==0)//护士按键

buzz=1;

//清除LED灯和蜂鸣器,定时器

led1=1;

led2=1;

led3=1;

led4=1;

led11=1;

led22=1;

led33=1;

led44=1;

TR0=0;

TR1=0;

T0_num=0;

T1_num=0;

}

}

3程序调试及实现

3.1软件开发环境

此设计的编程[8]实现由KeilμVision4进行。

KeilC51是由美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。

其C语言在结构性、可读性、可维护性、功能上都相较于汇编语言有明显的优势,便于学习和使用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

3.2系统软件调试

本课题的程序使用Keil软件进行编写和调试[8],检查程序准确无误后将编写好的程序生成.hex文件,下载到单片机中,下载使用的下载器为PL2303。

通过观察整个系统运行的状态,看其是否达到本课题的设计目标,然后进行反复修改、调试程序,以此得到一个最终确定的程序。

4结束语

本次课题的设计是基于单片机的病房呼叫系统[6][7]的改进,新增的同时显示功能和反馈功能使得病房呼叫系统这项设备在原来的基础之上得到改善。

其中

(1)反馈功能避免了病人按键后,并不知道医护人员是否得知消息,只能等候。

改进后的病房呼叫系统,当患者按键信息到达值班室,医护人员按下“应答”键,并及时为患者提供服务。

假若值班室无人,“应答”键没有按下,则相应的患者房间里对应的LED灯点亮,方便患者家属采取相应措施。

(2)同时显示功能避免了传统病房呼叫系统多人按键,必须按照按键时间先后顺序排队显示的烦恼。

本课题改进的按键显示为一个病房对应一个LED灯,不同病房的多人按键可以同时显示,重症病房的前两排按键对应前面的两个LED灯,便于医护人员同时为需要帮助的患者服务。

改进之后的病房呼叫系统[4-10]将更适用于各医院,甚至是敬老院等场所,提高医院的服务质量,降低医用设备的成本。

本次设计是在小组成员的共同合作下完成的,让我们在完成作品的同时懂得了分工与合作的重要性,制作过程使得平时课堂上的很多理论知识得了实践应用。

其中,我涉及最多的是软件部分,当然,以上文章所述都是围绕软件部分展开,本次设计使我对计算机语言、程序的设计和编写有了一定的认识和提高。

参考文献

[1]谭浩强,张基温.C语言程序设计教程[M].北京:

高等教育出版社,2011:

3-199.

[2]阎石,等.数字电子技术基础[M].北京:

高等教育出版社,1981:

2-99.

[3]李中伟,朱永涛.新型无线病房呼叫系统的设计[J].电子世界,2014:

224-224.

[4]苏家健,曹柏荣,汪志锋.单片机原理及应用技术[M].北京:

高等教育出版社,2015:

4-100.

[5]颜靖松,许建明等.基于单片机的无线病房呼叫系统设计[D].北京:

数字技术与应用,2015:

151-152.

[6]陈新岗等.基于单片机的无线病房呼叫系统设计[D].重庆:

重庆工学院学报,2008:

126-130.

[7]艾学忠,刘伟,陈北辰.单片机原理及接口技术[M].北京:

机械工业出版社,2012:

2-168.

[8]夏宇闻,等.Verilog数字系统设计教程[M].北京:

北京航空航天大学出版社,2013:

3-200.

[9]沈凯,吴清萍.基于单片机的病房呼叫系统设计[D].现代电子技术,2011:

1-3.

[10]王安,丁晓迪,常亮.基于AT89C52单片机的单片机的病房呼叫系统设计[J].硅谷,2010:

108-108.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2