精品病床呼叫及输液监控系统本科毕业论文设计Word文档下载推荐.docx
《精品病床呼叫及输液监控系统本科毕业论文设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《精品病床呼叫及输液监控系统本科毕业论文设计Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
当从机模块和模拟模块按下呼叫按钮式,主机模块就能检测到第一个按下键的病床号,并显示病床号及报警。
利用水的散光原理用光电传感器检测点滴速度。
运用串口通信。
本方案可靠,精度高,可满足对系统的各项要求。
本设计采用8位单片机STC89C52,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点,处理速度高等特点。
关键词:
单片机;
光敏电阻;
12864液晶;
数码管;
串口通信
专业排版,专业论文写作修改降低论文重复率制作答辩幻灯片
请联系淘宝旺旺:
文交天下友
淘宝搜索@文天下
monitoringsystem
Abstract:
withthetrendofthebedsandinfusionmonitoringsystemofr&
d,designtopicissickbednumbeerscallandinfusionmonitoringsystem.
Inthisdesign,themainmodulewiththreemodules,moduleandsimulationmodulesfrom.Hostmoduleandothermoduleswithseriallinks.Host12864LCDmodulein.FromthemoduleandsimulationmodulewithfourintegrateddigitalpipedisplayofYang,droppingspeedandthemoduleandsimulationmodulepresscallself-closing,detectthefirstpressthebutton,andofdroppingspeed.Usingserialcommunication.
Thisscheme,andreliabilityofthesystemcansatisfytherequirements.ThisdesignUSES8bitsSTC89C52microcontroller,driven,,simplestructure,interrupt
6.附录
6.1原理图
6.2清单
元件名称
型号
数量
用途
单片机
STC89C52
3
控制核心
晶振
11.0592MHZ
晶振电路
电容
30pf
6
电解电容
10uf
电阻
10k
复位电路
按键
复位键
病房数据传送按钮
病房报警按钮
病床编号设置按钮
电源
5v
1
电源供电
L78050V
5V稳压
电源电路
4位一体数码管
4
从站显示
液晶
12684
主站显示
三极管
8550
32
电位器
103
液晶显示
蜂鸣器
有源
2
报警电路
发光二极管
560欧
光敏电阻
液滴检测
稳压二极管
3.3V
2k
LM324
gk8481c7
MAX232
串口通信电路
0.1uf
电线
30米
6N137
6.3源程序
主机程序
#include<
reg52.,num1,b,temp,shu,shu1,shu2,duo,,,q1,abc,abc1;
sbitSCLK=P1^0;
位定义1302芯片的接口,时钟输出端口定义在P1.0引脚
sbitIO=P1^1;
位定义1302芯片的接口,数据输出端定义在P1.1引脚
sbitRST=P1^2;
位定义1302芯片的接口,复位端口定义在P1.2引脚
sbitRS=P2^0;
寄存器选择位,将RS位定义为P2.0引脚
sbitRW=P2^1;
读写选择位,将RW位定义为P2.1引脚
sbitE=P2^2;
使能信号位,将E位定义为P2.2引脚
sbitBF=P0^7;
忙碌标志位,,将BF位定义为P0.7引脚
sbitkey=P1^4;
sbitkey1=P1^5;
sbitkey2=P1^6;
sbitd1=P1^3;
sbitfmq=P3^6;
uchardatatable4[15];
uchardatashuju[3];
ucharcodetable0[]="
『星期』"
;
ucharcodetable[]="
※20年月日"
ucharcodetable1[]="
№:
:
£"
ucharcodetable2[]={"
0123456789-"
};
ucharcodetable3[]="
温度.℃"
ucharcodekaishi[]={
"
欢迎使用医院病床"
----------------"
呼叫输液监控系统"
程序初始化中"
ucharcodebing[]={"
病床液滴"
ucharcodebing1[]={"
号"
ucharcodebing2[]={"
dmin"
ucharcode()
{
if(key==0)
{
delay(20);
if(key==0)
{
shu=1;
while(!
key);
}
}
if(key1==0)
if(key1==0)
shu1=1;
key1);
if(key2==0)
if(key2==0)
shu2=1;
key2);
}
}
voidwritelcd_com(ucharcom)向LCD写指令
RS=0;
RW=0;
E=0;
P0=com;
delay
(1);
E=1;
voidwritelcd_date(uchardate)向LCD写数据
RS=1;
P0=date;
voidxy(ucharX,ucharY)
ucharpos;
if(X==0)
{X=0x80;
elseif(X==1)
{X=0x90;
elseif(X==2)
{X=0x88;
elseif(X==3)
{X=0x98;
pos=X+Y;
writelcd_com(pos);
voidinitlcd()LCD初始化
writelcd_com(0x38);
writelcd_com(0x0c);
writelcd_com(0x06);
writelcd_com(0x01);
xy(0,0);
while(kaishi[i]!
='
\0'
{
writelcd_date(kaishi[i]);
i++;
delay(10);
i=0;
delay(2000);
voiddisplay4(uchardate,ucharx,uchary)显示设置
ucharbai,shi,ge;
bai=date100;
shi=date%10010;
ge=date%10;
xy(x,y);
writelcd_date(0x30+bai);
writelcd_date(0x30+shi);
writelcd_date(0x30+ge);
voidmain()
delay
(2);
*init*
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
PT0=1;
*=B9HCTC0FIRST*
ET0=1;
ET1=0;
SCON=0x7e;
TMOD=0x21;
TH0=(65536-50000)256;
TL0=(65536-50000)%256;
TH1=0xf4;
TL1=0xf4;
*smod=02400bps
8,n,1f=12MHz
TH0=0xee;
TL0=0x02;
*
TR0=0;
TR1=1;
IT1=1;
EX0=1;
EX1=0;
RI=0;
TI=0;
ES=1;
EA=1;
xs=3;
initlcd();
while
(1)
{
jianpan();
pan=shuju[2];
if(pan==0x41)呼叫界面
{
flag6=1;
abc=1;
abc1=0;
pan=0;
shuju[2]=0;
qie=1;
TR0=0;
tt=0;
biao=0;
table4[();
display4(a,2,0);
beep();
}
if(pan==0x42)报警界面
}
g=shuju[1];
*if(shu1==1)
{
shu1=0;
TR0=1;
wo=1;
}*
if(qie==0)巡回显示开启
TR0=1;
abc1=1;
abc=0;
if(cs==0)
xy(2,0);
while(bing[i]!
{
writelcd_date(bing[i]);
i++;
delay(5);
}
i=0;
xy(3,2);
while(bing1[i]!
writelcd_date(bing1[i]);
xy(3,5);
while(bing2[i]!
writelcd_date(bing2[i]);
if(biao==1)巡回显示
{
cs=1;
a=shuju[0];
display4(a,3,0);
display4(yedi,3,3);
if(tt==60+num1)
biao=1;
if(shuzhi==0)
shuzhi++;
ES=0;
SBUF=(0x31);
while(!
TI);
TI=0;
ES=1;
else
shuzhi=0;
SBUF=(0x32);
delay
(1);
if(abc1==1)
if(shu1==1)巡回显示时间调整
xs++;
num1=num1+20;
if(num1==140)
num1=0;
if(xs<
=10)
{
display4(xs,1,3);
else
xs=3;
}
if(abc==1)
if(shu==1)
shu=0;
duo=table4[=1;
qie=0;
cs=0;
TR0=0;
tt=0;
biao=1;
display4(duo,2,2);
display4(g,3,4);
c=num;
}
if(flag6==1)
if(shu2==1)
shu2=0;
flag6=0;
==1)
display4(a,3,2);
display(a);
flag5=1;
voidding()interrupt1
TH0=(65536-50000)256;
TL0=(65536-50000)%256;
tt++;
voidchu()interrupt4
shuju[z]=SBUF;
z++;
fan++;
flag4=1;
*for(i4=0;
i4>
10;
i4++)
i5=table4[i4];
if(i5==a)
flag5=1;
i4=11;
}
}*
*if(z==1)
if(flag5==0)
{
voiddelay(uintz);
voiddisplay(ucharaa,ucharbb,ucharcc,uchardd,ucharee,ucharff);
voidbeep()
fmq=0;
d1=0;
delay(500);
d1=1;
fmq=1;
voidinit()
*TMOD=0x21;
TH1=0xfd;
TL1=0xfd;
SM0=0;
SM1=1;
REN=1;
TR0=1;
gq_()
init();
if(shui==0)
di++;
if(tt>
=20)
di1=di*60;
if(di1>
=999)
di1=999;
di=0;
flag1=0;
if(a1==0x31)
a1=0;
ES=0;
SBUF=()
if(key==0)
shu=1;
while(!
if(key1==0)
hao++;
if(hao==129)
hao=0;
if(key2==0)
hao--;
if(hao==-1)
hao=128;
if(key3==0)
if(key3==0)
shu2=1;
key3);
*if(key3==0)
delay(20);
if(key3==0)
hao1=1;
}*
voiddelay(uintz)
uchara;
while(z--)
for(a=0;
a<
115;
a++);
voidding()interrupt0
di3++;
if(di3==2)
di3=0;
TR0=0;
yedi=tt;
tt=0;
miao=1000(yedi*50);
voidding1()interrupt1
if(tt>
=60)
flag1=1;
flag2=1;
voidck()interrupt4
a1=SBUF;
voiddisplay(ucharaa,ucharbb,ucharcc,uchardd,ucharee,ucharff)
P2=0xfe;
P0=0xff;
delay
(1);
P2=0xfd;
P0=table[aa];
P2=0xfb;
P0=table[bb];
P2=0xf7;
P0=table[cc];
P2=0xef;
P2=0xdf;
P0=table[dd];
P2=0xbf;
P0=table[ee];
P2=0x7f;
P0=table[ff];