2022年基于单片机的病床呼叫系统大学本科方案设计书.docx
-
资源ID:12907987
资源大小:700.99KB
全文页数:33页
- 资源格式: DOCX
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年基于单片机的病床呼叫系统大学本科方案设计书.docx
精品学习资源作者 qiqi指导老师 wangwang摘要系统是基于 51 系列的单片机设计的病床呼叫系统;该系统以AT89C51 单片机为核心辅以矩阵键盘、 LED 点阵显示电路和部分简洁模拟和数字电路组成的能够实现病人和医护人员之间信息的传递;在该设计中每个病房都有一个按键,当患者有需要时,按下按键,此时值班室的显示屏可显示此患者的床位号,多人使用时可实现循环显示,医护人员按下“响应”键取消当前呼叫;此系统能够为医院供应一个成本低、效率高、操作便利和易于安装保护的快捷系统;关键词:单片机;矩阵键盘;点阵; LED显示;呼叫系统欢迎下载精品学习资源目录引言 11 51 系列单片机的简介 11.1 单片机的进展介绍 11.2 单片机的结构特点 21.3 单片机的实际应用 21.4 掌握器 AT89C5132 接口技术 42.1 键盘接口 42.2 显示器接口 53 程序设计语言 93.1 机器语言 93.2 汇编语言 93.3 高级语言 94 基于单片机的病床呼叫系统的设计实现104.1 系统总体设计 104.2 系统硬件设计 114.3 系统软件设计 154.4 系统的调试与结果 19结论 20致谢 21参考文献 21附录 22附录 A:原理图 22附录 B:源程序 23欢迎下载精品学习资源引言病床呼叫系统是一种应用于医院病房、养老院等地方,用来联系沟通医护人员和病员的专用呼叫系统,是提高医院水平的必备设备之一;病床呼叫系统的优劣直接影响到病员的安危,历来受到各大医院的普遍重视;它要求准时、精确牢靠、简便可 行、利于推广 1;目前市场上存在着很多种型号不一功能各异的医院病房呼叫系统,主要为两大类:有线式和无线式 2;无线式病房呼叫系统不存在铺设线路的问题,但是牢靠性差, 而且无线电波会干扰其他医疗仪器设备3 ;本文设计的是有线式的,适合较小的医院病房使用,具有成本低,易于操作、安装和保护,而且具有牢靠稳固,对其他医疗设备不会产生干扰的特点;但受到布线较多,影响美观,故不相宜较大的医院;病床呼叫治理系统便于病员快捷的呼叫护士,缩短人工呼叫的时间;当今病房呼叫系统正在逐步地向智能化进展,它可以和录像机一起使用,当病人按下开关时,在护士值班室的大屏幕能够观看病人的需要;并且可以配备对讲机等设备,能够使病员准时快捷地与医护人员进行沟通;1 51 系列单片机的简介1.1 单片机的进展介绍单片机也被称作“单片微型运算机”、“微掌握器”和“嵌入式微掌握器”,单片机一词最初源于“ Single Chip Microcomputer ”,简称 SCM;随着单片机在技术和体系结构上的进步,其掌握功能不断扩展,国际上逐步采纳“MCU ”( Micro Controller Unit, 微掌握器)来代替 SCM;单片机的进展历史大致分为 4 个阶段;第一阶段:单片机的探究阶段;这一阶段主要是探究如何把运算机的主要部件集成在芯片上;其次阶段:单片机的完善阶段; Intel 公司在 MCS-48 的基础上推出了完善的、典型的 MCS-51 单片机系列;它在以下几个方面奠定了典型的通用总线型单片机体系结构:设置了经典、完善的 8 位单片机的并行总线结构;外围功能单元由 CPU 集中治理的模式;表达掌握特性的地址空间和位操作方式;欢迎下载精品学习资源指令系统趋于丰富和完善,并且增加了很多突出掌握功能的指令;第三阶段:向微掌握器进展的阶段;这一阶段主要是为了满意测控系统要求的各种外围电路和接口电路,突出其职能化掌握才能;第四阶段:单片机的全面进展阶段;由于很多大半导体和电气厂商都开头参加单片机的研制和生产;随着单片机在各个领域全面深化的进展和应用,逐步显现了高速、低功耗、大寻址范畴、强运算才能的8 位、16 位、32 位通用型单片机以及小型廉价的专用型单片机,仍有功能全面的片上单片机系统;41.2 单片机的结构特点单片机是微型机的一个重要分支,它在结构上的最大特点是把CPU、储备器、定时器和多种输入 /输出接口电路集成在一块超大规模的集成电路芯片上;单片机内是一种在线式实时掌握运算机,在线式就是现场掌握,需要有较强的抗干扰才能,较低的成本;单片机由于这种结构,所以具有很多显著的特点;主要有掌握才能强,抗干扰才能强、牢靠性高,性能价格比高,低功耗、低电压,扩展了多种串行口和系统扩展简洁等特点;1.3 单片机的实际应用单片机广泛应用于外表仪器、家用电器、医用设备、航空航天、专用设备的智能化治理及过程掌握等领域,大致可分为以下几个范畴:(1) )在智能仪器外表上的应用单片机具有体积小、功耗低、掌握功能强、扩展敏捷、微型化和使用便利等特点,广泛应用于仪器外表中看,结合不同类型的传感器,可以实现诸如电压、功率、频率、温度、流量、速度、角度、硬度、元素、压力等物理量的测量;采纳单片机掌握使得仪器外表数字化、智能化、微型化;且功能比采纳电子和熟识电路更加强大;例如精密的测量设备(功率计、示波器和各种分析仪);(2) )在工业掌握中的应用用单片机可以构成形式多样的掌握系统、数据采集系统;例如工厂流水线的智能化治理,电梯智能化掌握、各种报警系统,与运算机联网构成二级掌握系统等;(3) 在家用电器中的应用可以这样说,现在的家电基本上都采纳了单片机掌握,从电饭煲、洗衣机、电冰欢迎下载精品学习资源箱、空调机、彩电、其他音响视频器材、再到电子称量设备,五花八门,无其不有, 无所不在;(4) 在运算机网络和通信领域的应用现在的单片机普遍具有通信接口,可以很便利的与运算机实现数据通信,为运算机网络和通信设备间的应用供应了极好的物质条件,可以的通信设备基本上都实现了单片机灵能掌握,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线对讲机等;(5) )单片机在医用设备领域中的应用单片机在易用设备领域中的应用相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声波诊断设备及病床呼叫系统等等;此外单片机在工商、金融、科研、训练、国防、航空航天领域都有相当广泛的应用;1.4 掌握器 AT89C51AT89C51 是美国 ATMEL 公司生产的低电压 ,高性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序储备器PEROM 和 128 bytes的随机存取数据储备器 RAM ,器件采纳 ATMEL 公司的高密度,非易失性储备技术生产,兼容标准 MCS-51 指令系统 ,片内置通用 8 位中心处理器 CPU和 Flash 储备单元,功能强大AT89C51 单片机可为您供应很多高性价比的应用场合,可敏捷应用于各种掌握领域2 ;主要特性:与 MCS-51 产品指令系统完全兼容 4K 字节可重擦写 Flash闪速储备器 1000 次擦写周期 全静态操作 :0Hz-24MHz 三级加密程序储备器 128×8 字节内部 RAM 32 个可编程 I/O 口线 2 个 16 位定时/计数器 5 个中断源可编程串行 UART 通道AT89C51 单片机采纳 40Pin 封装的双列直插 DIP 结构,图 1.1 是它的引脚配置图;40 个引脚中,正电源和地线两根;4 组 8 位 I/O 口,共 32 个引脚;时钟电路引脚欢迎下载精品学习资源XTAL1 和 XTAL2 ;掌握信号引脚包含:复位输入端冲输入端 ALE/PROG ,片外程序储备器选通掌握信号端编程电源输入端 EA/VPP;RET,地址锁存答应输出/编程脉PSEN,内外程序储备器挑选/P1.0P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 XTAL2 XTAL1VssVcc AT89PC05.10P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7EA/VppALE/PROG PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1P2.0图 1.1AT89C51 单片机引脚图2 接口技术2.1 键盘接口在单片机的应用系统中,通常都有人机对话功能;它包含人对系统的状态干预、数据的输入以及应用系统向人报告运行状态与运行结果等;键盘成为人机联系的必要手段,此时需要配置适当的键盘输入设备5 ;2.1.1 键盘工作原理键盘中的每个按键都是一个常开的开关电路,当所设置的功能键或数字键按下时,就处于闭合状态;对于一组键或一个键盘,需要通过接口电路与单片机相连,以便将键的开关状态通知单片机;单片机可以采纳查询或中断方式检查有无键的输入以及是哪个键被按下,并通过转移指令转入执行该键的功能程序,执行完再返回到原始状态;2.1.2 独立式按键欢迎下载精品学习资源独立式按键是指直接用 I/O 口线构成的单个按键电路;每个独立式按键单独占有一根 I/O 口线,每根 I/O 口线的工作状态都不会影响其他I/O 口线的工作状态;2.1.3 行列式键盘独立式按键电路每一个按键开关占用一根I/O 口线;当按键数较多时,要占用较多的 I/O 口线;因此,在按键数大于8 时,通常采纳行列式(也称“矩阵式”)键盘电路;最简洁的键盘,每个键对应 I/O 端口的一位,没有什么键闭和时,各位均处于高电位;当有一个键按下时,就是对应位接地而成为低电位,而其它位仍为高电位;这样, CPU 只要检测到某一位为“ 0”,便可判别出对应键已经按下;但是,当键盘上的 键较多时,引线太多,占用的I/O 端口也太多;比如,一个有64 个键的键盘,采纳这种方法来设计时,就需要 64 条连线和 8 个 8 位并行端口;所以,这种简洁结构只用在 仅由几个键的小键盘中;通常使用的键盘结构是矩阵式的,如图2.1 所示;设有 m * n 个键盘,那么,采纳矩阵式结构以后,便只要条引线就行了;比如,有m + n 个键, 那么,只要用两个并行端口和 16 条引线便可以完成键盘的连接 6 ;图 2.1 矩阵键盘2.2 显示器接口为了便利人们观看和监视单片机运行情形,通常需要利用显示器作为单片机的输出设备,以显示单片机的键输入值、中间信息以及运算结果等;在单片机应用系统中,常用的显示器主要有LCD (液晶显示器)和 LED(发光二极管显示器);这两种显示器都具有耗电省,配置敏捷,线路简洁,安装便利,耐振动,寿命长等优点;2.2.1 液晶显示器液晶显示器LCDLiquidCrystal Display 是一种极低功耗的显示器;由于其具有清楚度高,信息量大等特点,从而使得它越来越广泛地应用在小型仪器的显示中;欢迎下载精品学习资源把 LCD 与驱动器组装在仪器的部件的英文名称为LCD Module,简称 LCM ;LCM一般分为三类,即段码型液晶模块、点阵字符液晶模块和点阵图形液晶模块;2.2.2 LED 点阵显示屏LED 点阵显示屏的构成型式有多种,其中典型的有两种;一种把所需展现的广告信息烧写固化到 EPROM 芯片内,能进行固定内容的多幅汉字显示,称为单显示型; 另一种在机内设置了字库、程序库,具有程序编制才能,能进行内容可变的多幅汉字 显示,称可编程序型 7;目前,国内的LED 点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一;一般在产品出厂时,显示内容就已写入显示屏掌握系统中的EPROM 芯片内,当需要更换显示内容时就特别困难,这样使该类型的显示屏使用范畴受到了限制;国内的另一种 LED 显示屏可编程序型 LED 显示屏,虽然增加了显示屏系统的编程才能,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点; 随着社会经济的快速进展,如今的广告牌都存在着显示内容丰富、信息量大、信息更 换速度快等特点;因此传统的LED 显示屏掌握系统已经越来越不能满意现代广告宣扬业的需要;而利用 PC 机通信技术掌握LED 显示屏,就具有显示内容丰富,信息更换敏捷等优点 7 ; 8*8 点阵如图 2.2 和图 2.3 是 8*8 点阵原理图和实物图欢迎下载精品学习资源图 2.28*8 点阵原理图图 2.3 为 8×8 单基色点阵的结构图,从内部结构可以看出8×8 点阵共需要 64 个发光二极管,且每个发光二极管是放置在各行和列的交叉点上;当对应的某一列置高电图 2.3 8*8 点阵实物图平,另一列置低电平常,就在该行和列的交叉点上相应的二极管就亮;图 10 为 8×8 点阵 LED 外观及引脚图,其等效电路如图9 所示,只要其对应的X、Y 轴顺向偏压,即可使LED 发亮;例如假如想使左上角LED 点亮,就 Y0=1 , X0=0 即可;应用时限流电阻可以放在X 轴或 Y 轴8 ; 8*8 点阵显示原理从理论上说,不论显示图形仍是文字,只要掌握与组成这些图形或文字的各个点 所在的位置相对应的 LED 器件发光,就可以得到我们想要的显示结果,这种同时掌握各个发光点亮灭的方法称为静态驱动显示方式;8*8 的点阵共有 64 个发光二极管,明显单片机没有这么多的端口,假如我采纳锁存器来扩展端口,按8 位的锁存器来运算, 8*8 的点阵需要64/8=8 个锁存器;这个数字很巨大,由于我们仅仅是8*8 的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很巨大的数字;因此在实际应用中的显示屏几乎都不采纳这种设计,而采纳另外一种称为动态扫描的显示方法 9 ;动态扫描的意思简洁地说就是逐行轮番点亮,这样扫描驱动电路就可以实现多行(比如 8 行)的同名列共用一套驱动器;具体就8*8 的点阵来说,把全部同 1 行的发欢迎下载精品学习资源光管的阳极连在一起,把全部同1 列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1 行使其燃亮肯定时间,然后熄灭;再送出其次行的数据并锁存,然后选通第2 行使其燃亮相同的时间,然后熄灭;以此类推,第 8 行之后,又重新燃亮第1 行,反复轮回;当这样轮回的速度足够快(每秒 24 次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳固的图形了;采纳扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器;显示数据通常储备在单片机的储备器中,按8 位一个字节的形式次序排放;显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题;从掌握电路到列驱动器的数据传输可以采纳并列方式或串行方式;明显,采纳并行方式时,从掌握电路到列驱动器的线路数量大,相应的硬件数目多;当列数很多时,并列传输的方案是不行取的 10 ;采纳串行传输的方法,掌握电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是特别经济的;但是,串行传输过程较长,数据按次序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示;这样,对于一行的显示过程就可以分解成列数据预备(传输)和列数据显示两部分;对于串行传输方式来说,列数据预备时间可能相当长,在行扫描周期确定的情形下留给行显示的时间就太少了,以致影响到 LED 的亮度;解决串行传输中列数据预备和列数据显示的时间冲突问题,可以采纳重叠处理的方法;即在显示本行各列数据的同时,传送下一列数据;为了达到重叠处理的目的, 列数据的显示就需要具有所存功能;经过上述分析,就可以归纳出列驱动器电路应具有的功能;对于列数据预备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能;这样,本行已预备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以预备下一行的列数据,而不会影响本行的显示;图 2.4 为显示屏电路实现的结构框图:列驱动器单电源片机行驱LED 显示点阵动器欢迎下载精品学习资源图 2.4 显示屏系统框图3 程序设计语言单片机能执行的程序可以用很多种语言编写;从语言结构及其与单片机的关系两方面可分为三大类:分别是机器语言、汇编语言和高级语言;3.1 机器语言机器语言是一种用二进制代码“ 0”和“ 1”表示指令和数据 的最原始的程序设计语言;由于运算机只能识别二进制代码,因此,这种语言与运算机的关系最为直接,运算机能够快速识别并立刻执行,响应速度最快;但这种语言编写程序特别繁琐、费时,且不易看懂,不便记忆,简洁出错;3.2 汇编语言汇编语言是一种用助记符来表示的面对机器的程序设计语言;不同的机器所使用的汇编语言一般是不同的;这种语言比机器语言更加直观、易懂、易用,且便于记忆;但是由于不同机器的汇编语言不同,这种语言有肯定的局限性,移植性差;3.3 高级语言高级语言是一种面对过程且独立于运算机硬件结构的通用运算机语言;目前在单片机应用最广泛的是 C 语言;3.3.1 单片机 C语言的特点对单片机的指令系统不要求明白,仅要求对单片机的储备结构有初步的明白;寄存器的安排、不同储备器的寻址及数据类型等细节可由编译器治理;程序有规范的结构,可分为不同的函数,可使程序结构化;关键字及运算函数可用近似人的思维过程方式使用;编程及程序调试时间显著缩短,从而提高效率;供应的库包含很多标准子程序,具有较强的数据处理才能等;欢迎下载精品学习资源3.3.2 单片机 C语言使用的编程软件3.3.2.1 编程软件Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机C 语言软件开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可保护性上有明显的优势,因而易学易用; Keil 供应了包括 C 编译器、宏汇编、连接器、库治理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起;运行Keil 软件需要 WIN98 、NT 、WIN2000 、WINXP 等操作系统;假如你使用 C 语言编程,那么 Keil 几乎就是你的不二之选,即使不使用C 语言而仅用汇编语言编程,其便利易用的集成环境、强大的软件仿真调试工具也会令你事半功倍;3.3.2.2 仿真软件Proteus 是英国 Labcenter公司开发的电路分析与实物仿真软件;它运行于Windows操作系统上,可以仿真、分析 SPICE各种模拟器件和集成电路;4 基于单片机的病床呼叫系统的设计实现4.1 系统总体设计4.1.1 功能要求本课题主攻方向是使系统实现以下目的:任一病房(共 16 张)呼叫,医护值班室立刻能响应并显示病房号;显示病房床号;如有多个病床呼叫就循环显示;处理完毕后清除记录;显示器不重复显示按一次以上的病床号4.1.2 设计方案用 8051 自身接口实现数码管静态显示和键盘扫描,使用8051 单片微机外加作地址锁存用的四块三态锁存器74LS373 芯片和一块 74LS138 芯片可构成一个完整的最小微机电路;以此为基础,在智能装置中如要配置多位数码管显示器,以及m 行 n 列矩阵键盘的话,可以不扩展 I/O 芯片而由 8051 自身 I/O 口,实现上述功能 , 即用 P0 口的八个端口作为LED 的段选 ,用 P2 口的高三位连接一个三八译码器74LS138 作为四个LED 的片选.用 P1 口和 P2 口的低五位做键盘电路的接口;4.1.3 总体结构框图欢迎下载精品学习资源本设计是基于 AT89C51 单片机设计的病房呼叫系统设计,该系统就是以Atmel 公司的 AT89C51 单片机作为主控器,包括键盘输入电路,显示电路,以及晶振复位电路等来实现病房呼叫系统;欢迎下载精品学习资源输入部分键盘输入掌握器AT89C51输出部分LED 显示欢迎下载精品学习资源图 4.1 病房呼叫系统结构框图4.2 系统硬件设计4.2.1 硬件构成示意图键盘电路单片机显示电路报警电路图 4.2 硬件构成示意图4.2.2 外围电路设计4.2.2.1 掌握器 AT89C51复位电路:RST 引脚是复位信号输入端,高电平有效;采纳上电加按钮复位,由于本系统设计考虑到该系统比较重要,所以除了采纳上电复位的方式外,应当仍有按钮复位备用复位方式以防止系统死机时能;如下图4.3 所示:VCC欢迎下载精品学习资源818W-PBC1 10uF单片机欢迎下载精品学习资源欢迎下载精品学习资源R1 2KR2 200K RET欢迎下载精品学习资源图 4.3 上电复位和按键复位时钟电路:时钟是时序的基础, AT89C51 核片内由一个反相放大器构成振荡器,可以由它产生时钟,时钟可以由两种方式产生内部方式和外部方式;本系统采纳内部方式,在XTAL1 和 XTAL2端外接石英晶体作为定时元件,内部反相放大器自激振荡,产生时钟;时钟发生器对振荡脉冲二分频;电容采纳30pF 电容;如下图 4.4 所示:XTAL1C1C2单片机XTAL2图 4.4 内部时钟电路4.2.2.2 键盘电路设计1、 键的识别为了识别键盘上的闭合键,通常采纳两种方法,一种称为行扫描法,另一种称为行反转法;行扫描法的原理 :行扫描法识别闭合键的原理如下:先使第0 行接地,其余行为高电平,然后看第0行是否有键闭合,这是通过检查列线电位来实现的,即在第0 行接地时,看是否有条列线变成低电平;假如有某条列线变为低电平,就表示第0 行和此列线相交位置上的键被按下;假如没有任何一条列线为低电平,就说明第0 行上没有键被按下;此后,再将第 1 行接地,然后检测列线中是否有变为低电平的线;如此往下逐行扫描,直到最终一行;在扫描过程中,当发觉某一行有键闭合时,也就是列线输入中有一位为0时,便在扫描中途退出,而将输入值进行移位,从而确定闭合键所在的列线位置;根欢迎下载精品学习资源据行线位置和列线位置便能再扫描法来确定具体位置;将行线和一个并行接口相接,CPU 每次使并行输出接口的某一位为0,便相当于将某一行线接地,而其他位为1,就相当于使其他行线处于高电平;为了检查列线上的电位,将列线和一个并行输入输出口相接, CPU 只要读取输入输出口中的数据,就可以设法判别出第几号键被按下11;从上面的原理中知道,程控扫描法是由程序掌握键扫描的方法;程控扫描的任务是:第一判定是否有键按下;其方法是使全部的行输出均为低电平,然后从端口A读入列值 ;假如没有键按下,就读入的列值为FFH;假如有键按下,就读入的列值不为 FFH;去除键抖动;如有键按下,就延时5 10ms,再一次判定有无键按下,假如此时仍有键按下,就认为键盘上有一个键处于稳固闭合期;如有键闭合,就求出闭合键的键值 .求键值的方法是对键盘逐行扫描;如图4.5是行扫描法:开头调显示程序欢迎下载精品学习资源扫描整个键盘N有键按下?延时 10ms列值 +1列数据右移 1 位NY有键按下?欢迎下载精品学习资源再次扫描整个键盘延时N有键按下?NY欢迎下载精品学习资源输出访 Xi 为低电平Y此行有键按?行值+0SH键释放了?运算键值BUFF键值欢迎下载精品学习资源图 4.5 行扫描法的流程图2行反转法的原理12 ;行反转法也是识别闭合键的常用方法,它的原理如下所述;这了表达便利,以4×4=16 键的键盘为例;图 4.6 是行反转法的工作示意图:图 4.6 行反转法连接图从图中可以看到,用行反转法识别闭合键时,要将行线接一个并行口,先让它工作为输出方式,将列线接到一个并行口,先让它工作在输出方式;程序使CPU 通过输出端口往各行线上全部送低电平,然后读入列线的值;假如此时有某一个键被按下,就必定会使某一列线值为 0,然后,程序再对两个并行端口进行方式设置,使接行线的并行端口工作在输出方式,而使接列线的并行端口工作在输出方式,并且将刚才读得 的列线值从所接的并行端口输出,再读取行线的输入值,那么,在闭合键所在的行线 上的值必定为 0;这样,当一个键被按下时,必定可以读得一对惟一的行值和列值;在键盘设计时,除了以键码的识别以外,仍有抖动问题需要解决13 ;有软件方法可以很简洁解决抖动问题,这就是通过推迟来等待抖动消逝,这之后,再读入键码;4.2.2.3 显示电路设计在 LED 的点阵显示中,已经具体介绍了显示的原理,此外仍需要知道显示驱动程序;显示驱动程序在进入中断后第一要对定时器T0 重新赋初值,以保证显示屏刷新率的稳固, 1/16 扫描显示屏的刷新率(帧频)运算公式如下:欢迎下载精品学习资源刷频率(帧频) =1/16×T0 溢出率=1/16×f/12( 65536-t)其中 f 位晶振频率, t 为定时器 T0 初值(工作在 16 位定时器模式);然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器;为排除在切换行显示数据的时候产生拖尾现象, 驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示;图 4.7 为显示驱动程序(显示屏扫描函数)流程图:进入中断定时器赋初· Up读取行号并增加 1送新行显示数据· Down消隐· Ok切换显示数据发送新行号,打开显示退出中断图 4.7 显示驱动流程图图 4.8 掌握按键4.2.2.4 掌握电路设计三个掌握按键分别接p3.2 , p3.3,p3.4 口(如图 4.8 所示),当有呼叫发出时,值班室人员收到相应信息后,可按下“响应按钮”,单片机执行中断程序;4.2.2.5 示警电路报警电路由一个 led 灯与 p3.1 口相接,当有键按下时,有信号输入,灯亮示警, 提示值班人员有病人显现紧急情形;4.3 系统软件设计欢迎下载精品学习资源4.3.1 设计的软件环境简介4.3.1.1 Keil c对于 AT89C51 的掌握设计,以 Keil c 软件编程环境,以 proteus软件为电路仿真设计环境;二者的结合为该系统的设计供应有利条件;Keil c 软件界面,如图 4.9 所示:图 4.9 Keil_c 软件界面该软件是一款集编程和仿真于一体的软件,它支持汇编、C 语言及二者的混合编程14 ;4.3.1.2Proteus ISISProteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件;它运行于Windows 操作系统上,可以仿真、分析 SPICE各种模拟器件和集成电路;该软件的特点是:( 1)全部满意我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势;( 2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、 I 2 C 调试器、 SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、规律分析仪、信号发生器等13 ;( 3)目前支持的单片机类型有: ARM7 系列、 68000 系列、 8051 系列、 AVR 系列、PIC12 系列、 PIC16 系列、PIC18 系列、 Z80 系列、 HC11 系列以及各种外围芯片;( 4)支持大量的储备器和外围芯片;总之,该软件是一款集单片机和SPICE 分析于一身的仿真软件,功能极其强大,欢迎下载精品学习资源可仿真 ARM 、51、AVR 、PIC15 ;Proteus ISIS 的工作界面是一种标准的 Windows 界面,如下列图,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象挑选按钮、预览对象方位掌握按钮、仿真进程掌握按钮、预览窗口、对象挑选器窗口、图形编辑窗口;图 4.10 电路仿真界面运行 Proteus程序后,进入软件的主界面;通过左侧工具栏中的P从库中挑选元件命令命令,在 Pick Devices 左侧窗口中挑选所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最终进行连线16 图 4.10 电路仿真界面 ;4.3.2 系统程序设计4.3.2.1 系统主程序设计的流程如图 4.11 所示:欢迎下载精品学习资源图 4.11 系统主程序设计的流程主程序程序描述:第一对各储备单元初始化,设定定时初值,接着判定清零键,看是否按下,如按下,就清零,然后连续扫描键盘,如扫描到键盘有键按下,就调用计数显示子程序,循环显示病床号时,要判定标志位是否为1,如为 1,就表示已经按下,就不响应,如为 0,就调用循环显示病床号子程序,循环显示病床号,接着定时一秒;最终,清除定时一秒,预备下一次的定时;4.3.2.2 显示电路流程图运算键值子程序开头欢迎下载精品学习资源初始化N键标志为 0.COUNTER+1INC FLAGY40 个单元扫描完?N标志位是否为 1?YN定时是否 达到 1S?Y欢迎下载精品学习资源调显示子程序调 BCD 调整子程序欢迎下载精品学习资源N图 4.12 按键总数显示程序流程图图 4.13 按键循环显示子程序显示程序描述(1) )按下键总数显示子程序描述(图4.12 按键总数显示程序流程图)把按键数储备单总元(COUNTER )的值经过 BCD 调整后十位和个位分别送(7AH )( 7BH ),调用显示子程序显示按键总数;(2) )循环显示病床号子程序描述(图4.13 按键循环显示子程序)第一判定标志位是否为 0,如为 0,就表对示应的储备单元里没有值存入,就再检测下 一个 储备 单 元标 志位 是否 为 0 , 直 到 检测 到为 1. 如为 1 , 就把 值存 入( BED_BOUNTER )中,接着进行BCD 调整为十进制,把十位和个位分别送入(BEDCODE_1 )和BEDCODE_2 中,然后调用显示子程序,循环显示病床号;4.4 系统的调试与结果系统调试工作是系统开发过程中必不行少的一个过程,一个完整的掌握系统调试包含掌握系统的硬件联调、软件联调、系统仿真、仿真烧录和现场安装调试等几个环节;在系统设计组装完成后,第一是进行试验室条件下的系统硬件调试,调试胜利 后,有了硬件的保证,就简洁发觉软件的漏洞,进而促进改进和完善;全部的调试通过后,要进行现场运行并能连续肯定的时间,待其中未发觉故障后,方可验收合格, 才算完成了整个系统的设计工作4.4.1 调试界面显示下面是我们通过Proteus 软件编程,使对应的软件仿真模块变成可视化的掌握界面:图 4.14 系统初始化界面图 4.15 按下 8 键后界面欢迎下载精品学习资源图 4.16 按下 3 键后显示界面 图 4.17 按下 OK 键后显示界面4.4.2 结果分析启动电源,显示屏显示 0000,在按下 8 号键时,界下部分显示病床(即 8 号病床呼叫);界面上部分代表共有一个病床按下,在起始位置显示(循环显示);假如现在不按清零键,再按下 3 号键时,按键号循环显示 , 可以看出该系统具有记忆功能,以至于不会忽视之前按下的按键;图 5.4 反映了掌握电路的可行性,按 up 键向后选一房间(呼叫病房), down 向前选一房间(呼叫病房), ok 就去房间 . ;综上所述,本系统实现了主要功能:显示病床号,亮报警提示值班人员,如有多个病床同时呼叫,就循环显示病床号,确保性息不丢失,待值班人员处理呼叫信息;通过 PROTEUS软件仿真,能达到上述结论,满意课题目目的,达到要求;结论至此,此系统的具体设计及过程已经终止;在设计的过程中遇到了很多问题,发觉了自己的不足之处,有很多没有学习,如Proteus仿真学问及操作,仍有单片机的C 语言编程;有些软件把握得不够坚固,比如说 wave 仿真不娴熟;通过此次学习,进一步加强了我的懂得,同时提高了我独立自学的才能;整个设计过程中,老师具体的指导,同学的帮忙,以及校图书馆的资料给了我很大的帮忙;此次设计让我从中学到很多东西;虽然中间遇到很多困难,但都对于我是一次很好的锤炼;设计以后,才更加深刻感受到自己的学习只是理论部分,而且很多时候不能付诸实践;这次设计能够让我从实践中重新学习理论学问,对我今后的工作和学习有了很多提高;但是由于本人水平有限,整个设计仍有很多不足之处,如程序不够完善、敏捷,显示可以采纳液晶 LCD 模块,仍有可以采纳无线NRF2401 射频模块及其无线扩展功能等等;完善后将会进一步提高设计的稳固性和普适性;最终,在指导老师和同组同学的身上我学得到很多有用的学问,特殊感谢指导老欢迎下载精品学习资源师赐予的帮忙,仍用同学之间的资源共享;再次表