1、学号20091230127本科毕业论文二一三年六月毕业设计(论文)诚信声明书题目基于单片机的病房呼叫系统的设计院系生命科学技术学院专业生物医学工程班级2009级1班学生姓名导师姓名新乡医学院生命科学技术学院毕业设计(论文)本人声明本人所提交的毕业论文基于单片机的病房呼叫系统的设计是本人在指导教师指导下独立研究、写作的成果,论文中所引用他人的无论以何种方式发布的文字、研究成果,均在论文中加以说明;有关教师、同学和其他人员对本文的写作、修订提出过并为我在论文中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。本论文和资料若有不实之处,本人承担一切相关责任。论文作者(签字)时间年月日指导教
2、师已阅(签字)时间年月日目录摘要IABSTRACTII第1章引言1新乡医学院生命科学技术学院毕业设计(论文)11课题背景及研究意义112国内外现状113课题的设计目的214课题设计的基本要求2第2章系统总体方案及模块设计321系统总体方案及框图322时钟电路设计323系统复位电路设计424键盘扫描电路设计4241矩阵式键盘4242键的识别525LED数码管显示部分626响铃报警电路设计部分927系统总体硬件电路图10第3章单片机AT89C51简介1131AT89C51的基本结构1132AT89C51的指令系统1333AT89C51单片机的定时/计数器13第4章系统软件设计1441单片机C语言程
3、序设计步骤1442系统主程序流程图1443显示程序流程图1544键盘扫描流程图16第5章电路的仿真及调试1751软件的仿真1752硬件调试分析1853调试问题分析与总结18第6章问题与总结19参考文献20致谢21附录22新乡医学院生命科学技术学院毕业设计(论文)第I页摘要随着无线技术的发展,无线应用技术已经渗透到生活的各个领域,无线传输技术也越来越成熟,本设计是将无线传输技术应用到临床上的研究型课题,实现基于单片机AT89C5L和无线传输系统构成的无线多路病床呼叫系统。本设计是以AT89C51单片机为核心,辅以矩阵键盘、LED显示电路和部分简单模拟和数字电路组成的能够实现病人与医护人员的远距离
4、沟通。在此设计中每个病房都有一个按键,按下按键,此时值班室的显示屏上会显示相应病房号,指示灯亮,声音报警,医护人员按下复位键取消当前呼叫。从硬件和软件方面阐述了该控制系统的设计方法,并经过调试和运行使该系统达到预期目标,通过对病区的的数据采集,实现医院医疗人员值班室与病人室之间的通信呼叫联系,是无线网络技术在临床上的大胆应用,具有反应快、功能齐全、实用性强的特点。关键词AT89C51;数码管;呼叫系统;矩阵键盘;新乡医学院生命科学技术学院毕业设计(论文)第II页ABSTRACTASWIRELESSAPPLICATIONTECHNOLOGYHASPENETRATEDALLASPECTSOFLIF
5、E,WIRELESSTRANSMISSIONTECHNOLOGYISMOREANDMORESOPHISTICATEDTHISDESIGNISTHEWIRELESSTRANSMISSIONTECHNOLOGYTOTHECLINICALRESEARCHONTHESUBJECT,ANDTHEREALIZATIONOFWIRELESSTRANSMISSIONBASEDONSINGLECHIPAT89C5LMODULESCONSISTINGOFMULTIPLEBEDSCALLSYSTEMTHESYSTEMISAWARDCALLSYSTEMBASEDONTHE51SERIESMICROCHIPDESIGN
6、THESYSTEMUSESAT89CS1MICROCONTROLLERASTHECORE,SUPPLEMENTEDBYMATRIXKEYBOARD,LEDDOTMATRIXDISPLAYOFASIMPLECIRCUITANDSOMEANALOGANDDIGITALCIRCUITSTOACHIEVETHETRANSFEROFINFORMATIONBETWEENPATIENTSANDHEALTHCAREINTHISDESIGN,EACHWARDHASABUTTON,WHENPATIENTSINNEED,PRESSTHEBUTTON,THEDISPLAYOFTHEDUTYROOMTODISPLAYT
7、HENUMBEROFBEDSINTHISPATIENT,PEOPLEUSETOACHIEVECIRCULARDISPLAY,PRESSTHEMEDICALSTAFF“RESPONSE“TOCANCELTHECURRENTCALLTHEDESIGNWASINTRODUCEDACCORDINGTOHARDWAREANDSOFTWAREANDTHROUGHTHECOMMISSIONINGANDOPERATIONTOACHIEVETHEDESIREDGOALSBASEDONDATACOLLECTION,WARDHOSPITALMEDICALPERSONNELDUTYANDPATIENTROOMSOFC
8、OMMUNICATIONBETWEENTHECONNECTTHESYSTEMISBOLDAPPLICATIONOFTHEWIRELESSNETWORKTECHNOLOGYINTHECLINICALITHASFASTRESPONSE,FUNCTIONALANDPRACTICALFEATURESKEYWORDSAT89C51,DIGITALPIPE,CALLINGSYSTEM,MATRIXKEYBOARD新乡医学院生命科学技术学院毕业设计(论文)第1页第1章引言11课题背景及研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已
9、经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。本设计使用单片机作为核心的多路病房呼叫系统,分为矩阵键盘部分、数码管显示部分、单片机部分、晶振电路与声音报警部分。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。本系统通过无线电实现信号的传递,单片机作为控制部件协调处理整个系统的工作,实现无线信号的远距离传输,减少了材料的耗费,安装简单,使医患沟通更加灵活,是无线网络技术在医学临床上的大胆应用,具有创新性。12国内外现状病房呼叫系统是医院的必备设备,在国内外各行各业的应用已经十分广泛,为方
10、便患者和医护人员的及时联系,提高医疗服务质量起着重要的作用。目前医院使用的病房呼叫系统多为有线呼叫系统,存在布线费用较高、易出故障、维修不方便、明显不雅观等诸多缺陷。随着医疗条件的不断提高,越来越多的医院采用无线呼叫系统,它不仅施工和维护方便、呼叫操作简单,而且医护人员可以随时接受病人的呼叫信息,及时处理各种突发事件,但同日本、美国、德国等先进国家相比,仍然有着较大的差距。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关医院资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国无线病房呼叫系统得到了迅速的发展。早期的单片机都是8位或4位的。其中最成功的是
11、INTEL的8031。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机。随着INTELI960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的WINDOWS和LINUX操作系统。新乡医学院生命科学技术学院毕业设计(论文)第2页13课题的设计目的1巩固、加深和扩大单片机应用的知识面和专
12、业理论知识的应用,提高综合及灵活运用所学知识解决工业控制的能力。2熟悉单片机专业软件PROTEUS与软件调试器软件KEILUVISION4的使用方法,并能熟练的运用两者结合达到模拟仿真的效果;3通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。14课题设计的基本要求设计出稳定高效的运行系统,并且有一定的抗干扰能力,能够实现多路呼叫且互不干扰。距离在100M范围内,实现多路无线病床呼叫,并留有扩展空间。每个病房有一个按钮,当按下一个按钮时,数码管显示病床号,指示灯闪烁,报警电路报警。当护士按复位键应答,数码显示管显示消失,取消当前呼叫。未按复位
13、键时,再按下另一按钮,数码管显示相应病房号,指示灯闪烁,报警电路报警。单片机复位时,系统清零。新乡医学院生命科学技术学院毕业设计(论文)第3页第2章系统总体方案及模块设计21系统总体方案及框图无线病房呼叫系统在工作过程中,为了知道是哪个房间的病人发出呼叫信号,必须设计一个系统来完成此任务。此系统能显示呼叫房间号,并发出报警声。系统框图如下图所示图21系统框图22时钟电路设计单片机必须在时钟的控制下才能工作,在单片机内部有一个用于构成振荡器的高增益反相放大器,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。此设计中的时钟电路选用内部时钟方式的石英晶体振荡器,它的输入端为
14、芯片引脚XTAL1,在加电大约延迟10MS后振荡器起振;输出端为XTAL2,产生幅度为3V左右的正弦波时钟信号。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2的作用有两个一是帮助振荡器起振二是对振荡器的频率进行微调。C1、C2的典型值为30PF。单片机执行的指令均是在CPU控制器的时序控制电路的控制下进行的,各种时序均与时钟周期有关。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用F表示,是单片机时钟控制信号的基本时间单位。如时钟频率为6M
15、HZ,即F6MHZ,则时钟周期为1/6S。晶振电路声音报警电路AT89C51矩阵键盘电路数码管显示电路新乡医学院生命科学技术学院毕业设计(论文)第4页图22时钟频率电路23系统复位电路设计AT89C51的复位是由外部的复位电路实现的,复位电路通常采用上电自动复位和按钮复位两种方式本设计采用按钮手动电平复位,该设计是通过RST端经电阻与电源VCC接通来实现的,当时钟频率选用6MHZ时,C的典型取值为10UF,R的取值为2K,具体电路图如图23所示。图23复位电路24键盘扫描电路设计241矩阵式键盘键盘具有向单片机输入数据,命令等功能,是人与单片机对话的主要手段。在单片机中应用最多的是独立式键盘和
16、矩阵式键盘。本设计采用矩阵式键盘,也称为行列式键盘,用于按键数目较多的场合。与独立式键盘相比,要节省较多的I/O口。它由行线和列线组成,一组为行线,一组为列线,按键位于行列的交叉点上。矩阵键盘中无按键按下时,行线位于高电平状态;当有键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线电平如果为高,则行线的电平也为高,这一点是识别矩阵式键盘按键是否按下的关键所在。由于矩阵式键盘中行、列线为多键共用,各按键彼此将相互影响,所以必须将行、列信号配合,才能确定闭新乡医学院生命科学技术学院毕业设计(论文)第5页合键的位置。本设计中采用44矩阵键盘电路设计,其电
17、路图如下图所示图2444矩阵键盘电路图242键的识别为了识别键盘上的闭合键,通常采用两种方法,一种为扫描法,另一种为线发转法。1扫描法原理识别键盘有无键按下,可分两部进行第1步,识别键盘有无键按下;第2步,如有键按下,识别出具体的键位。下面以44行、列结构中键3被按下为例说明扫描法识别此键的过程。第1步,识别键盘有无键按下。首先把所有列线均置为0电平,然后检查各行线电平是否为高电平,如果不全为高电平,说明有键按下,否则说明无键被按下。例如,当键3按下时,第1行线电平为低电平,但还不能确定是键3被按下,第2步,识别那个键被按下。采用扫描法,在某一时刻只让1条列线处于低电平,其余所有列线处于高电平
18、。当第1列为低电平,其余各列为高电平时,因为是键3被按下,所以第1列的行线仍处于高电平;而当第2列为低电平,其余各列为高电平时,同样也会发现第1行的行线仍处于高电平状态;直到让第4列为低电平,其余各列为高电平时,此时第1行的行线电平变为低电平,据此,可判断第1行与第4列交叉点处的按键,即键3被按下。去除键抖动用软件延时来消除按键抖动,基本思想是在检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。线反转法原理线反转法需3步,即可确定按键所在的行和列,从而识别出所按的键。第1步执行程序使行线均为低电平,
19、此时读取各列线的状态即可知道是否有键按下。当无键按下时,各行线与各列线相互断开,各列线仍保持为高电平;当有键按下时,则相应新乡医学院生命科学技术学院毕业设计(论文)第6页的行线与列线通过该按键相连,该列线就变为低电平,此时读取列线的状态,得到列码。第2步,执行程序使列线均为低电平,当有键按下时,行线中有一条为低电平,其余行线为高电平,读取行线的状态,得到行码。第3步,将第一步得到的列码和第二步得到的行码拼合成被按键的位置码,即为所得(因为行线和列线各有一条为低电平,其余为高电平,所以位置码低四位和高四位分别只有一位低电平,其余为高电平)。也就是说,当某个键按下时,该键两端所对应的行线和列线为低
20、电平,其余行线和列线为高电平。全部矩阵键盘的位置码如下表21所示表21矩阵键盘位置码键值位置码键值位置码键值位置码键值位置码10X7750X7B90X7D130X7E20XB760XBB100XBD140XBE30XD770XDB110XDD150XDE40XE780XEB120XED160XEE本设计中采用扫描法。其综合思想是先把某一列置为低电平,其余各列置为高电平,检查各行线电平的变化,如果某行线电平为低电平,则可确定此行此列交叉点处的按键被按下。25LED数码管显示部分LED发光器件一般常用的有两类数码管和点阵。7段数码管属于LED发光器件的一种。为适用于不同的驱动电路,有共阴极共阳极两
21、种,为了使LED数码管显示不同的符号和数字,要把某些段的发光二极管点亮,这样就要为LED数码管提供代码,因为这些代码可使LED相应的段发光,从而显示不同字形,因此改代码段也称为段码或字型码。新乡医学院生命科学技术学院毕业设计(论文)第7页图25LED显示器的两种结构LED数码管共计8段。因此提供给LED数码管的段码正好是一个字节。在使用时,一般习惯上还是以A段对应段码字节的最低位。各段与字节中各位对应关系见表22表22段码与字节中各位对应关系代码位D7D6D5D4D3D2D1D0显示段DPGFEDCBALED数码管有静态显示和动态显示两种显示方式。静态显示指无论多少位LED数码管,同时处于显示
22、状态,静态显示方式的显示无闪烁,亮度都较高,软件控制比较容易。动态显示指无论在任何时刻只有一个LED数码管处于显示状态,即单片机采用“扫描方式”控制各个数码管轮流显示。显示亮度不如静态显示的亮度高,如果扫描速率较低,会出现闪烁现象。本设计中采用动态显示,利用74LS373和显示器组成显示系统。LED不同位显示的时间间隔(扫描间隔)应根据实际情况而定。发光二极管从导通发光有一定的延时,导通时间太短,发光太弱,人眼无法看清;时间太长,要受限于临界显烁频率,而且此时间越长,占用单片机的时间也越多。因此动态显示的实质是以牺牲单片机时间来换取I/O端口的减少。用AT89C51自身接口实现数码管动态显示和
23、键盘扫描,使用AT89C51单片微机外加地址锁存用的2块8三态锁存器74LS373。74LS373是常用的地址锁存芯片,它实质是一个带三态缓冲输出的8D触发器。其引脚图如下图26所示新乡医学院生命科学技术学院毕业设计(论文)第8页图2674LS373引脚图其功能介绍如下1脚是输出使能OE,是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚锁存控制端,G如何,输出2Q0、5Q1、6Q2、9Q3、12Q4、15Q5、16Q6、19Q7全部呈现高阻状态或者叫浮空状态当1脚是低电平时,只要11脚锁存控制端,G上出现一个下降沿,输出2Q0、5Q1、6Q2、9
24、Q3、12Q4、15Q5、16Q6、19Q7立即呈现输入脚3、4、7、8、13、14、17、18的状态锁存端LE由高变低时,输出端8位信息被锁存,直到LE端再次有效。当三态门使能信号OE为低电平时,三态门导通,允许Q0Q7输出,OE为高电平时,输出悬空。1D8D为8个输入端。1Q8Q为8个输出端。其在电路图中的连接如图26所示新乡医学院生命科学技术学院毕业设计(论文)第9页图2774LS373锁存器及数码管显示电路26响铃报警电路设计部分用三极管加限流电阻作为控制开关,用单片机P23口控制,利用三极管当做开关电路可以保护单片机,还可以起到放大电流的作用,当三极管基极为低电平时,发射极截止,为高
25、电平时,发射极导通。显示器显示床号同时发出报警声。通过编程令单片机执行中断程序。其电路图28如图28响铃报警电路新乡医学院生命科学技术学院毕业设计(论文)第10页27系统总体硬件电路图本系统利用AT89C51作为呼叫系统的核心,外围电路有晶振电路、系统复位电路、响铃报警电路和LED数码显示电路以及其他各应用电路。系统总体硬件如图29所示。图29系统总体硬件电路图新乡医学院生命科学技术学院毕业设计(论文)第11页第3章单片机AT89C51简介31AT89C51的基本结构AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFLASHPROGRAMMABLEANDERASABLER
26、EADONLYMEMORY)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU(CENCTRALPROCESSINGUNIT)和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其管脚图如31所示图3189C51管脚图部分引脚说明
27、1时钟电路引脚XTAL1和XTAL2XTAL218脚接外部晶体和微调电容的一端;在8051片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。新乡医学院生命科学技术学院毕业设计(论文)第12页要检查8051/8031的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL119脚接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。控制信号引脚RST,ALE,PSEN和EARST/VPD9脚RST是复位信号输入端,高电平有效。ALE/PROG30脚地址锁存允许信
28、号端。当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率FOSC的1/6。CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。ALE端的负载驱动能力为8个LS型TTL低功耗甚高速TTL负载。此引脚的第二功能PROG在对片内带有4KBEPROM的8751编程写入固化程序时,作为编程脉冲输入端。PSEN29脚程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM的OE端见后面几章任何一个小系统硬件图。PSEN端有效,即允许读出EPROMROM中的指令码。PSEN端同样可驱动8个LS型TTL负载。要
29、检查一个8051/8031小系统上电后CPU能否正常到EPROMROM中读取指令码,也可用示波器看PSEN端有无脉冲输出。如有则说明基本上工作正常。EA/VPP31脚外部程序存储器地址允许输入端/固化编程电压输入端。2输入/输出端口P0/P1/P2/P3P0口P00P07,3932脚P0口是一个漏极开路的8位准双向I/O口。作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。当P0口作为输入口使用时,应先向口锁存器地址80H写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU访问片外存储器时,P0口分时提供低8位地址和8位数据的复用总
30、线。在此期间,P0口内部上拉电阻有效。P1口P10P17,18脚P1口是一个带内部上拉电阻的8位准双向I/O口。P1口每位能驱动4个LS型TTL负载。在P1口作为输入口使用时,应先向P1口锁存地址90H写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口P20P27,2128脚P2口是一个带内部上拉电阻的8位准双向I/O口。P口每位能驱动4个LS型TTL负载。在访问片外EPROM/RAM时,它输出高8位地址。新乡医学院生命科学技术学院毕业设计(论文)第13页P3口P30P37,1017脚P3口是一个带内部上拉电阻的8位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O
31、端口有很大的区别,它的每个引脚都有第二功能,如下P30RXD串行数据接收。P31RXD串行数据发送。P32INT0外部中断0输入。P33INT1外部中断1输入。P34T0定时/计数器0的外部计数输入。P35T1定时/计数器1的外部计数输入。P36WR外部数据存储器写选通。P37RD外部数据存储器读选通。32AT89C51的指令系统AT89C51的指令系统是一种简明、易掌握、效率较高的指令系统,它共有7种寻址方式,111条指令,按其功能可分为五大类1数据传送类指令(28条);2算术运算类指令(24条);3逻辑操作类指令(25条);4控制转移类指令(17条);5位操作类指令(17条)。指令的表示方
32、法称为指令格式。一条指令通常有两部分组成操作码和操作数。大多数指令在执行时都需要使用操作数。寻址方式就是在指令中说明操作数所在地址的方法,一般来说,寻址方式越多,单片机的功能就越强,灵活性则越大,指令系统则就越复杂,AT89C51单片机的指令系统有7中寻址方式。分别是寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、立即数寻址方式、基址寄存器加变址寄存器间接寻址方式、相对寻址方式和位寻址方式。33AT89C51单片机的定时/计数器在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。80C51单片机内集成有两个可编程的定时/计数器T0和T1,它
33、们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。新乡医学院生命科学技术学院毕业设计(论文)第14页第4章系统软件设计41单片机C语言程序设计步骤程序设计步骤包括绘制程序流程图,编写程序,运行调试,仿真模拟等步骤。病房呼叫系统软件设计均采用模块化设计,整个程序主要包括主程序、键盘扫描程序、显示程序。所有程序均采用单片机C语言编写。病房呼叫系统的软件设计思路说明如下主程序的作用为程序初始化,显示病房编号病房号的获得在键盘扫描程序中实现。通过不断的扫描,检查是否有病人呼叫。显示程序通过扫描16个病床的判断标志截来决定是否需要显示床号。键盘扫描程序是重要
34、组成部分,它的功能是判困是否有按键并进一步确认是哪个按键按下或释放,同时修改相应的标志位,以运用到显示程序中。42系统主程序流程图主程序流程图给出了系统工作的基本过程,描述了信号的基本流向,起到了一个向导的作用。图41主程序流程图新乡医学院生命科学技术学院毕业设计(论文)第15页主程序描述首先对各存储单元初始化,设定定时初值,清零键,然后继续扫描键盘,如扫描到键盘有键按下,则进而判断是嘟个床位按下,进而显示病床号时,要判断标志位,若已经按下,则不响应,否则显示病床号。最后,返回扫描键值程序,准备下一次的判断。43显示程序流程图显示程序主要是来判断是否需要显示,以及如何去显示,是十分重要的程序之
35、一。设计流程图如42图所示。图42显示程序流程图显示程序描述设定床号标志为,令N从1开始,判断床号是否为0,若不为0,表示有病房呼叫,则显示床号,继续扫描键值判断是否有别的病房呼叫,若N为0,表示无呼叫,则继续扫描下一病床号。新乡医学院生命科学技术学院毕业设计(论文)第16页44键盘扫描流程图键盘电路设计为44矩阵式,在程序中可以先判断按键编码,然后在显示子程序中通过程序进行译码,再显示。设计流程图如图43所示NYNYNY图43键盘扫描程序流程图开始修改对应标志返回获取键值延时10MS是否有键按下按键是否释放是否有键按下新乡医学院生命科学技术学院毕业设计(论文)第17页第5章电路的仿真及调试5
36、1软件的仿真启动电源,显示屏无显示,在按下2号键时,界面部分显示02,指示灯闪烁,声音报警;未按按复位键,再按下6号键时,界面显示06,指示灯闪烁,声音报警。依次按下各按键,相应病房号会相应显示。该设计反映了控制电路的可行性。综上所述,本系统实现了主要功能显示病床号,指示灯闪烁,声音报警提醒值班人员。通过PROTEUS软件仿真,能达到上述结论,满足课题目目的,达到要求。采用PROTEUS进行图形绘制仿真,KEIL进行编程,然后放入单片机中,实现应有的功能。新乡医学院生命科学技术学院毕业设计(论文)第18页52硬件调试分析由于时间有限,没有做出电路板,只在单片机学习板上做了硬件仿真,以下是关于硬
37、件仿真图53调试问题分析与总结本设计采用七段数码管显示功能,最初在软件上进行仿真时按键个位数字是1和4时,数码管不能正常显示,将程序中数码管显示位数处进行了相应修改,能正常显示。按下一个按键时,数码管显示按键号,有声音报警,再按下另一个按键,却不能正常显示,必须在按下复位键的前提下,按下另一个按键才能重新显示。之后对程序进行了相应的修改,将WHILEKEY0改成IFKEY0后,数码管就能在按下按键后显示相应按键号,指示灯闪烁,声音报警。由于软件仿真的延时问题,数码管显示相应病床号时会不稳定。新乡医学院生命科学技术学院毕业设计(论文)第19页第6章问题与总结随着毕业日子的临近,毕业设计也接近了尾
38、声,经过两个月的奋战,我的毕业设计终于完成了。在XX老师的耐心指导下,对此课题进行了思考和探究,巩固了自己对专业课知识的理解与掌握,全面提高了自己的综合能力。此次我毕业设计的课题是基于单片机的病房呼叫系统的设计。刚拿到这个课题的时候,感觉这个设计应该不会很难,因为目前大多数医院都在使用这种呼叫系统,可是真到自己开始动手做的时候,才发现存在许多自己无法克服的问题。通过这次设计我才明白,学习是一个不断积累的过程,自己所学的专业知识不能仅仅停留在表面,要把它运用的实践之中。在刚开始着手做毕业设计时,发现自己的专业课知识学得不是很扎实,于是我把单片机的相关知识进行了系统的复习,进一步了解了我的毕设中涉
39、及到的电路设计,比如时钟电路、复位电路、LED数码显示电路和矩阵键盘电路。另外我查阅相关文献资料,在原先积累的知识上,画出了电路图。其次就是关于软件编程部分,我使用的语言的单片机C语言,具有汇编语言所不可比拟的优势。而我的C语言学的不是很精,于是又花一段时间对C语言进行了相关了解。在进行硬件调试过程中也出现一些大大小小的问题,比如当按键编号个位数字是1和4时,数码管不能正常显示;未按复位键的前提下,按下另一按键无反应等相关问题,于是我就上网查阅相关信息,并在同学的热心帮助下,对程序部分进行了相关修改,基本上实现了自己的要求。最后,我要感谢在此次毕业设计中帮助我的老师和同学。在此设计中,我学到了
40、很多知识,也培养了我独立工作的能力,树立了对自己工作能力的信心,使我充分体会到在创作过程中探索的艰辛和成功的喜悦。虽然这个设计自己做的并不是很好,但在完成过程中自己所学到的知识是自己最大的收获和财富,使我终身受益新乡医学院生命科学技术学院毕业设计(论文)第20页参考文献1张毅刚M新编CS51单片机应用系设计M哈尔滨哈尔滨工业大学出版社,2003,8822周航慈单片机应用程序设计技术修订版M北京北京航空航天大学出版社,2002,40603张为民,等CS51系列单片机系统及其应用M北京高等教育出版社,2004,101004白驹珩,雷晓平著单片计算机及其应用成都电子科技大学出版社,19975沈美明,
41、温冬婵汇编语言程序设计M北京清华大学出版社,2001,352996李朝青单片机原理及接口技术(简明修订版)杭州北京航空航天大学出版社,19987张刚毅单片微机原理及应用西安西安电子科技大学出版社,1993,20508丁元杰、吴大伟单片微机实题集与实验指导书M北京机械工业出版社,2004P1241259余锡存曹国华单片机原理与接口技术M西安西安电子科技大学出版社200210孙俊逸盛秋林单片机原理与应用M北京北京清华大学出版社2006新乡医学院生命科学技术学院毕业设计(论文)第21页致谢通过这一阶段的努力,我的毕业设计基于单片机的病房呼叫系统告一段落,使我获得了丰富的理论知识,极大地提高了实践能力
42、。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在准备毕业设计的这段时间里,由衷地感谢我的指导老师XX老师及几位热心同学,他们给了我许多帮助和精心指导,同时也给了我许多宝贵的意见,使我受益匪浅,并对实践中出现的问题给予耐心的解答,完稿之后在百忙之中仔细阅读,给出修改意见。在李老师耐心的指导下,已基本完成毕业设计的任务,并且熟悉了单片机以及PROTEUS与KEIL软件。大学四年匆匆而过,真诚的感谢生命科学技术学院的所有老师,由于老师们的传道、授业、解惑,我学到了许多知识,并从他们身上学到了如何求知治学。我也要感谢我的母校新乡医学
43、院,是她给我们提供了良好的学习环境和生活环境,使我的大学生活丰富多彩,在我的人生成长路程中留下了精彩的一笔。还有感谢我的家人、朋友和同学在这四年的成长之路上给予我的支持和帮助。最后,再一次向所有关心和帮助过我的老师、同学们和朋友们表示我最诚挚的谢意新乡医学院生命科学技术学院毕业设计(论文)第22页附录INCLUDEDEFINEUINTUNSIGNEDINTDEFINEUCHRUNSIGNEDCHARSBITLED0P22SBITBUZZERP23SBITDULAP26/声明段选线选通端SBITWELAP27/声明位选线选通端SBITCLEARP34UCHRKEY,SHI,GE,COUNTUCH
44、RCODETAB0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71,0X76,0X79,0X38,0X3F/延时子函数,XMS为形参/VOIDDELAYUINTXMSUINTX,YFORXXMSX0XFORY110Y0Y/矩阵键盘扫描子程序/VOIDMATRIXKEYSCANUINTTEMPP30XF7/给P3口赋值TEMPP3TEMPTEMPIFTEMP0XF0/检测是否有键按下DELAY10/延时去抖TEMPP3TEMPTEMPIFTEMP0XF0/再次检测是否有键按下新乡医学院生命
45、科学技术学院毕业设计(论文)第23页TEMPP3SWITCHTEMPCASE0X77KEY1BREAKCASE0XB7KEY2BREAKCASE0XD7KEY3BREAKCASE0XE7KEY4BREAK/判断按下的是哪个键WHILETEMP0XF0TEMPP3TEMPTEMP/等待按键释放P30XFBTEMPP3TEMPTEMPIFTEMP0XF0DELAY10TEMPP3TEMPTEMPIFTEMP0XF0TEMPP3SWITCHTEMPCASE0X7BKEY5BREAK新乡医学院生命科学技术学院毕业设计(论文)第24页CASE0XBBKEY6BREAKCASE0XDBKEY7BREAKC
46、ASE0XEBKEY8BREAKWHILETEMP0XF0TEMPP3TEMPTEMPP30XFDTEMPP3TEMPTEMPIFTEMP0XF0DELAY10TEMPP3TEMPTEMPIFTEMP0XF0TEMPP3SWITCHTEMPCASE0X7DKEY9BREAKCASE0XBDKEY10BREAKCASE0XDDKEY11BREAK新乡医学院生命科学技术学院毕业设计(论文)第25页CASE0XEDKEY12BREAKWHILETEMP0XF0TEMPP3TEMPTEMPP30XFETEMPP3TEMPTEMPIFTEMP0XF0DELAY10TEMPP3TEMPTEMPIFTEMP
47、0XF0TEMPP3SWITCHTEMPCASE0X7EKEY13BREAKCASE0XBEKEY14BREAKCASE0XDEKEY15BREAKCASE0XEEKEY16BREAKWHILETEMP0XF0新乡医学院生命科学技术学院毕业设计(论文)第26页TEMPP3TEMPTEMP/主函数/VOIDALARMBUZZERBUZZERLED0LED0DELAY100VOIDDISPLAYUCHRNUMIFKEY0/若有键按下,则进入该循环进行处理DULA1P0TABNUM/10DULA0P00X00WELA1P00XFEWELA0DELAY100DULA1P0TABNUM10DULA0P00X00WELA1P00XFDWELA0DELAY100ALARMVOIDMAIN新乡医学院生命科学技术学院毕业设计(论文)第27页P00X00WHILE1MATRIXKEYSCANDISPLAYKEY