模拟
病房
呼叫
系统
一、设计目的
通过设计模拟病床呼叫的程序,更加熟练掌握单片机指令的使用,培养用单片机来实现一些电子设备运行的逻辑思路,为以后更好的使用单片机打下基础。
二、设计要求
用单片机模拟一个护理站下管4个床位,哪个病人要呼叫可以按键,相应蜂鸣器响,数码管显示:呼叫数量_床位号。要求:
⒈ 6个数码管,正常情况下显示时间(时分秒),时间可以通过按键调整。
⒉ 有人呼叫则闪烁显示数量_床位号并蜂鸣器响,应答键后继续显示时间。
三、硬件电路设计
所用器件如下表:
名称
数量
40P zip座
1
串口接口
1
MAX232芯片
1
USB接口
1
晶振电容22p
2
复位按钮
2
晶振座
3孔
复位跳线插针
3针
4.7k排阻
1
LED白发红
8
LED电源跳线
2针
10k复位电阻
1
单独按键
8
双排针
2×18针
MAX232外围电容
4
复位电容
1
电源指示灯电阻1k
1
LED限流电阻
8
电源指示灯
1
数码管锁存器74HC573
2
数码管
2
蜂鸣器
1
PNP三极管
1
电阻1k
10
89C52RC芯片
1
硬件连接电路图如下图所示:
四、使用说明
接上USB接口后,按下电源按键,数码管就开始计时,显示时间,从左到右依次显示时、分、秒;当需要调整时间时,按下键时分秒调整键可以进行对时、分、秒的设定;当有病人呼叫时,数码管就会显示数量和床号,并伴有蜂鸣器响,直到按下应答键后,数码管又重新显示时间,蜂鸣器停止响声。
五、流程图设计
开始
初始化
设定时间显示
数码管显示时间
统计数量和床号
显示数量和床号
清零、置初值
是否有病人呼叫
有无应答键
Y
N
Y
N
主程序框图
中断服务子程序
分调整键按下
外部中断T0启动
对分钟进行调整
返回
小时调整键按下
外部中断T1启动
对时钟进行调整
返回
六、程序设计如下
LEDBuf EQU 60H ; 显示缓冲
LEDBuf1 EQU 80H
Hour EQU 40H
Minute EQU 41H
Second EQU 42H
C100us EQU 43H
chuanggao EQU 70h
chuangdi EQU 71H
shuliang EQU 72H
Tick EQU 10000
T100us EQU 256-100
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP MT
ORG 000BH
LJMP TOINT
ORG 0013H
LJMP HT
ORG 001BH
LJMP T1INT
MAIN:
MOV TMOD, #22h ; 模式2, 定时器 0.1毫秒中断一次
MOV TH0, #T100us
MOV TL0, #T100us
MOV TL1, #6H
MOV TH1 ,#6H
MOV IE, #10001010b ; EA=1, IT0 = 1
MOV Hour, #0
MOVv Minute, #0
MOV Second, #0
MOV C100us, #high(Tick)
MOV C100us+1, #low(Tick)
SETB IT0
SETB IT1
SETB EX0
SETB EX1
SETB IE0
SETB IE1
MOV Minute, #0
MOV Hour, #0
SETB TR0
MOV p0, #0h
SETB p0.7
LJMP MLoop
MT:MOV Second, # ;分调整
INC Minute
MOV A,Minute
CJNE A ,#60,LOP1
MOV Minute, #0
LOP1: RETI
HT: MOV Second, #0 ;时调整
INC Hour
MOV A, Hour
CJNE A, #24, lop2
MOV Hour,#0
lop2: RETI
MLoop:
MOV A, Hour
MOV B, #10
DIV AB
CALL ToLED
MOV LEDBuf+5, A
MOV A, B
CALL ToLED
MOV LEDBuf+4, A
MOV A, Minute
MOV B, #10
DIV AB
CALL ToLED
MOV LEDBuf+3, A
MOV A,B
CALL ToLED
ORL a, #01h
MOV LEDBuf+2,A
MOV A, Second
MOV B, #10
DIV AB
CALL ToLED
MOV LEDBuf+1,A
MOV A, B
CALL ToLED
MOV LEDBuf, A
CALL DisplayLED
MOV R1,#73h
MOV R3,#0
JB P0.0,tiao1
k1 : JB P0.1 ,tiao2
k3: JB P0.2,tiao3
k4: JB P0.3,tiao4
k5: JB P0.4,tiao5
k6: JB P0.5,tiao6
k7: JB P0.6,tiao7
k2: JB P0 ,xian
LJMP MLoop
tiao1: SETB TR1
SETB F0
INC R3
MOV 30H,R3
MOV @R1,#1
INC R1
SJMP k1
tiao2 : SETB TR1
SETB F0
INC R3
MOV 30H,R3
MOV @R1,#2
INC R1
SJMP k3
tiao3 : SETB TR1
SETB F0
INC R3
MOV 30H,R3
MOV @R1,#3
INC R1
SJMP k4
tiao4 : SETB TR1
SETB F0
INC R3
MOV 30h,R3
MOV @R1,#4
INC R1
SJMP k5
tiao5 : SETB TR1
SETB F0
INC R3
MOV 30h,R3
MOV @R1,#5
INC R1
SJMP k6
tiao6 : SETB TR1
SETB F0
INC R3
MOV 30H,R3
MOV @R1,#6
INC R1
SJMP k7
tiao7 : SETB TR1
SETB F0
INC R3
MOV 30H,R3
MOV @R1,#7
INC R1
SJMP k2
xian:
CLR F0
MOV A, chuanggao
MOV B, #10
DIV AB
CALL ToLED
MOV LEDBuf+5, A
MOV A, B
CALL ToLED
MOV LEDBuf+4,A
MOV A, chuangdi
MOV B, #10
DIV AB
CALL ToLED
MOV LEDBuf+3, A
MOV A, B
CALL ToLED
ORL A, #80H
MOV LEDBuf+2,A
MOV A, shuliang
MOV B, #10
DIV AB
CALL ToLED
MOV LEDBuf+1, A
MOV A,B
CALL ToLED
MOV LEDBuf, A
CALL DisplayLED
JNB P3.0 ,lp1
CJNE R3 ,#0,xian
LJMP xun
lp1: CLR TR1 ;关振铃器返回显示