《基于单片机的无线病床呼叫系统设计(共27页).doc》由会员分享,可在线阅读,更多相关《基于单片机的无线病床呼叫系统设计(共27页).doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上学号:本科毕业论文题 目:基于单片机的无线多路病床呼叫系统软件设计院 系:生命科学技术系专 业:生物医学工程班 级:2007级2班学生姓名:王宝霞导师姓名:朱永涛 白帆二一一 年 六月毕业设计(论文)诚信声明书本人声明:本人所提交的毕业论文 基于单片机的无线多路病床呼叫系统是本人在指导教师指导下独立研究、写作的成果,论文中所引用他人的无论以何种方式发布的文字、研究成果,均在论文中加以说明;有关教师、同学和其他人员对本文的写作、修订提出过并为我在论文中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。本论文和资料若有不实之处,本人承担一切相关责任。论文作者:
2、(签字) 时间: 年 月 日指导教师已阅: (签字) 时间: 年 月 日专心-专注-专业目 录摘 要随着无线技术的发展,无线应用技术已经渗透到生活的各个领域,无线传输技术也越来越成熟,本设计是将无线传输技术应用到临床上的研究型课题,实现基于单片机AT89C5l和无线传输模块构成的无线多路病床呼叫系统,将简单论述其工作原理和软硬件设计方法,概括研究成果。本设计是以AT89C51单片机为核心,通过无线发射模块发射传输信号,无线接收模块接收信号,经AT89C51处理,实现病人与医护的无线远距离沟通。通过软硬件设计,实现了病床呼叫器的设计要求,制作出实物产品,检测一切正常,能够实现100米的远距离发射
3、接收,也能绕过障碍物传输,能够满足临床应用的要求。本产品性能稳定、占用空间小、使用材料少、传输速度快、距离远,是无线技术在医学临床上的大胆应用,具有创新性和可行性。关键词:单片机AT89C5l;无线传输模块;病床呼叫ABSTRACTAs wireless technology, wireless application technology has penetrated into all spheres of life, more and more sophisticated wireless technology, this design is the wireless transmissi
4、on technology to the clinical research on the subject, and the realization of wireless transmission based on single chip AT89C5l modules consisting of multiple beds call system, will simply discuss the working principle and design method of hardware and software, general research results. The design
5、 is based on AT89C51 microcontroller as the core, through the wireless transmitter module transmitting transmission signal, the wireless receiver module received signal, transmission to patients and health care AT89C51 control to achieve long-distance wireless communication. Through software and har
6、dware design, implementation of the design requirements for hospital beds pagers, create physical products, testing all the normal distance of 100 meters can be achieved transmitting and receiving, but also can transfer to bypass obstacles, to achieve clinical application. The stable performance, sm
7、all footprint, use fewer materials, transmission speed, distance and wireless technology in the medical application of clinical bold, innovative and feasible.Key words : AT89C51;wireless transmit modul;sickbed beeper第一章 绪 论1.1课题研究背景及意义目前大多医院的病床呼叫系统采用有线传输方式,有线传输占用空间较大,耗材多,而且不易移动,因此现今需要对病床呼叫系统进行升级,近年来
8、在我国无线领域有了大的进展,这为此提供了有力的技术支持。有的一些简易无线发射接收模块传输距离近,速率低,可靠性差,不适合用于产品的设计。本设计是基于单片机实现的医用无线多路病床呼叫系统,分为无线发射模块、无线接收模块、单片机控制部分、显示部分、警报呼叫部分和复位应答部分。本系统通过无线电实现信号的传递,单片机作为控制部件协调处理整个系统的工作,实现无线信号的远距离传输,减少了材料的耗费,安装简单,使医患沟通更加灵活,是无线网络技术在医学临床上的大胆应用,具有创新性。1.2设计要求及预期目标设计要求:设计出稳定高效的运行系统,并且有一定的抗干扰能力,能够实现多路呼叫且互不干扰。距离在100m范围
9、内,实现多路无线病床呼叫,并留有扩展空间。预期目标:病人按呼叫键时,无线发射器发射信号,无线接收器接收无线信号,通过单片机控制处理,护士值班室发出呼叫警报持续10s左右,相应床位的呼叫指示灯亮,同时数码管上显示相应的床位号并隔1s闪烁一次,当护士按键应答,指示灯熄灭,数码管显示消失,警报由定时器控制关闭。当有多个病人呼叫没有及时应答时,对应指示灯都亮,数码管上间隔1s轮回显示床位号。单片机复位时,数码管清零。1.3设计可行性有线呼叫器受位置的制约不能很好的达到医患沟通,无线呼叫系统就显示其很大的优越性,可移动,不受位置制约,现今无线传输技术有了突飞猛进的发展,技术越来越成熟,普遍应用到生活、娱
10、乐、学习和军工等领域,这为无线传输技术与医学临床的结合提供了技术支持。在校期间我们也学习了与单片机相关的课程,有了一定的理论基础。我校现有的实验室与设备也能够满足系统硬件制作调试与软件仿真的需求。因此,本课题具有可行性,能够得到实现。第二章 设计材料及方案步骤2.1 设计材料根据本设计要求,我将使用的设计材料见表2-1。表2-1 使用材料清单由于无线收发模块是从网上购买,在制板时就没有在原理图中划出。2.2 设计方案及步骤针对我要设计的题目,制定以下方案:第一步,根据设计目的构想设计的原理图框架,学习设计中要用到的知识,如无线发射模块的原理、编码解码,单片机C语言编程设计,数码管显示,使用的芯
11、片引脚工作原理,Proteus和Protel软件使用等。预计准备时间为三周。第二步,根据初步设计的原理图在Proteus上画出,同时进行Keil C程序编写,进行软件仿真、调试,直到运行成功。预计时间为五周。第四步,在Protel中绘制原理图,准备使用材料,制作封装,布线制作PCB板,打印制板,然后将程序下载到制单片机中,进行硬件检测调试,如没有达到预期目的,再更换元器件或添加元器件,直到产品调试成功。预计时间为三周。通过努力我们提前做好产品,并实现了预期目标。第三章 系统硬件设计3.1 系统原理框图根据设计要求绘制系统原理图如图3-1所示。发射模块接收模块数码管显示指示灯单片机声音报警图3-
12、1 系统原理图3.2 单片机AT89C51芯片简介AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU(Cenctral Processing Unit)和闪烁存储器组合在单个芯片中,ATMEL
13、的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-2所示。图3-2 AT89C51外形及引脚图1、主要功能部件和特性:(1) 8位微处理器(CPU)。(2) 程序存储器(4KB Flash ROM)。(3) 数据存储器(128B RAM)。(4) 4个8位可编程并行I/O口(P0口、P1口、P2口、P3口)。(5) 1个全双工的异步串行口。(6) 2个可编程的16位定时器/计数器。(7) 中断系统具有5个中断源、5个中断向量。(8) 32可编程I/O线。(9) 特殊功能寄存器(
14、SFR)26个。(10) 13个程序加密锁定位。(11) 低功耗的闲置和掉电模式。2、AT89C51引脚介绍:(1) VCC(40脚):接+5V电源。(2) GND(20脚):接数字地。(3) XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路的输入端。(4) XTAL2(18脚):片内振荡器反相放大器的输出端。本设计中使用12M晶振。(5) RSTE(9脚):复位信号输入端,高电平有效。(6) EA/VPP(31脚):当EA为高电平时,当超出片内程序范围时自动读取片外程序;当EA为低电平时,只读外部程序内容。本设计EA接VCC。(7) P0口:8位,漏极开路的双向I/O口。当AT89
15、C51扩展外部存储器及I/O口时,P0口作为地址总线低8位,及数据总线的分时复用端口。也可作为通用的I/O口使用,但需要加上拉电阻,这时为准双向口。当作为输入时,应先向端口锁存器写入1。(8) P1口:8位,专为用户使用的准双向口,具有内部上拉电阻。(9) P2口:8为,准双向口,具有内部上拉电阻。当扩展外部存储器及I/O口使用时,作为高8位地址总线。也可作为通用I/O口。(10) P3口:8位,准双向口,具有内部上拉电阻。可作为通用I/O口使用,还提供第二功能,见表3-1。表3-1 P3口第二功能P3.0RXD串行数据输入口P3.1TXD串行数据输出口P3.2INT0外部中断0P3.3INT
16、1外部中断1P3.4T0定时器0外部计数输入P3.5T1定时器1外部计数输入P3.6 WR外部数据写选通输出P3.7RD外部数据读选通输出3.3 硬件模块设计由图3-1系统原理框图可知,整个系统分为五个模块:无线发射模块、无线接收模块、声音报警模块、指示灯显示模块、数码管显示模块,主控芯片是单片机,本设计使用Atmel公司的AT89C51,编程控制周边外设。根据设计步骤,首先要设计程序和仿真,程序设计将在下一章中介绍。在绘制好系统原理框图后,就要设计各个模块的电路图并编程实现模块功能,这两步是同时进行,由系统原理框图我设计了proteus仿真原理图,如图3-3所示。图3-3 硬件仿真原理图在仿
17、真完成之,就在protel中制作原理图和PCB板图,protel原理图如图3-4所示。图3-4 Protel原理图下面将简单的介绍各个模块设计方案。3.3.1无线发射模块无线发射接收模块是从网上购买,本套套件包含:一个4路非锁存输出的接收模块(M4)和一个4键木纹遥控器(编码芯片为PT2262,配有电池),工作频率315MHZ,实际应用距离50-100米。接收模块四路输出,高电平电压约为5V,电流约为2mA,可与单片机对接,或加一级放大驱动继电器或小型直流电机。图3-5所示为发射模块实物图,由PT2262编码,发射模块的A、B、C、D四个按键分别代表不同的病床号,按下表示病人呼叫。图3-5 无
18、线发射模块发射模块有密码保证功能,最多可以编6个数据码和6561个地址码,使重复的机会大大减少。其性能参数如下: 电源电压: DC3VDC12V 静态电流:0.02uA 发射频率:315MHz 发射电流:550mA 发射距离:50800m 调制方式:ASK在通常使用中,我们一般采用8位地址码和4位数据码,这时编码芯片PT2262和解码芯片PT2272的第18脚为地址设定脚,有三种状态可供选择:悬空、接正电源、接地三种状态,3的8次方为6561,所以地址编码不重复度为6561组,只有发射端PT2262和接收端PT2272的地址编码完全相同,才能配对使用,一般生产厂家都把地址编码端悬空,用户可以自
19、己设置编码。设置地址码的原则是:同一个系统地址码必须一致;不同的系统可以依靠不同的地址码加以区分。3.3.2无线接收模块解码接收模块包括接收头和解码芯片PT2272两部分。接收头将接收的信号输入PT2272的14引脚(DIN),PT2272对接收到的信号解码。接收模块实物如图3-6所示。图3-6 无线接收模块引脚定义: VT解码有效指示输出脚; D0-D3四个控制信号输出引脚; VCC+5V; GND负极、地; ANT天线,用24-28CM长的导线。图3-7是制板原理图接收模块接口处,四个数据输出口接到四个I/O口,分别通过四个非门后接在AT89C51单片机的P0.0-P0.3引脚上。图中四个
20、按键是对应四个床位的回复键,与经过反相后的无线信号输入8位与门4068芯片中,4068的1号引脚接到int0端口,当有病人呼叫时,int0由高电平变为低电平,触发外部中断0进入中断处理程序。图3-7 接收模块接口与应答键处理原理图在买模块之前并没有在接受模块后加反相器,购买的模块收到后首先对模块进行测试,不按键时接收模块信号端电压为0V,当有键按下时信号输出端的电压为4.98V,说明接受模块输出为高电平有效,但中断要求是在不按下时P0口都是高电平,因此要在接受模块输出端口后加反相器。于是就又在Proteus中进行仿真,在1-4号键盘后加上反相器,结果在没按下时int0端口就已经是低电平,中断无
21、法触发,分析原因,是由于实物中接受模块是处于连通状态,是有低电平信号的,仿真时键盘在没有按下时处于断路状态,而无法实现在不按时为低电平按下时为高电平,所以,仿真不能实现。对实物图进行测试,接收模块的输出端经反相后,当呼叫键按下时int0由高电平变为低电平,能够触发中断。3.3.3数码管显示模块显示模块如图3-8所示,由CD4511和数码管组成,把病床号显示到数码管上。CD4511的ABCD四个输入接在AT89C51的P1.0-P1.3口上,两个位选端接到P1.4和P1.5口。图3-8 数码管显示模块3.3.4指示灯模块每个床位都有与之对应的指示灯,当有病人呼叫时,其对应的指示灯亮,直到护士应答
22、回复,指示灯用发光二极管实现,分别接在P2口的P2.0-P2.3引脚上,每个指示灯串联一个300电阻,起限流作用,防止电流过大损坏二极管,模块图如图3-9所示。图3-9 指示灯显示模块3.3.5声音模块本设计中四个床位使用一个蜂鸣器报警,接在P3.0引脚上,在中断扫描中,当有人呼叫时开启蜂鸣器,而后利用定时器0中断控制报警10s。利用三极管当做开关电路可以保护单片机,还可以起到放大电流的作用,当三极管基极为低电平时,发射极截止,为高电平时,发射极导通。模块图如图3-10所示。图3-10 声音模块设计时R20的电阻不能过大,先用较大的电阻进行硬件调试,如果测得按下呼叫键后R20两端电压小,那么三
23、极管基极电流就小,蜂鸣器的声音就会小,就要改用小一点的。本设计中使用20K的电阻,调试,蜂鸣器声音正常。第四章 系统软件设计4.1 单片机C语言程序设计步骤程序设计步骤包括绘制程序流程图,编写程序,运行调试,仿真模拟,硬件调试等步骤。4.2 延时子程序设定延时子程序作为方便其他程序调用,避免程序繁琐重复。我将延时子程序定为延时1ms,程序如下:void delay(uint z) /延时子函数1msuint x,y;for(x=z;x0;x-)for(y=110;y0;y-);4.3 数码管显示子程序本设计中使用CD4511芯片作为数码管显示的驱动芯片,CD4511是一个用于驱动共阴极 LED
24、 (数码管)显示器的 BCD 码七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。CD4511的引脚图如图4-1所示。A、B、C、D为 BCD 码输入,A为最低位。CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。限流电阻要根据电源电压来选取,电源电压5V时可使用300的限流电阻。图4-1 CD4511的引脚图其功能介绍如下: BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七
25、段数码管均处于熄灭(消隐)状态,不显示数字;当BI=1时,正常显示。 LT:3脚是测试输入端,当LT=1时,正常显示;当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏 LE:锁定控制端,当LE=0时,允许译码输出; LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的状态。 A1、A2、A3、A4:为8421BCD码输入端。 a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。CD4511的工作真值表见表4-1 。表4-1 CD 4511的真值表LED数码管显示器工作方式有两种:静态显示方式和动态显
26、示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。硬件设计中LE端接地,在程序设计时,我令输入端D
27、CBA均为1,即令P1=0xff来实现数码管的消隐。由于要同时显示不同的数据,所以使用动态扫描方式,动态间隔时间为1ms。串联的限流电阻为100。程序如下:void display(uint aa,uint bb) /显示子函数while(k500) k+;P1=0xff; P1=tableaa; delay(1);P1=0xff; P1=tablebb;delay(1);k=0;P1=0xff; delay(400); 4.4 初始化程序设计初始化程序包括数码管初始化显示00、蜂鸣器截止、定时器和中断系统初始化。(一)、数码管初始化由于使用的数码管为共阴极的,所以要想在起先使数码管显示00,
28、那么两个数码管的片选端都应是低电平,4511的ABCD四个输入口都应该是低电平,因此,P1口应为0x00。(二)、蜂鸣器初始化在电路中NPN型三极管9013作为开关控制蜂鸣器的导通与截止,电阻R20起到限流作用,当P3.0口为低电平时三极管截止,蜂鸣器截止,电压为0,当P3.0为高电平时三极管导通,蜂鸣器导通,电压为5V。因此在初始化时要将P3.0置0。(三)、定时器和中断系统初始化AT89C51有两个定时/计数器,都有定时和计数两种工作模式,四种工作方式(方式0、方式1、方式2、方式3),属于增一计数器。特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。但无论是工作
29、在定时器模式还是计数器模式,实质都是对脉冲信号进行计数,只是计数的来源不同,计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚的外部脉冲进行计数,而定时器模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。1、工作方式控制寄存器TMOD,不能位寻址,其格式如图4-2所示。D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0T1方式字段 T0方式字段图4-2 寄存器TMOD的格式(1) GATE :门控位。(2) M0、M1:工作方式选择位。(3) C/T:计数器和定时器模式选择位。C/T=0,为定时器模式;C/T=1为计数器模式。M0、M1共有4
30、种编码,对应于4种工作方式的选择,见表4-2。表4-2 M1、M0工作方式选择M1 M0工作方式 0 0方式0,为13位定时器/计数器 0 1方式1,为16位定时器/计数器 1 0方式2,8位的常数自动重装的定时器/计数器 1 1方式3,仅用于T0,此时T0分为两个8位计数器,T1停止计数定时器的工作方式设置好以后就要给定时器装入初值,工作方式不同初值也不同。2、下面介绍一下单片机的时钟周期、机器周期和指令周期。(1) 时钟周期是单片机时钟控制信号的基本时间单位。若时钟晶体的震荡频率为f0sc ,则时钟周期Tosc=1/fosc 。(2) 机器周期是CPU完成一个基本操作所需要的时间。AT89
31、C51单片机的每12个时钟周期为一个机器周期,即TCY=12/fOSC 。(3) 指令周期是执行一条指令所需的时间。AT89C51单片机中指令按字节来分,可分为单字节、双字节和三字节指令,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占4个机器周期。本设计中,时钟晶体的频率为12MHZ,所以时钟周期为1/12M。T0作为定时器使用,工作方式为方式1,作为16位计数器。设计数个数为N,计数初值为X,那么X=216-N, 定时时间=N12/晶振频率,所以,定时时间=(216-X)12/晶振频率。本设计设置每隔50ms中断一次,那么得出初值X=0x3CB0,
32、定时器T0的高8位TH0赋值0x3C,低8位TL0赋值0xB0。3、定时器/计数器控制寄存器TCON,可位寻址,其格式见表4-3。表4-3 特殊寄存器TCON的格式D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH_8DH_8BH8AH89H88H TR0:定时器启动位。TR0=0,关闭定时器0;TR0=1,开启定时器0. IT0:选择外部中断0为跳沿触发方式还是电平触发方式。IT0=0,为电平触发方式;IT0=1,为跳沿触发方式。本设计中由于使用按键式开关,产生的是电平脉冲,因此设置IT0=1,为跳沿触发。4、单片机对各中断源的开放或屏蔽是由
33、片内的中断允许寄存器IE控制的,可位寻址,其格式见表4-4。表4-4 中断允许寄存器IE的格式D7D6D5D4D3D2D1D0IEEA_ESET1EX1ET0EX0位地址AFH_ACHANHAAHA9HA8H(1) EA:中断允许总开关控制位。EA=0,所有的中断请求被屏蔽;EA=1,所有的中断请求被开放。(2) ES:串行口中断允许位。ES=0,禁止串行口中断;ES=1,允许串行口中断。(3) ET0:定时器/计数器T0的溢出中断允许位。ETO=0,禁止T0溢出中断;ETO=1,允许T0溢出中断。(4) EX0:外部中断0中断允许位。EX=0,禁止外部中断0中断;ES=1,允许外部中断0中断
34、。AT89C51复位后,IE被清零,所有的中断请求被禁止。所以在初始化时,要令EA=1,EX0=1,ET0=1,开放总中断、允许T0和外部中断0中断。初始化程序如下:void init() /初始化函数P1=0x00; beep=0; TMOD=0x01; TH0=0x3C; TL0=0xB0;ET0=1; EX0=1;IT0=1;EA=1; 4.5 主函数程序设计一个完整的程序中只有一个main函数,首先调用初始化函数进行初始化,然后判断并调用显示子程序使数码管显示。程序流程如图4-3所示。等待中断中断产生的标志变量为1?调用显示子程序调用初始化子程序开始N Y图4-3 主程序流程图4.6
35、外部中断服务子程序本设计中键盘为独立式键盘,键盘的工作方式有3种,即编程扫描、定时扫描和中断扫描。如果采用编程扫描,只能利用单片机空闲时扫描,如果查询的频率低,有可能出现键盘输入漏判现象。而定时扫描使在每隔一段时间扫描一次键盘,如果定时中断的周期大于100ms的话就有可能造成漏判。以上两种方式实时性差,扫描频率高也会对键盘硬件有一定的影响。中断扫描方式只在外部中断产生时进行键盘的扫描,其实时性强,工作效率高。所以本设计利用中断扫描方式。接收信号和键盘状态通过8位与门4068接到int0端口,只有在有键按下时扫描确定是哪个键按下。单片机的中断结构图如图4-4所示。图4-4 CPU中断结构图单片机
36、的中断优先级有如下三条原则: 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断; 正在进行的低优先级中断服务,能被高优先级中断请求所中断; CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。 中断响应条件: 中断源有中断请求; 此中断源的中断允许位为1; CPU开中断(即EA=1)。以上三条同时满足时,CPU才有可能响应中断。本设计中,读取键盘状态时,要进行按键检测和松手检测,以免误判,时间间隔为5ms。temp读取键值,有键按下时temp&0xff才不等于0xff,然后进入while循环执行switch case语句,判断是哪个键按下,如果是有病人呼叫则给相应的标志变量赋
37、值1,点亮指示灯,开启蜂鸣器、定时器,由于数码管显示程序是动态扫描的循环程序,如果在外部中断子程序中调用,就会进入循环,跳不出中断程序,所以要在中断程序给相应的标志变量赋值,然后进入主程序判断标志变量的值,再实现数码管显示处理。如果按下的是应答键,那么判断其相应位的标志变量的值是否为1,如果是1就熄灭相应的指示灯和数码管,给其标志变量赋值0。如果不是1,说明其相应的床位没有呼叫,跳出中断。程序流程如图4-5所示。中断返回使对应的指示灯熄灭、标志变量等于0、关闭数码管显示对应的标志变量为1?Y对应的指示灯点亮,标志变量赋1,开启蜂鸣器、定时器中断返回有键按下?读取P0状态应答操作?有人呼叫?YY
38、图4-5 外部中断0程序流程图4.7 定时器中断服务子程序设计由于蜂鸣器只在有病人呼叫时启动,如果和指示灯一同关闭的话,会对病人和医护造成声音干扰,所以我将在有病人呼叫时开启蜂鸣器和定时器,而用定时器来控制蜂鸣器的关闭,定时器子程序中首先要再次装入初值,间隔50ms中断一次,中断200次后,即时间间隔10s,关闭蜂鸣器和定时器,中断返回。程序流程如图4-6所示NY关闭蜂鸣器、关闭定时器t=200?t增1装入计数初值 图4-6 定时器0程序流程图第五章 硬件制作与软件调试中遇到的问题5.1 硬件设计制作中的问题1、在画四引脚键盘和数码管的封装时,生成的PCB板中没有连线。原因在于画封装的时候焊盘
39、的引脚号跟原理图中的不一样。所以我们在制作封装时一定要看好原理图中的引脚标号,画一致才能更好的布线。2、在初次打印制板中,由于线太细,焊盘太小,而且线上会有网格状的条纹,结果做的板子线上有细纹,部分线不能导通。原因在于打印时默认的是灰度图像,线不是黑的。3、把板子焊接好烧录程序后,数码管显示不对,而指示灯没有错,说明程序出问题的可能性很小,有可能是数码管接线出问题,在不知道自己手里的原件是什么连接方式的情况下,制板焊接是一个大的失误。测试后知其原因,由于我用的数码管是共阴极的,应该是3号和8号引脚接地,但我却根据原理图中的标号布线而没有对引脚做改动,更改后终于成功了。所以要在测试好实物原件之后
40、再制板,原理图与实物是有差距的。其实制作的过程中出过很多问题,这里不在一一举出,只在下面做一个总结。、首先要熟练操作Proteus和Protel软件,熟悉工具的使用和规则的设置。、一定要在原件都齐全后对原件进行测试,之后再制板,以免制板后发现出错。、制作PCB板时,要根据实际情况设置走线宽度和焊盘的大小。、PCB走线时,应把地线和电源线的宽度设置的大一些,可以减少干扰,一般地线在2mm左右,电源线在1.5mm2mm之间。、如果需要画封装,要先测量实物之后再画封装,应建立一个新的封装库,以备己用。、还有就是在打印时焊盘层要至于最上端,还要把孔显示出来。5.2 软件设计中的问题1、仿真时的Prot
41、eus原理图与制作的Protel原理图是有一定的差异的,不是所有的要求都能仿真出来。如本设计中,仿真图没有加单片机的复位和晶振,也没有接收模块设计,所以接收模块输出端没有加反相器,而4068即可以作为与非门也可以作为与门,但由于仿真时1号引脚不能显示,就在后面加了个反相器。但仿真程序与硬件调试时一致,不用做改动,硬件测试好以后,能够很好的实现软硬结合。2、 程序设定的定时为10s,实物测试也在10s左右,但是在仿真时蜂鸣器工作比实物长,不很清楚其中的原因。考虑是单片机晶振不准确。第六章 系统结果与分析图6-1所示为制作最终实物图,功能很好的实现了,稳定性也不错,传输距离约有100米,抗干扰能力
42、强。图6-1 最终实物图电路做完上电,复位以后,数码管按预期显示00,发射模块按下一个键,接收模块能够很好的接收到信号,传输距离大约有100米,蜂鸣器发出响声,对应的指示灯被点亮,数码管显示床位号并闪烁,直到按下对应的回复键,指示灯熄灭,数码管上显示的对应的床位号熄灭,蜂鸣器响10s后自动关闭,等待下一次呼叫时再响起。当有多个都处于呼叫状态时,数码管交替显示床位号并闪烁。当然还存在一些不足,无线传输没有达到理想的效果,直线传输还可以,但穿过障碍物的效果不够好,在实际中可以改用大功率的发射接收模块,并在接受模块上接上较长的天线,或者将接收模块延伸到室外,这种情况都可以得到改进。还有一处不够理想,
43、当有一个床位呼叫后蜂鸣器发出响声,如果在10s内有另一个床位按下,那么,蜂鸣器已经处于启动中,定时器也已经启动,就只能根据第一个床位启动的时间持续10s后关闭,也就是说,如果第二个床位在第一个床位呼叫8s以后按下,那么蜂鸣器在第二个床位呼叫后只响2s就自动停止,此处没有在程序中做处理,但还是有改进的方案的,例如,可以将接收模块的接收VT端接到AT89C51的某一个端口上,当有病人呼叫时,VT端发出高电平信号,这样就可以在定时器子程序中判断VT是否为高电平,如果是高电平,则令定时器中断计数次数归0,就会又持续10s。参考文献1张毅刚、彭喜元. 单片机原理与应用设计M. 电子工业出版社, 2008
44、.2刘文、戴尔晗、王勇. 基于51系列单片机的无线智能温控系统设计J . 电子测试, 2009(10).3肖景和 赵健. 无线遥控组件及其应用电路M. 4阎石主编. 数字电子技术基础M,第五版. 北京:高等教育出版社,2006.5杨素行主编. 模拟电子技术基础教程M,第三版 . 北京:高等教育出版社,2006.6张歌. 无线电制作DIY手册M. 中国水利水电出版社,2004.致 谢 毕业设计如期完成,也取到了良好的结果,这令我很欣慰,虽然做的东西不大,但收获却很大,在这个过程中,我温习了大学阶段的专业课程,熟练掌握了单片机的C语言编程,对专业软件的操作有了更加深入的了解,在制板过程中,掌握了硬
45、件测试的方法步骤和注意事项,使专业理论知识在实际中得到了锻炼,培养了良好的实际动手操作能力和解决问题的能力。在这里,我要真诚的感谢我的导师朱永涛、白帆老师,在平时的学习生活和做毕业设计的过程中给了我很大的支持和指导。从他们的身上我学会了很多动手实践能力,这些都使我终身受益,非常感谢老师对我的培养和无私的奉献。感谢我的搭档刘俏俏在做毕业设计过程中给我的支持和鼓励,及在生活中对我的照顾和帮助。大学四年匆匆而过,真诚的感谢生命科学技术系的所有老师,由于老师们的传道、授业、解惑,我学到了许多知识,并从他们身上学到了如何求知治学。我也要感谢我的母校新乡医学院,是她给我们提供了良好的学习环境和生活环境,使我的大学生活丰富多彩,在我的人生成