版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业论文(设计)病区患者信息智能手环研究二级学院医药信息工程学院专 业生物医学工程班 级医学影像技术2011学生姓名莫廷威学 号1105512137指导教师冯博华2015年 2月3诚 信 声 明我声明,所呈交的毕业论文(设计)是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写过的研究成果,也不包含为获得其他教育机构的学位或证书而使用过的材料。我承诺,论文(设计)中的所有内容均真实、可信。毕业论文(设计)作者(签名): 年 月 日病区患者信息智能手环研究【摘要】本文研究了一种基于51单片机的病区患者信息智能
2、手环系统,对医院病区管理的智能化进行了探索。利用单片机的内部相关配置、工作原理以及编程方法,实现了通过矩阵键盘进行手环显示以及操作控制,包括按键锁定、按键解锁、病人信息录入与修改、病人信息查看、以及接触报警和病人实时呼叫等功能。本研究设计的电路部分主要包括:语音模块电路,包括放大电路、滤波整形电路、AD转换电路、控制电路、电源供电电路等。通过在LCD1602上显示相关病区患者的基本信息,包括年龄,以阿拉伯数字显示,病人姓名用患者编号标志,初此之外,还对解密、上锁等信息实现显示。本次硬件设计基于比较稳定可行、低成本的设计思想,软件设计采用模块化的设计方法,并且详细分析了语音播放模块应用于病区患者
3、实时报警和呼叫,使护理医疗工作变得更加人性化。显示模块通过仿真进行电路的可行性验证,最后完成实物电路的设计,使得本次课题的预期结果得以实现。【关键词】 智能手环;仿真;语音;报警;Study on patient information intelligent bracelet【 abstract 】 This paper introduced a smart bracelet and system that based on 51 single chip microcomputer. First the internal configurations of 51 single chip mi
4、crocomputer are introduced. And the paper also tell how 51 single chip microcomputer works and how can we program on it. Then the method of using temperature sensor to get body temperature is introduced, and we use infrared photoelectric sensor to get the pulse signal of human body. The design of th
5、e circuit mainly comprises sensing circuit , amplifying circuit, filtering and shaping circuit, AD converting circuit, counting and displaying circuit, controlling circuit, power supplying circuit and so on. When the keyboard is pressed, the system starts to get signal. The small signal from will be
6、 amplified and shaped. Then ad converter will change the analog signal into digital signal and send to 51 single chip microcomputer . At last LCD1602 will display the information of body temperature and heart rate. This hardware of the preset system of the folding machine Wasdeveloped by using the t
7、echnology of stepper motor driven by singlechipTheoperating principle of the stepper motor driven by single-chip Was elaborated。The style of motor and the limit switch were selectedAccording to demandsof the work,the board of the preset control Was designed by using the as the maincontroller,the lim
8、it switch level switching circuit and the switch circuit were also designedOn the basis of the practical application,demands of the system of electricity and power,the electric cabinet of the preset system Was designed【Keywords:】 Intelligent bracelet simulation Voice alarm目 录1. 前言12. 器件选择与系统设计32.1.
9、51系列单片机的内部结构32.2语音播放模块DYV01的介绍42.2.1. 概述42.2.2. 引脚功能说明42.2.3. 主要功能描述42.2.4. 下载操作52.2.5. 操作简介52.3. 单语音芯片WT588D08/16的介绍52.3.1. 产品特征52.3.2. 功能描述72.3.3. 应用范围83. 硬件设计123.1. 硬件总框图设计123.2. LCD1602显示电路设计133.3. DYV01 V1.1的应用电路设计143.4. 按键电路设计144. 软件设计174.1. 总程序设计和流程图174.2. LCD1602显示程序设计194.3. 按键输入部分程序设计214.4.
10、 语音播放部分程序设计234.5. 呼叫报警部分程序设计245. 系统测试265.1.实物验证266. 结论31参考文献32致 谢33附录34附录134附录236附录3371. 前言医院病房管理需求正在不断提高,病患管理的智能化水平也成为衡量医疗机构管理水平的重要标尺。例如婴幼儿在医院病房丢失的新闻不时见诸报端,给家长、医院带来严重的困扰和压力。可见,病区患者保护以及信息安全还不够完善,因此本文以病区婴儿防盗为例,研究集病人个人信息、婴儿防盗等功能于一体的智能信息手环,对于病区患者信息识别及安全有着重要意义。市面上大多数的智能手环,基本上都是能够起到一个计步器和监测睡眠质量的作用,可以算是最最
11、基本的健康监测。从Jawbone手环开始,智能手环慢慢进入到了人们的生活当中,它开始给人民一个概念,就是大家在选择配饰的时候可以也将运动监测等作为考虑的一个部分了。而且在Jawbone红火了起来以后,国内更多的创业团队也开始了这项业务。下面我们也为大家来总结一下,现在中国智能手环的一些发展趋势3。智能可穿戴设备无疑是目前最为热门的话题之一。被称为“互联网女皇”的美国知名风投KPCB分析师玛丽-米克尔(Mary Meeker)在今年的互联网趋势报告中,尤其强调了智能可穿戴设备的增长潜力,认为这是下一个热门领域。浅析现有的智能可穿戴设备,基本可以按照功能不同分为几大类:生活健康类、信息资讯类、体感
12、控制类等等,但也有一些产品横跨数项功能领域。如果按照产品外型,则可以分为手表、手环、眼镜、挂件、衣物、鞋子、背包等不同类型。3生活健康类是目前最为热门的产品,其中的代表性产品包括Jawbone Up 2、FuelBand、Fitbit、Lark、Mitfit Shine等等。这些产品最主要的功能就是记录人体运动、睡眠、饮食等各种健康相关数据,通过配套的应用软件,帮助消费者调整作息规律,督促加强锻炼,实现健康生活。虽然这些产品外型差别巨大,但都带有GPS、陀螺仪、加速计等各种传感器,可以测出佩戴者的运动量、消耗热量等数据,并将数据传输到智能手机以及云端13。 Jawbone UP 2和耐克Fue
13、lBand无疑是此类产品中最为突出的佼佼者,也是当前市场最为热销的产品。两款产品虽然都做成了手环,但耐克加入了LED点阵、蓝牙同步等更多炫酷功能,导致电池只能坚持2天左右。而Jawbone UP 2则选择了耳机插孔同步,牺牲了即时便利同步,却换来了长达10天的电池时间。2运动品巨头耐克很早就和苹果合作,以Nike+涉足了智能设备领域,去年发布的FuelBand则是当前最为炫酷的健康类可穿戴设备。除了社交功能和食物热量输入功能之外,UP手环还拥有睡眠监控与震动唤醒功能,可以记录用户的睡眠数据。同样在苹果店出售的Lark腕带也是主打睡眠功能,除了记录深浅睡眠之外,Lark还提供了睡眠质量评估报告、
14、私人睡眠教练等软件服务。虽然Lark在硬件功能上没有新奇之处,但对一些失眠患者来说,专业的睡眠指导才是他们购买Lark的动力所在3。本次研究计划分为三个阶段完成。第一个阶段作为调查研究,确定手环基本功能。首先我通过网络查看相关手环设计方面的信息,结合目前医院病区患者的实际情况,制定初步的功能选择方案,比如对患者体温心率的监测,病人区域化管理,如病人可以在手环的控制下不能超出医院规定的活动区域,否则会自动报警,还有就是病区患者基本信息录入,把病人给予编号,数字标记病人身份,然后再把病人的年龄加以录入,其次,设计病床无线呼叫,当病人有有需要时可以按下某一个按键,就可以实现呼叫。最后是一个防盗功能,
15、当手环遭到破坏和超出规定范围后自动报警,还有就是手环操作键盘需要有密码解锁后方可操作。这些是第一阶段的任务。第二阶段为仿真图的设计和显示信息录入部分程序编写,实现功能以后,紧接着进行体温,心率,呼叫报警,防盗功能,解锁功能的仿真设计和软件编程。这个阶段是设计的重要环节,需要指导老师的强大支持,特别是编程和电路设计方面较为薄弱,需要在其他同学以及老师的指导方可完成。第三阶段是调试工作。硬件焊接方面可能会有问题,可能仿真没有问题,但是实际调试中可能会有突发情况,所以,除了做好软件调试工作以外,还有细心检查电路焊接这些细节。最后是功能完善阶段,针对没有实现的功能,在仅有的时间里争取把他们都完成好。4
16、42. 器件选择与系统设计2.1. 51系列单片机的内部结构本次设计所采用的单片机型号为STC89C52单片机,其与大部分市场51系列单片机兼容,并且在扩展方面和高速方面更具有优势。以下关于单片机介绍的内容均以STC89C52为例。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX
17、810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口5。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选9。图2-1 单片机内部结构图 CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按其功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储
18、存器、指令译码器、实时控制与条件转移逻辑电路等组成59。它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。图2-1为51单片机内部结构图8。2.2语音播放模块DYV01的介绍2.2.1. 概述 与DYV03 DK配套,可实现下载、测试、演示功能; 3.3V和5V供电模式; 兼容TTL、CMOS电平;2.2.2. 引脚功能说明 如表2-1,所示,DYV03 DK各引脚具体情况:表2-1 DYV0
19、3 DK各引脚功能说明2.2.3. 主要功能描述DYV01,是DYVXX系列模块中的其中一款。它具有寿命长、工作可靠,且体积小、能与TTL、CMOS等电平兼容。广泛应用于计算机外围接口装置;数控机械、遥控系统、工业自动化装置;交通灯、信号灯、照明舞台灯光控制系统;仪器、仪表、医疗器械、办公设备、橡塑机械、自动消防等领域。DYV01 5V模块支持4.55.5V输入电压,自带3.3V稳压器,3V3引出脚可为外部供电;DYV013.3V模块支持2.83.6V输入电压。DYV01模块外围应用电路简单,客户可根据具体使用情况具体应用;若需要其他参数的产品,可进入本公司网页查询或咨询相关人员9。2.2.4
20、. 下载操作将DYV01 模块模块插入DYV03 DK 板子的插座中,底部对平。需根据不同电压的模块,配置DYV03 DK 板子的J6 接口,通过USB 线连接到电脑,此时,载器由USB 供电,不需要外部电源供电。从电脑上按照软件的操作,点击下载,便可将工程信息下载到模块中。2.2.5. 操作简介 下载完语音信息后,就可以在DYV03 DK 板上进行相关的测试操作。测试时,可以由USB 供电,也可以由外部电源供电。通电正常后电源指示灯亮(D3)。在音频输出端接上扬声器,先按动复位键对模块进行复位,再按动I/O 口输出触发按键就可播放语音(前提是PC 软件工程配置为按键模式、工程文件正确且下载完
21、成、且I/O 口所对应的地址要有语音)12。BUSY 忙信号输出指示灯是根据语音工程中的设置来点亮或熄灭的。此外也可插上面包通过杜邦线板连接MCU,实现其他模式的控制演示功能!2.3. 单语音芯片WT588D08/16的介绍2.3.1. 产品特征模块封装(带SPI-Flash及外围电路)有DIP16、DIP28,芯片封装有DIP18、SSOP20和LQFP32形式;根据外挂或者内置SPI-Flash的不同,播放时长也不同,支持2M32Mbi的SPI-Flash存储器;内嵌DSP高速音频处理器,处理速度快;内置13Bit/DA转换器,以及12Bit/PWM输出,音质好;PWM输出可直接推动0.5
22、W/8扬声器,推挽电流充沛;支持DAC/PWM两种输出方式;支持加载WAV音频格式;支持加载6K22KHz采样率音频;支持对已加载语音播放试听;可通过专业上位机操作软件,随意组合语音,可插入静音,插入的静音不占用内存的容量,一个已加载语音可重复调用到多个地址; 220段可控制地址位,单个地址位最多可加载128段语音,地址位内的语音组合播放; 最多可加载500段用于编辑的语音; USB下载方式,支持在线下载/脱机下载;即便是在WT588D语音芯片通电的情况,也一样可以正常下载数据到SPI-Flash; 芯片复位时间5ms; 支持MP3控制模式、按键控制模式、3×8按键组合控制模式、并口
23、控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制控制端口扩展输出模式; 三线串口控制模式切换到三线串口控制控制端口扩展输出模式只需发送数据就可以进行切换。切换后仍可把切换前的最后一工作状态带进切换后的模式工作; 任意设定显示语音播放状态信号的BUSY输出方式;抗干扰性强,可应用在工业领域; 220段可控制地址位,单个地址位最多可加载128段语音,地址位内的语音组合播放; 语音播放停止马上进入休眠模式,芯片转为完全停止状态; 15种按键控制模式,任意一个按键可设定任意一种控制模式; 配套WT588D VoiceChip上位机软件,接口简单,使用方便。能极大限度的发挥出WT588D语音
24、单片机的各项功能; 简单的单片机编写方式,摆脱以往复杂繁琐的汇编思维; 单个芯片支持外挂多个存储器; 插入的静音时间范围10ms25min; 工作电压DC2.8V5.5V; 静态休眠电流小于10uA; 支持8和弦MIDI播放(此功能有待开放)12。2.3.2. 功能描述 WT588D语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。WT588D让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。配套WT588D VoiceChip上位机操作软件可随意更换WT588D语音单片机芯片的任何一种控制模式,把信息下载到SPI-Flash上即可。软件
25、操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。完全支持在线下载,即便是WT588D通电的情况下,一样可以通过下载器给关联的SPI-Flash下载信息,给WT588D语音芯片电路复位一下,就能更新到刚下载进来的控制模式14。支持插入静音模式,插入静音不用SPI-Flash内存的容量,一个地址位可插入10ms25min的静音;MP3控制模式下,完全迎合市场上MP3的播放/暂停、停止、上一曲、下一曲、音量+、音量-等功能;按键控制模式下触发方式灵活,可随意设置任意按键为脉冲可重复触发、脉冲不可重复触发、无效按键、电平保持不可循环、电平保持可循环、电平非保持可循环、上一曲不循环、下一
26、曲不循环、上一曲可循环、下一曲可循环、音量+、音量-、播放/暂停、停止、播放/停止等15种触发方式,最多可用10个按键触发控制输出;3×8按键组合控制模式下能以脉冲可重复触发的方式触发24个地址位语音,所触发地址位语音可在0219之间设置;并口控制模式可用8个控制端口进行控制,仅限于WT588D-32L、WTW-28P;一线串口控制模式可通过发码端控制语音播放、停止、循环播放和音量大小,或者直接触发0219地址位的任意语音,发码速度600us2000us;三线串口控制模式和三线串口控制控制端口扩展输出模式之间可通过发码切换,三线串口控制模式下,能控制语音播放、停止、循环播放和音量大小
27、,或者直接触发0219地址位的任意语音,三线串口控制控制端口扩展输出可以扩展输出8位,在两种模式下切换,能让上一个模式的最后一种状态保持着进入下一个模式4。PWM和DAC输出方式,PWM输出可直接推动0.5W/8的扬声器,DAC输出外接功放,音质好。应用范围广,几乎可以涉及到所有的语音场所,如报站器、报警器、提醒器、闹钟、学习机、智能家电、治疗仪、电子玩具、电讯、倒车雷达以及各种自动控制装置等场所,工艺上达到工业应用的要求14。2.3.3. 应用范围 应用范围广,几乎可以涉及到所有的语音场所,如报站器、报警器、提醒器、闹钟、学习机、智能家电、治疗仪、电子玩具、电讯、倒车雷达以及各种自动控制装置
28、等场所,工艺上达到工业应用的要求。2.3.4. 应用框图如图2-2是WT588D语音芯片的应用框图:图2-2 WT588D语音芯片的应用框图2.3.5. WT588D08/16的一线串口控制模式2.3.5.1. 端口分配表2.3.5.2. 命令及语音码2.3.5.3. 语音地址对应关系2.3.5.4. 一线串口控制时序例子一线串口只通过一条数据通信线控制时序,依照电平占空比不同来代表不同的数据位。先发拉低RESET复位信号5ms,然后置于高电平等待大于17ms的时间,再将数据信号拉低5ms,最后发送数据。高电平与低电平数据占空比1:3即代表数据位0,高电平于低电平数据位占空比为3:1代表数据位
29、1。高电平在前,低电平在后。数据信号先发低位再发高位。在发送数据时,无需先发送命令码再发送指令。D0D7表示一个地址或者命令数据,数据中的00HDBH为地址指令,E0HE7H为音量调节命令,F2H为循环播放命令,FEH为停止播放命令。详细时序请见下图:例如,在一线串口控制模式下,发送数据9CH 的时序参见下图2-3图2-3 发送数据9CH 的时序 说明:/RESET为复位信号,发数据前对芯片进行复位,如不是在特殊的工业场合,可以不使用此复位信号。在每次发送数据前,不需要都发送复位信号,直接发送命令码或者地址数据即可。DATA为一线串口数据通信线,复位芯片稳定后先拉低5ms以唤醒芯片,低位在前,
30、BUSY为语音芯片忙信号输出,数据成功发送后等待20ms,BUSY输出将作出响应。数据位占空比对应详见下图。2.3.5.5. 程序范例主控单片机:PIC16F54,时钟主频4MHzSend oneline(unsigned char addr)sda=0;delay1ms(5); /* 数据信号置于低电平5ms */for(i=0;i<8;i+) sda=1;if(addr & 1)delay1us(600); /* 高电平比低电平为600us:200us,表示发送数据1 */sda=0;delay1us(200);elsedelay1us(600); /* 高电平比低电平为20
31、0us:600us,表示发送数据0 */sda=0;delay1us(200); 3. 硬件设计3.1. 硬件总框图设计此次设计的是基于STC89C52的病区患者信息智能手环,因此需要显示病区病人信息的液晶显示器LCD1602,考虑到手环体积问题,优先考虑使用体积更加小,更容易编程实现的LCD1602芯片,具体病区患者信息暂时以病人编号如001,002,003号病人等对病人进行标记,其次,对手环的防盗解锁上锁信息进行显示,如:contact nurse lock等信息,主要实现的是操作步骤以及病人信息等功能。设计中使用了DYV01 V1.1语音播放模块,此模块易于编程实现,体积更小,而且可储存
32、信息更大,这个设计中总共下载了多种语音播放,如“1号病房呼叫”以及一些报警语音,如“设备连接断开”等,语音播报更加清晰。同时设计中使用到了以简单的连线设计加上简单的编程实现报警和设备一旦断开后需要专业人员插上设备,且解开锁后方可以使得设备停止报警15。设计中应用了4*4矩阵键盘,编程易于实现,且能够满足病人信息输入要求,除此之外,相应设置了解锁、上锁、确定以及查看信息等按钮,操作起来更加简单。在呼叫系统当中设置三个按键,分别对病房呼叫进行设计,如按下1号按键,则相应做出语音呼叫应答。总框架图如图3-1所示:图3-1 系统设计总框图 3.2. LCD1602显示电路设计 1602液晶也叫1602
33、字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔 每行之间也有也有间隔 起到了字符间距和行间距的作用,正因为如此 所以他不能显示图形(用自定义CGRAM,显示效果也不好)目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。具体的电路连接如图3-2所示:图3-2 LCD1602显示电路设计 RS(4管脚)命令/数据选择线。RS状态决定了数据总线DB0DB7上的信号是命令
34、还是显示数据。RS=0时,DB0DB7的信号视为命令数据。RS=1时,DB0DB7的信号则作为液晶屏的显示数据。R/W(5管脚)读/写控制线。控制是从液晶屏读数据还是向液晶屏写数据。 R/W =0时,写数据。 R/W =1时,读数据。E(6管脚)使能端。该管脚控制液晶屏从数据总线DB0DB7上将数据读入液晶屏。当该管脚上的电平由1向0变化时,数据总线DB0DB7的数据被读入液晶屏。DB0DB7(714管脚)数据总线。这8位数据总线是数据交换的通道,单片机向液晶屏送入的命令或数据都通过这8位数据总线进行。+LED、-LED(15、16管脚)液晶屏背光供电端。这两个管脚是液晶屏背光供电端,正常工作
35、的电流约在190mA左右515。 另外,LCD1602的特性是+5V电压,对比度可调,内含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM,内建有160个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM。3.3. DYV01 V1.1的应用电路设计 下图是DYV01应用电路的设计,我把语音模块中的RST定义在单片机的P3.3口,把BUSY定义在控制芯片的P3.2口,把DATA定义在单片机的P3.4口,把之图3-3 DYV01 V1.1的应用电路设计前准备好的语音播放内容下载到语音模块上的芯片。
36、具体的电路连接见图3-3。3.4. 按键电路设计 用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P1.0P1.3各管脚作输入线,以单片机的P1.4P1.7各管脚作输出线。矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数
37、越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)11。矩阵键盘驱动的主要作用就是实时监测外部按键中断,一旦发现外部有键按下就向内核发送键盘消息实现键盘输入功能。如图3-4所示为键盘所设置的管脚定义。 图3-4 矩阵键盘行列管脚设置键盘驱动创建了中断服务线程和4个键盘中断事件,每行按键对应一个键盘中断事件。有键被按下时,中断服务例程得到对应的中断标识符并报告给系统任务调度进程,同时产生键盘中断事件,键盘中断服务线程响应键盘中断事件,开始扫描矩阵键盘。根据产生的中断事件类型不同,可以首先确定被按下键的行位置。由于键盘被按下后,该键对应的行和列被连通,因
38、此根据判断各列对应的I/O口的电平,可以得到被按下键的列位置;得到图3-5 为矩阵键盘功能设置以及行列信息按键的准确位置后,通过向操作系统发送键盘消息KEYBD_EVENT,实现一次键盘输入。循环扫描键盘,直到按键被弹起则发送KEYEVENTF_KEYUP事件。如图3-5为矩阵键盘功能设置以及行列信息说明。4. 软件设计4.1. 总程序设计和流程图 如图4-1所示,上电时,程序在初始化各参数后,定时器2工作模式开始运行,并在LCD1602上显示相关时钟运行信息。当接受到外部中断0的按键输入时,保存按下的键值并判定是哪个键被按下,并判断是处于哪个页面。初始化之后,系统设计的停电指示的主要功能是恢
39、复初始设置,也就是复位的功能,当然,根据单片的原理,我们在硬件上设计了一个复位的按钮,当设备连接断开,或者系统出现紊乱的时图4-1 总程序设计和流程图候,我们可以通过复位按键进行系统初始化,进入通电指示状态。当所有准备完毕之后,液晶显示器首会正常显示之前所编程好的信息,如contact nurse lock等文字,也就是说,这个状态下是不能进行任何操作,在实际运用过程当中,有效的防止病人或者其他无关人员对设备信息或者病区患者信息进行更改。当输入解锁按键后,液晶提示输入4位密码,此处程序是设置4位数的原因是便于操作编程实现, 软件设计采用51单片机的C语言编程,并在 keil软件上编译,生成h文
40、件。如下所示;以下是部分总程序,定义了整个程序所运用的一些子函数,以及各个子程序中所运用到的一些标记等,详细如下:#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define MAX 250/*2msuchar dis1 = "Sick:123 Age:199" /“”内的字符要小于17个code uchar dis2 = " unlock "uchar dis3 = "Input age : "code uchar dis4
41、= " Contact Nurse "code uchar dis5 = " lock "uchar dis6 = " Password : "sbit RS = P10;sbit RW = P11;sbit EN = P12;#define data1 P1sbit LX = P37;/线路连接sbit ward0 = P00;/病室0sbit ward1 = P01;/病室1sbit ward2 = P02;/病室2sbit ward3 = P03;/病室3sbit BEEP = P30;/LED#define CIPHER 88
42、88#define ALL_SICK 4/4个病人typedef struct uchar disp;/显示处理uint Time_2ms;uchar lock;/1 openuchar alarm;/1 onuchar now_sick;/显示病人的编号uchar sick_call;/呼叫的病人编号 01,02,04,08;0xff 无人呼叫uchar ageALL_SICK;ST;ST My_ST = 1,0,0,0,0,0xff,99,;4.2. LCD1602显示程序设计 LCD1602液晶显示通过相关的命令字进行控制,主要实现病区患者基本信息的录入,以及对初始化界面和解锁界面的显示
43、,另外,通过命令字对先前设定好的信息进行修改,比如病人编号sick001和病人年龄ageXX等信息进行修改,方便于病区患者身份信息的管理,最重要的是在新生儿防盗上起到了特别重要的作用。本设计通过对LCD1602的使能端、写、读端分写连接到控制芯片的p1.5、p1.4、p1.3口控制,具体连接如图4-2所示:图4-2 LCD1602显示程序设计对于LCD1602显示器的控制的部分程序如下:void lcd_wcmd(uchar cmd) /写指令函数 /*if(cmd!=0x28)&&(cmd!=0x38)&&(cmd!=0x33)&&(cmd!=
44、0x32) while(busy();/仿真时加这个会出错!实际硬件可行 */ RS = 0; RW = 0; EN = 0; /写指令。 data1 &= 0x0F;/清高四位端口data1 |= (cmd&0xF0); /写高四位数据 EN = 1; /*_nop_();*/delay_nms(1);EN = 0;_nop_();data1 &= 0x0F; /清高四位端口data1 |= (cmd&0x0F)<<4); /写低四位数据EN = 1; /*_nop_();*/delay_nms(1); EN = 0; _nop_(); /-voi
45、d lcd_wdat(uchar dat)/写数据函数 /while(busy(); RS = 1; RW = 0; EN = 0; /写数据。 data1 &= 0x0F;/清高四位端口data1 |= (dat&0xF0);/写高四位数据 EN = 1; /*_nop_();*/delay_nms(1);EN = 0;_nop_();data1 &= 0x0F; /清高四位端口data1 |= (dat&0x0F)<<4); /写低四位数据EN = 1; /*_nop_();*/delay_nms(1); EN = 0; _nop_(); 4.3
46、. 按键输入部分程序设计 如图所示,本设计由于考虑得到液晶显示器的局限性,并全面考虑到C语言如果实行对汉字输入编程的难度,并且为了减轻实际应用和测试的工作量,决定用4*4矩阵键盘,对病区患者身份和年龄进行规定的编号,用阿拉伯数字实现,易于编程和实现,所以,键盘的行列定义在了控制芯片的P2口,R1-R4分别定义在P2.4到P2.7,L1-L4分别定义在控制芯片的P2.0到P2.3,如图4-3所示是矩阵键盘行列定义说明。图4-3 矩阵键盘行列定义说明设计的部分程序如下:uchar temp,buf;KEY=0x0F; /低四位输入行 : 7-4 为低;列:3-0 为高!delay(1);temp=
47、KEY; /读P口 temp=(temp&0x0F); /屏蔽高4位,低4位有效接收(即不变)temp=(temp|0xF0); /高4位置高(即高4位为1,低4不变),后对整体取反判断if(temp=1)/0 第一列有效(回推-可知P的低4位为1110)buf=0;else if(temp=2) /1 第二列有效(回推-可知P的低4位为1101)buf=1;else if(temp=4) /2 第三列有效(回推-可知P的低4位为1011)buf=2;else if(temp=8) /3 第四列有效(回推-可知P的低4位为0111)buf=3;elsebuf=16;/没有的话就取查表中
48、的缓存数据 , 没有按键 ! KEY=0xF0; /高四位输入 行 : 7-4 为高;列: 3-0 为低!delay(1);temp=KEY; /读P口 temp=(temp&0xF0);temp=(temp>>4)|0xF0);if(temp=1) /4 第一行有效(回推-可知1的高4位为1110)buf=buf+0;else if(temp=2) /5 第二行有效(回推-可知1的高4位为1101)buf=buf+4;else if(temp=4) /6 第三行有效(回推-可知1的高4位为1011)buf=buf+8;else if(temp=8) /7 第四行有效(回推
49、-可知1的高4位为0111)buf=buf+12;elsebuf=16; /没有的话就取查表中的缓存数据 没有按键 !return buf;4.4. 语音播放部分程序设计如图所示,由于考虑到仿真软件对语音模块仿真的局限性,本设计把语音模块DYV01的功能管脚定义在控制新片的P3口,如BUSY定义在P3.2,REST定义在P3.3,DATA定义在P3.4管脚,运用C语言对事先下载到语音模块芯片中的文件进行播放,包括呼叫报警以及设备断开的报警,还为了让测试更加生动,我还下载了几首容量很小的流行歌。如图4-4所示为语音播放模块管脚定义说明。图4-4 语音播放模块管脚定义说明语音播放模块的部分程序如下
50、:WT588D_Init()/语音模块初始化disp_line(0x00,dis4);disp_line(0x40,dis5);while(1)switch(key_down()case 0:/播放音乐WT588D_Send(5);break;case 1:/播放音乐WT588D_Send(6);break;case 2:/播放音乐WT588D_Send(7);4.5. 呼叫报警部分程序设计 如图13所示,设计中的呼叫部分和报警部分分别由设置的四个按键和语音模块实现,其中四个按键分别代表的是病房1、病房2、病房3和病房4,在程序中相应的给予命令字符进行控制。考虑到实际仿真在实际报警中语音的限制
51、,所以采用了一个二极管代替,如图4-5所示,当设备断开时,二极管发亮,此时需要专业医护人员解锁后按下解锁按钮方可停止报警,否则,语音模块会不停的播报。图4-5 呼叫报警部分管脚定义示意图设计中的部分程序如下:case 14:/报警解除if(My_ST.lock)My_ST.alarm = 0;BEEP = 1;break;case 15:/确认break;default:if(LX)/断线报警My_ST.alarm = 1;if(My_ST.alarm)BEEP = 0;break;if(ward0)/病室0呼叫if(ward1)/病室1呼叫if(ward2)/病室2呼叫if(ward3)/病室3呼叫5. 系统测试5.1.实物验证 本设计显示在protel上仿真后经过几番验证,先是对LCD1602初始化显示进行编程,包括对显示器的解锁上锁功能的操作,以及对病区患者信息的录入操作。图5-1 LCD1602液晶显示器的初始化界面 如图5-1所示,LCD1602液晶显示器的初始化界面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饭店股份转让合同协议
- 鲜肉制品销售合同协议
- 鲜花饼供货合同协议书
- 黑铁方管采购合同范本
- 国企设备安全规定
- 管内渣土清理合同范本
- 篮球训练招生合同协议
- 粮油种子销售合同范本
- 精装商铺转租合同范本
- 纱线委托代销合同范本
- GB/T 3920-2024纺织品色牢度试验耐摩擦色牢度
- 有趣课堂惩罚游戏(课件)-小学生主题班会
- 2024年度足球学校赞助与合作协议2篇
- 2024水电站输水发电系统运行安全评价导则
- 风电、光伏项目前期及建设手续办理流程汇编
- 广西壮族自治区南宁市青秀区 2024-2025学年九年级上学期11月期中道德与法治试题
- 内装修施工消防培训
- 胰岛素皮下注射标准解读
- 《分子生物学与基因工程》课程教学大纲
- 草果种质资源保护与利用
- DL∕T 1664-2016 电能计量装置现场检验规程
评论
0/150
提交评论