病房呼叫系统.docx

上传人:b****4 文档编号:12200927 上传时间:2023-04-17 格式:DOCX 页数:13 大小:78.42KB
下载 相关 举报
病房呼叫系统.docx_第1页
第1页 / 共13页
病房呼叫系统.docx_第2页
第2页 / 共13页
病房呼叫系统.docx_第3页
第3页 / 共13页
病房呼叫系统.docx_第4页
第4页 / 共13页
病房呼叫系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

病房呼叫系统.docx

《病房呼叫系统.docx》由会员分享,可在线阅读,更多相关《病房呼叫系统.docx(13页珍藏版)》请在冰豆网上搜索。

病房呼叫系统.docx

病房呼叫系统

模拟病房呼叫系统设计

一、设计目的

1、能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。

2、熟悉80C51单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。

3、为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。

4、对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。

二、使用说明

平时病人不呼叫时,值班室数码显示时钟,并且可以调整分钟和小时,按下外部中断脉冲即可调整分钟和小时的显示。

当病人呼叫时,病人按下床边的按钮,值班室立即在数码管上从左向右依次显示病人呼叫的个数(即同时有几个人在呼叫)和病床的号码(多个病人呼叫时显示完一个时,数量不变,病床号码每隔一秒改变一次),这样就可以实现多个病人的同时呼叫显示,并且护士值班室的蜂鸣器响,以提醒护士。

当护士听到呼叫时,按下响应应答按钮,此时数码管重新开始显示时钟,并且在原来基础上,不是重置。

护士值班室派出人员即可。

功能实现完毕。

模拟一个护理站下管2个床位,哪个病人要呼叫可以按键,相应蜂鸣器响,数码管显示:

呼叫数量_床位号.要求:

1.6个数码管,正常情况下显示时间(时分秒),时间可通过按键调整。

2.有人呼叫则闪烁显示数量_床位号并蜂鸣器响,按应答键后继续显示时间。

3.若同时有多个病人呼叫则依次轮流显示:

数量_床位号。

(本机地址为01H,当接到上位机发的01H时,则回发01H)

三、设计要求

模拟一个护理站下管16个床位,哪个病人要呼叫可以按键,相应蜂鸣器响,数码管显示:

呼叫数量_床位号.要求:

1.6个数码管,正常情况下显示时间(时分秒),时间可通过按键调整。

2.有人呼叫则闪烁显示数量_床位号并蜂鸣器响,按应答键后继续显示时间。

3.若同时有多个病人呼叫则依次轮流显示:

数量_床位号。

(本机地址为01H,当接到上位机发的01H时,则回发01H)

四、程序流程图

 

五.实验接线图

连线

连接孔1

连接孔2

1

P1.0

S0

2

P1.1

S1

3

P1.2

S2

4

P1.3

S3

5

P1.4

S4

6

P1.5

S5

7

P1.6

S6

8

P1.7

S7

9

KEY/LED_CS

CS0

10

P3.5

喇叭脉冲输入

11

P3.2

脉冲

12

P3.3

脉冲

六、程序设计如下:

OUTBITequ08002h;位控制口

OUTSEGequ08004h;段控制口

 

LEDBufequ60h;显示缓冲

LEDBuf1equ80h

Hourequ40h

Minuteequ41h

Secondequ42h

C100usequ43h

chuanggaoequ70h

chuangdiequ71h

shuliangequ72h

Tickequ10000

T100usequ256-50

 

ORG0000H

LJMPMAIN

ORG0003H

LJMPMT

ORG000BH

LJMPTOINT

ORG0013H

LJMPHT

ORG001BH

LJMPT1INT

MAIN:

movTMOD,#22h;模式2,定时器0.1毫秒中断一次

movTH0,#T100us

movTL0,#T100us

movTL1,#6H

MOVTH1,#6H

movIE,#10001010b;EA=1,IT0=1

movHour,#0

movMinute,#0

movSecond,#0

movC100us,#high(Tick)

movC100us+1,#low(Tick)

SETBIT0

SETBIT1

SETBEX0

SETBEX1

SETBIE0

SETBIE1

movMinute,#0

movHour,#0

setbTR0

ljmpMLoop

MT:

;分調整

movSecond,#0

INCMinute

MOVA,Minute

CJNEA,#60,LOP1

MOVMinute,#0

LOP1:

RETI

HT:

;時調整

movSecond,#0

INCHour

MOVA,Hour

CJNEA,#24,lop2

MOVHour,#0

lop2:

RETI

MLoop:

mova,Hour

movb,#10

divab

callToLED

movLEDBuf,a

mova,b

callToLED

orla,#80h

movLEDBuf+1,a

mova,Minute

movb,#10

divab

callToLED

movLEDBuf+2,a

mova,b

callToLED

orla,#80h

movLEDBuf+3,a

mova,Second

movb,#10

divab

callToLED

movLEDBuf+4,a

mova,b

callToLED

movLEDBuf+5,a

 

callDisplayLED

movr1,100h

movr3,#0

jbp1.0,tiao1

k1:

jbp1.1,tiao2

k2:

jbf0,xian

ljmpMLoop

tiao1:

SETBTR1

setbf0

incr3

mov30h,r3

mov@r1,#1

incr1

sjmpk1

tiao2:

SETBTR1

setbf0

incr3

mov30h,r3

mov@r1,#2

incr1

sjmpk2

xian:

clrf0

mova,chuanggao

movb,#10

divab

callToLED

movLEDBuf,a

mova,b

callToLED

orla,#80h

movLEDBuf+1,a

mova,chuangdi

movb,#10

divab

callToLED

movLEDBuf+2,a

mova,b

callToLED

orla,#80h

movLEDBuf+3,a

mova,shuliang

movb,#10

divab

callToLED

movLEDBuf+4,a

mova,b

callToLED

movLEDBuf+5,a

callDisplayLED

 

JBP1.7,lp1

cjner3,#0,xian

ljmpxun

lp1:

CLRTR1;关振铃器返回显示时间

ljmpmloop

xun:

movr3,30h;重新置初值

mova,r1

adda,30h

movr1,a

ljmpxian

T1INT:

CPLP3.6;定时器1中断程序

RETI

TOINT:

pushPSW

pushACC

mova,C100us+1

jnzGoon

decC100us

Goon:

decC100us+1

mova,C100us

orla,C100us+1

jnzExit

movC100us,#high(Tick)

movC100us+1,#low(Tick)

decr1

decr3

movchuanggao,#0

movchuangdi,@r1

movshuliang,30h

incSecond

mova,Second

cjnea,#60,Exit

movSecond,#0

incMinute

mova,Minute

cjnea,#60,Exit

movMinute,#0

incHour

mova,Hour

cjnea,#24,Exit

movHour,#0

Exit:

popACC

popPSW

reti

Delay:

;延时子程序

movr7,#0

DelayLoop:

djnzr7,DelayLoop

djnzr6,DelayLoop

ret

Delay1:

movr4,#4;延时子程序

loop3:

movr7,#250

loop2:

movr6,#200

nop

loop1:

djnzr7,Loop1

djnzr6,Loop2

djnzr4,loop3

ret

LEDMAP:

;八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

DisplayLED:

movr0,#LEDBuf

movr5,#6;共6个八段管

movr2,#00100000b;从左边开始显示

Loop:

movdptr,#OUTBIT

mova,#0

movx@dptr,a;关所有八段管

mova,@r0

movdptr,#OUTSEG

movx@dptr,a

movdptr,#OUTBIT

mova,r2

movx@dptr,a;显示一位八段管

movr6,#1

callDelay

mova,r2;显示下一位

rra

movr2,a

incr0

djnzr5,Loop

ret

ToLED:

movdptr,#LEDMap

movca,@a+dptr

ret

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1