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

上传人:ni****g 文档编号:493949992 上传时间:2022-10-13 格式:DOC 页数:14 大小:607KB
返回 下载 相关 举报
单片机病房呼叫系统课程设计报告_第1页
第1页 / 共14页
单片机病房呼叫系统课程设计报告_第2页
第2页 / 共14页
单片机病房呼叫系统课程设计报告_第3页
第3页 / 共14页
单片机病房呼叫系统课程设计报告_第4页
第4页 / 共14页
单片机病房呼叫系统课程设计报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《单片机病房呼叫系统课程设计报告》由会员分享,可在线阅读,更多相关《单片机病房呼叫系统课程设计报告(14页珍藏版)》请在金锄头文库上搜索。

1、目录病房呼叫系统3第一节引 言3第二节 系统硬件设计32.1 时钟电路设计32.2 复位电路42.3 显示电路42.4 输入电路52.5 蜂鸣器及51单片机5第三节 系统软件设计53.1 程序流程图5第四节 PROTEUS软件仿真74.1 proteus工作过程74.2 演示结果7第四节 结束语15参考文献15病房呼叫系统第一节 引 言本设计是基于51系列的单片机设计的病房呼叫系统。该设计中,有8个病房,从小病到重病,被分成了8个等级,并分别住在8个对应的病房中.每个病房都有一个按键且有不同的响应优先级,当患者有需要的时候,按下按键,此时,值班室的数码管上会显示此患者的床位号,蜂鸣器鸣叫;当高

2、优先级先按下,忽然低优先级也按下时,数码管上显示高优先级,提示值班护士应先去哪一个病房;同时系统中的所有按下按键的病房所对应的LED灯都将变亮,与优先级无关,以此来提醒值班护士有多少病人按下了按键;当低优先级先按下,然后高优先级也按下时,数码管上还是显示着高优先的床位号,同样,LED灯都将点亮;当值班室的护士会看到哪个病房的患者有需要,然后护士按下“响应”键取消当前呼叫,且从优先级从高到低的顺序逐次取消,数码管按顺序逐个显示,LED灯按顺序熄灭。在这个瞬息万变、竞争激烈的时代,选择一个优越的工具往往能提升企业在这个市场上的竞争力。尤其医院的竞争越来越激烈,商业医院的生存是第一位的,提升档次和服

3、务质量迫在眉睫,陪护问题一直是医患矛盾的主体,也是长期困扰卫生系统服务质量的大问题,使用病房呼叫系统,方便病人更快找到医生,以节约病人的宝贵时间。系统主要用于医院、门疹、养老院等场所。可大大降低护理成本,增强护理的及时性和有效性,而且无需布线、安装极其简便。本设计实现功能: (1)有8个呼叫源,对应8个病房且每个病房住着不同病症的病人,有8个优先级,顺序为1-2-3-4-5-6-7-8; (2)1个七段数码管显示呼叫的病房号,且按优先级显示;8个LED灯也显示呼叫的病房号,但不受优先级的控制,只要有呼叫,相应的LED灯都会点亮,且蜂鸣器在按下“响应键”以前,会一直鸣叫,不同优先级之间切换时,蜂

4、鸣器的音调会有变化。 (3)有一个“响应”键;按下响应键取消当前呼叫,且从优先级从高到低的顺序逐次取消,数码管按顺序逐个显示,LED灯按顺序熄灭。 (4)1个复位键,可以初始化。 (5)有音乐播放功能;且8个LED灯能按音调的不同进行闪烁。第二节 系统硬件设计2.1 时钟电路设计 本设计采用内部时钟产生方式。内部振荡方式所得的时钟信号比较稳定。晶振选用的是12MHZ的内部振荡方式,电路如图:电容器C1,C2起稳定振荡频率,快速起振的作用,电容值取30P。 2.2 复位电路本设计有两个复位电路;其中系统总的复位电路如下左图,采用上电+按键复位电路如下,上电后,由于电容充电,使RST持续一段高电平

5、时间。C3选择30uF,R9和R10选择10K。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。下面右图中是程序中的复位电路,可用来实现程序跳出循环,从头开始执行。C5=10UF;C4=1NF;R87=10K;C5为点解电容。2.3 显示电路用一个七段数码管和8个LED灯实现显示;选用RP1=330的排阻驱动数码管显示;数码管选用的是共阴极;相应位为“1”,则相应的段被点亮。LED灯是相应的端口为低电平时被 点亮。2.4 输入电路图中1-8号按键,分别代表8个病房的呼叫源,按下按键时便开始呼叫。且有不同的优先级,9号按键时响应按键;10号按键为音乐按键2.5 蜂鸣器及51单片机 实

6、验中所用的蜂鸣器为交流蜂鸣器,当有呼叫时蜂鸣器鸣叫,平时也可以播放音乐。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。第三节 系统软件设计3.1 程序流程图呼叫程序流程图:开始 病房呼叫? NO YES 显示病房号、响铃、LED亮 reset=0 NO NOKey22=0?Yes NO YES判断优先级显示病房号,LED灭 病房再呼叫? YES判断优先级 结束显示病房号、响铃、LED亮 第四节 PROTEUS软件仿真4.1

7、proteus工作过程单击屏幕左下方的“开始”“程序”“Proteus 7 Professional” “ISIS 7 Professional”,画出仿真图。1、 未通电2、 通电4.2 演示结果1、当按下“7”键时,数码管显示“7”,同时LED灯D7被点亮,蜂鸣器鸣叫。2、再次按下“3”键时,由于,3比7的优先级高,数码管显示“3”,;同时LED灯D3被点亮,可以看到D3,D7均是亮着的,所以,LED的亮灭与优先级无关。蜂鸣器继续鸣叫,且在按键瞬间,蜂鸣器的音调有变化。3、在上面的基础上按下“8”时,由于3比8的优先级高,数码管显示“3”不变,同时D8被点亮。蜂鸣器继续鸣叫,且在按键瞬间,

8、蜂鸣器的音调有变化。 4、按“响应”键后,数码管和LED将按优先级的顺序依次变化和熄灭。系统具体代码如下:3#include /#includesbit key21=P20;sbit key22=P21;sbit key23=P22;sbit key24=P23;sbit key25=P37;/-sbit BEEP=P36;/-病号sbit key1=P33;sbit key2=P32;sbit key3=P31;sbit key4=P30;sbit key5=P27;sbit key6=P26;sbit key7=P25;sbit key8=P24;/-LEDsbit key11=P10;s

9、bit key12=P11;sbit key13=P12;sbit key14=P13;sbit key15=P14;sbit key16=P15;sbit key17=P16;sbit key18=P17;/-复位sbit reset=P34;unsigned char tab20,tab120;unsigned char flag1,i,j,m=0,l=0,e=0;void choice();void clean();void delay();void de();void ring();void chaxue();void upkey();void main() while(1) P3=0

10、xff;P2=0xff;reset=0;BEEP=0;flag1=0;choice();delay();clean(); void choice()/确定病人while(reset!=1&flag1=0) / if(key21=0)min(); if(key1=0|key2=0|key3=0|key4=0|key5=0|key6=0|key7=0|key8=0) if(key1=0) de();if(key1=0) P0=0X86;flag1=1;key11=0;tabj=0x86;j+; else if(key2=0)de();if(key2=0&key1!=0) P0=0Xdb;flag1

11、=1;key12=0;tabj=0xdb;j+;else if(key3=0)de();if(key3=0&key1!=0&key2!=0)P0=0Xcf; flag1=1;key13=0;tabj=0xcf;j+;else if(key4=0)de();if(key4=0&key1!=0&key2!=0&key3!=0)P0=0Xe6; flag1=1;key14=0;tabj=0xe6;j+;else if(key5=0)de();if(key5=0&key4!=0&key1!=0&key2!=0&key3!=0) P0=0xed;flag1=1;key15=0;tabj=0xed;j+;

12、 else if(key6=0)de();if(key6=0&key5!=0&key4!=0&key1!=0&key2!=0&key3!=0) P0=0xfd;flag1=1;key16=0;tabj=0xfd;j+; else if(key7=0)de();if(key7=0&key6!=0&key5!=0&key4!=0&key1!=0&key2!=0&key3!=0) P0=0x87;flag1=1;key17=0;tabj=0x87;j+; else if(key8=0)de();if(key8=0&key7!=0&key6!=0&key5!=0&key4!=0&key1!=0&key

13、2!=0&key3!=0) P0=0xff;flag1=1;key18=0;tabj=0xff;j+; void clean() /RESET 为高的时候复位if(reset=1)BEEP=0;P0=0x3f;key11=1;key12=1;key13=1;key14=1;key15=1;key16=1;key17=1;key18=1;key21=1;key22=1;key23=1;key24=1;j=0;m=0;l=0;e=0;void delay() /RESET为低的时候延时 while(!reset)ring();void ring()for(i=0;reset=0;i+)/喇叭发声的时间循环 de(); BEEP=!BEEP; if(key

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号