基于at89s51单片机实现病房无线呼叫系统设计内容摘要:

元件名、元件封装、参数及元件之间连接关系的网络表。 ( 8)文件保存及打印输出 最后的步骤是文件保存及打印输出。 使用 Pritel99SE 绘制的无线病房呼叫系统的原理图 图 8 PCB版图 内蒙古农业大学学士学位论文 9 3 总体设计 系统总体设计 系统设计方案 本系统以 AT89S51 单片机为核心,通过无线接收模块获得病人呼叫信号,通过该单片机操作病房显示电 路(利用病房显示驱动电路),蜂鸣器报警电路,二极管指示灯电路。 当在初始化时 , 数码管 显示全零, 蜂鸣器 报警电路 ,指示灯电路 均不工作。 当病人按下手中的遥控器时,相应的数码管则显示对应的病床号,对应的蜂鸣器报警,指示灯显示。 系统原理框架图 原理 :无线发射模块发射出报警信号,通过无线接收模块接收,传个 AT89S51 单片机,通过对数据处理把信号通过指示灯电路,蜂 鸣器电路,数码显示电路做出响应。 各个模块的电路通过单片机的 I/O 口连接 利用单片机实现病房无线呼叫系统 10 图 9 系统原理框架图 系统总体电路图 该电路图就是设计的各模块详细的电路图,并标注了所使用器件的型号,引脚 图 10 系统总体电路图 内蒙古农业大学学士学位论文 11 硬件部分详细设计 各模块连接图 该无线病房呼叫系统以 AT89S51 单片机为核心,通过其端口分别连接四个蜂鸣器报警器,四个数码管显示,四个指示灯,和一个无线接收设备 图 11 模块连接图 LED 显示屏模块电路设计 使用器件 ( 1)共阴数码管 介绍: 数码管由七个条状和一个点状发光二极管管芯制成,称为七段数码管。 根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。 共阳共阴,是针对数码管的公共脚而说的。 简单来说就是里面的二极管连接方向相反。 共阴极数码管就是二极管的负极并在一起为公共端,正极分别代表 ah;正常工作时,负极要接低电平, ah接高电平,使二极管导通,就可点亮 ah。 共阳极数码管就是二极管的正极并在一起为公共端,负极分别代表 ah。 正常工作时,正极要接高电平, ah接低电平电平,使二极管导通,就可点亮 ah。 判断方 法: 用两节电池一根电线,测试。 如点亮了,负极不动,正极分别接其它端,如果也都能亮就是共阴。 如果正极不动,负极分别接其它端都能亮就是共阳 ( 2) 74HC164 74HC164 是串入并出器件 ,串入是一位一位进的 ,先进入的后出。 利用单片机实现病房无线呼叫系统 12 例如 :数码管要显示数字 1,数字 1 共阴数码管的并口代码是 06,二进制是00000110,所以要颠过来 送数 ,先送高位后出高位 ,为 01100000,代码为 60,这样才能显示数字 1 电路设计 主要由 74HC164 和数码管组成的 ,通过串口输入和串口输出把号码显示到数码管上,由于原串口已被分配给提示灯电路,通过 P P2口模拟了 4个串口,由 4个 74HC164来实现, 在程序中主要是用循环来实现给一个时钟信号,输入一个数据,当有病人按下手中的呼救器时,数码管将显示出是几号床位上的病人呼叫 ,而且一直在显示 ,直到有护士发现,将其复位。 数码管显示电路如下: 图 12 数码管显示电路 蜂鸣器 报警模块电路设计 蜂鸣器报警电路是由 电阻,三极管,蜂鸣器三部分组成。 蜂鸣器报警电路占用了四个 I/O口, 分别接在 P2口的 引脚上。 三极管起开关作用,当基极处于高电平时,三极管导通,蜂鸣器发出报警声,当基极处于低电平时,三极管关断,蜂鸣器不发出报警。 蜂鸣器如图 24所示: 内蒙古农业大学学士学位论文 13 图 13 蜂鸣器电路图 二极管提示灯模块电路设计 指示灯电路由 1K电阻和发光二极管组成,其中发光二极管阴极接 AT89S51 单片机的 4个 I/O口,分别接在 P3 口的 引脚上 ,发光二极管阳极与电源间接电阻是为了防止电流过大烧坏二极管设置的。 图 14 提示灯电路 无线接收模块电路设计 无线接收模块电路由三极管和无线接收设备组成,分别占用了 4个 I/O 口,接在P1口的 口上 图 15 无线收发模块 软件部分详细设计 系统软件实现流程图 程序实现思路:当有病房呼叫的报警信号时,通过写一个简单循环语句判断是哪个病房的键按下的, 当是判断出是一号病房按下时,则退出循环,一号病房对应的指示灯亮,蜂鸣器报警,数码显示管显示病房号,若不 是时,则继续进入循环程序,判断是否是二号病房,依次进行判断,并且时刻判断。 利用单片机实现病房无线呼叫系统 14 3号病房键按下判断是哪个病房键按下2号病房键按下程序初始化1号病房键按下 4号病房键按下数码管显示病房号指示灯亮蜂鸣器报警数码管显示病房号指示灯亮蜂鸣器报警数码管显示病房号指示灯亮蜂鸣器报警数码管显示病房号指示灯亮蜂鸣器报警 图 16 流程图 初始化实现 在判断哪个病房呼叫前要首先将程序初始化,数码显示管全部显示为零,发光二极管熄灭,指示灯不亮,并且判断是否有按键按下 代码实现如下: BEGIN: MOV TMOD,10H MOV TH1,3CH MOV TL1,0B0H SETB ET1 SETB TR1 CLR BC1 CLR BC2 CLR BC3 CLR BC4 CLR FLAG1 CLR FLAG2 CLR FLAG3 CLR FLAG4 显示模块功能实现 当有按键按下时,就会调用显示子程序,在电路图中使用的是:串行方式,假如内蒙古农业大学学士学位论文 15 现在是 2 号床位上的病人呼叫,则在数码管上应显示 “2”,串行方式中,数码管上显示的数字是先成二进制数,再一位一位地输进去的,然后才显示数字。 这里是在模拟串口,因为该单片机中只有一个串口,而这里要用多个串口。 当这段程序执行完以后,再进入循环。 十进制数与相应二进制数的转换表 (如表 1 所示 )。 表 1 十进制与二进制 转换表 显示数值 a b c d e f g dp 驱动代码( 16进制) 0 1 2 3 4 5 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 3FH 06H 5BH 4FH 66H 6DH 串口显示代码: TAB: DB 0fCh, 60h, 0dAh, 0f2h, 66h, 0b6h 二极管指示灯模块功能实现 通过不断的扫描无线接收模块所接的 I/O 口是高电平还是低电平来判断是否有病人呼叫,当是低电平时,病床数码管将显示数据送表首地址 ,找出显示数字的串口代码,从而通过循环判断是几号病房在呼叫。 实现代码如下: START: CLR C MOV DPTR, TAB MOV A, R0 MOVC A,@A+DPTR MOV R1, 9 S1: CJNE R0, 1, S2 S2: CJNE R0, 2, S3 SJMP SS2 S3: CJNE R0, 3, S4 SJMP SS3 S4: CJNE R0, 4, S1 LJMP SS4 利用单片机实现病房无线呼叫系统 16 蜂鸣器报警模块功能实现 如果有病人呼叫,即有按键按下,那么相应的蜂鸣器所接的 I/O口也设置为高电平,而且每一个蜂鸣器发出的声音是不一样的,同时与床位号对应的指示灯也会亮。 在程序中只用一条语句即可实现: CLR ,因为在本电路设计时,每个引脚都是低电平有效的,所 以在清零时蜂鸣 器才能发出声音。 无线接收模块功能实现 四个报警模块实现相互独立 设计思路: 把定时器当钟表用,时钟总在不停的走,判断有病房呼叫了,开始声光报警 10S,四路报警相互独立,谁不干扰谁 实现代码如下: WS1: MOV A, R7 ADD A, 200 MOV 31H, A SETB BC1 SETB FLAG1 LJMP TT2 4 系统测试以及实现过程中出现的问题 系统硬件测试 (1)静态检查。 根据硬件电路图核对元器件的型号、极性、安装是否正确,检查硬件电路连线是否与电路图一致,有无短路、虚焊等现象。 (2)通电检查。 通电检查时,可以模拟各种输入信号分别送入电路的各有关部分,观察 I/O 口的动作情况,查看电路板上有无元器件、冒烟、异味等现象,各相关设备的动作是否符合要求,整个系统的功能是否符合要求。 系统软件测试 程序模块编写完成后,通过汇编或编译后,在开发系统上进行调试。 调试时应先分别调试各模块子程序,调试通过后,在调试中断服务子程序最好调试主程序,并将各部分进行联调。 出现的问题及解决办法 在操作过程中注意以下几个问题 ( 1)焊接电路时一定要焊实,有些焊接的地方表面上是焊上了,但 实际上里面是空的,影响电路的通畅。 ( 2)当显示界面不显示时,最有可能是电路问题,应当好好检查一下电路是否焊好,器件的正负极是否接反,器件是否是坏的等问题。 ( 3)若是一切电路正常,当出现遥控系统无法进行遥控时应当检查电源电压是否过低,可能是电压过低无法正常启动设备,应当及时更换电源。 内蒙古农业大学学士学位论文 17 ( 4)编写的程序在编译过成中一定要设置一下编译器,否则出现不了 hex 文件 ( 5)烧写过程中烧写的事 hex 文件,烧写时还要注意不要把 AT89S51 弄反,否则无法处理器很容易被烧坏。 利用单片机实现病房无线呼叫系统 18 结 束。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。