找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4483|回复: 5
打印 上一主题 下一主题
收起左侧

基于单片机的病房呼叫系统 课程设计(论文 Word格式 可编辑)

[复制链接]
跳转到指定楼层
楼主
广东工业大学华立学院
课 程 设 计(论文)


课程名称            计算机控制系统
题目名称       基于单片机的病房呼叫系统设计
学生学部(系)     机电与信息工程学部         
专业班级              14电气2班              
学    号          511412030125            
学生姓名                肖*朗               
指导教师  王*赟




广东工业大学华立学院

课程设计(论文)任务书
题目名称
基于单片机的病房呼叫系统设计
学生学部(系)
机电与信息工程学部
专业班级
14电气2班
姓    名
肖*朗
学   号
511*0125

  •          课程设计(论文)的内容

本次设计主要是设计一个单片机控制的病房呼叫系统。利用AT89C51结合现实电路,LED数码管以及按键来设计。在设计时,应将软硬件有机地结合起来,使得系统能够正确的反应病人的呼叫并使服务台能够回应。

  • 课程设计(论文)的要求与数据
1.用单片机实现;
2.设计一个可容64张床位的病房呼叫系统。
3.每个床位都有一个按钮,患者需要 呼叫护士时,按下按钮。
4. 护士值班室内的呼叫系统板上显示该患者的病床号,并振铃。
5.护士按下“响应”键时,取消当前呼叫。
三、课程设计(论文)应完成的工作

1. 完成硬件和软件设计,绘出电路原理图;

2. 完成课程设计报告的撰写。



四、课程设计(论文)进程安排

序号
设计(论文)各阶段内容
地点
起止日期
1
收集单片机等相关资料,确定设计方案
校内
2017年5月5日
2
进行硬件和软件设计,绘出电路原理图
校内
2017年5月5-15日
3
进行课程设计报告的撰写
校内
2017年5月15、16日





















五、应收集的资料及主要参考文献
    1.收集单片机及设计中所涉及的主要器件等方面的资料
    2.收集相关的软件编程方面的资料



目录

1概述5

1.2设计要求              5

  1.2设计要求              5

  1.3功能简介              5

2、系统总体方案及硬件设计5

2.1系统总体方案              5

2.2硬件设计              6

3软件设计6

3.1程序设计简要              6

3.2系统的工作流程              7

3.3软件设计              8

4、Proteus软件仿真8

5设计体会8

附录10

附录A              10

附录B              12

参考文献13


1.概述
1.1 设计任务
本次设计主要是设计一个单片机控制的病房呼叫系统。利用AT89C51 结合显示电路,LED数码管以及按键来设计。在设计时,我们应将软硬件有机地结合起来,使得系统能够正确的反应病人的呼叫并使服务台能够回应。
1.2 设计要求
设计一个可容64张床位的病房呼叫系统。要求每个床位都有一个按钮,当患者需要呼叫护士时,按下按钮。此时护士值班室内的呼叫系统板上显示该患者的床位号,并振铃。当护士按下“响应”键时,取消当前呼叫。
1.3. 功能简介:
临床求助呼叫(监护)是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。呼叫系统的优劣直接关系到病员的安危,历来受到各大医院的普遍重视。它要求及时、准确、可靠、简便可行。为此,我们采用单片机AT89C51为系统核心,配以LED及键盘电路模块和MPX2彩屏LCD电路模块实现病人呼叫(监护)系统的设计。
2. 系统总体方案及硬件设计
2.1系统总体方案
在本系统中,我们采用单片机AT89C51为核心的系统主要包括2个部分:数据采集和数据的输出,数据的输出用来进行呼叫,编码使用单片机完成,数据采集负责接收分机发来的信号,并进行解码、显示该患者的床位号,并振铃,主机上设有键盘取消当前呼叫
其实现结构框图如图1所示。
图1 病人呼叫系统框图
将由8×8键盘矩阵采集到的键值经过P0.P2输入到单片机AT89C51中,通过简单的点亮呼叫病号对应床号灯和病区内的警示灯,然后通过P1口把相关信息传送到MPX2彩屏LCD显示。同时报警警示灯闪烁、报警声响起。医疗人员可以通过控制键盘操作,完成呼叫响应和信息查询等监护工作。
                      图1
2.2 硬件设计
2.2.1单片机AT89C51的特点
随着单片机功能集成化的发展,其应用领域也逐渐从传统的控制扩展为控制处理、数据处理以及数字信号处理等领域,AT89C51具有低电压、低功耗、性价比高、功能强、指令效率高等优点[2]。AT89C51的主要特点,(1)集成度高,易于扩展;
(2)较强的中断处理能力,支持异常中断、事件中断和软件中断三种类型的中断;(3)高效的指令系统。程序编程指令特别严密,它有多种中断系统和多种定时器系统,可以根据需要具体选择,灵活性很大。
2.2.2 MPX2彩屏LCD电路模块
本系统采用的MPX2电路模块是一款高画质的低温多晶硅TFT真彩LCD模块,具有接口简单、编程方便、易于扩展等良好性能。MPX2内置专用驱动和控制IC,以驱动IC自己集成显示缓存。无需外部显示缓存。 MPX2系列模块实际上就是将MPX2的TFT-LCD显示器连接在PCB电路板上,并加在PCB电路板上设计了总线缓冲、保护电路,以及背光限流电路,将显示器不便于与开发板连接的软PCB连接接口引出,并以DIP的双排插针引出模块以便于应用上的连接。为了方便应用上的扩展使用,MPX2系列模块将显示器主供电源和显示器背光电源分开供电。
2.2.3 报警电路的设计
主机在接受到呼叫后,首先进行报警告知值班人员。报警电路可以用单片机P2.0输出1 kHz和500 Hz的音频信号经放大后驱动其扬声器,做报警信号,要求1 kHz信号响100 ms,再500 Hz信号响200 ms,交替进行。这里使用音频放大器LM386,他的工作电压为4~ 12 V,输出功率最大可达1 W,输入阻抗为50 kHz。
2.2.4 键盘模块电路设计
8×8键盘矩阵和64个LED警示灯模块组成。在键盘扫描和LED驱动部分,使用了 LED 显示电路原理图如图2所示。              
   图2
3. 系统软件的设计
3.1程序设计简要
在设计程序之前,我们首先对单片机应用系统预完成的任务进行深入的分析,明确系统的设计任务功能要求和技术指标。其次,要对系统的硬件资源和工作环境进行分析。这是单片机应用系统程序设计的基础和条件。经过任务分析,算法优化后,就可以进行程序的总体构思,确定程序的结构和数据结构,并考虑资源的分配和参数的计算灯,然后根据程序运行的过程,勾画出程序执行的逻辑顺序,用图形符号将总体设计思路及程序流向绘制在平面图上,从而使程序结构关系直观明了,便于检查和修改.模块化程序设计方法具有明显有点。把一个多功能复杂的程序划分位若干个简单,功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序结构层次一目了然。
3.2系统的工作流程
如图3所示。
3.3软件设计
该系统软件主要完成以AT89C51为核心的数据的采集、处理和有线传输。采用模块化程序设计方法,将系统软件的设计主要分为显示模块,输入模块,输出模块。单片机扫描发射键,如果扫描到有发射键按下,系统便扫描拨码开关的状态以确定地址码,通过P0口和P2口开始地址码传送当服务台接收到呼叫信号后,护士值班室内的呼叫系统板上显示该患者的床位号,并振铃。当护士按下“响应”键时,取消当前呼叫。
4. Proteus软件仿真
我们利用KEILV805中文版对源程序进行编译,编译成功后,把编译结果保存并生成.HEX文件,然后把.HEX加载到单片机上进行Proteus软件仿真。看其是否能实现预想的功能。
Proteus仿真图如图4下,当按下27号床位时,显示如下:
                  图4
5. 设计体会
单片机在当今计算机领域应用十分广泛,在自动控制领域更是非常重要。通过这次设计,我觉得自己对单片机的理解有了新的提高,也使自己综合运用所学知识,发现,提出,分析,解决实际问题的能力有很大进步。我知道单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
想起这次单片机设计,至今我仍感慨颇多,在整整一个多星期的日子里,可以说是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对器件的不熟悉,对应用软件操作的困难,对单片机汇编语言掌握得不好。通过这次设计之后,我对自己以前的知识有了很大提高。
设计顺利完成了,在设计中遇到了很多编程问题,在同学和老师的细心帮助下,都得以解决。在此,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!
附录
附录A  源程序代码

附录B 系统原理图
参考文献
[1] 张培仁,张志坚,高修峰.十六位单片微处理器原理及应用.北京,清华大学出版社[M].2005: 46~49
[2] 田会方,吴兴强.基于LabVIEW与凌阳SPCE061A实现串口数据采集[J].微计算机信息.2006:6:2.22~25
[3] 北京比高科技公司. BC7281B中文技术手册. 2002(6)
[4] 北京铭正同创科技有限公司.MT22G06B彩屏LCD模组简要介绍.2006(12)
[5] 张立才.基SPCE061A的多功能信号发生器设计实现[J].微计算机信息.2004:20:3.33~35




单片机在当今计算机领域应用十分广泛,在自动控制领域更是非常重要。通过这次设计,我觉得自己对单片机的理解有了新的提高,也使自己综合运用所学知识,发现,提出,分析,解决实际问题的能力有很大进步。我知道单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
想起这次单片机设计,至今我仍感慨颇多,在整整一个多星期的日子里,可以说是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对器件的不熟悉,对应用软件操作的困难,对单片机汇编语言掌握得不好。通过这次设计之后,我对自己以前的知识有了很大提高。


成绩











  1. #include
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit B1=P3^6;
  5. sbit B2=P3^7;
  6. sbit buzzer=P3^5;
  7. sbit clear=P3^4; 定义字符
  8. B1,B2,BUZZER,CLEAR
  9. uchar code distab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  10. uchar code keytab[8][8]={{1,2,3,4,5,6,7,8}, 定义键盘值
  11. {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}, {41,42,43,44,45,46,47,48}, {49,50,51,52,53,54,55,56}, {57,58,59,60,61,62,63,64}, };
  12. uchar bed_NO;
  13. uchar btime;
  14. uchar itime; 定义字符bed_NO,uchar btime,uchar itime void delay(uint x) 定义延迟程序块
  15. { uint i,j;
  16. for(i=0;i{;;}
  17. }
  18. }
  19. void display(void)
  20. {
  21. uchar a10,a1;
  22. a10=bed_NO/10;
  23. a1=bed_NO%10;
  24. P1=distab[a10];
  25. B1=0;
  26. delay(10);
  27. B1=1;
  28. P1=distab[a1];
  29. B2=0;
  30. delay(10);
  31. B2=1;
  32. } 定义显示管块
  33. void key(void) 扫描键盘值
  34. {
  35. uchar hang,lie; P0=0x00;P2=0xff; delay(1); if(P2!=0xff) { delay(5); 延迟(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; }
  36. P2=0x00;P0=0xff;
  37. switch(P0&0xff) 扫描行值 {
  38. 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; }
  39. P2=0xff;P0=0x00;
  40. while(P2!=0xff);
  41. bed_NO=keytab[hang][lie];TR0=1; }
  42. else
  43. bed_NO=0;
  44. }
  45. }
  46. void time_init(void) 计数器的初始化
  47. {行列值赋值给bed_NO
  48. TH0=(65536-8333)/256; 装入初值 TL0=(65536-8333)%256;
  49. EA=1;
  50. ET0=1;
  51. }
  52. void time(void) interrupt 1 using 1 {
  53. TH0=(65536-8333)/256;
  54. TL0=(65536-8333)%256;
  55. itime++;
  56. if(itime>=100)
  57. {
  58. itime=0;
  59. btime++;
  60. if(btime>6){TR0=0;btime=0;} buzzer=!buzzer;
  61. }
  62. }
  63. void main(void)
  64. {
  65. time_init(); 定义中断块
  66. } { } key(); display(); if(TR0==0){buzzer=1;} if(clear==0) 服务台取消呼叫

  67. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

完整论文下载(word格式 可编辑):
http://www.51hei.com/bbs/dpj-86638-1.html


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:415249 发表于 2018-10-25 15:06 | 只看该作者

谢谢分享,支持一波
回复

使用道具 举报

板凳
ID:358585 发表于 2019-1-12 16:02 | 只看该作者
有没有开发板实例啊
回复

使用道具 举报

地板
ID:343749 发表于 2019-5-3 14:14 | 只看该作者
没有仿真图吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表