1、本科毕业设计(20届)病房呼叫机设计所在学院专业班级电气工程及其自动化学生姓名学号指导教师职称完成日期年月II摘要【摘要】为提高医院的工作效率,保证病人及时得到医护人员的救助,本人设计了一种新型的医院病房呼叫机系统。该系统以STC12C5A08S2单片机,STC11F02单片机为核心,采用RS485总线进行通信,实现病房与护理人员间的快速、准确的呼叫及响应功能。系统由护理主机、呼叫从机、RS485总线通信、声光报警及时钟实时显示等组成,采用主从分布式多机通信,能同时监控多个病房的呼叫对其进行处理,并且通过采用RS485总线通信系统实现了远距离,多机通信的呼叫。【关键词】STC12C5A08S2
2、;STC11F02;RS485总线;主机;从机。IIIABSTRACT【ABSTRACT】TOIMPROVETHEEFFICIENCYOFTHEHOSPITALANDTOENSUREPATIENTSRECEIVETIMELYMEDICALRELIEF,DESIGNEDANEWTYPEOFHOSPITALWARDCALLINGSYSTEMTHESYSTEMSTC12C5A08S2SCM,STC11F02MCUCORE,USINGRS485COMMUNICATIONBUS,TOACHIEVEBETWEENWARDSANDNURSESQUICKLYANDACCURATELYCALLANDRESPON
3、SECAPABILITIESTHEHOSTBYTHECARESYSTEM,CALLTHESLAVE,RS485BUSCOMMUNICATION,REALTIMESOUNDANDLIGHTALARMANDLCDDISPLAYANDOTHERCOMPONENTSADOPTEDTHEMASTERSLAVEDISTRIBUTEDMULTIMACHINECOMMUNICATION,CANSIMULTANEOUSLYMONITORMULTIPLECALLSANDPROCESSINGUNIT,THROUGHTHEUSEOFRS485BUSCOMMUNICATIONSYSTEMTOACHIEVELONGRAN
4、GE,MANYTOCALL【KEYWORDS】STC12C5A08S2STC11F02RS485BUSHOSTSLAVEIV目录1绪论111课题的背景及研究意义112国内外研究现状113本病房呼叫机系统的设计要求及拟实现的主要功能12系统总体方案与选择321控制器方案选择322主从机之间的通信方案选择323点滴液位监测电路方案选择324显示电路方案选择425系统总体设计43系统硬件电路设计631电源电路632时钟产生、显示模块电路633点滴液位监测电路734通信驱动电路835串行口扩展电路94系统软件设计1141通信接口1142通信协议1143主机程序设计1344从机程序设计134574HC5
5、95串行口扩展程序设计1446时钟产生、显示模块程序设计145调试1651时钟产生、显示电路调试165274HC595串行口扩展电路调试1853RS485多机通信电路调试196总结2261时钟产生、显示模块电路调试总结22V6274HC595串行口扩展电路调试总结2263RS485多机通信电路调试总结22参考文献23附录2411绪论11课题的背景及研究意义现阶段医院病房呼叫机还处于低水平,大多数还是靠人工步行呼叫,存在医护人员不能及时赶到,不能满足服务效率上的要求,这样不仅会带给病人时间上的耗费,甚至激化医患矛盾等问题,对于医院也会有经济效益损失,并存在一定安全隐患。病房呼叫机系统是一种分布式
6、的网络系统,可以及时准确的找到病人所在位置和所要的需求,及时解决病人的各种请求,例如当病人有身体不适或其他需要时,按下从机的呼叫按键,主机就点亮该病床指示灯,那么护士或医生就可以及时找到病人,为其进行及时处理,同时取消报警信号。而当病人在休息未注意点滴瓶时,点滴挂完时产生一定的信号,护士或医生也可以收到该信号对其进行及时处理。这样一来,节省了病人时间,消除了安全隐患,并且带来了极大的方便。市场上的病房呼叫机系统主要有有线和无线两大块。无线呼叫系统成本高,容易受到各种因素的干扰,而且无线电波会干扰其它的医疗仪器设备。而有线的病房呼叫机系统虽然需要现场布线,但专线专用,可靠性高,报警信号传输相对稳
7、定,因此本系统采用RS485总线进行传输管理。由此可见,基于RS485总线的病房呼叫机是一个很有开发前景的网络系统,给病人提供了方便,同时也提高医院的工作效率和最大程度上的经济效益。该系统具有广泛的社会意义与重大的使用价值。12国内外研究现状随着科技水平和医疗水平的进步,信息化时代的飞速发展,医院的服务理念也随之发生了相应的改变,树立了以人为本,全心为患者服务意识。为了方便患者,提高服务质量,病房呼叫机系统已经成为了国内外各类医院中广泛使用的一种电子设备。病房呼叫系统发展到现在,已经不再简单是医患之间沟通的工具,在实际应用当中既要兼顾到医院的整体设计,又要具有良好的实用性、装饰性。病房呼叫机系
8、统的应用将成为生活中的必需品。目前使用的病房呼叫机系统大多采用无线通信技术进行通信,一般都具有声光报警功能,医护人员能够了解病人的医护请求。但由于无线信号容易对医院的器材产生很大的干扰,所以在使用过程中常出现不必要的麻烦。还有一些采用数字电路构成,病房呼叫机系统的主机一般都设在护士值班室。主机通过导线与各病房病床的终端呼叫器(一般为机械开关)相连。因此病房与值班室之间需要大量的连线,布线施工麻烦,成本也高。自90年代前期,一些公司、厂家陆续推出各种类型的医用呼叫机系统,安装于各个医院的住院床位,但大多数医院在使用中暴露出诸多问题。关键问题在于传输距离受到限制等问题。13本病房呼叫机系统的设计要
9、求及拟实现的主要功能针对目前病房呼叫机系统的发展状况及其所存在的问题,本文介绍了基于RS485总线的病房呼叫机系统的设计过程,该系统解决了传输距离受限制的问题。该系统由安装在病区护士站的护理主机2和分别设置在病房床头的呼叫从机,以及各病床对应的点滴监测系统组成。一旦病房中有人按下呼叫按钮或者产生点滴液位监测信号时,护士站的主机就发出相应的声光报警,同时对应病房门口的显示灯同步显示,护士人员便可以方便找到病房解决病人需要的情况。本系统由护理主机,呼叫分机和RS485总线组成,实现病人与护理人员间的快速、准确地呼叫及响应功能,实现远距离、多对一的呼叫功能。其中主机上有各病房请求信号的LED灯显示,
10、蜂鸣器报警、日历时钟实时液晶显示及其年月日、时分调整设置按键,从机上有呼叫按键及其对应的取消按键,病房门口指示灯和点滴液位监测电路。系统结构简单、性能可靠,是医院实现提高工作效率和改善服务质量的有效途径之一。本病房呼叫机,可以及时准确的找到病人所在位置,解决病人的各种问题,例如当病人有身体不适或其他需要时,按下从机的呼叫按键,主机就显示该病床呼叫按键指示灯,那么护士或医生就可以及时找到病人所在的位置,对其进行及时的处理,同时在病房中取消报警信号。这样一来,节省了病人时间,避免了安全隐患,并且带来了极大的方便。基于RS485的病房呼叫机系统提高了医院管理水平和服务水平,具有广阔的应用前景。32系
11、统总体方案与选择根据系统设计要求,对系统的从机呼叫主机,点滴液位监测系统,声光报警以及日历时钟实时显示等功能进行了分析。为了提高产品的稳定性,控制器采用STC单片机完成。对于各模块的设计,分别讨论如下21控制器方案选择方案一使用高端的ARM芯片,可以轻松实现高速实时同步的功能,但是由于目前病房呼叫系统的市场竞争力相当大,若为了设计的简单而失掉了产品最重要的价格优势,那么我们的产品将永远堆在实验室里。方案二采用性价比很高的STC单片机作为控制器芯片,既可实现稳定的系统设计,又可以使生产成本控制在很低的范围。STC系列的单片机作为核心芯片,加密性强,很难解密或破解,并且有超强的抗干扰能力,超低功耗
12、,并且在系统可编程,无需编程器,可远程升级等优点。综合考虑,最终采用了方案二。22主从机之间的通信方案选择方案一使用RS232标准进行通信,通信两端使用的驱动器和接收器分别负责TTL电平到RS232C电平和RS232C电平到TTL电平的转换。由于这两类芯片均使用单端电路,因此两者之间的接地电位的电位差VS可能相差会比较大,这在通信距离较远时将尤为明显,同时信号电平也易受到干扰。RS232C规定最大负载电容为2500PF,这个电容也限制了传送距离和传送速率,而且RS232C电路本身也不具有抗共模干扰的特性,RS232C的通信距离和通信速率均受到了限制。RS232使用12V,0,12V电压来表示逻
13、辑,(12V表示逻辑1,12V表示逻辑0),使用绝对电压表示逻辑,并且传输距离短,一般用于15M以内的通信。此外,RS232不能实现多机通信的功能。方案二使用RS485标准进行通信,RS485标准是一种基于平衡发送和差分接收的串行总线,具有很强的抗共模干扰能力,在适当的波特率下传输距离远;同时易于进行网络扩展,被广泛的应用在很多工业现场。与RS232接口相比,RS485总线的传输距离更长,抗干扰能力也更强。由于RS485芯片的特性,接收器的检测灵敏度为200MV,即差分输入端VAVB200MV,输出逻辑1,VAVB200MV,输出逻辑0;而A、B端电位差的绝对值小于200MV时,输出为不确定。
14、接口信号电平比RS232C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。其接口的最大传输距离为1200M(标准值),总线上允许连接多达256个收发器即具有多站能力,这样用户可以利用单一接口比较方便地建立设备网络。与RS232相比,RS485能实现多机通信的功能。综合考虑,最终采用了方案二。23点滴液位监测电路方案选择病人在打点滴时需要随时注意点滴情况,打完时自己或陪护人去按铃向护士进行呼叫,提醒护士来换药。这样如果病人或陪护人稍不注意,没有及时换药,就会导致病人静脉回血,给病人带来4危险。因此本系统设计了点滴液位监测电路。方案选择如下方案一使用电感式传感器
15、。使用继电器输出,输出信号标准,电路简单。其工作原理是滴管中液滴的滴下使电感量发生变化,通过LC振荡电路后输出变化的频率值,经过F/V变换电路之后,再通过电压比较后输出TTL电平信号来监测液滴。经过调试之后发现由于瓶中液体和周围环境随时会发生变化,很容易触发传感器,而使系统采集到错误的信号。方案二使用非接触式红外对管传感器。通过非接触式红外对管传感器监测点滴液位信号,当液面低于给定的输液位置时,认为输液过程已经结束,应发出报警信号。非接触式红外对管传感器,由于红外光波长比可见光长,因此受可见光的影响较小。此方案成本低,电路简单,且不受可见光的干扰,稳定性好。其发射端和接收端是分开的,只需将非接
16、触式红外对管传感器分别固定在滴管的两侧进行发射接收当瓶内点滴液面在光路之上时,红外接收管不能接收到红外发射管发出的光;当瓶内点滴液面逐渐下降至光路附近时,红外接收管能接收到红外发射管发出的光,从而驱动相应电路发出报警信号,通知医护人员及时采取措施。监测电路如图21。发射端接收端滴管口滴管图21点滴监测电路由于医疗系统本身的特殊要求,监测系统绝对不能直接接触药液,否则可能造成细菌污染,因此必须要进行非接触测量;同时非接触式红外对管传感器外形尺寸小巧,灵敏度高且价格便宜。能满足本设计输液器的各项性能要求指标。综上所述,可知我们选择了方案二。24显示电路方案选择方案一采用数个七段数码管显示,控制简单
17、易行,所占体积较小,但需要额外的驱动或扩展芯片,整体结构不够直观大方。方案二使用12864LCD液晶进行日历时钟实时显示,简单,电路性价比高,又能很好的完成驱动作用,并且感觉美观大方,所需的元件也较少。采用LED显示病房号码,显示清晰明了,易于查看。综上所述,根据本系统要求,采用方案二。25系统总体设计本人采用STC12C5A08S2芯片的单片机作为主机核心芯片,STC11F02芯片的单片机为从机核心芯片,RS485总线为通信系统方式,设计了一种分布式的病房呼叫机系统,能够实现病房与护理人员之间的呼叫及响应功能。该系统采用模块化设计思想,主从式结构。系统工作时,主机依次向从机发5送地址信息,各
18、从机接收主机发来的地址信息,如果和自己相同,则向主机发送自己的请求信号(呼叫信号或点滴液位监测信号),主机接收到从机的请求信号,点亮主机上对应的指示灯和警报蜂鸣器,无请求信号,不响应。各从机和主机之间采用RS485总线标准进行通信。当有病人按下呼叫按键或者点滴液位监测信号时,主机有声光报警,同时从机上的指示灯点亮。若医生对该请求信号作出应答,在从机处清除相应的请求信息,同时主机与从机的声光报警信号清除,指示灯熄灭,否则主机与从机的声光报警信号一直存在,指示灯也一直点亮。本系统整体框图如图22。声光报警日历时钟实时显示键盘RS485接口电路护理主机STC12C5A08S2RS485接口电路指示灯
19、呼叫从机N点滴监测电路键盘RS485接口电路指示灯呼叫从机1点滴监测电路键盘图22病房呼叫机整体框图63系统硬件电路设计31电源电路为确保经过长距离传输的损耗之后仍有5V电压供电,并且考虑到LM7805的输入、输出电压差不小于25V,本系统采用12V的稳压电源直接为系统供电,经过LM7805稳压及并联电解电容和瓷片电容进行滤波后得到一个约为5V的直流电,即为电路的工作电源。电路中二极管D1的作用是防止系统因电源反接导致电路损坏。液晶显示的电源33V由AMS1117电路输出。电源电路如图31所示。C1104VIN1GND35V2U2LM7805CKC310UFC4104C210UFC510UFC
20、622UFD1DIODE12V33V5VVIN3GND1VOUT2U4SPX1117MC7104图31电源电路32时钟产生、显示模块电路时钟产生、显示模块电路,实时显示此时此刻的日历时钟,通过DS1302芯片实现时钟产生的功能,采用MZL0512864LCD液晶实现显示的功能,时间调整通过四个按键来完成。按键1是时间调整与时间显示的切换,按键2的功能是进入调整状态后,时分、年月日位之间的切换,按键3的功能是位递加,按键4的功能是位递减。DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM。时钟操作可通过AM/PM指示决定,采用24或12小时格式。D
21、S1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三条线(1)RES(复位),(2)I/O(数据输入输出线),(3)SCLK(串行时钟)。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低,同时能保持数据和时钟信息的功率小于1MW。DS1302是由DS1202改进而来,增加了以下的特性双电源管脚用于主电源和备份电源供应,VCC1为可编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等。显示模块电路采用MZL0512864液晶实现。MZL0512864为一块小型的128X64点阵的LCD显示模
22、组,模组上的LCM采用COG技术将控制(包括显存)、驱动器集成在LCM的玻璃上,接口简单、操作方便;为方便用户的使用,铭正同创在LCM的基础上设计了MZL0512864模组,将模组所必需的外围电容电阻集成到模组上。MZL0512864模组与各种MCU均可进行方便简单的接口操作。显示映射情况MZL0512864液晶显示模组的显示器上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;共有65(8PAGEX8BIT1)X132个位的显示RAM区。而显示器的显示点阵大小为64X128点,所以实际上在液晶显示模块中有用的显示RAM区为64X128个位;按BYTE为单位划分,共分为8个PAGE,每个P
23、AGE为8行,而每一行为128个位(即128列)。驱动控制芯片的显示RAM区每个BYTE的7数据对应屏上的点的排列方式为纵向排列,低位在上高位在下。时钟产生、显示模块电路如图32。S6液晶显示GNDVCCSDISCKA0RESCS1LCDLCD1MZL0512864LCD_CSLCD_RESLCD_A0LCD_SCKLCD_SDIVCC11X12X23GND4RST5I/O6SCLK7VCC28U3DS1302Y132768K5V33VS3S4S5时,分,秒调整选择加减BT13VR41KR71KR31KR51KR61KP20P21P22P23P24调整选择P00P01P02P03P15P16P
24、17图32时钟产生、显示模块电路33点滴液位监测电路点滴液位监测电路是通过非接触式红外对管传感器实现的。当病人在休息未关注点滴瓶时,点滴挂完时产生一定的信号,从而传达给单片机通信,护士或医生收到信号时可以进行及时处理。非接触式红外对管传感器,其发射端和接收端是分开的,这一特性非常适用本系统,只需将非接触式红外对管传感器分别固定在点滴瓶的两侧进行发射接收。当瓶内点滴液面在光路之上时,红外接收三极管不能接收到红外发射二极管发出的光,从而截止,值为“1”;当瓶内点滴液面逐渐下降至光路附近时,红外接收三极管能接收到红外发射二极管发出的光,从而导通,值为“0”,并且驱动相应电路发出报警信号,通知医护人员
25、及时采取措施。报警时的点滴液剩余量应该足够,符合护理人员对点滴剩余量的最低要求。点滴液面监测电路如图33。8R310K5VR21KPTR5000R1100P32图33点滴液位监测电路34通信驱动电路RS485接口是一种基于平衡发送和差分接收的串行总线,具有很强的抗共模干扰能力,在适当的波特率下传输距离远;同时易于进行网络扩展,被广泛的应用在很多工业现场。良好的接口设计,应该在硬件上保证系统有良好的抗干扰性、稳定性和易扩展性。由于RS485芯片的特性,接收器的检测灵敏度为200MV,即差分输入端VAVB200MV,输出逻辑1,VAVB200MV,输出逻辑0;而A、B端电位差的绝对值小于200MV
26、时,输出为不确定。RS485接口采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS485用于多点互相连接时非常方便,可以省掉许多信号线。本系统选用了性价比很高的半双工接口芯片SN75HVD3082。SN75HVD3082的一条总线可以连接多达256个节点,因此在每个从机接口上可以扩展更多的节点。SN75HVD3082的发送和接收功能转换是由它的RE_,DE端控制的。RE_1,DE1时,SN75HVD3082为发送状态RE_0,DE0时,SN75HVD3082处于接收状态。一般使用单片机的一根口线连接RE_,DE端。在上电复位时,由于硬件电路稳定需要一定
27、的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入SN75HVD3082的控制端,使上电时SN75HVD3082处于接收状态。RS485通信接口电路如图34。9RXDTXD1234J1CON45VC9104C310UFR112012VRI1RE2DE3D4GND5A6B7VCC8U13082DR图34RS485通信接口电路35串行口扩展电路串行口扩展电路是通过74HC595实现的。74HC595具有8位移位寄存器和一个存储器,三态输出的功能。数据在SHC
28、P的上升沿输入,在STCP的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(DS),一个串行输出(Q7)和一个异步的低电平复位;存储寄存器有一个并行8位的具备三态的总线输出,当使能OE_时(为低电平),存储寄存器的数据输出到总线。每当SHCP上升沿到来时,DS引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器;然后当STCP上升沿到来时,移位寄存器的值将会被锁存到锁存器里,
29、并从Q1Q7引脚输出。单片机将数据送出控制相应的请求指示灯的亮灭。一个病房中有两张病床,每张病床对应两盏指示灯,一盏指示灯是病人的呼叫信号指示灯,另一盏是点滴液位监测信号指示灯,本系统模拟两个病房,共有8盏指示灯。若需要扩展更多的病房信号指示灯,可通过74HC595的三根引线进行扩展。串行口扩展电路及对应病房指示灯如图35。10R21KR31KR41KR51KR61KR71KR81KD1LEDD2LEDD3LEDD4LEDD5LEDD6LEDD7LEDD8LED5V5V1122334455J1CON5123J2CON3DSSHCPSTCPDSSHCPSTCP5V1号病房2张病床4盏指示灯2号病
30、房2张病床4盏指示灯级联5VC2104C110UFQ11Q22Q33Q44Q55Q66Q77GND8Q79MR10SHCP11STCP12OE13DS14Q015VCC16U174HC595R11K图35串行口扩展电路及对应病房指示灯114系统软件设计基于STC单片机为核心芯片的病房呼叫机系统主要由由护理主机,呼叫分机和RS485总线组成,同时还有时钟产生、显示模块与各病房请求指示灯的显示。软件系统运行流程主要有主机主程序,主机中断服务子程序,从机程序,74HC595串行口扩展程序,时钟产生、显示模块程序等组成。41通信接口本系统通信接口采用的是RS485总线主从式多机通信标准。所谓主从式,即
31、在数个单片机中,有一个是主机,其余的为从机,从机要服从主机的调度、支配。RS485是一种单机发送、多机接收的单向、平衡传输规范,并增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围。RS485串行标准总线系统如图41。主机TXDRXDTXDRXD01从机TXDRXD02从机TXDRXDN从机图41RS485串行标准总线系统42通信协议主机采用串口2方式1,从机采用串口1方式1,波特率设置为9600BPS。不发送数据时,进入延时状态。从机发送信号时,先发送地址,再发送数据。主机STC12C5808S2的串口初始化为AUXR|
32、0X10/允许独立波特率,不加倍AUXR10X00/设置P1口为通信口S2CON0X50/方式1,允许串口2接收BRTFOCS/BAUD/12/32/FOCS/16BAUDIE0X90/总中断允许,串行口中断允许通信协议见表41。12表41通信协议IDDATA0X011号病房1号病床2(呼叫按键)3(液滴)4(取消信号按键)2号病床8(呼叫按键)9(液滴)16(取消信号按键)0X022号病房1号病床2(呼叫按键)3(液滴)4(取消信号按键)2号病床8(呼叫按键)9(液滴)16(取消信号按键)1号病床2(呼叫按键)3(液滴)4(取消信号按键)2号病床8(呼叫按键)9(液滴)16(取消信号按键)0
33、XFF256号病房1号病床2(呼叫按键)3(液滴)4(取消信号按键)2号病床8(呼叫按键)9(液滴)16(取消信号按键)从机发送过程中的10位数据通过TXD发送,通过RXD接收。串口通信数据格式包含一个起始位(0),8个数据位(低位在先),和一个停止位(1)。接收时,停止位进入特殊功能寄存器SCON的RB8位。波特率由独立波特率发生器BRT的溢出率决定。串口通信数据格式如图42。起始位停止位D0D1D7D6D5D3D2D4图42串口通信数据格式1343主机程序设计主机采用串口2方式1,波特率设置为9600BPS。系统工作时,主机先处理时钟产生、显示模块电路的功能。当接收从机一个字节数据完成时,
34、主机进入中断子程序,中断中读取寄存器中的数据,读取完数据后跳出中断。在主函数中判断是否为从机的地址,如是,再根据接收到的命令数据点亮相应的请求指示灯。主机程序流程图如图43。主机中断子程序如图44。开始串口2初始化并开串口2中断LCD初始化时钟芯片初始化读取时钟芯片时间值,并通过LCD显示设定时间按键是否按下通过相应按键设相应时间值根据接收的控制数据控制相应报警灯的亮灭串口接收到从机地址YYNN关串口2中断串口2中断标志位清零读SBUF的值开串口2中断图43主机程序流程图图44主机中断子程序44从机程序设计从机等待呼叫按键或点滴液位监测信号的信息,当有这些信息产生时,从机发送地址和命令数据。从
35、机采用串口1方式1,波特率设置为9600BPS。总共可以连接256台从机。如图45。14开始串口初始化是否有命令按键按下串口发从机地址根据按键值,串口发相应控制命令YN图45从机程序流程图4574HC595串行口扩展程序设计单片机将数据送出控制相应的请求指示灯的亮灭。每当SHCP上升沿到来时,DS串行数据输入引脚中当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器;然后当STCP上升沿到来时,移位寄存器的值将会被锁存到锁存器里,并从Q17引脚输出。
36、74HC595串行口扩展软件流程图如图46。开始P0为仅为输入SH_CP0ST_CP1WR_595写数据OUT_595输出及显示结束图4674HC595串行口扩展软件流程图46时钟产生、显示模块程序设计DS1302与微处理器进行数据交换时,首先由微处理器向电路发出命令字节,命令字节最高位15MSBD7必须是逻辑1,如果D70,则禁止写DS1302,即写保护;D60,指定时钟数据,D61,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSBD0为逻辑0,指定写操作(输入),D01,指定读操作(输出)。在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从
37、低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0到高位7。日历、时间寄存器见表42。表42日历、时间寄存器寄存器名称命令字取值范围写操作读操作秒寄存器80H81H0059分寄存器82H83H0059时寄存器84H85H0112或0023日寄存器86H87H0128、29、30、31月寄存器88H89H0112年寄存器8CHBDH0099显示部分是通过MZL0512864液晶实现。用户如要点亮LCD屏上的某一个点时,实际上就是对该点所对应的显示RAM区中的某一个位进行置1操作,所以就要确定该点所处的行地址、列地址。液晶显示模组的
38、行地址实际上就是PAGE的信息,每一个PAGE应有8行;而列地址则表示该点的横坐标,在屏上为从左到右排列,PAGE中的一个BYTE对应的是一列(8行,即8个点),达128列。可以根据这样的关系在程序中控制LCD显示屏的显示。一个汉字为1616,字符是816。时钟产生、显示模块的程序流程图如图47。初始化写操作允许、停止时钟按键设置时间读取并显示时间按键设置YN图47时钟产生、显示模块的程序流程图165调试51时钟产生、显示电路调试时钟产生、显示电路是由DS1302时钟芯片,MZL0512864液晶显示及按键组成。DS1302可以通过小电流对电池进行充电,同时电池可以作为DS1302实时显示的后
39、备电源,提供掉电保护,防止主机关闭后无供电电源。在不经过按键调整时间的前提下,DS1302接上电源后的初始时间为11年01月01日00点00分00秒,显示如图51。图51初始化显示的时间按键调整有四个按键,按键1的功能是时间调整与时间显示之间的切换,按键2的功能是进入调整状态后,时分、年月日位之间的切换,按键3的功能是位递加,按键4的功能是位递减。时分、年月日时间调整的按键如图52。图52实时时间调整的按键17按键调整后时分、年月日的实时时间为11年05月05日17点00分05秒11年05月05日17点00分07秒。液晶显示的时间如图53图55。图53按键调整后的实时时间1图54按键调整后的实
40、时时间2图55按键调整后的实时时间3185274HC595串行口扩展电路调试单片机将数据送出控制相应的请求指示灯的亮灭。LED的接法为共阳极连接,故低电平点亮。输入数据为0FF,全灭的8盏指示灯如图56。图56呼叫信号与点滴信号指示灯1输入数据为00,全亮的8盏指示灯如下图57。图57呼叫信号与点滴信号指示灯2输入数据为0AA,一亮一灭的8盏指示灯如图58。图58呼叫信号与点滴信号指示灯31953RS485多机通信电路调试从机等待呼叫按键或点滴液位监测信号的信息,当有这些信息产生时,从机先发送本机的地址给主机,再发送信息对应的数据。主机接收到数据后点亮相应的请求指示灯。10位数据通过TXD发送
41、,RXD接收。串口通信数据格式包括一个起始位(0),8个数据位(低位在先),和一个停止位(1)。数据与地址之间用34S延时,以方便区别。地址为02的从机发送的四个按键地址与数据如下从机2的地址为0X02,按下2号病床的呼叫按键1时发送数据2给主机,主机接收数据完成后进入中断,中断中读取SBUF寄存器中的数据,读取完数据后跳出中断,在主程序中判断是否是从机的地址。地址与数据之间有34MS左右的延时。半小格为一位。一位数据所持续时间的倒数为波特率。发送的地址为0X02,数据为2,接收到的地址为00000010,数据为00000010。以下波形为主机单片机RXD上测得。图59呼叫按键1对应数据从机2
42、的地址为0X02,按下1号病床的取消按键时发送数据4给主机,主机接收数据完成后进入中断,中断中读取SBUF寄存器中的数据,读取完数据后跳出中断,在主程序中判断是否是从机的地址。地址与数据之间有34MS左右的延时。发送的地址为0X02,数据为4。接收到的地址为00000010,数据为00000100。以下波形为主机单片机的RXD上测得。20图510取消按键1对应数据从机2的地址为0X02,按下2号病床的呼叫按键2时发送数据8给主机,主机接收数据完成后进入中断,中断中读取SBUF寄存器中的数据,读取完数据后跳出中断,在主程序中判断是否是从机的地址。地址与数据之间有34MS左右的延时。发送的地址为0
43、X02,数据为8。接收到的地址为00000010,数据为00001000。以下波形为主机单片机RXD上测得。图511呼叫按键2对应数据从机2的地址为0X02,按下2号病床的取消按键时发送数据8给主机,主机接收数据完成后进入中断,中断中读取SBUF寄存器中的数据,读取完数据后跳出中断,在主程序中判断是否是从机的地址。地址与数据之间有34MS左右的延时。接收到的发送的地址0X02,数据为16。地址00000010,数据00010000。以下波形为主机单片机RXD上测得。21图512取消按键2对应数据226总结61时钟产生、显示模块电路调试总结DS1302经过初始化后,单片机读取数据能正常显示初始值
44、时间,说明MZL0512864LCD液晶能正常显示。按键调整之后,能动态显示实时时间,说明DS1302时钟芯片在程序运行过程中能正常产生时钟。在调试过程中,由于选择的MZL0512864LCD液晶需要33V电源供电,在电源设计这一块,需要通过AMS1117将5V转换为33V电源供电,使电路变得比较复杂,不易于测试,在下次设计电路时,应该选取同一个电源的LCD液晶。在调试DS1302时钟产生、显示模块的过程中,总是会出现显示的时间里面出现85的数值,在确认程序正确的前提下,查找了很多资料并且又检查了下电路,后来通过在DS1302的数据输入输出口I/O引脚与单片机P16口之间接了1K的上拉电阻,解
45、决了碰到的问题。6274HC595串行口扩展电路调试总结74HC595串行口扩展电路在调试过程中也碰到了一些问题,程序写入的数据不能正确的显示出来,总是显示全亮的LED灯,74HC595芯片不受程序控制,经检查电路之后,发现在焊接过程中一个焊点DS与P04之间漏焊了,导致了74HC595芯片不受控制,解决了这个问题之后,电路能正常显示。63RS485多机通信电路调试总结RS485多机通信电路的调试是整个电路的核心部分。首先在点对点的通信过程中,波特率的计算遇到了一些问题,算出的值不能通信成功。再后来通过示波器测试的过程中,调整相关数值,使主从机的波特率一致,才使通信成功。点对点通信完成后,在调
46、试多机通信的过程中又碰到了一些问题点对点通信正常的前提下,一接上多机,通信就失效,完全不能实现多机通信的功能。经过查找资料以及请教了同学,才找到通信不成功的原因,就是当一个从机在发送数据时,另一个从机要处于接收的状态,才不影响发送。总的来说,RS485通信方式为半双工,一个从机为发送状态时,其余应都为接收状态。这是应该重视的一个问题。后来在程序的设计中将主机的查询方式改为中断方式,当接收从机数据完成时(地址和呼叫信号或点滴液位监测信号),主机进入中断子程序,中断中读取寄存器中的数据,读取完数据后跳出中断。在主函数中判断是否为从机的地址,如是,则点亮相应的请求指示灯。最终解决了多机通信地址冲突的
47、问题。23参考文献1全为名,基于RS485总线的病房数显呼叫器的设计J,微计算机信息,2002189。2尹丽丽,徐昌华,吴跃东,基于单片机控制的智能医护仪的设计与实现J,中国医疗器械信息,2008145。3张丽红,伦翠芬,李艳萍基于RS485总线的医院智能呼叫系统硬件设计N,河北科技师范学院学报,20099233。4张娅莉,廖承虎,沈爱祥,李艳萍,吕双娜基于单片机的病房呼叫系统的研制J,中国医疗器械信息,2008145。5倪伟,病房智能呼叫系统的研究和开发J,电气自动化,2004262。6朱晓颖,胡明,基于CAN总线的输液滴速监控系统设计C,江苏徐州,中国矿业大学信息与电气工程学院。7袁惠萍,
48、张缀琴,张永奎,楼然苗,病区护理站无线呼叫系统的设计R,浙江舟山浙江海洋学院,20081129111719。8罗伏力,80C31控制的病房呼叫系统J,企业技术开发20026。9朱艳华,田行军,李夏青,基于PL3105的病房呼叫系统设计N,北京石油化工学院学报,20096172。10XULIXIN,LIQINGLIANG,CHENZHEN,QIXINBO,ZHANGXINCHENG,APPLICATIONOFTHEWIRELESSDIGITALTRANSMISSIONTECHNOLOGYINREMOTEECGMONITORINGSYSTEM,DEPTOFCONTROLSCIENCESBITP1_
49、4P14DEFINEFOCS11059200DEFINEBAUD9600UCHARA0,B0,M0EXTERNVOIDDISPLAYUCHARTEMP/设时按键/SBITKEY_DOWNP03/KEYSBITKEY_UPP02/KEYSBITKEY_SHIFTP01/KEY移位SBITKEY_EDITP00/KEY设定SBITLEDP25/设定状态指示灯UCHARCODEREGISTOR_R0X81,0X83,0X85,0X87,0X89,0X8D/DS1302C中的子函数声明/EXTERNVOIDDELAYNMSUCHARNEXTERNVOIDINIT_DS1302VOIDEXTERNVOIDWRITESET1302UNSIGNEDCHARCMD,UNSIGNEDCHARDATEXTERNUNSIGNEDCHARREADSET1302UNSIGNEDCHARCMDEXTERNUCHARTIME_TESTUCHARREGISTOR,UCHARL,UCHARY,UCHARFLAGINIT_SERIAL/串口初始化AUXR|0X10/允许独立波特率,不加倍,每1个时钟计数一次AUXR10X00/0X00P1口S2CON0X50/方式20XC0方式3BRTFOCS/BAUD/12/32/F