单片机病房呼叫器之令狐文艳创作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
令狐文艳
课程名称:《单片机原理及其在煤矿中的应用》
设计题目:病房呼叫器
院系:矿业工程学院
学生姓名:孟亚东刘春磊祁乐
学号:2014003600 2014003597 2014003601
专业班级:采矿1409
指导教师:曹金燕
2017年 1月 6日
课程设计任务书
设计内容
设计一个单片机病房呼叫系统,可容64张床位的病房呼叫,每当患者需要呼叫护士时,按下按钮,此时护士值班室内的呼叫系统板上显示该患者的床位号,并振铃3秒。
当护士按下“响应”键时,结束当前呼叫。
设计步骤
一、总体方案设计
基于单片机的病房呼叫系统设计,附有复位电路,时钟电路,键盘电路等。
复位电路是单片机的初始化操作,为摆脱困境,通过复位电路可以重新开始。
时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。
二、硬件选型工作:对所使用的电路元件应选择型号。
三、硬件的设计和实现
1. 选择所用的51单片机;
2. 设计单片机最小系统,在此基础上进行扩展;
3. 设计支持系统工作的外围电路;
四、软件设计
1.编写系统初始化和主程序模块;
2.画出电路流程图;
3.编写子程序;
4.显示程序。
目录
一、设计要求 (5)
二、设计目的 (5)
三、设计的具体实现 (5)
3.1系统概述 (5)
3.2单元电路设计 (6)
3.2.1 单片机的引脚介绍 (6)
3.2.2 单片机复位电路介绍 (8)
3.2.3 时钟电路的介绍 (8)
3.2.4 详细设计 (9)
3.3软件程序设计 (11)
3.3.1 系统软件的设计 (11)
3.3.2 主程序流程图 .... 11子程序流程图12
四、实验仿真 (14)
五、心得体会及建议 (19)
六、附录(源程序) (21)
七、参考文献 (18)
单片机病房呼叫系统设计报告
一、设计要求
1、设计一个可容64张床位的病房呼叫系统。
2、要求每个床位都有一个按钮,当患者需要呼叫护士时,按下按钮。
此时护士值班室内的呼叫系统板上显示该患者的床位号,并振铃3秒。
3、当护士按下“响应”键时,取消当前呼叫。
二、设计目的
在大型机关,旅馆和医院中,常需要有一种内部联络和呼
叫系统,以便在旅客(病员)和服务人员之间建立必要的联
络,而一般的内部通话系统都比较少,经常使用的是比较便宜
的呼叫指示,这种呼叫指示系统在提示的同时,能够用数码管
显示各呼叫的号码。
病房呼叫系统是病人请求值班医生或护士进行诊断或护理的紧急呼叫工具,它主要用于协助医院病员在病床上方便地呼叫医务人员,可将病人的请求快速传送给值班医生或护士,是提高医院和病房护理水平的必备设备之一。
医院的竞争越来越激烈,商业医院的生存是第一位的,提升档次和服务质量迫在眉睫,陪护问题一直是医患矛盾的主体,也是长期困扰卫生系统服务质量的大问题,使用病房呼叫系统,方便病人更快找到医生,以节约病人的宝贵时间。
因此该系统具有很大的应用前景和广阔的市场发展空间。
本设计是以AT89C51为核心的病人呼叫系统,对该系统的硬件和软件结构进行了相应的描述。
此系统主要由89C51单片机,按键,数码管,喇叭等组成。
每个病人要呼叫可以按键,同时会有喇叭响,数码管显示不同床位号,相应的指示灯亮通过对病区的数据采集,实现医院医疗人员值班室和病人
房之间的通信呼叫联系,具有使用方便、操作简单等特点。
三、设计的具体实现
3.1系统概述
在本系统中,我采用单片机AT89C51为核心的系统主要包括2个部分:数据采集和数据的输出,数据的输出用来进行呼叫,编码使用单片机完成,数据采集负责接收分机发来的信号,并显示该患者的床位号,并响铃,主机上设有键盘可以取
消当前呼叫。
其实现结构框图如图3.1所示。
图3.1 系统总体方案图
由8×8键盘矩阵采集到的键值经过P1、P2口输入到单片机AT89C51中,然后通过P0口把相关信息传送到数码管显示。
同时报警警示灯闪烁、报警声响起。
医疗人员可以通过控制键盘操作,完成呼叫响应和信息查询等监护工作。
3.2单元电路设计
3.2.1 单片机的引脚介绍
AT89C51可以说是最常用的51单片机了,下图介绍AT89C51的引脚图资料。
如图3.2所示。
图3.2 AT89C51引脚图
(1) RESET一般接2个元件:①接10K电阻到地,②接10μ电容到电源。
(2) EA / VPP一般情况下接高电平(这时使用MCU内部RAM/ROM)。
(3) ALE / PROG一般情况下空着(这时使用MCU内部RAM/ROM)。
(4)PSEN一般情况下空着(当使用MCU内部RAM/ROM 时)。
(5) P0内部没有上拉电阻,所以必要时需要在每个引脚外接5.1K左右上拉电阻到电源。
(6) XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到
XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz,晶振的频率可以在1MHz-24MHz内选择,电容取20PF左右。
(7) VDD:电源+5V。
VSS:GND接地。
引脚功能说明:
①电源引脚 Vcc(40脚):典型值+5V。
Vss(20脚):接低电平。
②输入输出口引脚: P0口:I/O双向口。
作输入口时,应先软件置“ 1”。
P1口:I/O双向口。
作输入口时,应先软件置“ 1”。
P2口:I/O双向口。
作输入口时,应先软件置“ 1”。
P3口:I/O双向口。
作输入口时,应先软件置“ 1”。
③控制引脚: RST/Vpd、ALE/PROG、PSEN、EA/Vpp组成了MSC-51的控制总线。
RST/Vpd(9脚):复位信号输入端(高电平有效)。
第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。
ALE/PROG (30脚):地址锁存信号输出端。
第二功能:编程脉冲输入。
PSEN(29脚):外部程序存储器读选通信号。
EA/Vpp(31脚):外部程序存储器使能端。
3.2.2 单片机复位电路介绍
当MCS-51系列单片机的复位引脚RST出现两个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本的方式:上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
常用的上电复位如下图3中所示。
图中电容C1和电阻对电源+5V来说构成微分电路。
上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻,也能达到上电复位的操作功能。
如下图3.3和3.4中所示。
图 3.3 上电复位电路图 3.4 上电复位和按钮复位电路
3.2.3 时钟电路的介绍
采用时钟方式时,在XTAL1和XTAL2之间接入石英晶体振荡器(晶振)即可使内部振荡器起振,产生单片机工作所需的时钟脉冲。
如图3.5所示。
时钟是时序的基础,8951核片内由一个反相放大器构成振荡器,可以由它产生时钟,时钟可以由两种方式产生内部方
式和外部方式。
本系统采用内部方式,在XTAL1和XTAL2端外接石英晶体作为定时元件,内部反相放大器自激振荡,产生时钟。
时钟发生器对振荡脉冲二分频。
电容采用22nF MCS-51单片机时钟脉冲也可以由外部产生,但芯片的制造工艺不同,外部时钟源的输入方式有所不同。
对于HMOS型芯片,外部振荡信号接至XIAL2引脚,XTAL1接地,XTAL2引脚对电源接入上拉电阻。
而CHMOS型芯片,外部振荡信号接至XTAL1,XTAL2悬空。
图3.5 时钟电路
3.2.4 详细设计
(1) 数码管显示模块
本系统采用了较为简单的由单片机直接驱动数码管的显示电路,由于51单片机P0口内部是漏极开路型(作I/O口用时),P0口内部没有设置上拉电阻,不接上拉电阻的话输出会不正常,比如输出高电平时得不到高电平。
电路如图3.6。
图3.6 单片机与数码管接口图
(2)报警电路设计
主机在接受到呼叫后,进行报警告知值班人员。
报警分为两个部分,第一个部分是当有病床进行呼叫后值班台警示灯闪烁三次后保持常亮,显示为当前有病床呼叫;第二个部分是响铃三秒后自动停止,当值班人员听到响铃会知道当前有病床呼叫,观察显示面板可知是几号病床呼叫,从而进行快速处理。
报警电路用单片机如图3.7所示。
图3.7 报警电路设计图
(3) 键盘模块电路设计
8×8键盘矩阵和64个LED警示灯模块组成,在键盘扫描和LED驱动部分,使用了LED显示电路原理图如图3.8所示。
图3.8 键盘模块电路图
(4) 键盘的工作方式介绍
键盘的工作方式应该根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。
通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。
编程扫描方式:
编程扫描方式是利用CPU完成其他工作的空余时间,调用键盘扫描子程序来检验按键状态,响应键盘输入。
执行键功能程序时,CPU不再享有键输入要求,直到CPU重新扫描键盘为止。
定时扫描方式:
定时扫描方式就是每隔一段时间对键盘扫描一次,她利用单片机内部的定时器产生一定时间(如20ms)的定时,定时时间到产生定时器溢出中断。
CPU在中断服务程序中键盘进行扫描,并在有键按下时识别出该键并保存键号,然后在中断服务程序或主程序中执行该键的功能程序。
中断扫描方式:
本设计采用上述两种键盘扫描方式时,无论是否有键按下,CPU都要定时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入。
因此,CPU经常处于空扫描状态,浪费
CPU大量时间,CPU不扫描键盘,而有键按下时,通过相应电路产生中断请求,CPU相应中断,执行键盘扫描子程序,并识别键号。
3.3软件程序设计
3.3.1 系统软件的设计
该系统软件主要完成以AT89C51为核心的数据的采集、处理和有线传输。
采用模块化程序设计方法,将系统软件的设计主要分为显示模块,输入模块,输出模块。
单片机扫描发射键,如果扫描到有发射键按下,系统便扫描拨码开关的状态以确定地址码,通过P1口和P2口开始地址码传送当服务台接收到呼叫信号后,护士值班室内的呼叫系统板上显示该患者的床位号,并振铃。
当护士按下“响应”键时,结束当前呼叫。
3.3.2 主程序流程图
单片机扫描发射键,如果扫描到有发射键按下,系统便扫描拨码开关的状态以确定地址码,再进行中断初始化,去除键的延时抖动,分辨行、列值,进入死循环,这时病房指示灯点亮,服务台显示出床号并响铃,病房等待服务台的回应,如果没有扫描到信号输入,则单片机始终处于初始状态。
如图 3.9所示。
图3.9 主程序流程图
3.3.3子程序流程图
子程序如图 3.10是一个中断式键盘的流程图,当单片机收到信号后,中断入口开始初始化,去除键的延时抖动。
而一般的削抖方式有软件和硬件两种,硬件削抖虽能够解决键抖动
问题,但如果应用系统所需按键较多,本系统采用的是软件削抖,当检测出有键闭合时,先执行一个延时子程序产数毫秒的延时,待接通时的前沿抖动消失后再判别是否有键按下,分辨出行、列值。
当按键释放时,也要经过数毫秒延时,待后沿抖动消失后再判别是否有键按下。
图3.10 子程序流程图
中断程序:
INTR_0: MOV 30H,#0FFH
CLR P3.7
RETI
当病房护士接收相应信息后,可由外部中断0执行外部中断。
为报警系统发声电路和显示电路初始化。
3.4延时程序
DELAY3:
DDL1: MOV 41H,#220
DDL2: MOV 42H,#250
DDL3:
DJNZ 42H,DDL3
LCALL DISP
DJNZ 41H,DDL2
RET
由于外接键盘涉及接口过多,本程序中未使用定时器作为延时系统。
四、实验仿真
使用Keil、preoteus软件调试仿真
试是通过对程序的编译链接执行来发现程序中的语法错误与逻辑错误并加以排除纠正的过程,通过对源程序逐步执行来观察是否能达到预期的硬件显示的效果,之后用proteus将编译好的程序输入到以设计好的电路的AT89C51中,开始模拟调试,进一步修改并完善硬件及软件设。
1.Keil 简介
Keil C51开发系统基本知识
(1)系统概述
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil 的优势。
下面详细介绍Keil C51开发系统各部分功能和使用。
(2)Keil C51单片机软件开发系统的整体结构
C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码
级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
(3)使用独立的Keil仿真器时,注意事项
仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
2.Proteus简介
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
3.仿真调试过程
1)Keil仿真过程
打开Keil汇编语言软件,
(1)建立一个工程项目选择芯片确定选项
①Project→②New Project→③输入工程名“病房呼叫器”→④保存工程文件(鼠标点击保存按钮)
(2)选cpu厂家
三
2)Proteus仿真
(1)选取待用仿真硬件
(2)根据设计要求连接电路
(3)AT89C51导入keil程序
(4)进行仿真调试
五、心得体会及建议
本次课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,
学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。
千里之行始于足下,通过这次毕业设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。
通过这次单片机设计,我在多方面都有所提高。
通过这次基于单片机的病房呼叫器设计,综合运用本专业所学课程的理论和生产实际知识进行一次单片机设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了单片机课程所学的内容,掌握单片机设计的方法和步骤,掌握单片机设计的基本的技能懂得了怎样分析电路,了解了单片机的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
在这次设计过程中,体现出团队设计的团结以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
转眼之间课程设计就要结束了,这几周我过得虽然忙碌但是很充实,因为通过这次设计我学到了很多知识,对单片机也有了更深的认识,并且把以前学的知识又重新梳理了一遍,除此之外我也感觉到了自己知识的匮乏,设计过程中遇到许多困难,比如由于之前对单片机应用知识的不熟悉,程序编写无从下手以及对以前所学知识掌握的不够牢固等等,给了我很大的
压力,真正的感觉到是学无止境这句话是什么含义。
我一遇到不会的知识或者以前学过但现在却忘记的知识,我就上图书馆,上网去查,或者拿出以前的书再看看,尽力把它弄明白。
我们小组在设计时一起讨论,一起研究,在大家的互相帮助下我们提高的很快,解决了很多问题,也通过这次设计我们在彼此身上学到了很多知识,并且在我们即将面临实习的重要时刻,这次设计过程也让我们对我们自己的专业,和学习,工作的方向有了更清晰的认识。
让我知道不论做什么工作都要努力,都要不断学习。
此次设计为有线呼叫系统,虽存在布线复杂、维修不便、病房不能与值班室的语音对话等缺陷。
但相对于无线呼叫系统而言,它的可靠性能高,而且不干扰其他医疗设备。
如果采用无线传输,会节约布线和改造线路的资金,为医院节约成本,并且及时、简便可行,比目前的同类产品更能受到医院及病人的认可,有更强的竞争力,能大量推广。
六、附录
附录一:系统电路图
图6.1 病房呼叫系统电路图
附录二:元器件明细表
表6.2 元件器件表
附录三:源程序代码:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTR_0
ORG 0030H
MAIN: SETB EA ;初始化系统,EA/EXO/IT0置位SETB EX0
SETB IT0
MAIN1: CLR P3.7 ;P3.7清零
MOV 30H,#0FFH
LCALL DISP
DP1: LCALL KEY
LCALL DISP
LJMP DP1
KEY:
LCALL KS
JNZ K1
LCALL DELAY2 ;延时消抖
RET
K1: LCALL DELAY2
JNZ K2
LJMP KEY
K2: MOV R2,#0FEH
MOV P1,#0FFH ;使P1口置高电平MOV R4,#00H
K3: MOV P2,R2
LOOP0: JB P1.0,LOOP1 ;扫描按钮键盘MOV A,#00H
LJMP LOOPK
LOOP1: JB P1.1,LOOP2
MOV A,#08H
LJMP LOOPK
LOOP2: JB P1.2,LOOP3
MOV A,#10H
LJMP LOOPK
LOOP3: JB P1.3,LOOP4
MOV A,#18H
LJMP LOOPK
LOOP4: JB P1.4,LOOP5
MOV A,#20H
LJMP LOOPK
LOOP5: JB P1.5,LOOP6
MOV A,#28H
LJMP LOOPK
LOOP6: JB P1.6,LOOP7
MOV A,#30H
LJMP LOOPK
LOOP7: JB P1.7,NEXT
MOV A,#38H
LOOPK: ADD A,R4 ;移位扫描行
PUSH ACC
K4: LCALL KS
JNZ K4
POP ACC
MOV 30H,A
SETB P3.7
LCALL DELAY3
CLR P3.7
RET
NEXT: INC R4
MOV A,R2
JNB ACC.7,RET0
RL A
MOV R2,A
LJMP K3
KS: MOV P2,#0FFH MOV P1,#00H
MOV A,P2
XRL A,#0FFH
RET0:RET
DELAY2: MOV R5,#08H D7: MOV R6,#0FAH
D8: DJNZ R6,D8 DJNZ R5,D7
RET
DISP:
LCALL HBCD
PLAY: CLR P3.0 MOV DPTR,#DSEG1 MOV A,31H
MOVC A,@A+DPTR MOV P0,A
LCALL DL1
SETB P3.0
CLR P3.1
MOV DPTR,#DSEG1 MOV A,32H
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1
SETB P3.1
RET
DL1: MOV R7,#05H
DL: MOV R6,#0FFH
DL6: DJNZ R6,$
DJNZ R7,DL
RET
DSEG1:DB 3FH,06H,5BH,4FH,66H ;输入LED显示段DB 6DH,7DH,07H,7FH,6FH
HBCD:
MOV A,30H
INC A
MOV B,#100
DIV AB
MOV R5,A
MOV A,#10
XCH A,B
DIV AB
MOV 31H,A
MOV 32H,B
RET
INTR_0: MOV 30H,#0FFH ;响应中断
CLR P3.7 ;清零P3.7
RETI
DELAY3:
DDL1: MOV 41H,#220
DDL2: MOV 42H,#250
DDL3:
DJNZ 42H,DDL3
LCALL DISP
DJNZ 41H,DDL2
RET
END
七、参考文献
1·孙俊逸,盛秋林·《单片机原理与应用》·北京清华大学出版社·2006.
2·何立民·《单片机高级教程-应用与设计》·北京航天航空大学出版社·2000.
3·李朝青·《单片机原理及接口技术》·北京航天航空大学出版社·1999.
4.牛昱光《单片机原理与接口技术》北京.电子工业出版社,2008.2
5. 邓红《单片机实验与应用教程(第二版)》冶金工业出版社,2010.9。