模拟病房呼叫系统【范本模板】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目的
通过设计模拟病床呼叫的程序,更加熟练掌握单片机指令的使用,培养用单片机来实现一些电子设备运行的逻辑思路,为以后更好的使用单片机打下基础.
二、设计要求
用单片机模拟一个护理站下管4个床位,哪个病人要呼叫可以按键,相应蜂鸣器响,数码管显示:呼叫数量_床位号。
要求:
⒈ 6个数码管,正常情况下显示时间(时分秒),时间可以通过按键调整。
⒉有人呼叫则闪烁显示数量_床位号并蜂鸣器响,应答键后继续显示时间。
三、硬件电路设计
所用器件如下表:
LED限流电阻8
电源指示灯 1
数码管锁存器74HC573 2
数码管 2
蜂鸣器 1
PNP三极管 1
电阻1k 10
89C52RC芯片 1
硬件连接电路图如下图所示:
四、使用说明
接上USB接口后,按下电源按键,数码管就开始计时,显示时间,从左到右依次显示时、分、秒;当需要调整时间时,按下键时分秒调整键可以进行对时、分、秒的设定;当有病人呼叫时,数码管就会显示数量和床号,并伴有蜂鸣器响,直到按下应答键后,数码管又重新显示时间,蜂鸣器停止响声。
五、流程图设计
六、程序设计如下
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
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 @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 ;关振铃器返回显示时间 LJMP mloop
xun: MOV R3 ,30H ;重新置初值
MOV A, R1
ADD A ,30H
MOV R1,A
LJMP xian
T1INT: CPL P0.7 ;定时器1中断程序
RETI
TOINT:
PUSH PSW
PUSH ACC
MOV A, C100us+1
JNZ Goon
DEC C100us
Goon:
DEC C100us+1
MOV A, C100us
ORL A, C100us+1
JNZ Exit
MOV C100us,#high(Tick)
MOV C100us+1,#low(Tick) DEC R1
DEC R3
MOV chuanggao,#0
MOV chuangdi,@R1
MOV shuliang,30H
INC Second
MOV A, Second
CJNE A, #60, Exit
MOV Second, #0
INC Minute
MOV A, Minute
CJNE A, #60, Exit
MOV Minute, #0
INC Hour
MOV A, Hour
CJNE A, #24, Exit
MOV Hour,#0
Exit:
POP ACC
POP PSW
RETI
Delay: ;延时子程序
MOV R7, #0
DelayLoop:
DJNZ R7, DelayLoop
DJNZ R6, DelayLoop
RET
LEDMAP: ;八段管显示码
DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h DB 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h DisplayLED:
MOV R0, #LEDBuf
MOV R5, #6 ;共6个八段管
MOV R2, #01111111b ;从左边开始显
Loop: SETB P2.1
MOV P1,#0H ; 关所有八段管
MOV A, @R0
CLR P2.1
SETB P2.0
MOV P1,A
CLR P2.0
MOV A, R2
SETB P2.1
MOV P1, A ;显示一位八段管
MOV R6,#1
CALL Delay
MOV A, R2 ;显示下一位
RR A
MOV R2, A
INC R0
DJNZ R5, Loop
RET
ToLED:
MOV DPTR, #LEDMap
MOVC A, @A+DPTRr
RET
END
七、心得体会
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。
因此作为电气工程专业的学生来说掌握单片机的开发技术是十分重要的.
我的题目是模拟病床呼叫,对于我们这些实践中的新手来说,这是一次考验.怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。
这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程.通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好.
这次课程设计通过我们小组的努力终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于迎刃而解,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
八、参考文献
[1]、《单片微型计算机原理与接口技术》高峰科学出版社,2007。