医院呼叫系统资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从机程序代码
❖ #define uchar unsigned char
❖ #define uint unsigned int
❖ #include <reg51.h>
❖ sbit P20=P2^0;
❖ sbit P21=P2^1;
❖ sbit P22=P2^2;
❖ sbit P23=P2^3;
❖ sbit P24=P2^4;
❖ sbit P25=P2^5;
❖
break;
❖
case 0x4F:
led_show(temp);
❖
baojing();
❖
b reak;
❖
case 0x66:
led_show(temp);
❖
baojing();
❖
break;
❖
default:
break;
❖
}
❖}
❖}
//收到病床一呼叫信号 //收到病床二呼叫信号 //收到病床三呼叫信号 //收到病床四呼叫信号
❖ SCON=0x50;
//串口工作在方式1,异步模式
❖
主机程序代码
❖
PCON=0x00; //波特率翻倍
❖
TMOD=0x20; //定时器1工作在方式2
❖
TH1 =0xfa; //波特率9600,晶振为22.1184MHz
❖
TL1 =0xfa; //自动重装在赋值
❖
TR1 = 1; //启动定时器,产生波特率
系统功能分析
❖ 工作原理:系统主机以89C51为控制中心,通过串 口接受从机发来的呼叫信息,通过运算处理送译 码电路数码显示及报警求助,同时存储呼叫信息, 可以实行复位记录清零,删除记录,上翻和下翻 查找呼叫记录信息。
❖ 系统组成:基于单片机的医院病床呼叫系统设计 通常应该包括主机和从机、主机包括报警电路、 译码显示电路、复位、查找操作电路等基本单元, 而且从机包括呼叫电路,向主机和PC机发送呼叫 信息电路。
本文主要介绍了基于单片机的医院病床呼叫系统设 计,是一种利用单总线技术和单片机间串行通信技术设 计的可靠报警系统,他不但能够有效传送呼叫信息,而且 能通过数码显示求助病床号和通过蜂鸣器声音求助医护 人员,还可以存储记录呼叫信息、以备查询,同时可以 扩展到与计算机联机管理,并且仿真效果理想,达到预 想目标,实现了临床呼叫的功能。
Company
LOGO 基于单片机的医院病床呼叫 系统设计
导 师: 答辩人: 专 业:电子信息工程
课题摘要
近些年来,一种新型临床呼叫仪器的研制成为研究热 点之一。
临床求助呼叫是传送临床信息的重要手段,而病房呼 叫系统可将病人的请求快速传送给值班医生或护士,并 在值班室的监控中心主机上留下准确完整的记录,是提 高医院和病室护理水平的必备设备之一。
❖ void delay_ms(unsigned int n) //延时nMS的程序
❖{
❖
unsigned char j;
❖
while(n--)
❖
for(j=0;j<230;j++);//230是实验测试所得!
❖}
❖ unsigned char uart_getc()
❖{
❖
while(!RI);
❖
RI = 0;
❖
if (RI)
❖
{
❖
temp = SBUF;
❖
RI = 0;
❖
store_1=temp;
❖
store_sign=1;
❖
switch (temp)
❖
{
❖
case 0x06:
led_show(temp);
❖
baojing();
❖
break;
❖
case 0x5B:
led_show(temp);
❖
baojing();
系统总体设计方案
一、主机系统框图:
系统总体设计方案
二、从机系统框图:
系统硬件电路设计(主机)
系统硬件电路设计(从机 )
系统软件设计
一、主机软件流程图:
系统软件设计
一、从机软件流程图:
主机程序代码
❖ #define uchar unsigned char
❖ #define uint unsigned int
❖
RI = 0; //接收标志位清零
❖
TI = 1; //发送标志位清零
❖
ES = 1; //中断允许
❖
EA = 1; //总中断允许
❖
k=0;
❖
பைடு நூலகம்
led_show(0x3f);
❖
store_sign=0;
❖ while(1)
❖
{ if(store_sign==1)
❖
{ if(k==9) {k=0;}
❖
return SBUF;
❖}
❖ void baojing() ❖{ ❖ uint i,j;
//报警程序
主机程序代码
❖ for(j=0;j<12;j++)
❖
{
❖
for(i=0;i<10;i++)
❖
{
❖
P22=1;
❖
delay_ms(1.2);
❖
P22=0;
❖
delay_ms(1.2);
❖
}
❖
for(i=0;i<10;i++)
❖
store[++k]=store_1;
❖
store_sign=0;
❖
}
❖
if(P23==0) {store[k]=0x3f; led_show(store[k]);delay_ms(25);}
❖
//复位操作
❖
if(P24==0) { if(k==0){k=10;} led_show(store[--k]); delay_ms(25);}
❖
//上翻操作
❖
if(P25==0) {if(k==9){k=0;} led_show(store[++k]); delay_ms(25);}
❖
//下翻操作
❖
}
❖}
❖
主机程序代码
❖ void serial_int(void) interrupt 4 //串口接收中断服务程序
❖ { unsigned char temp;
❖
{
❖
P22=1;
❖
delay_ms(2);
❖
P22=0;
❖
delay_ms(2);
❖
}
❖
}
❖}
❖ void led_show(uchar a) //数码显示程序 ❖{ ❖ P0=~a; ❖ delay_ms(1); ❖}
❖ void main()
❖ { uchar store[10]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};
❖ #include <reg51.h>
❖ sbit P22=P2^2;
❖ sbit P23=P2^3;
❖ sbit P24=P2^4;
❖ sbit P25=P2^5;
❖ sbit P26=P2^6;
❖ sbit P27=P2^7;
❖ uchar k;
❖ uchar store_1,store_sign;