单片机课程设计《病人呼叫器》讲解.docx
《单片机课程设计《病人呼叫器》讲解.docx》由会员分享,可在线阅读,更多相关《单片机课程设计《病人呼叫器》讲解.docx(29页珍藏版)》请在冰豆网上搜索。
![单片机课程设计《病人呼叫器》讲解.docx](https://file1.bdocx.com/fileroot1/2023-7/10/46228cc4-e7fa-4812-867e-a33c9a1662c8/46228cc4-e7fa-4812-867e-a33c9a1662c81.gif)
单片机课程设计《病人呼叫器》讲解
太原理工大学
课程设计说明书
课程名称:
《单片机原理及其在煤矿中的应用》
设计题目:
医院病人呼叫器
院系:
矿业工程学院
学生姓名:
李国富
学号:
2011002813
专业班级:
采矿1109
指导教师:
曹金燕
2013年12月27日
课程设计任务书
设计题目
病人呼叫器
学生姓名
李国富
所在院系
矿业工程学院
专业、年级、班
采矿1109班
设计要求:
设计一种呼喊器,供医院住院病人“呼喊”医护人员时使用。
住院病人可通过按动自己的床位按扭开关向医护人员发出“呼喊”信号;
一旦有病人发出“呼喊”信号,医护人员值班室显示床位编号,扬声器发出提示声响信号;
4.用相关仿真软件对电路进行仿真。
学生应完成的工作:
本设计以AT89C51单片机为主控模块,利用汇编语言编写呼叫器程序,同时我们查阅手册和文献资料来选择合适的元器件,并设计合理的电路来实现符合要求的电路板实物。
主要任务包括:
(1)硬件原理图的设计。
(2)软件程序的设计:
对不同方案进行比较分析,并通过整体优点与缺点的比较,确定合理的方案。
(3)用汇编语言进行软件的编写与调试。
(4)撰写课程设计报告。
课程设计提交的成果
1)设计说明书2)图样资料a)系统原理图;3)查阅文献16篇
b)硬件电路图;
c)汇编语言源程序
d)PROTEUS运行仿真图
工作计划:
2013年12月23日—2013年12月23日:
搜索有关资料并进行硬件原理图设计;
2013年12月24日—2013年12月25日:
进行硬件电路与软件程序的编写及调试;
2013年12月26日—2013年12月26日:
编写课程设计说明书;
2013年12月27日—2013年12月27日:
提交课程设计。
任务下达日期:
2013年12月23日
任务完成日期:
2013年12月27日
指导教师(签名):
学生(签名):
病人呼叫器
摘要:
本设计是一个采用89C51单片机配以外围适当电路完成一个可供64个病房使用的呼叫系统。
该系统需运用单片机典型外围接口技术中的矩阵式键盘电路完成对病房的输入,由于病房较多,考虑到89C51单片机自身接口有限,需用可编程并行接口芯片8255A外扩I/O实现对矩阵式键盘的扫描与键值的读入。
MCS-51单片机受管脚的限制,P0口不仅要作数据总线口而且还提供低8位A0~A7,所以只能分时工作,故P0口输出的低8位地址数据必须用锁存器锁存。
本设计采用74LS373,其锁存控制信号由引脚ALE提供。
在ALE的下降沿将P0口输出的地址数据锁存。
本设计中单片机要实现三种功能:
1)床位按钮的扫描与读入。
2)按钮按下时振铃三秒并显示房号。
3)护士响应后数码管灭,铃声停。
关键词:
呼叫器/单片机/医院/显示/蜂鸣器
1.设计背景
以前老是想那些独立的智能设备都是通过什么控制的,比如说厕所的红外控制系统、一些大酒店的自动电动门、洗衣机的自动控制等等好多好多。
小时候都不理解他们是怎么自己控制的。
上了大学后才了解到原来这都是通过单片机控制的。
所以我就对单片机特别感兴趣。
想学好了就可以自己做一点东西,那是我从小的梦想。
病床呼叫系统是医院所必须的一种装置,这样既能省去医务人员的工作量又能及时的帮助病人反馈信息给医护人员,做到不耽误病情。
目前,呼叫系统已经成为医院提高医护服务质量、提高医护人员工作效率和减少医疗事故的一种必不可少的基础设备,临床求助呼叫(监护)是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一,呼叫系统的优劣直接关系到病员的安危,历来受到各大医院的普遍重视。
它要求及时准确可靠简便可行。
呼叫系统已经成可以为医院提高医护服务质量、提高医护人员工作效率和减少医疗事故。
实验的目的是设计一种是实用又简单的电路模型,初步解释工作原理显示出预想的效果。
2.课题名称及要求
2.1课题名称:
医院住院病人“呼叫”器
2.2设计要求:
1.设计一种呼喊器,供医院住院病人“呼喊”医护人员时使用。
2.住院病人可通过按动自己的床位按扭开关向医护人员发出“呼喊”信号。
3.一旦有病人发出“呼喊”信号,医护人员值班室显示楼层及病房编号,扬声器发出提示声响信号。
3.设计方案
为使硬件电路设计尽可能合理,应注意以下几个方面:
(1)尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替普通芯片,随着生产工艺的提高,新型芯片的价格不断下降,并不比普通芯片价格的总和高。
(2)留有设计余地。
在设计硬件电路时,要考虑到将来修改扩展的方便。
因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。
(3)程序空间。
选用片内程序空间足够大的单片机。
4工作原理及工作流程
系统组成如图1所示。
此设计以单片机AT89C51为核心,由单片机I/O口采集检测开关信号,经过单片机内部MCU程序处理后通过数码管显示相应的按键号,并进行相应的声音报警,提醒医生注意当病人需要呼叫医务人员的时候,只要按一下床头的开关,医务人员值班室的指示台上就会发出音频信号,并且有指示灯指示出病人所在的楼层及病房号。
设计原理图如图所示。
声音报警
单片机处理
按钮开关
数码管显示
图1:
医院呼叫器装置原理框图
软件流程及工作流程图
图2:
工作流程图
5.Keil软件程序编译与调试
1.打开keil软件新建工程30,选择AT89C51。
2.创建文档,写入程序,保存为ASM格式。
3.添加文件。
4.设置相关数据。
4.连接编译,仿真调试。
6.结果分析。
6各分模块设计及相关元器件的选用
6.1单片机选用
我们这学期主要学习了AT89C51,对该型号的单片机比较熟悉,同时AT89C51也能满足我们在设计中的需要,所以我们选择AT89C51作为我们课程设计的主要元器件,为后边的课程设计节省了时间。
AT89C51的简介:
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51引脚图:
各引脚介绍:
1.P0口作为信号输入端,将8255A收集到的按钮信号输入到单片机内部,为信号处理做准备。
2.P3口:
P3.0和P3.1用于控制数码管显示,将单片机处理的信息,传输到74LS164中,控制数码管的显示。
3.P3.2:
外部中断引脚,护士的软复位信号可以通过这个引脚输入,达到消除警报的作用。
4.XTAL:
外部时钟电路引脚,给单片机提供额定的工作频率。
5.RST:
复位引脚,当整个系统出现问题时,可以通过这个引脚,将系统复位。
6.P1.0:
声音报警系统控制引脚。
6.2按钮开关电路
键盘是单片机不可缺少的输入设备,本设计中按键是设计的灵魂,通过按键来模拟病房号来向单片机输入信号是实现人机对话的纽带。
键盘按结构形式可以,本文proteus仿真按钮开关电路如图2所示。
图2按钮开关电路
按钮开关电路采用低电平有效。
通过单片机检测P1口状态分别判断是几号按钮(病房)按下按钮。
该电路总共采8行8列,分别代表8个病房和8个楼层。
备注:
此处优先级是相同的,如果考虑优先级就太复杂了所以这里就不考虑了。
6.374ls164简介
当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
引出端符号:
D0~D7数据输入端OE三态允许控制端(低电平有效)LE锁存允许端O0~O7输出端:
图3proteus仿真里的74ls164图
6.474LS373简介
并行接口的简单扩展方式,由于TTL型或者CMOS型74系列器件的品种多,价格低。
用74系列器件扩展单片机并行I/O接口是常用的并行接口扩展方法。
74ls373:
是八D锁存器(三态).一个封装中有八个锁存器,三态总线驱动输出,置数全并行存取,缓冲控制输入,时钟/使能输入有改善抗扰度的滞后作用.
各个引脚如图所示:
:
6.58255A简介
1.8255A简介:
8255A是一个通用的可编程并行I/O口接口芯片。
引脚定义如图所示:
8255A内部结构图:
从8255A结构图可以看出:
1)8255A有3个8位并行I/O端口,端口A,B,C均可以工作在输入或输出方式。
2)两组控制电路分别控制3个端口,A组控制电路控制A和端口C的高4位,B组控制电路控制B和端口C的低4位。
3)具有数据总线缓冲器,可以方便的与单片机数据总线连接;
4)端口A,B,C通过内部数据总线与数据总线缓冲器连接,即各端口通过数据端口与单片机交互信息
5)提供读/写控制逻辑,可以很方便地通过MOVX指令完成对其各端口的操作。
2.8255A功能:
数据端口A,B,C
端口A:
一个8位数据输出锁存/缓冲器,一个8位数据输入锁存器;
端口B:
一个8位数据输出锁存/缓存器,一个8位数据输入缓冲器;
端口C:
一个8位数据输出锁存/缓存器,一个8位数据输入缓冲器。
3个端口都可以作为数据输入或输出端口,但不同的的端口有不同的工作方式。
出一般输入/输出方式外,端口A还可以工作在双向方式、握手联络方式,端口B可以工作在握手联络方式:
而端口C可以作为控制或状态信号的端口,喂端口A和B提供握手联络信号,并且端口C还有可以工作在按位置位/复位方式。
2)A组和B组控制短路
控制电路决定了8255A的工作方式,也决定了8255A在具体电路中的功能。
控制电路中包含控制寄存器,接受来自单片机的控制字。
写入8255A的控制字不同,8255A的工作方式不同。
3)数据总线缓冲器
数据总线缓冲器提供了8255A与系统总线的接口。
端口数据及8255A工作状态信息都是通过该缓冲器传送的,由于它具有缓冲结构,因而可以直接与单片机的数据总线连接。
4)读/写和控制逻辑
读/写控制逻辑直接与单片机的控制总线及地址总线相连接,通常8255A的A0,A1及
与地址总线连接连接,而
和
与单片机的读/写信号连接。
5)8255有如下相关的控制信号。
:
片信号低电平时,8255A被选中;
:
读信号低电平有效,该信号有效时可以读取8255A的端口数据或状态信号;
:
写信号,低电平有效,该信号有效时可以向8255A写入控制字或向端口写数据;
RESET:
复位信号,高电平有效,只有复位后,8255A才能接收单片机对其进行的初始化。
本课设主要用来并行输出,数码管显示。
6.6声音报警电路
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的巨型波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。
当有按键按下时,单片机从P1.7口输出一周期高低信号,控制三极管的通断,从而使扬声器通断,发出一定周期的音频报警信号,报警时间为3S。
图4声音报警电路
6.7外部震荡电路
单片机必须在时钟的驱动下才能工作,在单片机结构内部有一个时钟振荡电路,只需要外部接一个震荡源就能产生一定的时钟信号,送到单片机内部的各个单元,决定单片机的工作速度。
一般选用石英晶体振荡器。
在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1,C2的大小是22pf,作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。
其大小是时钟信号频率的倒数。
图中时钟频率为12MHz。
图5震荡电路
一般选用石英晶体振荡器。
在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1,C2的大小是22pf,作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。
其大小是时钟信号频率的倒数。
图中时钟频率为12MHz。
6.8单片机复位电路的设计
单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平,即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图6。
图6复位电路
在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址.
6.9显示电路的设计
(1)显示电路使用了七段共阳极数码管,由低电平点亮,效果图如图所示。
显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下,提供尽可能丰富的信息,全靠软件来解决。
(2)7段数码管的简介:
七段数码管是数字电路当中一种常用的一种显示器件,由于使用的是“七段式”字体来表示阿拉伯数字和少量的英文字母,因此被叫做七段数码管。
七段数码管加上小数点,一共需要8个LED来构成一个显示器件,因此可以方便地和单片机的8位数据线方便地接口。
七段显示字型码:
显示字形
0
1
2
3
4
5
6
7
8
9
共阴
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
67H
共阳
C0H
F9H
A4H
B0H
99H
92H
82H
F8H
80H
90H
7Proteus仿真
硬件电路描述如下:
利用可编程并行接口芯片8255外扩I/O实现对矩阵式键盘的扫描与键值的读入,外部电源通过上拉电阻RESPACK接8255PC口,PC口作为输入口构成键盘的行,8255的PA口作为输出口构成键盘的列,行列之间通过按钮连接。
利用74LS373锁存器将89C51的数据线和地址线(低8位)分离出来从而使89C51具有与一般CPU相类似的三总线。
74LS164移位寄存器与共阳极LED构成静态显示电路。
74LS164移位寄存器的时钟信号由AT89C51的TXD提供,显示数据由89C51的RXD串行输出到74LS164由其显示,由于串行发送数据时先发送数据的低位所以显示床号个位的74LS164移位寄存器的输入由显示床号十位的74LS164移位寄存器的最低位数据线提供。
INT0接到按钮供护士响应病人请求灭管停铃之用。
50HZ的方波从P1.0S输出,经简单的放大电路后驱动扬声器发声。
硬件键盘电路工作原理:
单片机上电运行即进入判断键盘是否有键按下主程序,8255PA口输出全0值,后读8255PC口若其值全1则证明键盘无键按下,若其值不全为1则证明64个键中有一键按下。
单片机随机键盘扫描子程序,本设计首先将第0列送0其它列送1,然后读8255PC口通过对ACC各位的判断来识别键值。
若第0列无键按下则转判下一列,最后返回。
由于程序是在网上下载的,我们只是在已有的框架之下做一些改动。
原始软件的功能是第一行显示00、01、02等依次相加,第二行是03、04、05依次相加。
这不符合我自己的想法。
通过我仔细阅读程序后我发现只要将ACC的值改动就可以改变初始值。
于是我就改成了第一个显示屏显示楼层,第二个显示屏显示病房号。
该电路的仿真,我采用Proteus这个仿真软件进行做的,仿真效果非常好,达到课程实际之要求。
仿真按键按下,声音报警和数码管显示相应的按键号码。
8.课程设计体会
通过此次设计,我进一步加深了对单片机的理解,对以前学的知识进行了系统的应用,让我的单片机学习更加深刻,在课程设计得过程中,培养了我们解决工业控制,工业检测等具体问题。
我们通过所做的课题,熟悉单片机应用系统开发软件的过程及软,硬件设计的工作方法,内容和步骤。
对我们进行基本技能训练,如组成系统,编程,调试,绘图等。
在这个过程中,我们遇到好多的问题,但是我们通过查阅资料,不断修改,不断进步。
不仅培养了我们自己动手的能力,也锻炼了我们筛选资料的能力,虽然我们的成果算不上完美,但是这是我们在一星期的时间里,用我们一点一滴的辛勤换来的。
使我们理论联系实际,提高了动手能力和分析问题,解决问题的能力。
参考文献:
[1]单片微型计算机原理及应用[M].张毅坤、陈善久、裘雪红编。
西安电子科大出版社。
[2]单片机程序设计及应用[M].杨将新,李华军编.北京:
电子工业出版社,2006。
[3]报警集成电路和报警器制作实例[M].陈有卿,张晓东编.北京人民邮电出版社2001。
[4]单片机原理及应用[M].杨文龙编。
西安:
西安电子科技大学出版社,2005。
[5]电子线路辅导和题选[M].王世昌编.上海:
上海科学技术文献出版社,1999。
[6]模拟电子技术基础学习指导书北[M].王远编.北京:
清华大学出版社,1998。
[7]电路(上﹑下册)[M].第四版.邱关源主编.北京:
高等教育出版社,1999。
[8]电子线路基础[M].高文焕,刘润生编.北京:
北京高等教育出版社,1997。
[9]电力系统继电保护[M].张保会,尹项根.中国电力出版社,2005.05。
[10]新型语音芯片原理与应用.赵广林.电子工业出版社.2008.8。
[11]单片机技能与实训-机电一体化技术.宋国富.电子工业出版社.2010.2。
[12]电力系统的MATLAB/SIMULINK仿真与应用[M].王晶,翁国庆,张有兵。
西安电子科技大学出版社,2008.09。
[13]MATLAB建模、仿真及应用[M].刘同娟,郭键,刘军.中国电力出版社,2009.01。
[14]控制系统MATLAB计算及仿真实训[M].黄忠霖,周向明.国防工业出版社,2006.04。
[15]余发山主编.单片机原理及其应用技术.徐州:
中国矿业大学出版社,2003
[16]杨凌霄主编.微型计算机原理及应用.徐州:
中国矿业大学出版社,2004
[17]牛煜光.《单片机原理与接口技术》.电子工业出版社;
9.附录
附1:
元器件清单
元器件清单
名称
型号
数量
名称
型号
数量
单片机
AT89C51
1
数码管
SN43052
2
晶振
12MHH
1
稳压电源
DE7805
8
三极管
PNP
1
整流桥
2W10
1
电容
22PF
3
开关
BUTTON
66
上拉电阻
1
电阻
22
5
非门
1
74LS164
1
74LS373
1
8255A
1
蜂鸣器
1
接地
3
附2:
硬件效果图
效果前:
效果后:
附3:
源程序代码
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT0
ORG001BH
LJMPINT1
ORG0100H
MAIN:
SETBEA
SETBEX0
SETBET1
MOVSCON,#00H
MOVDPTR,#0FFFFFH
MOVA,#89H
MOVX@DPTR,A
KEY:
ACALLKS1
JNZLK1
NI:
ACALLDELAY
AJMPKEY
LK1:
ACALLDELAY
ACALLDELAY
ACALLKS1
JNZLK2
AJMPNI
LK2:
MOVR2,#0FEH
MOVR4,#00H
LK4:
MOVDPTR,#0FFFCH
MOVA,R2
MOVX@DPTR,A
INCDPL
INCDPL
MOVXA,@DPTR
JBACC.0,L1
MOVA,#00H
LJMPLKP
L1:
JBACC.1,L2
MOVA,#08H
LJMPLKP
L2:
JBACC.2,L3
MOVA,#16
LJMPLKP
L3:
JBACC.3,L4
MOVA,#24
LJMPLKP
L4:
JBACC.4,L5
MOVA,#32
LJMPLKP
L5:
JBACC.5,L6
MOVA,#40
LJMPLKP
L6:
JBACC.6,L7
MOVA,#48
LJMPLKP
L7:
JBACC.7,NEXT
MOVA,#56
LKP:
ADDA,R4
PUSHACC
LK3:
ACALLDELAY
ACALLKS1
JNZLK3
POPACC
LJMPL8
NEXT:
INCR4
MOVA,R2
JNBACC.7,KND
RLA
MOVR2,A
AJMPLK4
KND:
AJMPKEY
KS1:
MOVDPTR,#0FFFCH
MOVA,#00H
MOVX@DPTR,A
INCDPL
INCDPL
MOVXA,@DPTR
CPLA
RET
L8:
MOV40H,A
MOVB,#0AH
DIVAB
MOV50H,A
MOV51H,B
SETBRS0
MOVR2,#02
MOVR0,#51H
DL0:
MOVA,@R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
DL1:
JNBTI,DL1
CLRTI
DECR0
DJNZR2,DL0
CLRRS0
MOVTMOD,#10H
MOVTH1,#0D8H
MOVTL1,#0F0H
SETBEA
SETBET1
SETBTR1
MOV52H,#100
MOV53H,#3
LJMPMAIN
INT1:
MOVTH1,#0D8H
MOVTL1,#0F0H
DJNZ52H,TT1
MOV52H,#100
DJNZ53H,TT1
LJMPTT2
TT1:
CPLP1.0
RETI
TT2:
CLRTR1
CLRP1.0
RETI
INT0