资源描述
本科生毕业论文(设计)题目:病床呼叫系统的设计学 院 电子信息工程学院 学科门类 理 科 专 业 电气工程及其自动化 学 号 姓 名 指导教师 年 4 月 06 日2015 届本科生毕业论文(设计)1摘 要随着科技的发展,社会的进步,越来越多的设施都趋向于科技化。当前,人类对健康的关注越来越多,医疗行业正快速膨胀,患者也希望能得到最佳的护理和服务,传统的继电器控制门铃式呼叫系统,由于外观粗糙、噪声大、功能单一,在医院达标定级中已不能适应现代医院的要求系统是基于 51 系列的单片机设计的病床呼叫系统。该系统以 AT89C51 单片机为核心辅以独立式按键、LCD 显示电路和部分简单模拟和数字电路组成的能够实现病人和医护人员之间信息的传递。在该设计中每个病房都有一个按键,当患者有需要时,按下按键,此时 值班室的显示屏可显示此患者的床位号,多人使用时可实现同时显示,医护人员按下“响应”键取消当前呼叫。此系统能够为医院提供一个成本低、效率高、操作方便和易于安装维护的快捷系统。关键词:51 单片机 独立式按键 LCD 显示电路 呼叫系统2015 届本科生毕业论文(设计)2AbstractWith the development of science and technology, the progress of the society, more and more facilities are tend to science and technology。At present, more and more attention to health, human health care industry is rapidly expanding, patients also hope to get the best care and service. The traditional relay control doorbell call system, due to the rough appearance, big noise, single function, in a hospital in standard grading can not meet the requirements of a modern hospital.System calling system 51 series single-chip design based on the bed. The system to AT89C51 SCM as the core with independent keys, LCD display circuit and some simple analog and digital circuit can realize the transmission of information betweenpatients and medical staff. In the design of each unit has a key, when a patient needs, press the button, when the duty room display this patient beds, many people use can be realized when the shows at the same time, the medical care personnel press “response“ to cancel the call. This system can provide fast system is a low cost, high efficiency, convenient operation andeasy installation and maintenance for the hospital.Key Words: 51 series single-chip independent keys LCD display circuit calling system2015 届本科生毕业论文(设计)3目 录摘 要 .1ABSTRACT.21.绪 论 41.1 课题设计的背景及意义 41.2 设计要求及预期目标 41.3 设计可行性 51.4 设计方案及步骤 51.4.1 键盘采集方案选择 .61.4.2 设计芯片的选择 72.系统硬件设计 .72.1 系统原理框图 72.2 芯片简介 82.3 硬件模块设计 .112.3.1 按键电路模块 .112.3.2 液晶显示模块 .122.3.3 声音报警模块 .122.3.4 应答电路 .133.系统软件设计 133.1 主函数程序设计 .143.2 中断程序设计 .153.3 显示模块设计 .164. 系统的调试与结果 .184.1 调试界面显示 .184.2 结果分析 .21结束语 21参考文献 22致谢 23附录 24附录一:PROTEL 原理图 .24附录二:PCB 电路图 .25附录三:实物图 .25附录四:C 语言源程序 .262015 届本科生毕业论文(设计)41.绪 论1.1 课题设计的背景及意义信息时期医院的管理多数都已经从传统落后的人工服务模式,向电子化、智能化、网络化的科技管理模式方向迅速发展。“病床呼叫系统”可实现对医院病室病房的智能化把控,也可促成呼救、信息保存、显示等等功能。病人住院的时候,会在任何可能出现问题的时间需要医护人员去诊断或者护理。临床的呼叫是传送病人即时消息非常重要的措施,病人向值班医师或护士提出紧急呼叫的时候,病床呼叫系统充当工具的作用,若想要将患者的请求即时地传送给医护人员,并且被医院监控中心记下完整准确的信息,同时也是提高医院和病护的重要组成部分 1。本次设计是以 AT89C51 为中心的病人呼叫系统,通过采集病区数据的信息,采用LCD1602 显示屏显示蜂鸣器并进行报警的呼叫设计。可以落实医院医护人员和病人病房之间的呼叫联系,有使用便捷、操作起来简单等优点。病床呼叫系统可以应用于养老院、医疗机构、医院的病房等地方,也可以用来联通医护人员和病人,同时是提高医院的医疗水平必需设备之一。病床的呼叫系统的好坏会直接影响到病员的生命财产安全,历来受到各种大医院的广泛重视。它要求必须得简便可行、准确可靠、并且利于推广。病床呼叫系统利于病人快速地呼叫护士,大大缩短了人工的呼叫时间。现在病房呼叫系统正逐步地向高度智能化发展,它也可以和摄像机在一起使用,每当病人按开关,护士值班室的大屏幕上能够即时地观察了解病人的需要。并可以配对讲机等通讯设备,能使病人快捷及时地与医务人员进行沟通交流。有了病床呼叫系统,医院对病人的护理工作变得愈加方便全面,不再烦恼于未能及时发现突发病况而一发不可收拾。总的来说,51 系列单片机设计的病床呼叫系统能可靠、准确、及时地促成病房呼叫管制,有良好的前景应用 2。1.2 设计要求及预期目标最近几年来伴随着人们生活水平的不断提高,大家对医疗机构水平的要求也在不断地提高,尤其是在某些突发情况下病员请求值班医护人员进行及时的诊断或者护理,这一过程对提升医院管理服务质量就会显得尤为重要,在这同时也会很大程度上提高医院应2015 届本科生毕业论文(设计)5对突然发升的事件的能力。所以,一种全新型的临床呼叫仪器一跃成为最近几年来的研究热门之一。呼叫系统直接关系到病人的生命安全,受到各大医院广泛关注。它要求及时,准确,可靠,简单可行,有利于促进电力线载波通信技术的应用,单片机多机通信和计算机监控和管理技术设计,振铃,呼叫排队,的病床呼叫系统录音等功能,满足医院管理和医院护理。设计要求:以单芯片微型计算机监控的设计为目标,设计一个(模拟)病床呼叫控制器。可以监视多个床,床做出及时的声音报警和显示病床数称为准确,使医护人员可以及时、准确地向医院的患者,给予及时的救援和医疗。预期目标:病人按确认键,通过单片机控制处理,护士值班室报警,同时,1602 液晶会显示相应的床号,当护士按下停止响应按键,液晶显示器由定时器控制显示”I know”。当有多个病人呼叫时同时响应,对应于每个床床数显示,同时报警。通过对上述设计任务的分析,可以细分为以下几个部分,最终的调试也是将以下部分为依据:1 当有病人按下按键时,液晶显示器上显示病人的病房号,病床号;2 在护士按下清零键后,液晶显示器上内容恢复到初始状态;3 若在护士按下清零键前有多个病人按键,则液晶显示器上将循环显示各个病人的信息,直到护士按下清零键后,液晶显示器上内容恢复到初始状态。1.3 设计可行性在医院的正常运行中,医疗设备起到一个重要的角色的作用,病房呼叫系统是其中的一个。作为每一个床的基本配置,它可以使病人打电话更方便,更简化了医务人员的工作。目前市场上有很多种不同的病房呼叫系统功能的不同,主要分为两类:有线和无线。无线病房呼叫系统线路铺设不存在问题,但可靠性差,和无线电波会干扰其他医疗设备。本设计的电缆类型,适合中小型医院使用,具有成本低,操作简单,安装和维护,而且具有稳定可靠的特点,不会受到其他医疗设备的干扰;但由接线较多,影响美观,不宜大医院。我们利用 AT89S51 芯片设计了一套简单可行,系统性能稳定,对该系统的测试完全可以满足医院的需要。1.4 设计方案及步骤根据设计要求,基于 C51 单片机为核心的病床呼叫系统有 6 个独立按键,每个按键2015 届本科生毕业论文(设计)6对应不同的床。在没有病人呼叫时屏幕显示初始化界面;当病人床边按下相应的按钮,产生一个中断信号。单片机接收到中断信号的中断服务程序呼叫识别号码后,显示病床床位数,通过 LCD1602 显示床位号,蜂鸣器报警信号;通过阅读屏幕上提示,护士可以快速准确地了解到病人的需求,并作出相应的准备和处理,处理完成按“清除”按钮,可以删除通话记录,等待下次呼叫,同时液晶屏幕上再次显示“HAPPY EVERY DAY”。其结构图如下:键盘单片机液晶显示蜂鸣器报警图 1.1 病床呼叫系统结构图1.4.1 键盘采集方案选择 键盘的工作方式应该根据实际应用系统中 CPU 的工作状况而选定选取的规则是既能保 证 CPU 可以及时响应 6 个按键操作而又不需要占用过多 CPU 工作的时间。通常来说键盘工作的方式有三种即编程扫描、定时扫描和中断扫描。 1 编程扫描工作方式 编程扫描工作方式指的是利用 CPU 进行完成其他工程的空闲时间调取键盘扫描子程序来检测按键状态反应键盘输入。执行按键功能得程序时 CPU 不会再享有按键输入需求一直到 CPU 再次扫描键盘为终止。 2 定时扫描工作方式 定时扫描工作方式指的是每间隔一小段时间对按键扫描一次,它利用单片机的内部定时器产生固定时间如 20ms 的定时,定时时间到了产生定时器就会溢出中断。CPU 在中断服务程序中键盘进行扫描并在有键按下时识别出该键并保存键号然后在中断服务程序或主程序中执行该键的功能程序2015 届本科生毕业论文(设计)73 中断扫描工作方式 中断扫描工作方式就是当有按键被按下时,电路产生中断信号,单片机收到中断信号后就执行对应的中断服务子程序响应该按键,处理完后 CPU 又开始循环等待下一次按键按下。 当采用两个键盘扫描方式,无论是否有键按下 CPU 定时扫描键盘和单片机应用系统往往需要工作不是键盘输入。CPU 通常是空的,浪费了很多时间扫描。CPU 不扫描键盘并按一个按钮与相应的电路产生一个中断请求,该 CPU 响应中断执行,键盘扫描子程序和确定按键号 3。 所以本设计中利用中断扫描工作方式采集键盘信息。 1.4.2 设计芯片的选择 C51 单片机: 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的CPU、RAM、ROM、多路 I/O 口和中断系统、定时器/计数器等功能集成到一块芯片上的一个小系统,通过编写程序下载到单片机的程序存储器以实现不同的功能 4。液晶显示器 LCD1602: 相对于数码管、LED 二极管点阵等,液晶显示具有可以实现汉字的显示,硬件电路连接比较简单等优点。2.系统硬件设计2.1 系统原理框图根据病床呼叫系统要求初步绘制出系统原理框图如图 2-1 所示。按键电路 单片机 声音报警应答按键液晶显示图 2-1 系统原理框图2.2 芯片简介STC89C51 是一种低耗、高功能 CMOS8 位微型控制器,具有 8K 字节 存在于系统,可以编程的 Flash 存储器。在单个的芯片上,具有灵活的 8 位 CPU 和在系统可以编程Flash,使得以 STC89C51 为许多嵌入式控制系统提供高灵巧、高超有效解决问题的方案。2015 届本科生毕业论文(设计)8有以下几个标准的功能: 8kFlash,512RAM, 32 位 I/O 口线,内置 4KB EEPROM,三个 16 位 定时器/计数器,一个 6 向量 2 级中断的结构。除此之外 STC89X51 可降至 0Hz非动态逻辑操控,支持两种软件可以选省电方式。空闲模式下,CPU 会停止工作,准许RAM、计数器/定时器、中断会继续工作。在漏电受到保护下,RAM 中的内容就会被保存,另外振荡器被冻结,单片机停止一切工作状态,一直会持续到下一个信号产生中断或者硬件复位。最高运作频率 35Mhz,6T/12T 可选 5。图 2-2 STC89C51 单片机引脚图STC89C51 是机内有 ROM/EPROM 单元的单片机,所以,这类芯片组成的最小系统最为简单可靠。用 51 单片机组成最小应用的系统时,只需要将单片机外接上时钟电路和复位电路就行,结构如下图 2-3 所示,由于受到集成度的限制下,最小应用系统被迫只能用作一些较小型的控制单元。时钟电路复位电路单片机I/O口2015 届本科生毕业论文(设计)9图 2-3 单片机最小系统原理框图(1) 时钟电路STC89C51 单片机的时钟信号一般会由两种工作方式产生:一种是内部时钟工作方式,第二种是外部时钟工作方式。内部时钟工作方式如下图 2-4 所示。在 STC89C51 单片机内部有一个晶振电路,只需把石英晶体(简称晶振)接在单片机的 XTAL1(18)和 XTAL2(19)引脚外面,就会自然构成自激式振荡器而且会在单片机的内部产生时钟脉冲信号。图中电容 C1 和 C2 的作用就是用来稳定频率并且快速起振,电容在 530pF 之间,典型的值为30pF。晶振 CYS 振荡的频率范围是在 1.212MHz 之间选择,典型的值为 12MHz 和 6MHz。图 2-4 STC89C51 内部时钟电路(2) 复位电路STC89C51 单片机 RST 引脚在引入高电平时,保持 2 个机器周期就会使单片机的内部进行复位操作。复位电路一般采用上电和按钮复位方式。最单一的上电自动复位电路中,上电自动复位通过外部的复位电路电容充放电来实现。只要 Vcc 上升的时间不超过 1ms,就会实现自动上电复位。除上电复位以外,有的时候还需要我们按键手动去复位。本设计的就是按键手动复位。按键手动复位具有电平工作方式和脉冲工作方式两种。其中的电平复位是通过 RST(9)端与电源 Vcc 接通实现的。按键手动复位见图 2-5。时钟频率用 11.0592MHZ 时 C 取 10uF,R取 10k。2015 届本科生毕业论文(设计)10图 2-5 STC89C51 复位电路(3) STC89C51 中断技术概述中断技术主要用于实时监测和控制要求,单片机的中断源服务请求及时响应,并做出快速反应、及时处理。这是由中断系统芯片的实现。当中断请求发出中断请求时,如果中断请求是允许的,单片机暂停当前正在执行的主程序,中断服务程序,中断服务请求。中断服务程序处理完中断服务请求,然后回到原来的地方暂停程序(断点),继续执行被中断的程序。图 2-6 中断响应与处理。中断响应中断中断服务程序返回主程序主程序主程序图 2-6 中断响应和处理过程如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。2015 届本科生毕业论文(设计)112.3 硬件模块设计由图 2-1 系统原理框图可知,整个系统分为五个模块:按键电路模块、液晶显示模块、声音报警模块、按键应答模块。下面将简单的介绍各个模块设计方案。2.3.1 按键电路模块在单片机应用系统中,通常一个人-机对话功能。它包含的状态干预,系统数据输入应用系统报告运行状态和运行结果。键盘已经成为一种必要的手段,人-机连接,你需要配置适当的键盘输入装置。键盘的工作原理,一个键盘,可以看作是一个常开开关电路各关键,当功能的键或按下的键,当你设置的数量,可以在一个封闭的状态。对于一组键或键盘,通过用单片机实现的关键接口电路连接,为了方便单片机的开关状态通知。和单片机用于查询或中断方式来检查有没有输入键,该键被按下,并通过功能键转移指令传送到执行此程序,然后返回到原始执行状态。独立的关键是指直接使用 I/O 口线组成的单一关键电路。每个按钮将出现在单独的行上的 I / O 端口,我/每个工作状态输出端口线不会影响其它 I/O 口线的工作状态 6。2.3.2 液晶显示模块字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式 LCD,目前常用16*1,16*2,20*2 和 40*2 行等的模块,一般 1602 字符型液晶显示器实物如下图:2015 届本科生毕业论文(设计)12图 2-7 1602 实物图2.3.3 声音报警模块该设计设有声音报警模块,当出现病人呼叫医务人员时,蜂鸣器则会报警提示,一直持续到护士按下应答按键,才会停止报警,控制引脚一般接在 P3.4 引脚上,同时利用三极管做开关电路起到保护单片机的作用,还可以放大电流,当三极管的基极为高电平时,发射极截止,为低电平时,发射极导通 7。报警模块如图 2-8 所示。图 2-8 声音报警模块2.3.4 应答电路本设计中四个床位使用一个应答按钮,接在 P3.3 引脚上,当有病人按下按钮,报警开始时,按下应答按钮,即可停止报警,应答模块图如图 2-14 所示S1V C CR 51 0 kP3 3Q185 50器器器VCCR41kP3 42015 届本科生毕业论文(设计)13图 2-9 应答电路3.系统软件设计在单片机软件开发过程中,编程要合理利用各种中断机制。本系统拿控制算法来说,会有实时性的要求,任务复杂, 并且人机交互的操作还通常会进行动态地改变应用程序运行的模式,尤其是在人机界面又需要占用 CPU 的许多时间,与此同时而又不允许遗漏重要的数据。同时还需要随时随地的准备向上位机去发送数据。因此,需要学会综合地采用消息机制和状态转移的方法来统一解决好 CPU 的安排。在中断服务的程序中,向主程序消息队列中加入相应的消息,来达成将中断服务的程序中处理部分分开的目的。本系统有两个重要中断:上位机的中断和键盘的中断。中断服务程序返回到主程序中后,主程序只会处理循环消息,并为消息处理的对象发送所需要的信息,当收到主程序发送来的消息后,信息响应函数得到控制权,做好相应处理后会将控制权还给主程序进行继续消息循环处理。用户的请求仅仅是向信息队列中添入相应消息。主程序还要查询信息队列就是时间,根据时间的区别,调用相应消息的处理函数,在本系统中,时间会表现为一个变量,通过在给该变量赋不同值来反馈不同的消息。对于中断触发的信息,因为消息的处理函数已经结束了中断的处理过程,故系统对消息的处理不会再像中断的服务程序那般样,在时间上会有十分严格的要求;于此同时,在信息处理过程中,用户仍然可以通过键中断来与系统进行沟通 8。3.1 主函数程序设计一个完整的程序中只有一个 main 函数,首先调用初始化函数进行初始化,然后判断并调用显示子程序使液晶 1602 显示、蜂鸣器鸣响报警。程序流程如图 3-1 所示:开始液晶显示欢迎语调用初始化子程序判断是否有床位报警蜂鸣器报警液晶显示床号应答按键是否按下关闭报警器液晶显示知晓结束是是否否图 3-1 主程序流程图3.2 中断程序设计2015 届本科生毕业论文(设计)14矩阵键盘的中断程序主要是对按键的扫描以实现对按键的键号识别,同时对键号对应的病房,病床号以及按键的时间进行存储。主函数通过调用存储的数据便可实现病房信息的循环显示。 其设计流程图如图 4.2 所示。 需要说明的是,在此中断程序中抖动的识别可以通过延时一段时间后再对 D 及CLEAR 的高低电平进行判断来实现,若延时后仍然有低电平则不是抖动而是真的有按键按下。 矩阵键盘的中断程序设计如下开始进入中端数据脚状态改变 将床号赋给变量定时器赋初值读取床号并增加 1 送新行显示数据消隐切换显示数据结束发送新床号显示数据图 3-2 中断程序3.3 显示模块设计显示程序描述(1)按下键总数显示子程序描述(图 4.12 按键总数显示程序流程图)2015 届本科生毕业论文(设计)15把按键数存储单总元(COUNTER)的值经过 BCD 调整后十位和个位分别送(7AH)(7BH),调用显示子程序显示按键总数。循环显示病床号子程序描述(图 4.13 按键循环显示子程序)首先需要判断的是标志位是否为 0,如果为 0,就表示对应存储单元里没有值存入,则会再次检测下一个存储单元的标志位是否为 0,直到检测到为 1 为止.如果为 1,则会把值存入(BED_BOUNTER)中,紧接着进行 BCD 调整为十进制,把十位和个位分别送入(BEDCODE_1)和(BEDCODE_2 中,然后调用显示子程序,循环显示病床号。图 3-3 显示函数流程图计算键值子程序初始化( C O U N T E R ) + 1I N T F L A G调 B C D 调子程序调显示子程序键标志为 0 ?4 1 0 个单元扫描完 ?结束否是2015 届本科生毕业论文(设计)164.系统的调试与结果系统调试工作是系统开发过程中必不可少的一个过程,一个完整的控制系统调试包含控制系统的硬件联调、软件联调、系统仿真、仿真烧录和现场安装调试等几个环节。在系统设计组装完成后,首先是进行实验室条件下的系统硬件调试,调试成功后,有了硬件的保证,就容易发现软件的漏洞,进而促进改进和完善。所有的调试通过后,要进行现场运行并能持续一定的时间,待其中未发现故障后,方可验收合格,才算完成了整个系统的设计工作 9。4.1 调试界面显示下面是我们通过 Proteus 软件编程,使对应的软件仿真模块变成可视化的控制界面:图 4-1-1 系统初始化界面 图 4-1-2 按下 4 键后界面图 4-1-3 按下 1234 键后显示界面 图 4-1-4 按下确认键后显示界面实物图片如下:初始化界面;2015 届本科生毕业论文(设计)17图 4-1-5 初始化界面按下 4 键后界面图 4-1-6 按下 4 键后界面2015 届本科生毕业论文(设计)18按下 1234 键后显示界面图 5-1-7 按下 1234 键后显示界面按下确认键后显示界面图 4-1-8 按下确认键后显示界面2015 届本科生毕业论文(设计)194.2 结果分析首先启动电源,显示屏会显示 Happy Every Day 字样,在按下 4 号键时,屏幕显示病床(即 4 号病床呼叫);界面上部分表示有一个病床按下,在起始位置显示;如果现在不按清零键,再按下 1,2,3 号键时,按键号同时显示,可以看出该系统具有多数字共存功能,以至于不会忽略之前按下的按键;图 4.8 反映了控制电路的可行性,按确认键后屏幕显示 I know,医护人员去病人房间。综上所述,本系统实现了主要功能:显示病床号,亮报警提醒值班人员,若有多个病床同时呼叫,则同时显示病床号,确保性息不丢失,待值班人员处理呼叫信息。通过 PROTEUS 软件仿真,能达到上述结论,满足课题目目的,达到要求。结束语至此,本设计的主要内容已经完成。本章是在对前面完成的工作进行总结的基础上,提出今后进一步工作的建议和设想。选择这个课题之后,我明白要解决的难点:病人都按开关时,在数码显示器能循环显示病床,这也就是考验我们对所学知识有比较透彻的了解和我们的耐心。接下来每天奔波在宿舍、餐厅三点一线的生活,虽然有点累,但很充实,在这之中还去请教老师和同学,他们耐心的教导让我更加坚定了对该课题的研究,另外还有很多老师的帮助。在设计的过程中遇到了很多问题,可以说得是困难重重,在遇到各种各样问题的同时,会发现了自己的不足之处,如对以前所学过的知识理解得不够深刻,掌握得不够牢固。比如说 Protel 软件应用的不够熟练、Proteus 仿真知识及操作、对单片机汇编语言掌握得不好。不过通过这次设计之后,也学到了很多知识,更重要的是一定把以前所学过的知识重新温故,学好用好,学以致用。最后在百般努力下,这次设计终于完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于实现了设计的要求。这一次设计给我的总体感觉很好,因为我学到了很多的东西。只要自己能够找好的学习方法,在过程中不断的努力。那么学到的东西肯定会有很多,我相信我是能够做好的。2015 届本科生毕业论文(设计)20参考文献 1 王意岗.病房呼叫系统J.建筑电气,20042 朱艳华,田行军,李夏青.基于 PL3105 的病床呼叫系统设计J.北京石油化工学院学报,20093 邬春明,王艳茹.基于低压线载波技术的病床呼叫系统J.电子技术应用,20054 康华光电子技术基础M. 北京:高等教育出版社, 20005康华光电子技术基础(模拟部分)M. 北京:高等教育出版社, 19996胡汉才.单片机原理及接口技术M. 北京:清华大学出版社, 19957王环,张亚宁 单片机程序设计实例M 北京:清华大学出版社, 20038李伯成单片机及嵌入式系统M. 北京:清华大学出版社, 20059徐淑华等.单片机微机原理及应用M. 哈尔滨工业大学出版社, 19942015 届本科生毕业论文(设计)21致 谢通过这一段时间不懈的努力,我的毕业设计病床呼叫系统的设计终于完成了,这象征着我大学生活的落幕。在大学阶段,我在各个方面都受益匪浅,这里面不光有我自己的努力,与老师、同学们和朋友的支持、关心和鼓励更是分不开的。在论文的创作过程中,我的导师倾注了大量的心血,感谢徐老师在我大学的最后毕业设计阶段给我的教育,从开的定题,到后来资料的收集,再到写作、改论文,到毕业答辩,是她给了我细心的指导与无私的帮助。为了指导大家的毕业论文,她占用了自己大部分的空余时间,她这种任劳任怨的精神令人佩服,在此我向她表示我个人真诚的感谢。同时,也谢谢所有的任课老师以及所有同学在这四年来给我的帮助,有好的也有不好的,反正不管怎么样,是他们是促使着我的成长,并且向他们学会了很多专业知识,也学会了怎样学习,如何做人。正是他们,我才会在各个方面取得明显的进步,在此我向他们表达我衷心的谢意,并祝愿老师们培养许许多多的栋梁之才,桃李满天下!写毕业设计总结报告是一次再系统学习的过程,毕业设计答辩自述的完成,同样也意味着新的学习生活的开始。我将铭记我曾是一名电子信息工程学院学子,在今后的工作中把电信学院的优良传统发扬光大。在此,谨向所有帮助过我的老师、同学表示衷心的感谢和敬意!谢谢你们!2015 届本科生毕业论文(设计)22附 录附录一:Protel 原理图2015 届本科生毕业论文(设计)23附录二:PCB 电路图2015 届本科生毕业论文(设计)24附录三:实物图2015 届本科生毕业论文(设计)25附录四:C 语言源程序#include /头文件#define uc unsigned char#define ui unsigned intsbit RS=P14;sbit RW=P15;sbit E=P16; /1602 引脚定义sbit D0=P10;sbit D1=P11;sbit D2=P12;sbit D3=P13; /接受引脚sbit bg_1602=P26; /1602 背光sbit key=P33; /应答按键sbit Beep=P34; /蜂鸣器uc code tab0=“ 123456789#“;uc code tab1=“Calling!“;uc code tab2=“I Know!“;uc code tab3=“Happy Every Day!“;ucnum_D0=0,num_D1=0,num_D2=0,num_D3=0;/床号bit bdata fu_D0=0, fu_D1=0, fu_D2=0, fu_D3=0,flag;/初始床号void delay(ui x) /延时函数ui i,j;for(i=0;ix;i+)for(j=0;j121;j+);void init() /初始化函数bg_1602=0; /开启背光TMOD=0x01;TH0=0x4b;TL0=0xff;EA=1;ET0=1;TR0=1;D0=0;D1=0;D2=0;D3=0; /清零床号引脚/*LCD1602*/void com_1602(uc com) /写命令RS=0;P0=com;delay(1);E=1;delay(1);E=0;RS=1;void data_1602(uc date) /写数据RS=1;P0=date;delay(1);E=1;delay(1);E=0;RS=0;void dis_1602(uc word_num,uc hang,uc lie,uc tab_num,uc num)/*word_num:显示字符个数,hang,lie:显示坐标,*tab_num:显示数组号,num:从第几字符开始显示*/uc n;for(n=0;nword_num;n+)com_1602(0x80+hang*0x40+lie);if(tab_num=0)data_1602(tab0num+n);else if(tab_num=1)2015 届本科生毕业论文(设计)26data_1602(tab1num+n);else if(tab_num=2)data_1602(tab2num+n);else if(tab_num=3)data_1602(tab3num+n);delay(5);lie+;void init_1602() /初始化 1602RW=0; /写命令com_1602(0x38);/设置 1602com_1602(0x0c);/设置显示,光标不闪烁com_1602(0x06);/不移动,指针加 1com_1602(0x01);/清屏void know() /应答函数if(D0!=fu_D0)num_D0=1;if(D1!=fu_D1)num_D1=2;if(D2!=fu_D2)num_D2=3;if(D3!=fu_D3)num_D3=4; /数据脚状态改变,将床号赋给变量if(key=0) /检测按键delay(5);if(key=0)if(num_D0!=0)|(num_D1!=0)|(num_D2!=0)|(num_D3!=0)/如果有呼叫时bg_1602=1;/打开背光Beep=1;/关闭蜂鸣器flag=0;/标志位清零num_D0=0;num_D1=0;num_D2=0;num_D3=0;fu_D0=D0;fu_D1=D1;fu_D2=D2;fu_D3=D3;/将床位清零,并记录当前引脚状态com_1602(0x01);/清屏dis_1602(7,1,4,2,0);/显示 I Know else /如果没有呼叫时bg_1602=0; /只点亮背光while(!key); /按键释放delay(2000);com_1602(0x01);/清屏void display() /显示函数if(num_D0=0)/显示 Happy else /有床位呼叫时if(flag=0)flag=1;com_1602(0x01);/清屏if(num_D0=1)dis_1602(1,0,2,0,num_D0); /0123456789012345dis_1602(1,0,3,0,10);if(num_D1=2)dis_1602(1,0,5,0,num_D1);dis_1602(1,0,6,0,10);if(num_D2=3)dis_1602(1,0,8,0,num_D2);dis_1602(1,0,9,0,10);if(num_D3=4)dis_1602(1,0,11,0,num_D3);dis_1602(1,0,12,0,10);dis_1602(10,1,3,1,0); /在对应床位显示床位号void LED() /背光函数if(D0!=fu_D0)|(D1!=fu_D1)|(D2!=fu_D2)|(D3!=fu_D3) /如果有呼叫bg_1602=1; /打开背光2015 届本科生毕业论文(设计)27void main() /主函数init();init_1602();/初始化while(1) /死循环display();know();LED();void T0_time() interrupt 1 /定时器 T0ui m,n;TH0=0x4b;TL0=0xff; /重新赋初值m+;if(m=10)m=0;if(num_D0!=0)|(num_D1!=0)|(num_D2!=0)|(num_D3!=0) /如果有呼叫时开启蜂鸣器Beep=Beep;if(bg_1602=1)if(n=300) /背光点亮时计时 15秒关闭背光n=0;bg_1602=0;
展开阅读全文