文档视界 最新最全的文档下载
当前位置:文档视界 › 简易病床呼叫系统

简易病床呼叫系统

简易病床呼叫系统
简易病床呼叫系统

简易病床呼叫系统

一、系统介绍

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

本简易病床呼叫系统基于AT89C51单片机,振荡电路的晶振采用12MHz,由控制核心AT89C51单片机、电源电路、振荡电路、复位电路、病房选择和七段数码管等部分组成,系统框图如下:

图1 系统框图

本系统利用了单片机AT89C51内部时钟信号,外接晶振和电容进行微调频率,用单片机的I/O口对数码管进行静态驱动,在此基础上,增加了复位电路和

选择电路。通过选择电路可以确定几号病房呼叫,用复位电路进行清零。

二、电路图

电路设计完成后,通过Proteus进行仿真,仿真电路如下图2。

图2 系统仿真电路

本系统选择电路利用四个按键开关模拟病房1--4呼叫,分别连接到单片机的P3^0、P3^1、P3^2、P3^3,按下开关说明相应的病房呼叫。单片机的P0口外接排阻和数码管,复位电路和蜂鸣器分别与P3^4和P1^7相连。

系统通电后,仿真电路结果如下图3:

图3 通电后系统仿真电路

按下第一个开关,模拟1号病房呼叫,仿真结果如下图4:

图4 1号病房呼叫仿真结果

若同时按下第一个开关和第二个开关,

则数码管只显示“1”,仿真如下图5:

三、系统程序流程图

本系统程序流程图如下:

开始

工作

四、系统程序

#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 sound();

void delay();

void ring();

void main()

{

while(1)

{

P3=0xff;

reset=0;

beep=0;

flag1=0;

choice();

sound();

clean();

}

}

void choice()//确定病房

{ while(reset!=1&&flag1==0)

{

if(key1==0)

{

delay();

if(key1==0)

{P0=0X86;flag1=1;}

}

else if(key2==0)

{

delay();

if(key2==0&&key1!=0)

{P0=0Xdb;flag1=1;}

}

else if(key3==0)

{

delay();

if(key3==0&&key1!=0&&key2!=0)

{P0=0Xcf; flag1=1;}

}

else if(key4==0)

{

delay();

if(key4==0&&key1!=0&&key2!=0&&key3!=0)

{P0=0Xe6; flag1=1;}

}

}

}

void clean() //reset为高的时候复位

{

if(reset==1)

{

beep=0;

P0=0x3f;

相关文档