单片机医院病房呼叫系统设计(2)

2019-03-22 12:15

4、高优先级病房先呼叫:(蜂鸣器响)

低优先级病房后呼叫:(蜂鸣器响)

呼叫无效

5

5、当有两个病房同时呼叫时

1号3号病房同时呼叫显示1 号

三.软件设计

3.1 功能介绍

启动系统后,数码管显示0。当有一个病人呼叫时,数码管显示相应病房号,同时蜂鸣器响起;当有两个病人同时呼叫时,数码管显示优先级高的,同时蜂鸣器响起;当有一个病房呼叫后另一个病房呼叫,若后呼叫的病房优先级低,则数码管显示不变,若后呼叫的病房优先级高,则数码管显示后呼叫的,两种情况下蜂鸣器都会叫,只是在有别的病房呼叫时有一点变音。

6

3.2 程序流程图

程序流程图如下:

开始 工作

有一个病房呼叫

显示病房号并响铃

有病房再次呼叫 判断优先级

显示病房号并响铃

开始 判断优先级 有多个病房呼叫

7

3.3程序源代码:

#include

#define uchar unsigned char

sbit key4=P3^0;//定义按键位置 sbit key3=P3^1; sbit key2=P3^2; sbit key1=P3^3;

sbit reset=P3^4;//复位

sbit BEEP=P1^7;//定义蜂鸣器端口 uchar flag1,i;

void choice(); void clean(); void delay(); void de(); void ring();

void main() { while(1) { P3=0xff; reset=0; BEEP=0; flag1=0; choice(); delay(); clean(); } }

void choice()//确定病人

{ while(reset!=1&&flag==0) { if(key1==0) { de(); if(key1==0) {P0=0X86;flag=1;} } else if(key2==0) {

8

de(); if(key2==0&&key1!=0) {P0=0Xdb;flag=1;} } else if(key3==0) { de(); if(key3==0&&key1!=0&&key2!=0) {P0=0Xcf; flag=1;} } else if(key4==0) { de(); if(key4==0&&key1!=0&&key2!=0&&key3!=0) {P0=0Xe6; flag=1;} } } }

void clean() //RESET 为高的时候复位 { if(reset==1) { BEEP=0; P0=0x3f; } }

void delay() //RESET为低的时候延时 { while(!reset) { ring(); } }

void ring() { for(i=0;reset==0;i++)//喇叭发声的时间循环

9


单片机医院病房呼叫系统设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Protel入门xg

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: