毕业设计(论文)-基于AT89S51单片机的多功能病床呼叫系统.doc_第1页
毕业设计(论文)-基于AT89S51单片机的多功能病床呼叫系统.doc_第2页
毕业设计(论文)-基于AT89S51单片机的多功能病床呼叫系统.doc_第3页
毕业设计(论文)-基于AT89S51单片机的多功能病床呼叫系统.doc_第4页
毕业设计(论文)-基于AT89S51单片机的多功能病床呼叫系统.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)说明书题 目: 基于51单片机多 功能病床呼叫系统 系 别: 电子工程系 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 职 称: 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发摘 要我国进行单片机项目开发已经有二十多年的历史,在此期间所进行的单片机开发项目已经由简单到复杂,由小型系统到大型综合系统。单片机应用也越来越广泛,从开始的工作控制,到现在的航空航天、消防安全、工作数据采集、石油地质勘探、铁路交通运输以及楼宇自动化等,甚至目前的许多家电中都有单片机的应用。随着计算机技术的飞速发展,单片机已逐渐发展成为一门关键的技术学科。而随着社会的进步和发展,医疗水平的不断提高,现代医院护理需要简易及时地获知并处理病人的突发病况。基于单片机设计的医院病床呼叫控制系统能同时监控多个病床,避免了人工呼叫的不便与效果差等缺点,它是现代医院必不可少的设备。有了病床呼叫控制系统,医院的护理工作变得更加方便全面,不用再为人手不足或未能及时发现突发病况而烦恼。本文介绍了基于at89s51单片机的多功能病床呼叫系统的设计方法。本设计采用主从结构,当病床有按键按下时,以呼叫源为从机的at89s51单片机对信息进行处理,然后通过芯片max485发送,等待主机的接收;以监控系统为主机的另一块at89s51单片机将接收到的信息处理,并且led数码管显示对应的床号,同时蜂鸣器报警;最后通过复位键撤销报警。at89s51是一个低功耗,高性能cmos 8位单片机,用其设计的电路具有性能可靠,使用方便的优点。关键词:单片机;病床呼叫系统;主从结构;蜂鸣器;at89s51;max485;ledabstractmicrocontroller project development in china has been 20 years of history, undertaken during this period has been microcontroller development projects from simple to complex, from small systems to large integrated systems. microcontroller applications are more and more widely, from the beginning of job control, and now aerospace, fire safety, work data collection, petroleum exploration, rail transportation, and building automation, and even now many home appliances are single-chip microcomputers. with the rapid development of computer technology, microcontroller has been gradually developed and become a key technical discipline. with social progress and development of the continuous improvement of medical standards, modern hospital care needs to be informed and to deal with simple and timely patients sudden illness. design based on single-chip microcomputer of hospital beds in the same time call control system can monitor many beds, to avoid some disadvantages :the inconvenience of artificial call and poor result, these are essential to modern hospital equipment. with the call control system of hospital beds, hospital care has become more convenient and comprehensive, no longer in short supply or failure to timely detection of sudden illness and trouble. a method to devise a multi-bed system is based on the microcontroller at89s51 in the article. this design uses master-slave structure, when the beds when the button is pressed to call the source at89s51 microcontroller from the machine to process the information, then send the chip max485, waiting to receive the host; to monitor and control systems for a host of other at89s51 microcontroller will receive information processing and led digital display of the bed number and the buzzer alarm. finally, reset alarm key revocation. at89s51 is a low-power, high-performance cmos 8-bit microcontroller. the circuit is designed reliable and easy to use with it.keywords: microcontroller; beds call system; master-slave structure; buzzer; at89s51; max485; led目 录引言11 病床呼叫控制系统的研究目的及意义11.1 病床呼叫控制系统的功能与设计方案21.1.1从机实现按键呼叫功能21.1.2主机实现显示功能21.1.3实现远程通信功能21.2 病床呼叫控制系统的原理框图31.3 主要芯片的相关介绍31.3.1 单片机at89s5131.3.2传输芯片max48582 多功能病床呼叫控制系统的硬件设计92.1 电路工作原理图92.1.1从机的构成及工作原理92.1.2主机的构成及工作原理102.2 病床呼叫控制系统的各部分电路设计102.2.1单片机时钟电路的设计102.2.2 单片机复位电路的设计112.2.3按键控制电路的设计122.2.4数码显示电路的设计122.2.5声音报警电路的设计132.2.6通信电路的设计133 多功能病床呼叫控制系统的软件设计143.1 程序设计思想143.2流程分析143.3 程序设计143.3.1从机主程序143.3.2呼叫功能处理153.3.3主机主程序173.3.4床号显示程序183.3.5延时程序184 应用软件及程序语言介绍194.1 protel介绍194.2 keil uvision3介绍194.2.1系统概述194.2.2keil c51单片机软件开发系统的整体结构194.3 c语言介绍205 结论20谢 辞21参考文献22附 件23引言1 病床呼叫控制系统的研究目的及意义病房呼叫系统由安装在病区护士站的呼叫主机和分别设置在病房床头、病房卫生间的呼叫分机、走廊显示屏组成,一旦病房床头或卫生间有人按呼叫按钮,护士站的主机就发出声光报警信号,同时,走廊显示屏同步显示呼叫床位号,护士人员便可以立刻赶往病房处理紧急情况。卫生间的呼叫分机需要有防水功能,这一点很重要。甚至为了方便病区工作人员工作,可以安装通话和显示装置,以便治疗师可以及时了解情况。 病房呼叫系统是为了提高医院管理水平和服务水平的辅助设施。由于患者在住院期间, 可能会在任意时间请求医生或护士进行诊断或护理,所以求助呼叫是传送信息的重要手段。而病床呼叫系统正是患者向值班医生或护士发出紧急呼叫的工具,要将患者的请求快速传送给值班医生或护士,并在护士站的监控中心留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。因此该系统需要24小时连续工作,要求故障率要低,性能要稳定,质量要可靠,能及时、准确地将病人信息传送至值班医生或护士。当今社会, 病床呼叫系统已成为医院不可缺少的监护设备, 它对于病人和医护人员之间的信息沟通起着十分重要的作用, 能够有效的保证病人及时得到医护人员的看护和医治, 同时为医护人员的医护管理带来了极大的方便。而且系统操作简便,利于推广,历来受到各大医院的普遍重视。1.1 病床呼叫控制系统的功能与设计方案目前,医院病床呼叫装置大多由单片机及低压电力线等传输,通过单片机的i/o接口,使得系统构成简单。设计将利用单片机设计制作一个多功能病床呼叫系统。1.1.1从机实现按键呼叫功能以从机作为呼叫源,由at89s51单片机、传输电路及一些外围电路组成。若干个按键接在单片机at89s51的i/o口上,当某一按钮按下时,对应的led灯亮,单片机确认呼叫地址后,扫描i/o的状态。一旦有键按下,立即把对应的请求信息进行处理,再传输电路发送给主机,并等待主机的确认。1.1.2主机实现显示功能以主机作为监控系统,由at89s51单片机、显示装置、报警电路、传输电路以及一些外围电路组成。主机接收从从机发来的信息,并通过单片机at89s51进行处理,然后通过数码管显示对应的床位号,蜂鸣器报警,以便提示医护人员尽快到达现场。1.1.3实现远程通信功能以芯片max485作为传输电路,将从机发送的信号通过有线传输至主机,已达到及时传输病人信息给医护人员的目的。1.2 病床呼叫控制系统的原理框图at89s51振荡电路键 盘max485at89s51蜂鸣器数码管显示max485从机原理框图主机原理框图振荡电路图11.3 主要芯片的相关介绍1.3.1 单片机at89s51(1)at89s51 是一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash 存储器。使用atmel公司高密度非 易失性存储器技术制造,与工业80c51 产品指令和引脚完 全兼容。片上flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统 可编程flash,使得at89s51为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 at89s51具有以下标准功能: 8k字节flash,256字节ram, 32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,at89s51 可降至0hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继续工 作。掉电保护方式下,ram内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。(2)单片机at89s51的特殊功能寄存器mcs-51单片机内有21个特殊功能寄存器,每一个寄存器是一个存储单元,但不作一般ram使用,而是有各自不同的特殊功能。它们主要用于描述单片机的状态字和控制字,大体分为两类:一类发布单片机的地址信号、控制命令以及输入/输出数据信号,通过单片机引脚形成对外电路的三组总线信号;另一类作单片机内部控制使用。简要介绍如下:p0端口地址线/数据线分时使用端口。作地址线使用时,输出低8位地址信号;作数据线使用时,i/o端口,输入/输出数据信号。sp堆栈指针,用于指示堆栈的栈顶。堆栈 内按照“先入后出”原则组织的一段区间,单片机内的堆栈通常设置在片内ram中,具有向下生长的性质。dpl8位数据寄存器。dph8位数据寄存器。dpl和dph除作两个独立8位数据寄存器使用外,还可以和在一起构成一个16位的数据指针,dpl作为低8位,dph作为高8位。pcon电源控制寄存器。对于采用hmos工艺结构的单片机,用于串行方式中选择波特率的倍数。对于chmos工艺结构的单片机,除了用于串行方式中选择波特率的倍数外,还用于选择工作在正常操作方式,或是工作在低功耗操作方式。tcon定时器/计数器控制寄存器,用于确定采用何种触发方式和有无中断申请。tmod定时器/计数器方式控制寄存器,用于规定定时器/计数器的工作方式。tl0定时/器计数器t0的低8位。tl1定时/器计数器t1的低8位。th0定时/器计数器t0的高8位。th1定时/器计数器t1的高8位。p1端口8位i/o数据端,作8条数据线使用。scon串行口控制寄存器,用于设定串行口的工作方式、接收/发送标志。sbuf串行i/o缓冲器,用于接收/发送数据。p2端口高8位地址线/8位i/o数据线合用端口,p2和p0组成单片机的16位地址线。一般情况下,p2做地址线用时,不再用于i/o数据线,因此无需锁存p2。ie中断允许寄存器,用于是否允许或禁止中断。p3端口8位i/o数据线/第2功能线合用端口,在做数据线使用时,不作第2功能线;当作第2功能线时,不作数据线用。ip中断优先级控制寄存器,用于选择中断优先级别。psw程序状态字,反映运算结果标志及选择工作寄存器组。rs0和rs1选择工作寄存器组的决定位。rs1 rs00 0选中0组为工作寄存器组0 1选中1组为工作寄存器组1 0选中2组为工作寄存器组1 1选中3组为工作寄存器组p奇偶标志,指令运算结果有奇数个“1”时,p=1;有偶数个“1”时,p=0。ov溢出标志,运算结果超出补码表示范围时有溢出,ov=1;无溢出,ov=0。f0需用户自己定义。ac半进(借)位,又称辅助进(借)位,运算中低4位向高4位有进(借)位时,ac=1;否则ac=0。cy进(借)位,在加(减)法运算中有进(借)位时,cy=1;无进(借)位时,cy=0。a累加器,8位数据寄存器,是单片机指令操作中用得最多的寄存器。本身带有零标志z,当a=0时z=1,a0时z=0。零标志常用于条件转移。bb寄存器,存放8位数据用。(3)单片机at89s51引脚功能(如图2) 图2p0口p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,p0口也被作为低8位地址/数据复用。在这种模式下,p0具有内部上拉电阻。在flash编程时,p0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 p1口p1口是一个具有内部上拉电阻的8位双向i/o口,p1输出缓冲器能驱动4个ttl逻辑电平。对p1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。 此外,p1.0和p1.2分别作定时器/计数器2的外部计数输入(p1.0/t2)和时器/计数器2的触发输入(p1.1/t2ex),具体如下表所示。在flash编程和校验时,p1口接收低8位地址字节。 引脚号 第二功能 p1.0 t2(定时器/计数器t2的外部计数输入),时钟输出 p1.1 t2ex(定时器/计数器t2的捕捉/重载触发信号和方向控制) p1.5 mosi(在系统编程用) p1.6 miso(在系统编程用) p1.7 sck(在系统编程用) p2口p2口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。在访问外部程序存储器或用16位地址读取外部数据存储器时,p2口送出高八位地址。在这种应用中,p2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,p2口输出p2锁存器的内容。 在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。 p3口p3口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。 p3口亦作为at89s51特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,p3口也接收一些控制信号。 端口引脚 第二功能 p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 into(外中断0) p3.3 int1(外中断1) p3.4 to(定时/计数器0) p3.5 t1(定时/计数器1) p3.6 wr(外部数据存储器写选通) p3.7 rd(外部数据存储器读选通)此外,p3口还接收一些用于flash闪存编程和程序校验的控制信号。rst复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将是单片机复位。ale/prog当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,可禁止ale操作。该位置位后,只有一条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。psen程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89c51由外部程序存储器取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次psen信号。ea/vpp外部访问允许,欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平,cpu则执行内部程序存储器的指令。xtal1和xtal2外部时钟振荡信号输入端。(4)串行通信接口的结构帧和波特率在串行通信中,数据是以帧的格式发送或接收的。一帧数据由811位二进制数组成:起始位1位,常用“0”表示数据的开始;数据常有58位二进制数,并且规定低位在前,高位在后。数据后有奇偶校验位p,最后一位是停止位,以“1”结束。波特率(baud rate)是数据传送的速率,定义为每秒传送的二进制数位数。其倒数是传送1位二进制数所需的时间。片内串行口单片机的串行口主要由一个数据缓冲器sbuf、两个控制寄存器scon和pcon、波特率发生器t1、发送/接收控制器和输入移位控制器等组成。串行口数据缓冲器sbuf既可以用于发送,又可以用于接收,有读写指令区分。串行口控制寄存器scon用于规定串行口的工作状态及存放状态信息。电源控制寄存器pcon用于规定波特率的大小。当需要从串行口rxd端接收数据时,首先应当使用指令使scon的ren位置1,表明cpu允许接受。这时,片外数据串行从rxd进入单片机,数据最低位首先进入,最高位最后进入。进入的数据先在输入移位控制器暂存,等一帧数据进入完毕后再从输入移位控制器并行送入缓冲器sbuf,并经片内总线送到累加器a。与此同时将中断标志ri置位并提出片内串行口中断申请。cpu响应中断后,需要用指令将ri复位,接着进行下一帧数据的接收。当需要从串行口txd端发送数据时,先将数据从累加器a并行写入到sbuf中,再经控制门串行从txd送到单片机外。一帧数据发送完毕,sbuf内空,引起中断标志位ti置位发出片内串行口中断申请。cpu响应中断后,需要用指令将ti复位,接着进行下一帧数据发送。异步通信和同步通信通信双方按事先约定的帧格式完成数据发送和接收的全过程,称为异步通信。由于一帧数据采用固定格式,发送方只要有数据从起始位发出,接收方就能接收到,因此异步通信不需要专门的同步字符。通信双方使用同步字符实现数据发送和接收的全过程,称为同步通信。通信前,发送数据和接收数据的双方约定好同步字符。发送方先发送同步字符,随后是一组数据。接收方只要接收到同步字符,就把同步字符后面出现的数据块当作有用数据一并接受。(5)单片机at89s51相对于at89c51增加的新功能包括: 新增加很多功能,性能有了较大提升,价格基本不变,甚至比at89c51更低! isp在线编程功能,在改写单片机存储器内的程序时不用把芯片从工作环境中剥离。 最高工作频率为33mhz,就是说s51具有更高工作频率,从而具有了更快的计算速度。 具有双工uart串行通道。 内部集成看门狗计时器,不再需要像at89c51那样外接看门狗计时器单元电路。 双数据指示器。 电源关闭标识。 全新的加密算法,程序的保密性加强,这样就可以有效的保护知识产权不被侵犯。 兼容性方面:向下完全兼容51全部字系列产品。比如8051、89c51等等早期mcs-51兼容产品。在at89s51上一样可以照常运行,这就是所谓的向下兼容。at89s51就是在这样的背景下取代at89c51的,所以本设计也选用了at89s51。1.3.2传输芯片max485 max485是用于rs-485通信的低功耗收发器,芯片中具有一个驱动器和一个接收器。max485的驱动器摆率不受限制,可以实现最高2.5mbps的传输速率。这种收发器在驱动器禁用的空载或满载状态下,吸取的电源电流在120a 至500a 之间。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态,防止过度的功率损耗。接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出。max485采用单一电源+5 v工作,额定电流为300a,采用半双工通讯方式。它完成将ttl电平转换为rs485电平的功能。max485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。ro和di端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的rxd和txd相连即可;/re和de端分别为接收和发送的使能端,当/re为逻辑0时,器件处于接收状态;当de为逻辑1时,器件处于发送状态,因为max485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;a端和b端分别为接收和发送的差分信号端,当a引脚的电平高于b时,代表发送的数据为1;当a的电平低于b端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制max485的接收和发送即可。同时将a和b端之间加匹配电阻,一般可选100的电阻。图32 多功能病床呼叫控制系统的硬件设计2.1 电路工作原理图2.1.1从机的构成及工作原理图4以从机作为呼叫源,由at89s51单片机、传输电路及一些外围电路组成(如图4)。若干个按键接在单片机at89s51的i/o口上,当某一按钮按下时,对应的led灯亮,单片机确认呼叫地址后,扫描i/o的状态。一旦有键按下,立即把对应的请求信息进行处理,再传输电路发送给主机,并等待主机的确认。2.1.2主机的构成及工作原理图5以主机作为监控系统,由at89s51单片机、显示装置、报警电路、传输电路以及一些外围电路组成(如图5)。主机接收从从机发来的信息,并通过单片机at89s51进行处理,然后通过数码管显示对应的床位号,对应的led灯亮,蜂鸣器报警,以便提示医护人员尽快到达现场。2.2 病床呼叫控制系统的各部分电路设计2.2.1单片机时钟电路的设计图6单片机的时钟信号一般由两种电路产生:内振荡电路和外振荡电路。设计采用内振荡电路提供时钟脉冲,要在xtal1和xtal2之间外接6m振荡器石英晶体,以及两个30pf的电容(如图6)。这时的内部振荡电路相当于一个高增益放大器,与晶振接在一起形成正反馈的自激振荡,再经整形和分频形成单片机内各逻辑部件所需的时钟脉冲。2.2.2 单片机复位电路的设计设计采用手动复位按钮方式,并接10k电阻和10f极性电容(如图7)。图7单片机的复位操作由复位引脚rst/vpd上出现的高电平引起。复位后机内各个特殊功能寄存器将被初始化:p0p3=ffh已向各端口线写入1,使各端口既能作输入线,又能作输出线使用。sp=07h堆栈栈底位于07h单元,第1个进栈字节将写入08h单元中。dptr=0000h片外存储器的操作将从0000h单元开始。tcon=00ht0、t1的工作被停止。tl0=00h,th0=00ht0的初值为0000h。tl1=00h,th1=00ht1的初值为0000h。scon=00h串行口处于工作方式0,允许发送,禁止接受。psw=00h工作寄存器选用0组。a=00h累加器清0。b=00hb寄存器清0。2.2.3按键控制电路的设计图8设计中的从机有4个按键,分别与at89s51单片机的p1.1、 p1.2、p1.3、 p1.4口相连,代表4个病床号。还有4个发光二极管分别与at89s51单片机的p2.0、p2.1、p2.2、p2.3相连,并与4个按键相对应。当有按键按下时,相对应的发光二极管会被点亮(如图8)。2.2.4数码显示电路的设计 图9数码显示有静态显示和动态显示两种方式。而数码显示器有发光二极管led和液晶显示器lcd两种。设计采用静态共阳极led显示,vcc接+5v,每一条段选线a、b、c、d、f、e、g、dp分别与主机的at89s51单片机的p2口相连,当i/o口输出0时,该段点燃,输出数字按段选线组成。同时,当有病床呼叫时,原为绿色的led灯熄灭,而对应的红灯点亮(如图9)。2.2.5声音报警电路的设计图10报警电路由蜂鸣器、pnp三极管和4.7k电阻组成,并接于主机的at89s51单片机的p1.2口。当从机有按键按下时,该i/o口为0,蜂鸣器报警(如图10)。2.2.6通信电路的设计图11设计采用芯片max485作通信电路,因此分别为接收器的输出和驱动器的输入端的ro和di端,与单片机连接时只需分别与单片机的rxd和txd(即:p3.0和p3.1口)相连;/re和de端分别为接收和发送的使能端,当/re为逻辑0时,器件处于接收状态;当de为逻辑1时,器件处于发送状态。由于芯片max485工作在半双工状态,故只用单片机的p3.5口控制这两个引脚即可;a端和b端分别为接收和发送的差分信号端,当a引脚的电平高于b时,代表发送的数据为1;当a的电平低于b端时,代表发送的数据为0(如图11)。分别在主、从机接上通信电路,a、b端对应相连,即可实现有线传输功能。3 多功能病床呼叫控制系统的软件设计3.1 程序设计思想当病人按下病床按钮时,病床指示灯亮,呼叫系统启动、处理数据并处于发送状态,等待值班室的接收。当值班室接收到呼叫数据后,显示器显示病床号,同时有声音报警。如果医护人员处理完毕后,可通过复位键清除信号。3.2流程分析设计流程图(如图12):开 始是否有按键按下点亮床头灯串口数据缓冲器sbuf赋值max485处于发送状态发送数据max485处于接收状态接收数据串行口用方式1接收串行口用方式1发送验证sbuf的值显示床号报 警是是复位清除信号是否否否从机流程图主机流程图图123.3 程序设计3.3.1从机主程序void main(void)scon = 0x40;tmod = 0x20;th1 = 0xf0;tl1 = 0xf0;tr1 = 1;p2 = 0xff;while(1)key11();key12();key13();key14(); 3.3.2呼叫功能处理void key11(void)uchar temp ;if(key1 = 0) key_delay();if(key1 = 0) p2 = 0xfe;temp = 0x56;sbuf = temp;while(ti=0);ti = 0; while(key1 = 0) ; fs = 1; void key12(void)uchar temp ; if(key2 = 0) key_delay();if(key2 = 0) p2 = 0xfd;temp = 0x59;sbuf = temp;while(ti=0);ti = 0; while(key2 = 0) ; fs = 1; void key13(void) uchar temp ; if(key3 = 0) key_delay();if(key3 = 0) p2 = 0xfb;temp = 0x65;sbuf = temp;while(ti=0);ti = 0; while(key3 = 0) ; fs = 1; void key14(void)uchar temp ; if(key4 = 0) key_delay();if(key4 = 0) p2 = 0xf7;temp = 0x95;sbuf = temp;while(ti=0);ti = 0; while(key4 = 0) ; fs = 1; 3.3.3主机主程序void main(void)uchar cemp;scon = 0x50;tmod = 0x20;th1 = 0xf0;tl1 = 0xf0;tr1 = 1;js = 0;led1 = 1;led2 = 0;led3 = 1;led4 = 0;led5 = 1;led6 = 0;led7 = 1;led8 = 0;p2 = 0x3f;while(1) while(ri=0) ;ri = 0;desplay();cemp = p2;while(1) p2=cemp;beep = 0;delays();p2 = 0x00;beep = 1;delays();if(ri = 1)break;3.3.4床号显示程序void desplay(void)switch(sbuf)case 0x56: p2 = 0x06;p0 = sbuf ;break;case 0x59: p2 = 0x5b;p0 = sbuf ;break;case 0x65: p2 = 0x4f;p0 = sbuf ;break;case 0x95: p2 = 0x66;p0 = sbuf ;break; 3.3.5延时程序(1)1ms的延时void key_delay(void) unsigned char n, m; for (n = 7; n 0; n-) for (m = 70; m 0; m-);(2)1s的延时void delays(void) unsigned char n, m,k,i; for (i = 5; i 0; i-) for (k = 4; k 0; k-) for (n = 116; n 0; n-) for (m = 172; m 0; m-); 4 应用软件及程序语言介绍4.1 protel介绍protel是portel公司在80年代末推出的eda软件,在电子行业的cad软件中,它当之无愧地排在众多eda软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,有些高校的电子专业还专门开设了课程来学习它,几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用protel。早期的protel主要作为印制板自动布线工具使用,运行在dos环境,对硬件的要求很低,在无硬盘286机的1m内存下就能运行,但它的功能也较少,只有电原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的protel已发展到protel99(网络上可下载到它的测试板),是个庞大的eda软件,完全安装有200多m,它工作在windows95环境下,是个完整的板级全方位电子设计系统,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有client/server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如orcad,pspice,excel等,其多层印制线路板的自动布线可实现高密度pcb的100布通率。在国内protel软件较易买到,有关protel软件和使用说明的书也有很多,这为它的普及提供了基础。4.2 keil uvision3介绍4.2.1系统概述keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍keil c51开发系统各部分功能和使用。4.2.2keil c51单片机软件开发系统的整体结构 c51工具包的整体结构,如图(1)所示,其中uvision与ishell分别是c51 for windows和for dos的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用ide本身或其它编辑器编辑c或汇编源文件。然后分别由c51及a51编译器编译生成目标文件(.obj)。目标文件可由lib51创建生成库文件,也可以与库文件一起经l51连接定位生成绝对目标文件(.abs)。abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如eprom中。4.3 c语言介绍c语言一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到c语言,具体应用比如单片机以及嵌入式系统开发。c语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如dbase 都是由c 语言编写的。用c 语言加上一些汇编语言子程序,就更能显示c 语言的优势了,像pc- dos 、wordstar等就是用这种方法编写的。 归纳起来c 语言具有下列特点:(1) c是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。c 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。(2)c是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。c 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。(3)c语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外c语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。(4)c语言适用范围大。适合于多种操作系统,如windows、dos、unix等等;也适用于多种机型。c语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用c语言编写的。c语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。(5)c语言文件由数据序列组成,可以构成二进制文件或文本文件。5 结论采用单片机at89s51设计的多功能病床呼叫系统,主要由主、从机构成,并通过传输芯片max485为主的通信电路进行传输,设计结构简单、成本低、可靠性高、布线施工方便、易于维护,更重要的是能及时让病人与医护人员进行信息沟通,为医护人员的医护管理带来了极大的方便。因此,该病床呼叫系统具有较高的实用价值。参考文献1 陈尚松、雷加、郭庆. 电子测量与仪器(第2版).北京:电子工业出版社,20082 赵茂泰. 智能仪器原理及应用(第3版).北京:电子工业出版社,20083 喻宗泉,喻晗,李建民. 单片机原理与应用技术.西安:电子科技大学出版社,20064 阳宪惠. 现场总线技术及其应用(第2版).北京:清华大学出版社,20075 张国雄. 测控电路(第3版).北京:机械工业出版社,20086 江国强. 新编数字逻辑电路.北京:邮电大学出版社,20067 赵亮,候国锐.单片机的c语言编程与实例m.人民邮电出版社,2001附 件从机pcb和程序:#include#define uchar unsigned char sbit key1 = p11 ;sbit key2 = p12 ;sbit key3 = p13 ;sbit key4 = p14 ;sbit led1 = p20 ;sbit led2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论