❶ 基于单片机的病房呼叫系统原理(答辩用)
最简单就是单片机 几个按键、数码管或者lcd1602显示、蜂鸣器led声光报警咯,假设四个按键按下,发出报警显示出编号。
也可以加入无线模块咯
❷ 怎么设计一个单片机病房呼叫系统
这种呼叫系统方案很多的,无线用的比较多,医院每个病床安装一个呼叫发射器,每个发射器都有独立的地址,呼叫中心有一个接收器,只要病床有人按下发射器按钮,发生器就会把对应的地址发送到呼叫中心,呼叫中心只要接收到发射数据进行解析,解析发射的地址对应的房间号病床编号,前提条件就是在你呼叫中心把发射器的地址绑定好房间号和病床号,每个发射器的地址都是唯一的。
❸ 病床无线呼叫器为什么不响,用了好多方法都没用,这是为什么呢
请问是个别的呼叫器按了不响,还是所有呼叫器按了都不响, 如果是全部,那可能是主机不接收了。 如果是个别:1、把呼叫器换个新电池试下;2、换完电池后重新注册下号码;3、如果以上两点都试过还是不接收那那是呼叫器坏了,维修或者换新。
❹ 你的开题报告怎么写的哦如果可以发我邮箱吧[email protected]谢谢急用
题目 背景 目录 大标题 再分小标题 ... 这个指导老师给你们讲的啊
❺ 单片机病房呼叫器问题
功能分析:1.按下呼叫器,灯立刻点亮
2.点亮状态下按下呼叫器1S,则灯熄灭
这样好不好:8个按键需做8个键盘状态机:这里只做1个。
#define Byte unsigned char
#define Word unsigned int
#define DWord unsigned long
#define KEYDOWN !K1 //键按下
#define KEYUP K1 //键抬起
#include <at89x52.h>
sbit K1=P3^0; //设置P3.0给K1
sbit L1=P1^0; //设置P1.0给L1
bit fKeyLongPress1;
bit fKeyDown1;
bit fKeyUp1;
bit fKey10ms;
//////////////////////////////////////////////////////////
void Timer_Init();
void KeyboardServer(); //键盘服务
void LampServer(); //亮灯服务
//////////////////////////////////////////////////////////
void main(void)
{
Timer_Init();
while(1) //无限循环
{
KeyboardServer();
LampServer();
}
}
void Timer_Init()
{
ET2 = 0;
TH0=0xD8; //10ms at 12MHz at mode 1
TL0=0xF0;
RCAP2H =0xD8;
RCAP2L =0xF0;
ET2 = 1; // Timer2 interrupt enabled
EA = 1;
TR2=1; //启动定时器
}
void LampServer()
{
if(fKeyDown1) //如果开关按下
{
fKeyDown1 = 0;
L1=0; //灯亮
}
if (fKeyLongPress1) //如果开关长按
{
fKeyLongPress1 =0;
L1 = 1; //灯灭
}
}
void KeyboardServer() //键盘状态机
{
static Word cntLongPress= 0;
static Byte keyState = 0;
static Byte keyFilter = 0;
if (!fKey10ms) return;
fKey10ms =0;
switch(keyState)
{
case 0: //Up
if(KEYDOWN)
{
fKeyLongPress1 =0;
fKeyDown1 =0;
keyFilter = 0;
cntLongPress = 0;
keyState++;
}
break;
case 1: //Up--->Down
if(KEYDOWN)
{
if(++keyFilter >=2) //消抖
{
fKeyDown1 = 1;
keyState++; //键确实按下
}
}
else
{
keyState--; //是抖动
}
break;
case 2: //Down
if(KEYUP)
{
keyFilter = 0;
keyState++;
}
else
{
if (++cntLongPress >1000)//Down状态下检测超过1S则是长按
{
cntLongPress=1000;//防止溢出
fKeyLongPress1 =1;
}
}
break;
case 3: //Down--->Up
if(KEYUP)
{
if(++keyFilter >=2)
{
fKeyUp1 = 1;
//fKey_Down = 0;
keyState = 0; //键确实抬起
}
}
else
{
keyState--; //是抖动
}
break;
default:
break;
}
}
void ISR_T2(void) interrupt 5
{
TF2=0;
fKey10ms =1;
}
❻ 病房呼叫系统的目的和意义
一款新的能满足人们要求,适合服务性行业的无线呼叫系统,对人们生活的改善,对企业形象的提升起着十分重要的作用。对医院单位而言,在同类行业中,安静清雅的环境更具有竞争优势,快而准的服务极大地提高了工作人员的办事效率,便捷的呼叫系统节约了大量的人力,财力。对医务人员而言,不需要时刻去查房、巡逻,更不需要高声应答病人或家属,免去了无数次的来回奔波,维护了医院良好的安静环境,及时而准确的给病人带来需要和服务。对病人及其家属而言,不必在医院大声喧哗地呼叫医务人员,也不用亲自走到护士房告知护士,更不用在各个病房到处寻找护士。即使病人在没有家属陪伴的情况下,也能及时呼叫得到护理。只需轻轻一按从机的按钮,无论是在床上还是走廊,还是厕所,都能传达呼叫的信号。护士只要在总机旁观察就能看到呼叫的房间,便能立刻派护士去查看和护理。 本设计是基于单片机和nRF905无线收发模块实现的医用无线病床呼叫系统,分为无线发射部分、无线接收部分、单片机控制部分、地址变更部分、显示部分、警报呼叫部分等。本系统通过无线电实现信号的传递,单片机作为控制部件协调处理整个系统的工作,实现无线信号的远距离传输,减少了材料的耗费,安装简单,使医患沟通更加灵活,是无线网络技术在医学临床上的大胆应用,具有创新性。作用距离远。
❼ 将这个病房呼叫器的汇编翻译成c语言 非常急 虽然积分不多 求帮助
;我最近也在学单片机,我按照我的思路写了这个,不过电路图跟你的有些出入,而且,我的也是用汇编写的,O(∩_∩)O~
START:
MOV
P3,#0FFH
MOV
P0,#08H
X:
;键盘行扫描
MOV
R1,#1
MOV
P2,#11111110B
CALL
SCAN
Y:
CALL
SHRX
CALL
SCAN
INC
R1
CJNE
R1,#4,Y
JMP
X
SHRX:
;左移
MOV
PSW,#0C1H
;置进位标志
MOV
A,P2
RLC
A
MOV
P2,A
RET
SCAN:
;键盘列扫描
MOV
B,P3
XRL
B,#0FFH
;如果行列电路联通,因为行电路为低电压,而列电路为高电压,所以列电路变低电压,(我也不晓得为什么,资料上说跟TTL电路有关,反正我不晓得。)
;取反后,判断是否大于0,大于0说明,有键按下
MOV
A,B
JNZ
PRINT
RET
PRINT:
;LED显示器显示
MOV
DPTR,#600
XRL
P2,#0FFH
;取反,把按下的行位置1,其他为0
MOV
A,P2
MOVC
A,@A+DPTR
;查表,把二进制行编码,转为行起始编号
MOV
DPTR,#700
MOV
R0,A
;保存A
MOV
A,B
MOVC
A,@A+DPTR
;查表,把二进制列表编码,转为二进制值
ADD
A,R0
;加R0(上面的A赋值而来,为行起始编号),得到现在按键的编号
MOV
B,#10
DIV
AB ;现在开始把数的十位和个位分开,便于显示,B为余数,即个位,A为积,即十位
MOV
R1,A
;保存A的值,等下就画面循环了
MOV
DPTR,#500
SETB
P0.2
;激活第三位的蜂鸣器
PRINT1:
MOV
A,P0
CJNE
A,#12,START
;检查有无按下重置按钮,(呃呃呃。因为我暂时搞不懂复位电路。所以用这个代替了)
MOV
A,R1
MOVC
A,@A+DPTR
;查表
SETB
P0.0
;激活第一位LED显示器
MOV
P1,A
;把A送入P1寄存器,用来激活显示画面
CALL
DELAY
CLR
P0.0
MOV
A,B
MOVC
A,@A+DPTR
SETB
P0.1
;激活第二位LED显示器
MOV
P1,A
CALL
DELAY
CLR
P0.1
JMP
PRINT1
DELAY:
;形成视觉暂留,造成看起来象静态显示
MOV
R0,#08H
M1:
MOV
A,#0FFH
DEC
R0
CJNE
R0,#0,M2
RET
M2:
DEC
A
JZ
M1
JMP
M2
ORG
500
TABLE:
;查表,显示
DB
11000000B,11111001B,10100100B,10110000B,10011001B,10010010B,10000010B,11111000B,10000000B,10010000B
ORG
600
TABLE1:
;查表,二进制行表示转十进制行起始编号
DB
0,0,4,0,8,0,0,0,12
ORG
700
TABLE2:
DB
0,1,2,0,3,0,0,0,4
END
❽ 关于病房呼叫系统的程序问题,单片机编程!
1:X1的晶振频率多大?蜂鸣器发声频率 和 时、分、秒的计算是需要计算频率的。。。
2:你所说的“要单片机语言程序,不要C语言程序”是什么意思?没明白你是要单片机的什么语言的,源代码的汇编(.ASM)?C(.C)?还是编译出来的.HEX?.BIN?抑或是别的什么?
3:“正常情况下显示时间(时分秒”,你才4个8段数码管,你怎么显示那么多?还是,你想怎么用别的方式显示??
老大,说明白点。。。
4:位号R3-R10上10K电阻脑子没进水吧。。。也太大了,数码管能驱动得了??就算5V不减去PNP三极管的导通压降直接压在数码管两端,你才0.5mA,搞笑了哦,数码管的驱动电流至少都在10mA以上,怎么的也要上个300Ω左右。。。
5:位号R11-14也上10K,你要不加个上拉电阻看你怎么驱动得了PNP三极管。。。能一直正常稳定的工作下去那就是奇迹了。好歹上个2.2K电阻就差不多了。
电路图上全是10K电阻,看来你跟它很有缘?晕倒,
❾ 51单片机病房呼叫系统C语言程序
#include<reg52.h>
voidmain()
{
P2=P1;
}
这个行吗,如果需要,我可以再加个数码管显示的,,这个程序上没有加那个功能
❿ 病房呼叫系统的设计
产品哈,已经有很多地方有卖了,要做也很简单,每个子端用2262编码芯片,四个数据位正好组成16个键值,两总线就OK了带供电,值班室用2272,应该可以用BCD码二-十进制译码器驱动数码管,单然用单片机就更好了2272都省了.