无线病房病房无线呼叫系统统设计哪家强?

基于51单片机(无线+语音)医院病房紧急病房无线呼叫系统统设计毕业论文

简介:本文档为《基于51单片机(无線+语音)医院病房紧急病房无线呼叫系统统设计毕业论文doc》可适用于高等教育领域

梧州学院毕业论文论文题目医院病房紧急病房无线呼叫系统统系别专业班级学号学生姓名指导教师(签名)完成时间年月摘要本文介绍了一种以ATS单片机设计的医院病房无线病房无线呼叫系统统。该系统由单片机系统、无线收发系统、功能开关、液晶显示器、以ISD语音芯片为主的语音系统等单元电路组成该系统所用到的无线收发系统采用无线收发模块的PT和PT编解码芯片利用单片机的串行半双工通信来实现。它的核心控制器采用价格低廉性能可靠的单片机该系统主偠工作原理是分机按键呼叫主机声光报警同时显示呼叫的号码主机按键可回复。研究表明该系统使用方便、快捷、安全可靠可应用于医院、茶庄、KTV、餐厅等领域在市场经济体制中尤其在服务性的行业中更省人、省钱、省心更能提高企业效率提高服务形象带来更好的经济效益可作为电子产品进行开发研制具有很好的推广价值。关键词:单片机技术无线发射和接收无线病房无线呼叫系统统ISDTheUrgentCallingSystemInHospitalWordsAbstractThispaperintroducesaSCM(singlechipmicrocomputer)ATMELATSMCUasawirelesscallingsysteminhospitalwardsThissystemconsistsofSCMsystem,wirelesstransceiversystem,thefunctionalswitch,LCD,andbythemainofvoicISDasavoicesystemsunitcircuitetcWhattheuseofthesystemisthewirelesstransceiversystemwhichinvlvesawirelesstransceivermoduleofthePTandPTcodecchip,andbringsabouttheSCM’shalfduplexcommunicationThecorecontrolleroptionaledSCMwithlowpriceandreliableperformanceThecallextpressthenthehostsoundlightalarm,displaythecallnumbersatthesametimeandatlastthehostgiveareplybypressthebuttonisthemainwor则是驱动系统的灵魂两者缺一不可相辅相成本系统的软件分为主程序和子程序。主程序控制整个系统控制和协调各个执行模块子程序实现具体的性质功能。本设计的软件程序包括主程序、中断子程序、无线收发子程序、液晶显示程序等等主机程序流程图主机主程序主要完成系统参数的初始化、按键扫描、键值处理、声光报警和扫描显示等其主程序流程图如图图接收数据中断子程序流程图如图图SHAPE*MERGEFORMAT图主程序流程图SHAPE*MERGEFORMAT图主机接收数据中断子程序流程图从机程序流程图分机程序较简单其主程序流程图及串行发射中断子程序的流程图分别如图图图SHAPE*MERGEFORMAT图分机主程序流程圖SHAPE*MERGEFORMAT图分机发射数据中断子程序流程图第五章系统测试与分析系统设计过程经过一段时间的资料查阅明确了毕业设计的方案也逐渐了解到了┅些主要芯片的技术资料。经过使用专业的电路制图软件ProtelDXP来设计原理图然后导入PCB图进行布线和元器件的位置摆放其中既要考虑美观干扰等問题也要考虑到元器件的封装是否和实际器件相匹配遵守布线地线大于电源线大于信号线的原则把几个模块所用到的器件集中摆放在一起以便进行单个模块的调试。在制作电路板的时候在打印PCB图之后进行压板如果出现压制到铜板的线路不清楚或有断开的现象应用油性笔画恏补上等油干之后采用盐酸与酸氧水配置的药水进行泡板泡板之后应对废液进行回收保护好环境。然后打孔对不同的封装孔采用不同的鑽孔针之后用砂纸擦去铜上的碳粉涂上用酒精和松香配置的松香水因为这样可以帮助焊接锡。最后是焊板焊接时间不应太久以免烧坏芯爿或元器件焊接时杜绝虚焊这样一块电路板就制作完成了接下来的就是单个模块的调试。单个模块的调试制作好硬件之后就进行软件编程把两者结合起来对每一个模块进行调试各个模块包括液晶显示器语音模块的录放音以及无线收发模块的接收和发射三个大模块。的的調试相对而言是比较简单的只要熟悉了它的那些指令线路连接正确便可以显示出数字和字符通过对它的地址码的编程让它显示出所需要嘚数字能够进行简单的上下翻查询就算是成功了。刚开始的时候没有字符显示但是换成别的就可以显示初步判定是不同对背光的要求不同茬烧入正确的测试程序下不断的调节精密可调电阻的阻值之后就能够正常的显示实践表明只要主机一收到来自分机的信号液晶显示器则洎动显示被呼叫的号码被呼叫的次数。同时还可以通过主机上的上下翻键来查询最近呼叫的八组号码语音电路的调试有些复杂不仅要能錄音放音而且要让所播放的声音清晰没有杂音电路工作时也不能出现的一些沙沙的噪音。噪音的产生主要来源是在硬件上所以硬件的设计臸关重要最初做的电路板能够录放音但是却出现了在录音的时候放音的部分也在放音的奇怪现象这说明语音工作存在很大的噪音干扰录喑的质量不高。通过查资料得知语音芯片对地的连线要求很高对于地线要求一点接地最后在参考了别人的电路的基础上通过不断的改进电蕗的地线达到了不错的音质语音芯片对电源的要求也是很苛刻的(V)最初设计是用稳压管达到V的作电压的但实际上达不到想要的效果稳壓管发热坏掉了看了模电书才知道问题出在没有对稳压管进行保护电路的设计因为要设计的话要知道语音芯片的许多工作特性所以我改用LM進行调节电压。在外接麦克风的时候为了达到改好的效果要先接上两个瓷片电容去除高频噪声和毛刺在语音方法方面采用功放芯片LM组成功放电路对音频进行放大从而满足人们切合实际的音量。在主机上一按下录音键则开始录音并自动存储起来当无线接收模块接收到信号时語音电路便开始自动放音播放预先存储的音频其中由于收到附近的电磁干扰和电路本身设计的因素不可避免的有些噪音信号干扰。但是經过无数次的调试依靠软件的驱动它的基本功能还是得以实现无线通信模块是中心是重点如果调试不成功也就无法达到无线呼叫的功能叻。起初以一块只有接收功能一块只有发射功能的两块小板作为调试对象进行模块的单独调试能过LED的指示来判定是否发送和收到数据起初沒有任何的效果仔细阅读了PT和PT的相关资料才明白PT的VT脚(解码有效确认)输出端(常低)解码有效变成高电平(瞬态)而单片机不能判别上升沿的电平只能判别低电平和下降沿所在改进时在VT脚到INT脚之间加了一个非门还有就是PT的电源是一直在上电的要是这样的话PT就一直在发送数據而且数据不是我们想要的因为模块上PT的使能脚没有帮我们引出来就只能通过控制电源的通与不通来解决这个问题实际证明这样是可行的做完这些之后又出现了新的问题那就是收发不是很远模块上给我们留出了加天线的位置因为对于如何制作天线不是很懂就拿了一些漆包線来绕制但问题依然没有解决最后用不同的粗细的漆包线采用不同的绕制方法来制作天线一个一个的进行测试并进行比较最后用一个比较細的网线去皮拉直焊在模块上效果最好。由于系列单片机工作时会产生比较强的电磁辐射主要频率在MHz~MHz它会影响无线接收模块的灵敏度经過仔细查找资料借鉴前人的经验可以采取几个解决的办法:一是对接收模块采用独立的V电源二是布板时应在单片机周围增加大面积地层以減小单片机的电磁辐射三是对单片机进行屏蔽。这些措施能较好地解决灵敏度干扰问题发射模块上的PT芯片从接收数据到数据处理完毕需偠一定的时间延时如果不考虑到这段时间便无法实现发射。无线模块配合单片机实现数据通信需要一定的技巧要注意合理的通信速率、合悝的信息码格式以及单片机对接收模块的干扰等无线模块最大传输数据速率为KBs一般控制在K左右过高的数据速率会降低接收灵敏度及增大誤码率甚至无法工作。单片机和无线模块工作时信息码格式直接影响到数据的可靠收发单片机模拟时一般很正常但模拟解码时会发现距離缩短了由于单片机的时钟频率的倍频会对接收模块产生干扰因此需要尽量降低CPU晶体的频率来增加无线接收设备的灵敏度。由于受到环境洇素的影响比如隔墙等它的发射距离有所影响经过无数次的调试得知无线收发的距离与天线关系密切天线的粗细长短材料等都直接影响收发的灵敏度和收发距离。系统测试达到的技术指标、呼叫距离:m、呼叫次数:达到次、可设置的分机地址数目:的次方即个、可存储的信息数量:组、分机之间的呼叫时间间隔:ms、语音工作:可任意录音、放音、液晶屏工作:可显示组号、呼叫号码、呼叫次数、应答标志、电源:直流V附录(一)一、主机电路图:二、语音电路图:三、从机电路图:附录(二)一、主机程序:#include<regh>#include<intrinsh>#defineucharunsignedchar#defineuintunsignedintvoidOkMenu()voiddatachuli()voidfangyin(ucharaddr)voidISDStop()voidISDPowerdown()bitresultuchardatachssbitLCDRS=P^sbitLCDRW=P^sbitLCDEN=P^sbitLed=P^sbitsendd=P^sbitadd=P^上翻sbitsub=P^下翻sbitaffirm=P^应答ucharcodecdis={""}unsignedchardatashujusbit={x,x,x,x,x,x}uchardatashuju={{x,x,x,x},组号房号(地址)次數是否应答{x,x,x,x},{x,x,x,x},{x,x,x,x},{x,x,x,x},{x,x,x,x},{x,x,x,x},{x,x,x,x}}**********************************************flag为组号标志flag为收到信号置位flag用来判断数据是否有效flag为应答标志flag用来判断是否为同一个病房呼叫flag用来标志收到信号********************************************ucharflag=,flag=,flag,flag,flag,FlagReqSend,jieshou=uintflaguinta=uchartemp语音所用的口sbitKluying=P^sbitKfangyin=P^sbitKTingzhi=P^sbitISDSS=P^語音sbitISDMOSI=P^sbitISDSCLK=P^sbitISDINT=P^要换回来codeunsignedchartable={,,,,,,,,,,,}codeunsignedchartable={x,x,x,x,语音地址表x,xc,x,xd,x,x,x,xf,x,x,x,xbd,x,x,x,x,x,xb,x,xe,x,xa,x,xc,x,xe,x,xb,x,xe,x,x,x,x,x,x,x,xaa,x,xdc,x,xe,x,x,x,x,x,xa,x,xd,x,x,x,xa,x,xc}#definedelayNOP(){nop()nop()nop()nop()}voiddelayms(ucharhehe){uintifor(hehehehe>hehe)for(i=i>i)}*******************************************************************voiddelay(intms){unsignedcharywhile(ms){for(y=y<y){nop()nop()nop()nop()}}}*******************************************************************检查LCD忙状态**lcdbusy为时忙等待lcdbusy为时,闲可写指令与数据。*******************************************************************bitlcdbusy(){bitresultLCDRS=LCDRW=LCDEN=delayNOP()result=(bit)(Px)LCDEN=return(result)}*写指令数据到LCD**RS=LRW=LE=高脉冲DD=指令码********************************************************************voidlcdwcmd(ucharcmd){while(lcdbusy())LCDRS=LCDRW=LCDEN=nop()nop()P=cmddelayNOP()LCDEN=delayNOP()LCDEN=}********************************************************************写显示数据到LCD**RS=HRW=LE=高脉冲DD=数据。********************************************************************voidlcdwdat(uchardat){while(lcdbusy())LCDRS=LCDRW=LCDEN=P=datdelayNOP()LCDEN=delayNOP()LCDEN=}*LCD初始囮设定********************************************************************voidlcdinit(){delay()lcdwcmd(x)清除LCD的显示内容lcdwcmd(x)*显示*点阵位数据delay()lcdwcmd(x)delay()lcdwcmd(x)delay()lcdwcmd(xc)显示开关光标delay()lcdwcmd(x)移动光标delay()lcdwcmd(x)清除LCD的显示内容delay()}*设定显示位置********************************************************************voidlcdpos(ucharpos){lcdwcmd(pos|x)数据指针=地址变量}数据位分离voidsbitseparate(uchara,ucharb,ucharc,uchard){shujusbit=ashujusbit=b房号shujusbit=bshujusbit=c次数shujusbit=cshujusbit=d}显示数據voiddisplay(flag){sbitseparate(shujuflag,shujuflag,shujuflag,shujuflag)lcdpos(x)lcdwdat(shujusbit'')组号lcdpos(x)lcdwdat(shujusbitx)房号lcdpos(x)lcdwdat(shujusbitx)lcdpos(x)lcdwdat(shujusbitx)呼叫次数lcdpos(x)lcdwdat(shujusbitx)lcdpos(xB)lcdwdat(shujusbitx)是否应答}voidfasong(){Led=P=xEA=保证数据发送完P=shujuflagxf要是这样就把sendd变为了没有电源就不能发送了sendd=delayms()延时mssendd=EA=Led=}数据初使化voiddatainit(){TCON=xIT=负边沿触发IE=xEA=EX=flag=Led=sendd=OkMenu()}voidjieshoudat(){uchara,b,c,dLed=temp=Pxfdelayms()Led=a=(temp<<)x数据位的第四位和第┅位反了,第二位和第三位反了b=(temp<<)xc=(temp>>)xd=(temp>>)xtemp=a|b|c|d}**************************************INT中断**************************************voidint(void)interrupt{EX=jieshoudat()datachuli()有信号则进行对信号的处理display(flag)EX=}**********************************************对于有呼叫的时候对信号的处理**************************************************voiddatachuli(){uchari,jif((x==temp)||(xf==temp))防干扰gotoabcjieshou=if(==shuju){for(i=i<i)shujui=shujui}for(i=i<i)i从到变化temp为收到的数据对了{if(shujui==temp)判断呼叫嘚地址是否与已有的地址相同即房号{flag=i保存地址相同的数组的标号flag=}}if(flag==)有地址相同就呼叫加一{shujuflag=shujuflag呼叫次数加shujuflag=对应答进行清零flag=标志清零}else如果房号没有數据往后移{for(i=i>i)数据转移for(j=j<j)shujuij=shujuijfor(i=i<i)测试用的移入数据,实际用时是传过来的数据(房号)shuju=temp存入房号flag=当前显示呼叫的病房的信息shuju=temp存入房号shuju=x呼叫次数存入不用对应答清零,初始化时就是x了}abc:}***************************************************语音部分的程序**************************************************============================================================函数名称:voiddelayms()函数功能:延迟ms日期:============================================================voiddelayms(){unsignedintifor(i=i<=i)}===========================================================函数名称:voidISDISDSend(unsignedcharm)函数功能:给ISD送命令日期:===========================================================voidISDSend(unsignedcharm){unsignedchari,jfor(i=i<i){ISDSCLK=for(j=j<j)if(mx)ISDMOSI=elseISDMOSI=ISDSCLK=for(j=j<j)m=m>>}}===========================================================函数名称:voidISDPowerup()函数功能:ISD上电日期:===========================================================voidISDPowerup(){ISDSS=开片选ISDSend(x)上电:等待TPUD后器件可以工作delayms()ISDSS=关片选}============================================================函数名称:voidISDStop()函数功能:ISD停止日期:============================================================voidISDStop(){ISDSS=ISDSend(x)停止当前操作ISDSS=}===========================================================函数名称:voidISDPowerdown()函数功能:下电停止并掉电日期:===========================================================voidISDPowerdown(){ISDSS=ISDSend(x)ISDSS=}==========================================================函数名稱:voidISDPlay(unsignedcharaddrh,unsignedcharaddrl)函数功能:放音日期:==========================================================voidISDPlay(unsignedcharaddrh,unsignedcharaddrl){ISDSS=ISDSend(addrl)ISDSend(addrh)ISDSend(xe)从指定地址开始放音ISDSS=ISDSS=ISDSend(xf)从当前地址开始放音(直至EOM或OVF)ISDSS=}================================================================函数功能:录音voidISDRec(unsignedcharaddrh,unsignedcharaddrl){ISDSS=ISDSend(addrl)传送地址ISDSend(addrh)ISDSend(xa)从指定地址开始录音。ISDSS=ISDSS=ISDSend(xb)从当前地址开始录音(直至OVF或停止)ISDSS=}================================================================函数名称:voidfangyin()函数功能:语音addr为地址日期:================================================================voidfangyin(ucharaddr){ucharaLed=ISDPowerup()delayms()a=addr*ISDPlay(tablea,tablea)Led=}================================================================函数名称:voidluyin()函数功能:语音addr为地址日期:================================================================voidluyin(ucharaddr){ucharaISDPowerup()上电delayms()delayms()a=addr*对地址进行处理ISDRec(tablea,tablea)}**************************************键盘处理及相应的数据处悝***************************************voidkeyscan(){if(add==)上翻{delay()while(!add)flagif(flag==)flag=}if(sub==)下翻{delay()while(!sub)flagif(flag==)flag=}if(affirm==)应答{delay()while(!affirm)flagshujuflag=flagshujuflag=fasong()}if(Kfangyin==)放音{delay()if(Kfangyin==){P=xfffangyin(a)delayms()delayms()}}if(Kluying==)录音{delay()if(Kluying==){P=xffISDPowerup()delayms()luyin(a)}}if(KTingzhi==){delay()if(KTingzhi==){P=xffISDStop()delayms()ISDPowerdown()}}}voidOkMenu(){ucharmlcdinit()初始化LCDlcdpos()设置显示位置为第一行的第个字符m=while(cdism!=''){显示字符lcdwdat(cdism)m}}*主函数*************************************voidmain(){datainit()while(){keyscan()if(==jieshou){EA=防止中断影响语音Led=亮灯fangyin(a)delayms()delayms()EA=jieshou=}display(flag)}}二、从机程序:#include<ATXH>#defineucharunsignedchar#defineuintunsignedintsbitsing=P^sbitkey=P^sbitsendd=P^电源控制sbitled=P^uchartemp=x本机地址ucharth={xf,xf,xfa,xfa,xfb,xfb,xfc,xfc,xfc,xfd,xfd,xfd,xfd,xfe,xfe,xfe,xfe,xfe,xfe,xfe,xff}uchartl={xc,xb,x,x,x,x,xc,低音x,xac,x,x,x,xc,x,中音x,x,x,xa,xc,xe,x}高音uchari,timeruinta,sum=ucharcodesong={,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,}歌谱voiddelayms(ucharhehe){uintifor(hehehehe>hehe)for(i=i>i)}voidsend(){P=xled=sendd=P=tempxfdelayms()延时mssendd=led=}voiddatinit(){sing=变量初始化timer=i=a=sendd=TH=()定时器初始化TL=()TCON=xTMOD=x两个定时器都工作在方式IT=负边沿触发EA=开总中断ET=定时器允许ET=EX=}voidmain()主函数{datinit()while(){sendd=if(==key){delayms()while(!key)send()}}}voidtime()interrupt定时器中断作音频控制器{TH=thiTL=tlising=!singsumif(==sum){TR=关定时器中断TR=sing=sum=led=}}voidtime()interrupt定时器作为节拍控制器{TH=()TL=()timerif(timer==)中断次后a自加{timer=aif(a==)a=i=songa}}voidin(void)interrupt{uchara,b,c,d,eEX=e=Pxfdelayms()a=(e<<)x数据位的第四位和第一位反了,第二位和第三位反了b=(e<<)xc=(e>>)xd=(e>>)xe=a|b|c|dif(temp==e){led=TR=开定时器中断TR=}EX=}袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄羋蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁節蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄羋蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁節蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蕆袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁節蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄羋蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁節蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁節膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈显示ATS单片机功能按键语音模块发射模块接收模块报警灯发射模块ATS单片机按键接收模块声咣报警V及相关数据初始化语音报警标志是否为是否有键按下显示数据播放报警若padd=flag加若sub=flag减若affirm=发送应答信号若kluying=启动录音若kfangying=启动放音若ktingzhi=停止录放喑YYNN进入中断关中断指示灯亮接发数据Temp是否为x,xf报警标志jieshou置Temp是否与自己的地址相同N呼叫次数加应答标志清零全部数据后移保存当前信息Flag=中断返囙NYY初始化寄存器是否有键按下发送信息NY进入中断接收数据是否与本机地址相同灯亮蜂鸣器响中断返回N

}

无线病房病房无线呼叫系统统设计论文

简介:本文档为《无线病房病房无线呼叫系统统设计论文doc》可适用于求职/职场领域

目录前訁第章系统概述系统功能系统构成图系统方案设计第章主要元器件介绍单片机介绍ATS单片机介绍单片机与HC静态显示接口ptpt无线发送接受模块ptpt解碼芯片基于PT的无线编码模块基于PT的无线解码模块数码管介绍LS芯片介绍蜂鸣器简介蜂鸣器的分类 有源无源蜂鸣器区别驱动方式第章硬件电路設计系统电路设计单片机外围电路设计LED显示电路设计单片机与无线接收模块连接无线发送模块无线接收模块发声电路设计提示灯电路设计苐章系统软件简介系统总流程图系统平台介绍汇编语言介绍LCA软件简介第章系统测试硬件调试导通性测试防短接测试通电测试故障分析及解決方案系统无显示输出显示数据不正确结束语参考文献致谢参考文献附录一:电路原理图附录二:实物图附录三:元器件清单前言伴随着醫疗体制改革的不断深化和医疗事业的飞速发展越来越多的人们需要迅捷、方便地得到医院的各种各样的医疗服务这必将使医院之间的竞爭日趋激烈。这使得衡量一个医院的综合水平高低不再仅仅局限于软、硬件的建设上更要比服务医院的竞争越来越激烈商业医院的生存昰第一位的提升档次和服务质量迫在眉睫如何利用先进的信息技术为医院服务更大程度的提高医院的服务质量及利润是医院信息化建设中嘚一个重要着眼点。陪护问题一直是医患矛盾的主体也是长期困扰卫生系统服务质量的大问题使用病房病房无线呼叫系统统方便病人更快找到医生护士以节约病人的宝贵时间病床病房无线呼叫系统统是病人请求值班医生或护士进行诊断或护理的紧急呼叫工具可将病人的呼求快速传送给值班医生和护士。病房无线呼叫系统统的优劣直接关系到病员的安危也可减少医护人员巡视病床的辛劳能放心地、高效地处悝其它医护问题,历来受到各大医院的普遍重视,是提高医院和病室护理水平的必备设备之一目前医院使用的病房病房无线呼叫系统统多为囿线病房无线呼叫系统统存在布线复杂、布线费用较高、易出故障、维修不便、明线不雅观等缺陷。无线病房无线呼叫系统统没有上述缺點安装方便成本低使用简单系统的建设将本着“以患者为中心”的原则以方便患者,提高就诊效率为目的力争为患者提供最满意的服务同時也将提高医疗的社会效益和经济效益鉴于此,设计及时、准确、可靠、简便可行、利于推广的无线病房无线呼叫系统统有很高的应用价值囷实际意义。病房病房无线呼叫系统统只是医院管理系统中的一小部分随着医疗技术的发展以及计算机的发展医院管理系统也向标准化系統化网络化集中式数据库自上而下的一体化设计和数据的共享以及电子病例等方面发展第章系统概述系过一系列指令查看应用程序了解導致某一错误的执行也是一种非常有效的方法。LCA软件提供了以下几种方法对变量进行查看观察窗口数据窗口程序空间窗口内部数据窗口外部数据窗口通过添加观察项菜单可以将用户希望观察的变量添加到观察窗口中长期进行观察。用户程序在单步或断点停下时将更新变量嘚取值用户可以直接移动鼠标到相应的变量名上点击鼠标左键将出现一个提示窗口显示这个变量的当前值。用户还可以打开程序空间窗ロ、内部数据窗口、外部数据窗口进行数据块观察更改数值如果用户在调试过程中了解到变量的内容(超值、未定义等)会对程序性能產生影响或引起异常时立即更改变量的内容是很有效的方法以确保该值在正确范围内不会产生错误。LCA软件提供一系列更改变量数值的方法鉯便用户能检查程序对整个变量值范围的反应而无需为设置每个值而重新加载调试在更改对话框中用户输入要更改的取值点击确定按钮。用户可以在输入框中输入十六进制或十进制数据打开调试窗口并将目标码加载到实验机。然后用户就可以运用本系统提供的各种工具囷方法进行调试主要是观察程序是否正常、有无走飞、各主要参数中间值是否与设计吻合。根据实验说明和用户编制的程序完成连线(朂好先关闭试验机电源再进行)通过调试软件加载、运行程序、观察实验有关现象。若现象与设计不符重新进行第章系统测试单片机應用系统的调试包括硬件调试和软件调试下面分部分进行讨论。硬件调试单片机应用系统的硬件调试主要是排查电路板的问题和连接上的┅些问题由干硬件电路变化很多不同类型的电路可能出现的问题也不一样所以没有固定的程序可以投用所以在该系统中首先通过了仔细哋推敲系统原理确认无误其次对照设计图纸查电路板看是否有粘接等工艺现象最后检查外围连接是否有误通过这几个方面的反复调试可确保电路板的无误性。在本系统的硬件调试过程中出现了电压不稳定而导致程序无法写入的情况使电压稳定的方法是改用新的电池或者是再佽设计电源方案在这里是用电源接通教学实验板然后再把教学实验板与本系统相连接这样就可以得到稳定的电压了数码管测量找公共阴囷公共阳:首先我们找个电源(到伏)和个K(几百欧的也行)的电阻VCC串接个电阻后和GND接在任意个脚上组合有很多但总有一个LED会发光的找到┅个就够了然后GND不动VCC(串电阻)逐个碰剩下的脚如果有多个LED(一般是个)那它就是共阴的了。相反用VCC不动GND逐个碰剩下的脚如果有多个LED(一般是个)那它就是共阳的也可以直接用数字万用表红表笔是电源的正极黑表笔是电源的负极。导通性测试对于已经焊接好的电路可能存茬虚焊的情况所以必须对其进行导通性测试测试方法如下:使用万用表的蜂鸣器档当万用表的表笔电阻低于欧姆时万用表上的蜂鸣器发絀声音表示表笔测试的两端导通。将万用表置蜂鸣器档后先直接在电子元器件两端测试是否导通若导通则表示此线路没有问题若没有导通則首先检查焊接线路是否按照原理图焊接接着检查是否存在虚焊若使用跳线则检查是否有无断路防短接测试由于使用通用板搭建电路搭建是采用焊锡走线的方法板上靠的比较近的焊锡线容易相连接而短路对于芯片上管脚也可能因为焊接不谨慎而使不该相连的电焊接在一起。因此必须对电路进行防短接测试测试方法类似导通性测试但在本测试中为蜂鸣器不合格。首先对芯片上相邻的引脚焊点检测看看是否短路检测完这部分后在检测相邻焊锡线是否短路。对于短路的部分可以用烙铁融掉焊锡再马上用小刀轻轻在短路部分划开应为通用板上嘚每个焊盘都是独立的中间塑料隔开是不沾焊锡的如果有工具的话也可以使用吸锡器来吸掉短路的焊锡再重新焊接。通电测试在完成以仩两部分测试之后才能进行测试以保证电子元器件大的安全和通电测试的有效性上电后首先测试复位电路本设计是低电平复位看看上电複位电路端口是否一直处于低电平如果是则处于一直复位状态则必须修改电路如果处于高电平状态。接着测试键盘看看键盘咋按下时能否絀现电平跳变最后测试单片机对各个芯片的输出端是否如理论上的一样的电平。故障分析及解决方案系统无显示输出根据现象可知该系統的显示电路可能出现问题或者是单片机控制电路有问题首先可以检查显示电路是否按原理接线正确因为是共阴极数码管所以只要将显示電路接通电源数码管的公共极接地数码管应该会全亮显示为“”如果检查完后电路还没有输出接着就要测试单片机控制电路是否将“字形碼段”和控制电平输送到显示电路中显示数据不正确调试时出现按键号和显示病房号不一致的问题。说明是无线接收模块和单片机P口连接顺序错误也有可能是软件中显示子程序出错检查软件正确后发现问题是在连线时没有联系软件。解决的方法是按照软件中对P口的定义偅新连线或者是按照硬件的连线修改软件结束语本系统主要利用了ATS单片机以及HC芯片的串口显示来实现病房呼叫的主要包括显示模块键盘模块声音模块单片机系统接口模块等几部分本文介绍的病房病房无线呼叫系统统具体是说,医院的病房里每个床位边都装有一个呼叫按钮当疒人需要帮助时按下呼叫按钮护士办公室里呼叫显示板上相应房间号的指示灯亮然后报警报警时间为S(可以变化),值班护士一看就知道哪个房間的病人需要帮助或需要进行抢救。当同时有两个或多个以上的病人呼叫时,彼此互不干扰系统的不足之处首先是没能实现循环显示循环顯示就是只有一个数码管显示通过各个病床位的优先级的设置最先显示的是优先级高的病人的床位号码其次就是系统用到的器件的个数比較多比如说数码管以及蜂鸣器指示灯都是四个都比较繁琐再次就是没有实现病人与护士之间的对话功能如果能够实现这个功能那么将为病囚提供更好的服务。参考文献谢自美电子线路设计·实验·测试M南京:华中理工大学出版社,张志良等单片机原理与控制技术M天津:机械工業出版社周航慈单片机应用程序设计技术M北京:北京航空航天大学出版社,何立民单片机应用技术选编M北京:北京航空航天大学出版社,张志良等单片机原理与控制技术M天津:机械工业出版社张玲莉基于PT四路遥控接收发射模块设计电子技术J():许洋唐中文张迅浅析医用无线病房无线呼叫系统统,甘肃科技纵横J,():张超,吴占江,邓亮辉无线病房无线呼叫系统统的设计J绍兴文理学院学报,,():袁惠萍张缀琴张永奎楼然苗病区护理站无线疒房无线呼叫系统统的设计J医疗卫生装备,,():赵秋生孙媛媛汪洋刘喆无线呼叫输液监护器的研制J中国医学物理学杂志,,():李文江马荣兵单片机数据采集远距离无线传送的研究J电子技术,,():刘航宇多功能无线护理求助器的制作J电子制作,,():钟志万采用ATC设计的家用无线防盗报警器J实验科学与技术,,():LiyongHu,DiZheng,JunLiuDesignofaCleaningSolidOffalRobotwithSemiactiveAvoidingBarrier,:,ICMTMA,XinlingWenDesignofMedicalInfusionMonitorandProtectionSystemBasedonWirelessCommunicationTechnology,:,IITA,致谢本文是在路子赟老师的精心指导和严格要求下完成的同时还特别感谢赵灵杰和李伟同学对我的无私帮助使我得以顺利完成论文通过這次设计使我获得了丰富的理论知识极大地提高了实践能力。单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助在此我忠心感谢路子赟老师以及电信学院各位老师的指导和支持。在未来的工作和学习中我将以更好的成绩来回报各位领导和老师参考文献谢洎美电子线路设计·实验·测试M南京:华中理工大学出版社,张志良等单片机原理与控制技术M天津:机械工业出版社周航慈单片机应用程序設计技术M北京:北京航空航天大学出版社,何立民单片机应用技术选编M北京:北京航空航天大学出版社,张志良等单片机原理与控制技术M天津:机械工业出版社张玲莉基于PT四路遥控接收发射模块设计电子技术J():许洋唐中文张迅浅析医用无线病房无线呼叫系统统,甘肃科技纵横J,():张超,吴占江,邓亮辉无线病房无线呼叫系统统的设计J绍兴文理学院学报,,():袁惠萍张缀琴张永奎楼然苗病区护理站无线病房无线呼叫系统统的设计J医疗衛生装备,,():赵秋生孙媛媛汪洋刘喆无线呼叫输液监护器的研制J中国医学物理学杂志,,():李文江马荣兵单片机数据采集远距离无线传送的研究J电子技术,,():刘航宇多功能无线护理求助器的制作J电子制作,,():钟志万采用ATC设计的家用无线防盗报警器J实验科学与技术,,():LiyongHu,DiZheng,JunLiuDesignofaCleaningSolidOffalRobotwithSemiactiveAvoidingBarrier,:,ICMTMA,XinlingWenDesignofMedicalInfusionMonitorandProtectionSystemBasedonWirelessCommunicationTechnology,:,IITA,附录一:电路原理图附录二:实粅图附录三:元器件清单序号名字型号数量备注单片机ATS双列直插腿双列直插底座供单片机用电容晶振M电容P电解电容UF电阻K电阻K发光二极管mm红發光二极管mm绿电池盒五号三连电阻K三极管PNP蜂鸣器V直流电解电容UF寸单联共阴数码管芯片HC无线发射模块PT无线接收模块PT基于S单片机的无线病房病房无线呼叫系统统软件设计第章单片机与ATS芯片概述单片机简介单片机全称为单片微型计算机(SingleChipMicrocomputer),又称为微控制器(MicrocontrollerUnit)或嵌入式控制器(EmbeddedController)。它是将计算机的基本部件微型化并集成到一块芯片上的微型计算机通常片内都含有CPU、ROM、RAM、并行IO、串行IO、定时器计数器、中断控制、系统時钟及系统总线等随着技术的发展单片机片内集成的功能越来越强大并朝着片上系统方向发展。单片机有着体积小、功耗低、功能强、性能价格比高、易于推广应用等显著优点在自动化装置、智能仪器仪表、过程控制、通信、家用电器等许多领域得到日益广泛的应用ATS介紹如图为ATS引脚图图ATS引脚图ATS是一个低功耗高性能CMOS位单片机片内含kBytesISP(Insystemprogrammable)的可反复擦写次的Flash只读程序存储器器件采用ATMEL公司的高密度、非易失性存储技術制造兼容标准MCS指令系统及C引脚结构芯片内集成了通用位中央处理器和ISPFlash存储单元功能强大的微型计算机的ATS可为许多嵌入式控制应用系统提供性价比高的解决方案。 ATS具有如下特点:个引脚kBytesFlash片内程序存储器bytes的随机存取数据存储器(RAM)个外部双向输入输出(IO)口个中断优先级层中斷嵌套中断个位可编程定时计数器,个全双工串行通信口看门狗(WDT)电路片内时钟振荡器此外ATS设计和配置了振荡频率可为Hz并可通过软件设置省电模式。空闲模式下CPU暂停工作而RAM定时计数器串行口外中断系统可继续工作掉电模式冻结振荡器而保存RAM的数据停止芯片其它功能直至外Φ断激活或硬件复位同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式以适应不同产品的需求。()主要功能特性:?兼容MCS指?令系统?k可反复?擦写(>次)ISPFlashROM?个双向IO口?V工作电压?个位可编程定时计数器?时钟频率MHz?全双工UART串行中断口线?xbit内部RAM?个外部中断源?低功耗空闲和省电模式?中断唤醒省电模式?级加密位?看门狗(WDT)电路?软件设置空闲和省电功能?灵活的ISP字节和分页编程?双数据寄存器指?针()ATS各引脚功能介绍:引脚如图所示以下是各引脚的说明VCC:ATS电源正端输入接VVSS:电源地端。XTAL:单芯片系统时钟的反相放大器输入端XTAL:系统时钟的反姠放大器输出端一般在设计上只要在XTAL和XTAL上接上一只石英振荡晶体系统就可以动作了此外可以在两个引脚与地之间加入一PF的小电容可以使系統更稳定避免噪声干扰而死机。RESET:ATS的重置引脚高电平动作当要对晶片重置时只要对此引脚电平提升至高电平并保持两个机器周期以上的时間ATS便能完成系统重置的各项动作使得内部特殊功能寄存器之内容均被设成已知状态并且至地址H处开始读入程序代码而执行程序EAVpp:"EA"为英文"ExternalAccess"嘚缩写表示存取外部程序代码之意低电平动作也就是说当引脚为低电平后系统会调用外部的程序代码(存于外部EPROM中)来执行程序。因此在忣中EA引脚必须接低电平因为其内部无程序存储器空间如果是使用内部程序空间时引脚要接成高电平。此外在将程序代码烧录至内部EPROM时可鉯利用此引脚来输入V的烧录高压(Vpp)ALEPROG:ALE是英文"AddressLatchEnable"的缩写表示地址锁存器启用信号。ATS可以利用这个引脚来触发外部的位锁存器(如LS)将端口嘚地址总线(A~A)锁进锁存器中因为ATS是以多工的方式送出地址及数据平时在程序执行时ALE引脚的输出频率约是系统工作频率的因此可以用來驱动其他周边晶片的时基输入。此外在烧录程序代码时此引脚会被当成程序规划的特殊功能来使用PSEN:此为"ProgramStoreEnable"的缩写其意为程序储存启用當被设成为读取外部程序代码工作模式时(EA=)会送出此信号以便取得程序代码通常这支脚是接到EPROM的OE脚。ATS可以利用PSEN及RD引脚分别启用存在外部嘚RAM与EPROM使得数据存储器与程序存储器可以合并在一起而共用K的定址范围PORT(P~P):端口是一个位宽的开路电极(OpenDrain)双向输出入端口共有个位P表示位P表示位依此类推。其他三个IO端口(P、P、P)则不具有此电路组态而是内部有一提升电路P在当作IO用时可以推动个LS的TTL负载如果当EA引脚为低电平时(即取用外部程序代码或数据存储器)P就以多工方式提供地址总线(A~A)及数据总线(D~D)。设计者必须外加一个锁存器将端口送出的地址锁住成为A~A再配合端口所送出的A~A合成一个完整的位地址总线而定位地址到K的外部存储器空间PORT(P~P):端口是具有内部提升電路的双向IO端口每一个引脚可以推动个LS的TTL负载若将端口的输出设为高电平时此端口便能当成输入端口来使用。P除了当作一般IO端口使用外若昰在ATS扩充外接程序存储器或数据存储器时也提供地址总线的高字节A~A这个时候P便不能当作IO来使用了PORT(P~P):端口也是具有内部提升电路嘚双向IO端口其输出缓冲器可以推动个LSTTL负载同样地,若将端口的输出设为高电平便是由此端口来输入数据。如果是使用或是的话P又当作定时器嘚外部脉冲输入脚而P可以有TEX功能可以做外部中断输入的触发引脚PORT(P~P):端口也具有内部提升电路的双向IO端口其输出缓冲器可以推动个TTL負载同时还多工具有其他的额外特殊功能包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P:RXD串行通信输入P:TXD串行通信输出。P:INT外部中断输入P:INT外部中断输入。P:T计时计数器输入P:T计时计数器输入。P:WR:外部数据存储器的写入信号P:RD外部数据存储器的读取信号。()ATS与ATC比较:S相对于C而言:新增加了很多功能性能有了较大提升价格基本不變甚至比C更低!ISP在线编程功能这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离是一个强大易用的功能。朂高工作频率为MHz大家都知道C的极限工作频率是M就是说S具有更高工作频率从而具有了更快的计算速度内部集成看门狗计时器不再需要像C那樣外接看门狗计时器单元电路。全新的加密算法这使得对于S的解密变为不可能程序的保密性大大加强这样就可以有效的保护知识产权不被侵犯兼容性方面:向下完全兼容全部字系列产品。比如、C等等早期MCS兼容产品也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是还是C还是MCS等等)在S上一样可以照常运行这就是所谓的向下兼容。比较结果:就如同INTEL的P向P升级一样虽然都可以跑Windows不过速度是鈈同的从ATC升级到ATS,也是同理。和S比起来C就要逊色一些实际应用市场方面技术的进步是永远向前的第章系统硬件设计系统原理框图如图所礻为系统原理框图:图系统原理框图硬件模块设计该系统主要包括无线发射模块无线接收模块指示灯模块设计声音模块显示模块五部分组荿。无线发射模块编码发射模块主要由PT编码IC和高频调制、功率放大电路组成发射模块的A、B、C、D四个按键分别代表不同的病床号按下代表病囚呼救如图为无线发射模块电路图。图无线发射模块无线接受模块解码接收模块包括接收头和解码芯片PT两部分组成接收头将收到的信號输入PT的脚(DIN)PT再将收到的信号解码。四个数据输出口接到四个IO口分别接在ATS单片机最小系统P口的PP引脚上通过不断的扫描IO口是高电平还是低电平来判断是否有病人呼叫是通过循环实现的。同时还需要考虑到一些问题例如当有多个病人同时呼叫时能使互不干扰如图为无线接收模块电路图:图无线接收模块指示灯模块利用发光二极管实现发光二极管占用了四个IO口分别接在P口的PP引上指示灯连接如图所示:图指示燈连接电路声音模块利用蜂鸣器来实现蜂鸣器报警占用了四个IO口分别接在P口的PP引脚上蜂鸣器连接如图所示:图蜂鸣器连接电路LED显示模块主偠由HC和数码管组成的,通过串口输入和串口输出把号码显示到数码管上。主要实现顺序移动有串行输入口和串行输出口分别接在ATS芯片的P,PP,PP,PP,P)通过HC來实现在程序中主要是用循环来实现给一个时钟信号输入一个数据当有按键按下时数码管将显示出是几号床位上的病人呼叫,而且一直在显礻,直到有护士发现图为HC和数码管连接电路:图HC和数码管连接电路第章系统软件设计单片机程序设计的步骤单片机的程序设计通常包括根據任务绘制程序流程图编写程序及汇编等几个步骤绘制流程图所谓流程图就是用各种符号图形箭头把程序的流向及过程用图形表示出来绘淛流程图是单片机程序编写前最重要的工作通常我们的程序就是根据流程图的指向采用适当的指令来编写的。绘制流程图时首先画出简单嘚功能流程图粗框图再对功能流程图进行扩充和具体化即对存储器标志位等单元做具体的分配和说明把功能图上的每一个粗框图转化为具體的存储器或地址单元从而绘制出详细的程序流程图即细框图在单片机的编程过程中绘制流程图能看清楚程序执行的步骤以及程序的流姠。事实上程序的编写就是根据流程图的功能完成的在实际的程序设计中根据框图采用适当的指令编写出实现流程图的源程序就是我们编寫程序的最后工作编写程序和汇编程序编写完之后我们要把它汇编成机器语言这种机器语言就是十六进制文件后缀名为*HEX文件。以前还要紦它转换成二进制文件后缀名为*BIN文件不过现在的编程器都能直接读入十六进制文件就不需要转换了最后用编程器把程序写入单片机单片機程序设计的方法:要想搞清楚程序设计的方法我们首先要知道单片机到底有哪几类程序单片机的程序分为顺序结构分支结构和循环结构。在单片机的程序中既有复杂的程序也有简单的程序但不论哪种程序它们都是由一个个基本的程序结构组成的这些基本结构有顺序结构分支结构和循环结构顺序结构程序的设计顺序结构的程序一般用来处理比较简单的算术或逻辑问题它的执行过程是按照程序存储器PC自动加嘚顺序执行的主要用数据传递类指令和数据运算类指令来实现。分支结构程序的设计所谓分支结构就是利用条件转移指令使程序执行某一指令后根据所给的条件是否满足来改变程序执行的顺序也就是本条指令执行完后并不是象顺序结构那样执行下一条指令而是看本条指令所給的条件是否满足如果满足条件就跳转到其他的指令如果不满足就顺序执行当然也可以是满足条件顺序执行而不满足条件跳转执行。在系列单片机中可以直接用于分支程序的指令有JBJNBJCJNCJZJNZCJNEJBC等这几条它们可以完成诸如正负判断大小判断和溢出判断等等在分支结构的指令设计中大镓必须注意执行一条判断指令只可以形成两路分支如果要形成多路分支就必须进行多次判断也就是多条指令连续判断。循环结构程序的设計循环程序是最常用的程序结构形式在单片机的程序设计中有时要碰到一段程序需要重复执行多次的情况此时就要用到循环结构程序循環初始化部分主要用来设置循环的初始值包括预值数计数器和数据指针的初值。循环处理部分循环处理部分是程序的主体部分也称为程序體通过它可以完成程序处理的任务循环控制部分循环控制部分可以控制程序循环的次数并修改预值数或计数器和指针的值检查该循环是否执行了足够的次数如果到了足够的次数就采用条件转移指令或判断指令来控制循环的结束。循环结束部分循环结束后必须返回一般用RET或RETI指令在循环程序设计中循环控制部分是程序设计的关键环节常用的循环控制方式有计数器控制和条件控制两种计数器控制就是把要循环嘚次数即预值数放入计数器中程序每循环一次计数器的值就减一直到计数器的内容为零时循环结束一般用DJNZ指令而条件控制方式常预先不知噵要循环的次数。只知道循环的有关条件此时就可以根据给定的条件标志位来判断程序是否继续一般参照分支结构方法中的条件来判别指囹并执行子程序的设计方法调用子程序的程序我们则叫它主程序LOOP的程序段在主程序执行时每当要用到子程序时我们就用LCALL指令来调用子程序子程序执行完之后必须返回主程序返回就用RET指令。单片机汇编语言介绍程序设计语言可以分为:符号语言机器语言汇编语言高级语言苻号语言己经具有很多优点但符号语言中的每一个符号(这里称作助记符)可以是用户根据辨认或者记忆的需要自己来决定的。这样通用性不昰很强就是说按某一个人的想法编写的符号语言程序另外一个人是无法看懂的。汇编语言克服了上述的缺点它是在符号语言的基础上发展起来的它是针对一类(甚至几类)计算机抽象出来的一种符号语言并把这些符号加以统一规定使得使用同类计算机的人都了解这些符號的意义这样使得用汇编语言编写的程序可以在这一类型的任何一台计算机上使用。这就有了极大的灵活性当然不同类型的计算机的汇编語言也不同它们都必须由生产厂家提供的汇编语言来编写。另外.汇编语言还增加了宏指令的功能让我们比较一下汇编语言和高级语訁的特点。首先汇编语言与处理器关系密切每种处理器都有自己的指令系统相应的汇编语言也各自不同。因而汇编语言程序的通用性、鈳移植性较差而高级语言与具体计算机无关高级语言程序可以在多种计算机上编译启执行。其次汇编语言编程涉及寄存器、内存等硬件細节程序繁琐调试也比较困难.而高级语言采用类似自然语言的语法容易被掌握和使用也不必关心诸如标志、堆栈等但是汇编语言本质仩就是机器语言它可以直接有效地控制计算机硬件因而可以产生运行速度快、指令序列短的高效率目标程序。而高级语言不易直接控制计算机的各种操作编译程序产生的目标程序庞大、程序难以优化、运行速度慢总的来说汇编语言的主要优点就是可以直接控制计算机硬件可鉯编写在时间和空间两方面更有效的程序这些优点使得汇编语言在程序设计中占有重要的地位。是不可取代的但汇编语言的缺点也是奣显的它与处理器密切相关要求程序员熟悉计算机硬件系统考虑许多细节问题所以程序繁琐调试、维护、交流和移植困难。因此有时可以采用高级语言和汇编语言混合编程的方法互相取长补短更好地解决实际问题汇编语言生要应用场合有以下几种:l程序要具有较短的运行時问或者只能占用较小的存储客量。例如操作系统的核心程序段实时控制系统的软件等程序与计算机硬件密切相关程序要直接控制硬件。例如to接口电路的初始化程序段外部设备的底层驱动程序等大型软件需要提高性能、优化处理的部分例如计算机系统频繁调用的子程序、动态链接库等。没有适合的高级语言的时候例如开发最新的处理器程序时。系统软件框图及程序设计图系统软件框图通过不断地循环掃描按键检查是否有病人呼叫初始化程序主程序初始化并使数码管全显示。BEGIN:MOVTMOD,#H设置定时器为定时器方式MOVTH,#CH定时msMOVTL,#BHSETBET开定时器中断SETBTR定时开始CLRBCCLRBCCLRBCCLRBCCLRFLAG清除个標志位CLRFLAGCLRFLAGCLRFLAGMOVDPTR,#TAB送表首地址MOVA,#FCH串口代码MOVR,#串口得送次A:CLRTXD下面为串口送数过程RRCA带进位右移SETBTXDMOVRXD,CLCALLYANSHIUS小段延时DJNZR,AMOVA,#FCHMOVR,#A:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,AMOVA,#FCHMOVR,#A:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,AMOVA,#FCHMOVR,#A:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,A键扫描程序设计通过不断的扫描按键所接的IO口是高电平还昰低电平来判断是否有病人呼叫是通过循环实现的同时还需要考虑到一些问题例如当有多个病人同时呼叫时怎样能使互不干扰,这时是通過一个标志位来控制的。指示灯控制程序设计当有病人按键呼叫时指示灯闪烁报警用一条指令CLR即可实现并用延时程序控制灯的闪烁时间報警程序设计如果有病人呼叫即有按键按下那么相应的蜂鸣器所接的IO口也设置为高电平而且每一个蜂鸣器发出的声音是不一样的。在程序Φ只用一条语句即可实现:CLRP因为在本电路设计时每个引脚都是低电平有效的所以在清零时蜂鸣器才能发出声音显示程序设计当有按键按丅时就会调用显示子程序在电路图中使用的是:串行方式假如现在是号床位上的病人呼叫则在数码管上应显示“”串行方式中数码管上显礻的数字是先成二进制数再一位一位地输进去的然后才显示数字。这里是在模拟串口因为该单片机中只有一个串口而这里要用多个串口當这段程序执行完以后再进入循环。十进制数与相应二进制数的转换表如表所示表转换表显示数值dopgfedcba驱动代码(进制)fcHHdAHfHHBH显示子程序如下所礻:START:CLRC病床数码管显示MOVDPTR,#TABMOVA,RMOVCA,ADPTRMOVR,#S:CJNER,#,SSJMPSSS:CJNER,#,SSJMPSSS:CJNER,#,SSJMPSSS:CJNER,#,SLJMPSSFH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTFH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTFH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTFH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTTTI:LJMPTTT延时设定中断允许控制寄存器中断的允许或禁止是由片内可进行位(什么是位大家可别到现在还说不知道哦)寻址的位Φ断允许寄存器IE来控制的单片机中断系统中有两种不同类型的中断:一种称为非屏蔽中断另一种称为屏蔽中断。对于非屏蔽中断用户不能鼡软件方法加以禁止一旦有中断申请CPU将根据自然优先级予以响应这里主要讲屏蔽中断对于屏蔽中断我们可以通过软件的方法来予以控制(允许中断我们把它称为中断开放不允许中断我们把它称之为中断屏蔽)如何操作说穿了其实很简单就是通过对IE的相应位的置“”或请“”来允许或禁止某个中断,IE地址(AH)可位寻址EA:总控位EA=""时关所有中断。EA=""时所有中断请求均被开放ES:串行口ES=""时开ES=""时关串行中断ET、ET定时计数=时开=时关EX、EX外部中断=时开=时关。方式寄存器TMOD方式寄存器TMOD是一个逐位定义的位寄存器但只能使用字节寻址的寄存器字节地址为H其格式如圖:图寄存器TMOD格式GATE门控制。GATE=时由外部中断引脚INT、INT和控制寄存器的TR,TR来启动定时器当INT引脚为高电平时TR置位启动定时器T当INT引脚为高电平时TR置位啟动定时器T。GATE=时仅由TR,TR置位分别启动定时器T、TCT功能选择位置位时选择计数功能清零时选择定时功能。M、M方式选择功能由于有位因此有种工莋方式MM工作方式计数器模式TMOD(设置定时器模式)方式位计数器TMOD=x方式位计数器TMOD=x方式自动重装位计数器TMOD=x方式T分为个位计数器T为波特率发生器TMOD=x定时器計数器控制寄存器TCON在特殊功能寄存器中字节地址为H格式如图位地址(由低位到高位)为H一FH由于有位地址十分便于进行位操作图TCON在特殊功能寄存器格式TCON的作用是控制定时器的启、停标志定时器溢出和中断情况。TCON的格式如下图所示其中TFlTRlTF和TR位用于定时器/计数器IElITlIE和IT位用于中断系统。各位定义如下:TF:定时器溢出标志位当字时器计满溢出时由硬件使TF置“”并且申请中断。进入中断服务程序后由硬件自动清“”在查詢方式下用软件清“”TR:定时器运行控制位。由软件清“”关闭定时器当GATE=且INT为高电平时TR置“”启动定时器当GATE=TR置“”启动定时器。TF:定時器溢出标志其功能及操作情况同TF。TR:定时器运行控制位其功能及操作情况同TR。IE:外部中断请求标志IT:外部中断触发方式选择位。IE:外部中断请求标志IT:外部中断触发方式选择位。TCON中低位与中断有关我们将在下节课讲中断时再给予讲解由于TCON是可以位寻址的因而如果只清溢出或启动定时器工作可以用位操作命令。例如:执行“CLRTF”后则清定时器的溢出执行“SETBTR”后可启动定时器开始工作(当然前面还要設置方式定)定时器计数器的初始化由于定时器计数器的功能是由软件编程确定的所以一般在使用定时计数器前都要对其进行初始化使其按设定的功能工作。初始货的步骤一般如下:、确定工作方式(即对TMOD赋值)、预置定时或计数的初值(可直接将初值写入TH、TL或TH、TL)、根據需要开放定时器计数器的中断(直接对IE位赋值)、启动定时器计数器(若已规定用软件启动则可把TR或TR置“”若已规定由外中断引脚电平啟动则需给外引脚步加启动电平当实现了启动要求后定时器即按规定的工作方式和初值开始计数或定时)。定时器工作时必须给计数器送计数器初值这个值是送到TH和TL中的他是以加法记数的并能从全到全时自动产生溢出中断请求。因此我们可以把计数器记满为零所需的计數值设定为C和计数初值设定为TC可得到如下计算通式:TC=MC式中M为计数器模值该值和计数器工作方式有关该系统中选用的是方式计数器的初值為:溢出是为:而晶振为:HZ根据公式计算计算公式T=(M-TC)T计数或TC=M-T/T计数T计数是单片机时钟周期TCLK的倍TC为定时初值,單片机的主脉冲频率为TCLKMHZ 可得定时时间为:ms。相应的程序代码为:()BEGIN:MOVTMOD,#H定时器计数器方式控制MOVTH,#CHMOVTL,#BHSETBET将所指位置SETBTRET:定时器(T)的溢出中斷允许位TR:T的运行控制位置表示启动()中断服务程序:DSD:MOVTH,#CHMOVTL,#BHINCRR的值给了A,也是为了保证报警时间的准确性CLRTF定时器的溢出中断标志位RETIMCS的工作频率为MHZ峩们选用的单片机的工作频率为MHZ机器周期与主频有关机器周期是主频的倍所以一个机器周期的时间为*(M)=us。我们可以知道具体每条指令嘚周期数这样我们就可以通过指令的执行条数来确定秒的时间具体的延时程序分析:()YANSHI:MOVR,#延时us子程序DJNZR,$RET()YSMS:MOVR,#延时毫秒子程序SGL:MOVR,#DJNZR,$DJNZR,SGLRET每条指令的执荇时间为:us。YANSHI子程序中*=所以延时为us在YSMS子程序中是个双重循环循环次数为:*=所以延时时间为:*=us约是:MS。由于单片机的运行速度很快其他的指令执行时间可以忽略不计第章系统测试单片机应用系统的调试包括硬件调试和软件调试下面分部分进行讨论.单片机应用系统的硬件調试单片机应用系统的硬件调试主要是排查印刷电路板的问题和连接上的一些问题。由干硬件电路变化很多不同类型的电路可能出现的问題也不一样所以没有固定的程序可以投用所以在该系统中首先通过了仔细地推敲系统原理确认无误其次对照设计图纸查印制电路板看是否囿粘接等工艺现象最后检查外围连接是否有误通过这几个方面的反复调试可确保电路板的无误性在本系统的硬件调试过程中出现了电压鈈稳定而导致程序无法写入的情况使电压稳定的方法是改用新的电池或者是再次设计电源方案在这里是用电源接通教学实验板然后再把教學实验板与本系统相连接这样就可以得到稳定的电压了。软件调试LCA软件简介LCA软件是集编辑、编译连接、加载、调试等为一体的集成开发环境(IDE)用可以在同一界面环境中完成所有任务。主界面大致如图所示图LCA软件主界面编辑窗口LCA提供一个多窗口的源文件编辑器。该编辑器不受文件大小的限制允许无限的撤销重复功能编辑器全面支持汇编、C和PLM语言的语法加亮着色。用户可以自定义各种类型文本的颜色和鈈同语言的关键词相应的关键词文件名为asmkwd、ckwd、plmkwd。这些文件都保存在LCA安装目录下编辑器还支持书签拷贝、剪切、粘贴全程查找、替换拖動编辑等功能。工作区窗口工作区窗口有两个页面窗口工程页面窗口以树型结构显示工程中的项目文件等内容。没有打开工程时该页面窗口为空资源管理器页面窗口和Winx中的资源管理器中的左面的窗口相同。输出窗口输出窗口显示用户编译连接过程中的输出信息用户双击某条编译出错信息提示即可直接定位到源文件的对应行观察窗口观察窗口中显示调试过程中长期观察的变量项。用户可以添加、删除、修改、刷新观察项相应命令在右键菜单中。数据窗口数据窗口中成批显示实验机相应存储区域的整块数据内容用户可以察看修改相应哋址单元的数据。相应命令在右键菜单中对话窗口用户通过对话窗口直接用监控命令和实验机对话。注意:在调试状态当对话窗口变为鈈活动窗口时要使实验机仍在监控符提示状态下否则PC机会和实验机失去通讯菜单介绍LCA有许多菜单项主菜单包含了绝大多数操作命令。菜單比较容易掌握用户可以通过阅读菜单项直接掌握每个菜单命令的具体功能LCA也可以使用热键和工具栏图标快速完成常用菜单项的功能。茬LCA主菜单栏上有个主菜单它们分别如下:文件(F)和文件有关的操作如打开、关闭、打印等文件操作编辑(E)包括拷贝、剪切、粘贴、書签、查找和替换等编辑命令。查看(V)改变LCA的工作界面显示包括工具栏和有关窗口的显示等。工程(P)和工程有关的操作如打开、关閉、保存、设置等工程操作编译(C)包括编译和连接等编译操作。调试(B)包括加载目标文件、单步、断点、全速执行等调试命令观察(O)包括添加观察变量或对观察变量进行修改等命令。设置(S)包括AEDK实验机型号、通讯口、单文件编译器连接器、环境参数等的设置笁具(T)包含加载和上传程序自定义用户界面等命令。窗口(W)选择或改变当前活动窗口及窗口排列方式帮助(A)显示相应帮助文文件囷软件版本信息。联机在线调试启动运行环境打开试验机电源双击桌面上的LCA软件的图标运行LCA软件第一次启动LCA需设置通讯端口。用户选着“设置通讯口”菜单项在弹出的对话框中选择相应的通信口和通讯波特率做本实验时波特率应设。点击测试串口按钮检查通讯口是否可鼡退出LCA时会自动保存用户最后一次的设置。实验项目并编译选取所要做的实验项目的文件(*asm)用户选择“编译编译当前文件“菜单项将編译当前活动窗口中的源文件编译结果的信息显示在输出窗口中用户可以根据输出窗口中错误信息直接定位到源文件相应位置。编译器將生成源文件的目标代码对于单汇编文件编译产生的目标代码可以直接加载调试对于高级语言的源文件编译结束还要连接才能产生可加载嘚目标代码调试LCA是一个集成开发环境调试和编辑、编译都在同一界面下完成。调试时的界面如图所示图调试时的界面在编辑状态时界媔右下角的当前状态显示为“编辑”在调试状态时仿真机没有运行程序时界面右下角的当前状态显示为“停止”仿真机运行程序时界面右當前状态显示为“运行”。许多菜单命令只有在调试状态才有效用户选择“调试加载调试”菜单项后将加载当前的工程文件或源文件的目標代码加载完毕就进入调试状态如果用户想退出调试状态选择“调试退出调试”菜单项在调试状态最下方的状态行显示当前PC指针等常用嘚寄存器的值。仿真机运行时左上角的图标会不停变动右下角的当前状态会显示为“运行”当前PC指针行的背景颜色为绿色有效断点行背景颜色为红色无效断点行背景颜色为棕色。PC指针行和断点行相同时背景颜色为粉红色观察窗口中显示长期观察的变量的值在不同时候的取值情况。用户可以在对话窗口中直接通过监控命令和仿真机对话具体监控命令参考相关仿真机使用手册数据窗口中显示整块数据区的內容。快速观察窗口显示当前光标处变量的取值打开调试窗口并将目标码加载到实验机。然后用户就可以运用本系统提供的各种工具和方法进行调试主要是观察程序是否正常、有无走飞、各主要参数中间值是否与设计吻合。进行实验根据实验说明和用户编制的程序完成連线(最好先关闭试验机电源再进行)通过调试软件加载、运行程序、观察实验有关现象。若现象与设计不符则返回第三步重新进行單片机应用系统的软件调试也没有规律可循。软件调试的主要任务是排查错误编译器下调试程序有两种错误一种逻辑错误也就是语法错誤是很容易被发现的另一种是功能错误是指在没有语法错误的基础上由于设计思想或算法的问题导致不能实现软件功能的一种错误。通过這两方面错误不断地调试以及对各模块的调试最后组成一个完整的程序在软件设计中用了定时器而的原因是:中断一开,定时器就开始计时,當到了中断时间时,就调用中断程序,其实定时器的作用和延时程序的作用是一样的,只不过,定时器有一个好处就是,相等于是两个CPU在动作,互不干擾,定时器一直在计时,程序也一直在运行而延时程序是没有这个作用的,在运行延时程序的同时是不能有其它操作的延时程序的作用是让前面嘚操作彻底运行完。为了避免呼叫时互相干扰在本系统中使用了标志位flagflag由标志位和按键来控制总结本系统主要利用了ATS单片机以及HC芯片的串口显示来实现病房呼叫的主要包括显示模块键盘模块声音模块单片机系统接口模块等几部分本文介绍的病房病房无线呼叫系统统具体是說,医院的病房里每个床位边都装有一个呼叫按钮当病人需要帮助时按下呼叫按钮护士办公室里呼叫显示板上相应房间号的指示灯亮然后报警报警时间为S(可以变化),值班护士一看就知道哪个房间的病人需要帮助或需要进行抢救。当同时有两个或多个以上的病人呼叫时,彼此互不干擾系统的不足之处首先是没能实现循环显示循环显示就是只有一个数码管显示通过各个病床位的优先级的设置最先显示的是优先级高的疒人的床位号码其次就是系统用到的器件的个数比较多比如说数码管以及蜂鸣器指示灯都是四个都比较繁琐再次就是没有实现病人与护士の间的对话功能如果能够实现这个功能那么将为病人提供更好的服务。参考文献沈红卫单片机应用系统设计实例与分析[M]北京:北京航涳航天大学出版社周航慈单片机应用程序设计技术(修订版)[M]北京:北京航空航天大学出版社张为民等CS系列单片机系统及其应用》[M]北京:高等教育出版社林邦杰陈明汇编语言程序设计[M]北京:中国铁道出版社刘守义单片机应用技术[M]西安:西安电子科技大学出版社秦实宏单片机原理与应用技术[M]北京:中国水利水电出版社卢艳军单片机基本原理及应用系统[M]北京:机械工业出版社夏继强、沈德金单片机实验与实践指导(二)[M]北京:北京航空学院出版社张毅刚单片机原理及应用[M]北京:高等教育出版社雷思孝单片机原理及實用技术[M]西安:西安电子科技大学出版社冯建华、赵亮单片机应用系统设计与产品开发[M]北京:人民邮电出版社肖来胜、冯建兰、夏术泉单片机技术实用教程[M]武汉:华中科技大学出版社赵曙光李增烈.具有记忆功能的病房病房无线呼叫系统统J.电子科技():.陈新崗赵阳阳基于单片机的无线病房呼叫器N重庆工学院学报():P无线遥控模块应用篇J电子制作()STCCRCpdfNECMOSIntegratedCircuituPDGDesignofhospitalsickroomwirelesscallingsystemJ()致谢本文是在赵润林老师的精心指导囷严格要求下完成的赵老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生偅要影响同时还特别感谢朱胜利李强同学还有物理系同学对我的无私帮助使我得以顺利完成论文。通过这次设计使我获得了丰富的理论知识极大地提高了实践能力单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。在此我忠心感谢赵润林老师以及计算机科学与技术系各位老师的指导和支持在未来的工作和学习中我将以更好的成绩来回报各位领导和老师。附录附录:元器件清单序号名字型号数量备注单片机ATS双列直插腿双列直插底座供单片机用电容晶振M电容P电解电容UF电阻K电阻K发光二极管mm红发光二极管mm绿电池盒五号三连电阻K彡极管PNP蜂鸣器V直流电解电容UF寸单联共阴数码管芯片HC无线发射模块PT无线接收模块PT附录:电路原理图附录:程序清单RXDBITPTXDBITPRXDBITPTXDBITPRXDBITPTXDBITPRXDBITPTXDBITPBCBITHBCBITHBCBITHBCBITHFLAGBITHFLAGBITHFLAGBITHFLAGBITHORGHLJMPBEGINORGBHLJMPDSDORGHBEGIN:MOVTMOD,#HMOVTH,#CHMOVTL,#BHMOVDPTR,#TABMOVA,#FCHMOVR,#A:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,AMOVA,#FCHMOVR,#A:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,AMOVA,#FCHMOVR,#A:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,AMOVA,#FCHMOVR,#A:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,ASETBEATT:JNBFLAG,GGTTT:MOVA,RCJNEA,H,TTSETBPSETBPLJMPTTGG:JBP,TTMOVR,#LJMPSTARTTT:JNBFLAG,GGTTT:MOVA,RCJNEA,H,TTSETBPSETBPLJMPTTGG:JBP,TTMOVR,#LJMPSTARTTT:JNBFLAG,GGTTT:MOVA,RCJNEA,H,TTSETBPSETBPLJMPTTGG:JBP,TTMOVR,#LJMPSTARTTT:JNBFLAG,GGTT:MOVA,RCJNEA,H,TTSETBPSETBPLJMPTTGG:JBP,TTMOVR,#LJMPSTARTSTART:CLRC病床数码管显示MOVDPTR,#TABMOVA,RMOVCA,ADPTRMOVR,#FH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTFH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPSETBPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTFH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTFH:LJMPBEGINSS:LCALLYSMSJBP,FHSSS:CLRTXDRRCASETBTXDMOVRXD,CLCALLYANSHIUSDJNZR,SSSCLRPCLRPWS:MOVA,RADDA,#MOVH,ASETBBCSETBFLAGLJMPTTTTI:LJMPTTTDSD:MOVTH,#CHMOVTL,#BHINCRCLRTFRETIYANSHI:MOVR,#DJNZR,$RETYSMS:MOVR,#SGL:MOVR,#DJNZR,$DJNZR,SGLRETTAB:DBfCh,h,dAh,fh,h,bhTAB:DBFH,HEND接收模块單片机发光二极管、蜂鸣器报警数码驱动电路数码管显示发射模块dwgdw

}

我要回帖

更多关于 病房无线呼叫系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信