毕业设计基于AT89C51单片机的病房呼叫系统设计.doc

上传人:1888****888 文档编号:37805189 上传时间:2021-11-04 格式:DOC 页数:46 大小:484.51KB
收藏 版权申诉 举报 下载
毕业设计基于AT89C51单片机的病房呼叫系统设计.doc_第1页
第1页 / 共46页
毕业设计基于AT89C51单片机的病房呼叫系统设计.doc_第2页
第2页 / 共46页
毕业设计基于AT89C51单片机的病房呼叫系统设计.doc_第3页
第3页 / 共46页
资源描述:

《毕业设计基于AT89C51单片机的病房呼叫系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于AT89C51单片机的病房呼叫系统设计.doc(46页珍藏版)》请在装配图网上搜索。

1、大庆师范学院本科毕业论文(设计)大庆师范学院 本科生毕业论文基于单片机的病房呼叫系统院 (系) 物理与电气信息工程学院 专 业电子信息工程(自动化方向)研 究 方 向 控制 学 生 姓 名 学 号 200901071825 指导教师姓名 刘宇 指导教师职称 副教授 2013年 5月 20 日摘 要病房呼叫系统是住院病人及其家属在需要医务人员帮助时,请求值班护士进行护理的重要呼叫工具,它主要用于协助医院里的病人在病床上方便地呼叫值班人员,可以快速的将病人的请求传送给值班人员,是提高医院的病房护理水平的必备设备之一。随着社会节奏的不断加快,医院行业的竞争越来越激烈,对经济效益的追逐成为很多私立医院

2、的生存第一要位,提升服务水平和服务质量迫在眉睫,陪护问题一直是医患矛盾的主要体现,也是长期以来困扰广大医务服务者的大问题,使用病房呼叫系统,方便患者迅速而快捷的找到医生,以节约患者的珍贵时间系统的核心是at89c51单片机。还有其它辅助硬件电路,矩阵键盘、LED显示电路.地址锁存器以及译码器等。个个房间的病人要呼叫护士可以按自己床边的按键,此时值班室会有蜂鸣器响,相应的指示灯亮,并且在值班室的数码管上显示床位号。信号通过矩阵键盘进行输入,在用高级语言编写程序时,对键盘信号的获取非常重要。在本篇论文之中每个病房的病床旁都有一个呼叫按钮,当患者有需要医务人员帮助时,按下呼叫键,此时 值班室的显示屏

3、可显示此患者的床位号,多人使用时可以根据病人是否是重症病床而产生优先级别,医护人员按下“响应”键取消当前呼叫。关键词:AT89C51;矩阵键盘;LED;病床呼叫;蜂鸣器AbstractWard call system inpatient request the duty doctor or nurse care emergency call communication tools, it is mainly used to assist patients in hospitals to easily call the duty officer in the bed, the patients

4、request sent to the staff on duty, necessary equipment to improve the level of hospital ward care. With the accelerating pace of social, increasingly fierce competition in the hospital industry, the pursuit of money to the survival of many private hospitals first, improve service levels and quality

5、of service is imminent accompany the issue has been the main manifestation of the doctor-patient conflicts , is also a big problem has long plagued the majority of medical services, ward call system to facilitate the quick and fast patients to find a doctor to save the patients precious timeThe core

6、 of the system is the AT89C51 microcontroller. As well as other auxiliary hardware circuit, matrix keyboard, LED display circuit address latch and decoder. Patients in all the room you want to call the nurse by his bedside button, the duty room will be the buzzer sounds, the corresponding indicator

7、light, and the number of beds in the duty room of the digital tube display. Matrix keyboard input signal, which is the key to programming.In this design, each bed has a button, when patients are in urgent need, press the button, the display of the duty room to display the patients bed number, people

8、 can use is based on the patient to the intensive care bed a priority, health care workers Response key is pressed to cancel the current call.Keywords: AT89C51; matrix keyboard; LED; Call of beds; buzzer 目 录第一章 前 言5第二章 系统整体设计72.1 功能与方案确定72.1.1 功能要求72.1.2 方案论证72.1.3 总体结构框图8第三章 系统硬件设计93.1 硬件构成示意图93.2

9、单片机简介93.3 主要单元模块介绍103.3.1 控制器AT89C51103.3.2键盘电路设计133.3.3显示电路设计143.3.4报警电路设计183.3.5控制电路设计19第四章 系统软件设计194.1 系统软件环境介绍194.1.1 KEIL_C194.2 系统程序设计204.2.1 系统主程序流程图204.2.2 线反转法流程图21第五章 系统调试与结果225.1 硬件组成图及其功能说明235.2 功能实现组成图及其功能说明24结 论27参考文献28谢辞28附 录29III第一章 前 言病床呼叫系统是一种紧急呼叫工具,在医院等公共场所有着广泛的应用,用来保持住院病人和医务人员取得联

10、系的重要呼叫工具,能够在很大程度上提高医院的人文服务质量,有利于创建和谐医院。病床呼叫系统的优劣直接影响到病员的安危,以及病人对医院服务的满意程度,对于服务是否到位的问题受到了许多医院的广泛关注。它要求及时、准确可靠、简便可行、利于推广。现在国内一些大型医院都有了比较智能的病房呼叫系统,但是有些小医院还没有安装病房呼叫系统,这不仅仅影响了医院的服务质量,也给住院人及他们的家属带来了很多的弊端。有时甚至出现病人紧急情况时,而找不到值班医生或护士,在医院重症住院的病人,在家人不在身边的一段时间内想在点滴后寻找人来拔针,如果这时没有病房呼叫系统,病人将会出现血液倒流的现象,将会及其危险。病房呼叫系统

11、一般分为两大类,一类是接线的,一类是无线的,无线的病房呼叫系统由于没有线路连接的问题,使得接线变得极其简单,但是由于其没有线路连接,可靠性较差,而且对于一些小型医院使用无线呼叫系统也是比较昂贵的一种手段,并且无线电波会干扰其他医疗仪器设备。该篇文章采用有线病房呼叫系统,成本较低,对于一些收入较少的小型医院,是非常好的选择之一,但受到布线较多,影响外观观察效果,故不适宜较大的医院进行使用。病床呼叫系统方便住院病人能够在第一时间找到护士,极大的减少了等待的时间。以便病人能够在第一时间得到最有效的帮助,当今病房呼叫系统正在逐步地向智能化发展,它可以和摄像机,以及通话机一起使用,当病人按下开关时,在护

12、士值班室的屏幕上第一时间看到病以及其周边的情况,并且可以通过对讲机等设备,直接和住院人员进行及时快捷沟通。第二章 系统整体设计2.1 功能与方案确定2.1.1 功能要求本课设希望病床呼叫系统实现以下功能:1任一病房的任意病床呼叫,护士值班室马上能显示其房间号.病床号,并且蜂鸣器响。2若有多个病床呼叫就循环显示;如是重症室患者按铃则可以优于其他普通患者。3护士按下接收键后数码管熄灭,铃声停止。2.1.2 方案论证方案一:使用at89c51单片机外加作地址锁存用的两块地址锁存器74HC573芯片,以及两块共阴极八段数码管,可构成一个基本的显示电路。再配32个独立按键构成的输入电路,数码管采用静态驱

13、动方式,所谓静态驱动方式是指,每一个数码管连接一个地址锁存器,而每一个地址锁存器又占用了8个IO口,两个地址锁存器就占用了16个IO口,led显示器工作在静态显示方式时,各位的共阴极连接在一起并接地,每位的8个断码线分别与一个8位的输出锁存器相连接。对于键盘采用独立式键盘接口,对于该种接法,使得编程变得非常简单,但是由于我们在该次课设中需要大量按键,所以我们还要使用大量外扩电路来增加IO口的数目。方案二:用at89c511自身身接口实现数码管静态显示和键盘扫描,使用at89c51单片机外加一片地址锁存用的三态地址锁存器锁存器74HC573以及一片3,8译码器74ls138芯片,以及一块两位一体

14、的共阴极数码管,可构成一个完整的显示电路。以此为基础,以配置以4行4列矩阵键盘的输入电路,数码管以动态形式显示,不但可以节约外部芯片而且还可以节省IO口,只是在软件编程较静态显示方式较难一些,同时键盘变为矩阵键盘可以将原来由16个IO口控制的独立按键,来变成由8个IO口控制的行列式4*4矩阵键盘,在按键的识别的方法上来使用线反转发,这样的话就可以不扩展I/O芯片而由at89c51自身I/O口实现上述功能, 即用P1口的八个端口作为LED的段选,用P2口的做键盘电路的接口。用P35,P36,P37作为数码管的片选线。综上所述,方案一中键盘显示采用独立按键形式,其软件实现起来比较简单,但硬件电路过

15、于复杂,没有合理利用单片机的I/O2在用静态方式驱动数码管时,也有过多的外围硬件,虽然编程方面简单了许多,但是大量的外围电路,为系统的设计增加了不少障碍,而方案二外围电路非常简单易懂,虽然软件实现起来比较困难,但是这有利于我们对编程语言的学习,综合比较几个方面来看本文选取第二个方案。2.1.3 总体结构框图输入部分键盘输入 控制器AT89C511输出部分LED显示图2-1 病房呼叫系统结构框图框架模块功能描述:1.输入部分包括矩阵键盘输入,病人按键输入相当于一个外界的信号,用于向单片机传输命令。2微处理器采用常见的AT89C51单片机为控制核心,通过c语言软件3编程,对即刻收集到片外信息进行处

16、理,分析,同时对外部电路进行驱动和控制。3输出部分包括两位一体的数码管显示电路,将从键盘上输入的信号显示出来,给人以直观的印象,并且辅助以由蜂鸣器组成的报警电路。4系统过程的综述:矩阵键盘在外部向单片机内部输入信号,AT89C51单片机收到信号后进行精细的处理,通过输出系统将信号显示在两位一体数码管上,并且驱动蜂鸣器4来形成报警电路,此时值班室的护士可以通过按键进行中断调节,来终止刚才的呼叫。第三章 系统硬件设计3.1 硬件构成示意图图3-1 硬件构成示意图3.2 单片机简介单片机也被称作“单片微型计算机”、“微控制器”和“嵌入式微控制器”,单片机一词最初源于“Single Chip Micr

17、ocomputer”,简称SCM5。随着单片机在整体技术层面和内部结构上的进步,其控制能力与日剧曾,国际上逐渐采用“MCU”(Micro Controller Unit,微控制器)来代替SCM。单片机的发展历史大致分为4个阶段。第一阶段:单片机的艰难的摸索阶段。这一阶段主要过程是摸索如何把计算机的一些重要部件嵌入在芯片上。第二阶段:单片机的完善阶段。Intel公司在MCS-48的基础上推出了完善的、典型的MCS-51单片机系列。它在很多方面都奠定了非常典型的以及非常通用的总线型单片机:第三阶段:向微控制器发展的阶段。这一阶段主要是为了满足测控系统要求的各种外围电路和接口电路,突出其职能化控制能

18、力5。第四阶段:单片机的全方位全面发展阶段。由于许多大型的厂商包括大半导体以及大电气厂商都开始积极的参与到单片机的研制和开发过程中来。随着单片机在工业商业等领域内深入的发展和应用,随着时间的推移,逐渐出现了大寻址范围、高强运算能力的8位、16位、32位等通用型单片机以及价格比较便宜的专用型不能软件编程的单片机,还有功能及其全面的各种单片机系统模块。3.3 主要单元模块介绍3.3.1 控制器AT89C51 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器

19、件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域6。主要特性:1与MCS-51产品指令系统完全兼容;24K字节可重擦写Flash闪速存储器;31000次擦写周期 三全静态操作:0Hz-24MHz ;4三级加密程序存储器; 51288字节内部RAM; 632个可编程I/O口线;72个16位定时/计数器; 85个中断源,两级中断优先权 输入输出引脚AT89C51引脚如图3-2示:图2-2 AT89C51引脚图图3-2AT89

20、C51引脚P0:P0口在扩展外部存贮器以及I/O口接口芯片时,P0口作为地址总线的低八位以及数据总线的分时复用端口,P0口也可以作为通用的I/O端口来使用,但需要加上上拉电阻,大约在5-8k。P1:P1口8位为准双向I/O口,具有自己的拉电阻。P2:P2口8位准双向I/O口,具有内部上拉电阻,当单片机外部扩展存贮器以及IO口时,P2可以将高8位地址输出进行使用。P3:P2口8位准双向I/O口,具有内部上拉电阻,并且具有比较强大的第二功能,第二功能见下表所示。引脚第二功能说明P3.0RXD串行数据输入口P3.1TXD串行数据输出口P3.2INTO外部中断0输入P3.3INT1外部中断1输入P3.

21、4T0定时器0外部计数输入P3.5T1定时器1外部计数输入P3.6WR外部数据存储器写选通输出P3.7RD外部数据存储器读选通输出表3-1VCC:电源端,一般接5V;GND:电源地;XTAL1,XTAL2:外接晶体振荡器,常常选择12M;需加微调电容,一般选择为30pF;RST/VPD:复位端,平时为低电平;ALE/PROG:地址锁存允许信号端;EA/Vpp:外部程序存储器地址允许输入端/固化编程电压输入端7。复位电路:RST管脚是复位信号使能端,高电平有效。当持续给予高于两个周期的高电平时就能达到复位的效果,采用按键复位。进行手动复位,以节省资源,图3-3 复位设计时钟电路:时钟定时,AT8

22、9C51核的片上振荡器的基础上,构成一个反相放大器,它可以产生时钟和内部模式和外部模式,时钟可以由两种方式产生。该系统采用内部XTAL1和XTAL2外部石英晶体作为计时元素,内部反相放大器自激振荡产生时钟。振荡脉冲频率的时钟发生器。电容30pF。如图3-4所示。图3-4 时钟电路3.3.2键盘电路设计1矩阵式键盘本次课设中没有使用独立式键盘,由于其占用过多的IO口,我们采用矩阵键盘,如果存在n*n个按键键,则采用矩阵式结构以后,那么久只需要要n+n条引线就可以了。如果我们需要一个4*4个键,那么,只要用一个并行端口和8条引线便可以了。2键的识别按键的识别方法有扫描法和线反转法,本文采用线反转发

23、。线反转法的原理:线反转法与扫描法相比非常简单无论按键是处于第一列还是最后一列,均只需两步就可以精确的确定按键的位置了,它的原理简要说明如下。这里为了叙述方便,叙述44=16键的键盘。图3-5是行反转法的工作示意图8。 图3-5 线反转法连接图从图中可以看到,用行反转法识别闭合键时,要将行线1.2.3.4接四个并行I/O口,P2.0,P2.1 ,P2.2 ,P2.3,让列线5.6.7.8接四个并行I/O口P2.0 P2.4. P2.5.P2.6. P2.7.采用线反转法的具体操作步骤如下,先让行线编程为输入线,列线编程为输出线,将输入线全设置为高电平,将输出线设置为低电平,那么当有某一个按键被

24、按下时,则该按键所在的行线电平由高电平变化到低电平,然后可精确的找到按键所在的行数,然后再将输入输出线进行反转,将列线作为高电平的输入线,将行线作为低电平的输出线,那么当有某一个按键被按下时,则该按键所在的列线电平由高电平转化到低电平,然后可确定该按键所在的列,经过上述两步,就可以精确的的确定按键位置。3.3.3显示电路设计1LED显示原理 LED即发光二极管,它是一种由某种半导体材料制成的PN结,由于掺杂浓度很高,当PN结正相偏置时,会产生许多的电子和空穴,电子和空穴复合后把多余的电能转化成光能释放出来。LED的正向工作电压降一般在1.2-2.6V,发光工作电流在5mA-20mA,发光强度基

25、本上与正向的电流成一定的正比例,所以电路使用过程中需要串讲电阻。LED对脉冲工作状态比较适合,在平均电流差距不大的情况下,脉冲状态比一般的直流工作情况下产生的亮度增强大约15%左右。LED显示器有单个、七段,8段和点阵式几种类型,本设计将使用8段LED显示器。2两位一体八段共阴数码管八段LED数码管由数个LED组成一个阵列,并封装与一个标准外壳中。为适用于不同电路进行使用,为了方便高低电平的驱动,有共阴,共阳极两种结构,如图所示。用七段LED数码管可组成0-9数字和a-f字母9,图3-6 LED显示器的两种结构为了显示某个数字或者字母,就要点亮对应的数码管段,这就需要译成二进制码。译码有硬件和

26、软件之差别,硬件译码的优点是计算机时间的开销比较小,但硬件开支大。与硬件电路电路进行比较来看,软件译码显示省去了硬件译码器等一些硬件设施,本论文采用软件译码的方式。对于共阴极数码管来说,它们的所有阴极都接在一起,并且接地,当单片机给出高电平时,对应的发光二极管就会点亮,把需要点亮的二极管全部点亮就会出现需要的字符,8段共阴LED的数码管断码如表3-2所示.01234567893FH06H5BH4FH66H6DH7DH07H7FH6FH表3-2两位一体共阴数码管就是将两个单个的八段数码管封装在一起,将8个段选用导线连接在一起,行成八跟线,用来外接信号来显示相应的字符,然后将两根公共线分别接出来作

27、为数码管的片选,也就是只有当片选信号有效时,数码管才会显示我们出现的数字,当片选信号无效时,数码管不会显示我们出现的数字。3.数码管驱动芯片介绍地址锁存器74hc573管脚图(如图3-7所示)及其功能表(如表3-3所示)D0D1Q1Q0D7D6D5D4D3D2Q7Q6Q5Q3Q4Q2EAGND LEVCC图3-7地址锁存器74hc573管脚图 输入输出输出使能锁存使能DQLHHHLHLLLLX不变HXXZX=不用关心Z=高阻抗表3-3地址锁存器74hc573功能表38译码器74ls138管脚图及其真值表 A0A1Y1Y0STaSTcSTbD4D3A2Y7Y6Y5Y3Y4Y274ls138图3-

28、8 74ls138管脚图STA,STB,STC是三个输入选通控制端,当STA=0或者STB+STC=1时,译码被禁止,译码器的输出端YO-Y7,全为1,只有当STA=1和STB+STC=0,时,译码器才能正常运行,完成译码操作。表3-43.3.4报警电路设计采用三极管来控制蜂鸣器和发光二极管串联电路的通断,用单片机P3.1端口控制,当有低电平导通,显示器显示床号的同时蜂鸣器发出呼叫声音。同时发光二极管发光,电路连接下图所示。P3.110kVCCGNDSPKLED图3-9 报警设计3.3.5控制电路设计医护值班人员的响应按键,可以由单片机的复位键来充当,当有呼叫发出时,值班室人员收到相应信息后,

29、可按下“响应按钮”,通过编程令单片机执行中断程序,达到数码管熄灭,振铃停止发声的目的。第四章 系统软件设计4.1 系统软件环境介绍4.1.1 KEIL_C于AT89C51的控制设计,以Keil_c为软件编程环境。Keil_c软件界面如图3-1所示:图4-1 Keil_c软件界面该软件是一款集编程和仿真于一体的软件,它支持汇编、C语言及二者的混合编程,可以采用以下步骤来建立一个c文件并将其保存并生成hex文件,在菜单栏中单击project选择new project,然后命名文件并且将其储存,然后在左侧菜单栏中单击新建,新建一个c文件,并且将其保存,这时工作区的左侧出现了一个target1,鼠标左

30、键单击target1左侧的+号,展开了target1的下一级命令,source group1,用鼠标左键选定该图标,单击鼠标右键,选择Add Files to group“source group1”然后弹出一个对话框,单击刚才储存的c文件,鼠标左键单击Add按钮,然后再单击close按钮,然后进行程序的编写,编写好程序后进行编译和汇编就可以了10。4.2 系统程序设计病房呼叫系统软件设计均采用模块化设计,整个程序设计可以包含以下几个重要的方面,键盘扫描程序,主要通过线反转发来获得键值,数码管显示电路,采用数码管动态显示,同时还要用到两块芯片,74hc573地址译码器以及一片74ls138译码

31、器芯片驱动程序,能够显示床位号以及房间号,以及蜂鸣器驱动程序,还有外部中断程序,其中最为重要的是键盘扫描程序,因为程序的大部分时间都在扫描,通过扫描得到按键的键值之后我们才能去做其他事情。才能让数码管显示或不显示,或者让蜂鸣器响或者是不响。4.2.1 系统主程序流程图开始设定初值,程序初始化判断分支语是否得到返回值扫描程序中得到键值在相应的case语句中显示相对应的床位号码 NY图4-2 主程序流程图主程序程序描述:首先进行初始化,对一些变量进行赋初值,然后开始switch(key)语句,并将其设为死循环,将扫描程序放在switch语句的后方,然后将扫描函数的返回值作为key值送到switch

32、语句的各分支中去,而扫描函数就是用线反转法得到按键的键值,switch语句中的case语句包含了各种按键情况,当相应的键值与case语句后方的常值相同时,case语句就将使相应的数码管点亮显示病人所在的房间号和床位号码,并使蜂鸣器发出声音,并且经过软件延时5秒钟左右,跳出该case语句,继续接受扫面函数的返回值,来响应其他的按键。4.2.2 线反转法流程图键盘电路我们按照上面所说的矩阵式来设计,在程序中可以先判断是否有键按下,然后在再通过软件获取键值,最后由单片机送到数码管进行显示。设计流程图如图4-3所示。开始是否有键按下延时5ms是否有键按下获取键值按键是否释放修改对应按键运算Y N YN

33、 YN图4-3 键盘扫描线反转法程序流程图结 论主要工作:熟悉AT89C51单片机功能及工作特性,对矩阵键盘的硬件以及软件编程有了更加升入的了解。掌握了采用地址锁存器以及38译码器来实现两位一体,以及四位一体共阴共阳数码管的外部接线图,及其单片机驱动程序,学会了采用三极管驱动蜂鸣器,以及对单片机的最小系统硬件结构有了更加深入的了解,同时通过长时间的实物焊接练习,使自己的焊接技术有了很大的提高。存在的问题:对硬件电路中某些芯片以及某些内部结构不够深入的了解,导致有些问题解释不了,如单片机的P0口不能作为普通I/0口,必须接5-10k的上拉电阻的原理。又如在软件编程过程中发现在循环显示病人床号时,

34、当在响应某一个按键时,如何截获另一个按键啊键值的软件编程还存在着很大的可改善之处,没有扩展更多的外部电路,如时钟电路等。至此,本次毕业设计的主要内容已经基本得以实现。此章对本次课设进行总结,并对将来更加智能的病床呼叫系统提出自己的构想,为将来的学弟学妹们提出一点点建议,选择基于单片机的病房呼叫系统这个课设题目的难点之一在于软件编程实现病床号码动态循环显示,这对我们对汇编语言或者是c语言的了解有极高的要求,这个在本篇论文中已经得到了实现,难点之二就在于在病床呼叫之上我们应该采取重症病房特殊对待,也就是对她们的呼叫可以优先处理,利用中断来实现,这个在本文中没有得到实现,希望在不久的将来有学弟学妹们

35、能够实现这一功能。 参考文献1 谭浩强.MCS-51单片机应用教程.北京:清华大学出版社,2004:57_622 康华光.电子技术基础.北京:高等教育出版社,2000:17_233 李伯成.单片机及嵌入式系统.北京:清华大学出版社,2005:337_3464 肖金球.单片机原理与接口技术.北京:清华大学出版社,2004:153_1595 康华光.电子技术基础(模拟部分). 北京:高等教育出版社,1999:112_1196 李勋.单片机微型计算机大学读本.北京:北京航空航天大学出版社,2002:75_777张培仁等.MCS-51单片机原理与应用.北京.清华大学出版社,2003:130_1458治

36、刚.单片机应用技术与实训.北京:清华大学出版社,2004:130_1339胡汉才.单片机原理及接口技术.北京:清华大学出版社,1995:111_12310徐淑华等.单片机微机原理及应用.哈尔滨:哈尔滨工业大学出版社,1994:336_351谢辞四年的大学生活也将随着论文结束而结束了。在这里我要向那些曾经给予我关心和帮助的老师、同学和朋友们致以诚挚的谢意。如果没有你们的帮助,这篇论文将难以顺利完成。首先要感谢我的指导老师刘宇的耐心指导,刘宇老师治学严谨,平易近人。从毕业设计工作的进行,到毕业论文的撰写和修改,给我提供了许多十分有益的指导和建议,帮助我开拓思路,深入研究。同时刘宇老师在我考研以及调

37、剂过程中也给予我大量的帮助,也向所有教导和关心过我的领导老师致以最诚挚的谢意!衷心的希望老师们都能事业顺利,桃李芬芳!感谢身边的同学对我的帮助,他们使我在设计过程中得到许多启示。我很荣幸生活学习在这个团结,健康,向上的集体中,我也要感谢我的室友们,是你们给予了很多的爱和关心,在大学度过的这四年给我留下了终生难忘的记忆。附 录附录一整体电路图附录二:源程序/*-矩阵键盘实验程序 通过反转法循环扫描矩阵键盘,并通过数码管显示数据-*/#include /*包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义*/#define uchar unsigned char#define uint

38、 unsigned intsbit key0=P31;/蜂鸣器控制引脚,当其值为1时关闭,当其为低电平时响sbit key1=P35;sbit key2=P36;sbit key3=P37;/*数码管片选控制信号35- P37由高位到低位000-011控制从左到又四个数码管的片选*/*- 函数声明-*/ uchar keyscan(void);/键盘扫描void delay(uint i); /演示程序unsigned char a;/定义一个字符形变量,用来有两个人按键的循环显示。unsigned long int j;/*- 主函数-*/void main() uchar key; key

39、0=1;/将蜂鸣器控制端P31置为高电平P1=0X00;/去影 while(1)/死循环,进入主程序后,将一直在这里循环 key=keyscan(); /调用键盘扫描, switch(key) case 0xee:/* 01号病房01号病人按键,显示相对应的码值,程序开始*/key0=0;/ 蜂鸣器发出声音,蜂鸣器指示灯亮,for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x06; delay(300);key1=0; key2=1;key3=0;P1=0x3f; de

40、lay(300);key1=0; key2=1;key3=1;P1=0x06; delay(300);a=keyscan(); /*当一个病床正在呼叫时,另一个病床呼叫,将床号存在a中,程序后面的同理*/key0=1;/蜂鸣器停止发出声音,蜂鸣器指示灯灭,程序下方同理P1=0x00;/将数码管熄灭,以下同理break;/* 01号病房01号病人按键,显示相对应的码值,程序结束*/case 0xde:key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x06;

41、 delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x5b; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00;break;/ 01号病房02号病人按键,显示相对应的码值case 0xbe: key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x06; delay(300);key1=0; key2=1;ke

42、y3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x4f; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00; break;/0103case 0x7e:key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x06; delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;

43、P1=0x66; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00;break;/0104case 0xed:key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x5b; delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x06; delay(300);a=keyscan(); /调用键盘扫描,key0=1;

44、P1=0x00;break;/0201case 0xdd:key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x5b; delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x5b; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00;break;/0202case 0xbd:key0=0;for(j=1;j+20

45、000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x5b; delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x4f; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00;break;/0203case 0x7d:key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300

46、);key1=0; key2=0;key3=1;P1=0x5b; delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x66; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00;break;/0204 case 0xeb: key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x4f; delay(300);ke

47、y1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x06; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00;break;/0301case 0xdb:key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x4f; delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0; key2=1;key3=1;P1=0x5b; delay(300);a=keyscan(); /调用键盘扫描,key0=1;P1=0x00;break;/0302case 0xbb:key0=0;for(j=1;j+20000;j+) key1=0; key2=0;key3=0;P1=0x3f; delay(300);key1=0; key2=0;key3=1;P1=0x4f; delay(300);key1=0; key2=1;key3=0;P1=0x3f; delay(300);key1=0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!