基于单片机的病床呼叫系统的设计课程设计内容摘要:
8 置和列线位置便能再扫描法来确定具体位置。 将行线和一个并行接口相接,CPU 每次使并行输出接口的某一位为 0,便相当于将某一行线接地,而其他位为 1,则相当于使其他行线处于高电平 [5]。 为了检查列线上的电位,将列线和一个并行输入输出口相接, CPU 只要读取输入输出口中的数据,就可以设法判别出第几号键被按下 [6]。 从上面的原理中知道,程控扫描法是由程序控制键扫描的方法。 程控扫描的任务是: ( 1) 首先判断是否有键按下。 其方法是使所有的行输出 均为低电平,然后从端口 A 读入列值。 如果没有键按下,则读入的列值为 FFH;如果有键按下,则读入的列值不为 FFH。 ( 2)去除键抖动。 若有键按下,则延时 5~ 10ms,再一次判断有无键按下,如果此时仍有键按下,则认为键盘上有一个键处于稳定闭合期。 ( 3)若有键闭合,则求出闭合键的键值 . 求键值的方法是对键盘逐行扫描。 如图 26 行扫描法。 9 图 26 行扫描法流程图 调显示程序 扫描整个键盘 有键按下。 再次扫描整个键盘 有键按下。 延时 10ms 输出使 Xi 为低电平 此行有键按。 行值+ 08H 求下一行为低电平模型 各行扫描完了。 列值+ 1 列数据右移 1 位 延时 有键按下。 键释放了。 计算键值 ( BUFF) 键值 调查找 功能键程序 Y N Y N Y Y N N Y N N Y 开始 10 [7]: 行反转法也是识别闭合键的常用方法,它的原理如下所述。 这了叙述方便,以 4 4=16 键的键盘为例。 图 27 是行反转法的工作示意图。 图 27 行反转法连接图 从图中可以看到,用行反转法识别闭合键时,要将行线接一个并行口,先让它工作为输出方式,将列线接到一个并行口,先让它工作在输出方式。 程序使 CPU 通过输出端口往各行线上全部送低电平,然后读入列线的值 [8]。 如果此时有某一个键被按下,则必定会使某一列线值为 0,然后,程序再对两个并行端口进行方式设置,使接行线的并行端口工作在输出方式,而使接列线的并行端口工作在输出方式,并且将刚才读得的列线值从所接的并行端口输出, 再读取行线的输入值,那么,在闭合键所在的行线上的值必定为 0。 这样,当一个键被按下时,必定可以读得一对惟一的行值和列值 [9]。 在键盘设计时,除了以键码的识别以外,还有抖动问题需要解决 [10]。 有软件方法可以很容易解决抖动问题,这就是通过延迟来等待抖动消失,这之后,再读入键码。 167。 显示电路设计 一. LED 显示原理 LED 即发光二极管,它是一种由某种半导体材料制成的 PN 结,由于掺杂浓度很高,当正相偏置时,会产生大量的电子 空穴复合,把多余的能量释放为光能。 LED 显示器具有工作电压低、体积小、寿命长 (约十万小时)、响应速度快,颜色丰富(红、黄、绿等)等特点,是智能仪器最常使用的显示器 [11]。 LED 的正向工作电压降一般在 ,发光工作电流在 5mA20mA,发光强度基本上与正向电流成正比,故电路须串联适当的限流电阻 [12]。 LED 很 11 适合于脉冲工作状态,在平均电流相同的情况下,脉冲状态比直流工作状态产生的亮度增强 20%左右。 LED 显示器有单个、七段和点阵式几种类型,本设计将使用七段 LED 显示器。 二.七段 LED 显示 七段 LED 显示器由数个 LED 组成一个阵列,并封装与一个标准外壳中。 为适用 于不同的驱动电路,有共阴极和共阳极两种结构,如图所示。 用七段LED 显示器可组成 09 数字和多种字母,为了适应各种装置的需要,这种显示中还有一个小数点,所以实际共有八段 [13]。 图 28 LED 显示器的两种结构 为了显示某个数或字符,就要点亮对应的段,这就需要译码。 译码有硬件和软件之分,硬件译码的优点是计算机时间的开销比较小,但硬件开支大[14]。 与硬件电路相比,软件译码显示电路省去了硬件译码器,本设计采用软件译码的方式。 按照显示方式,七段 LED 系统又有静态显示和动态显示之分 [15]。 这次设计采用的是 静态显示,利用 74LS373 和显示器组成了显示系统。 在每一次显示输出后能够保持不变,仅在待显示数字需要改变时,才更新锁存内容。 12 167。 报警电路设计 采用发光二极管和蜂鸣器相串联,用三极管加限流电阻作为控制开关,用单片机 端口控制,当有高电平导通,显示器显示床号的同时蜂鸣器发出“嘀嘀”声作为呼叫提示。 电路连接图如 29 图所示。 图 29 报警设计 167。 控制电路设计 控制按键接 端口,当有呼叫发出时,值班室人员收到相应信息后,可按下“响应按钮”,通过编程令单片机执行中断程序。 13 第三章 系统软件设计 167。 系统软件环境介绍 167。 KEIL_C 于 AT89C51 的控制设计,以 Keil_c 为软件编程环境,以 proteus 软件为电路仿真设计环境。 二者的结合为该系统的设计提供有利条件。 Keil_c 软件界面如图 31 所示: 图 31 Keil_c 软件界面 该软件是一款集编程和仿真于一体的软件,它支持汇编、 C 语言及二者的混合编程 [16]。 167。 Protues ISIS Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。 它运行于 Windows 操作系统上,可以仿真、分析 (SPICE)各种模拟器件和集成电路 [17]。 该软件的特点是: 一.全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中 14 具有明显的优势。 二.具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、 RS- 232 动态仿真、 I2 C 调试器、 SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等 [18]。 三.目前支持的单片机类型有: ARM7 系列、 68000 系列、 8051 系列、 AVR系列、 PIC12 系列、 PIC16 系列、 PIC18 系列、 Z80 系列、 HC11 系列以及各种外围芯片。 四.支持大量的存储器和外围芯片。 总之,该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能极其强大 ,可仿真 ARM、 5 AVR、 PIC[19]。 Proteus ISIS 的工作界面是一种标准的 Windows 界面,如图所示,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口 [20]。 图 32 电路仿真界面 运行 Proteus 程序后,进入软件的主界面。 通过左侧工具栏中的 P(从库中选择元件命令 )命令,在 P ick Devices 左侧窗口中选择所需元件的关键字 [21],然后放置元件并调整方向和位置以及参数设置,最后进行连线[22](图 32 电路仿真界面 )。 15 167。 系统程序设计 病房呼叫系统 软件设计均采用模块化设计,整个程序 主要 包括主程序、键盘扫描 程序、 显示 程序。 所有程序均采用 C 语言编写。 病房呼叫系统 的软件设计思路说明如下:主程序的作用为程序初始化, 显示病房编号 (病房号的获得在键盘扫描程序中实现 ),并 在多人按键时实现循环显示的功能。 通过不断的扫描,检查是否有病人呼叫。 显示程序通过扫描 64 个病床的判断标志位来决定是否需要显示床号。 键盘扫描程序是重要组成部分,它的功能是判断是否有按键并进一步确认是哪个按键按下或释放,同时修改相应的标志位,以运用到显示程序中。 167。 系统主程序流程图 主程序流程图给出了系统工作的基本过程,描述了信号的基本流向,起到一个向导的作用。 开 始设 定 床 号 显 示 标 志 并 初 始 化扫 描 键 值是 否 有 键 按 下记 录 键 值 , 标 志 位 取 反扫 描 各 床 位 标 志显 示 对 应 床 号NY 16 图 31 主程序流程图 主程序程序描述: 首先对各存储单元初始化,设定定时初值,清零键,然后继续扫描键盘,如扫描到键盘有键 按下,则进而判断是哪个床位按下,进而显示病床号时,要判断标志位,若已经按下,则不响应,否则显示病床号。 最后,返回扫描键值程序,准备下一次的判断。 计算机控制技术课程答辩论文 17 167。 显示程序流程图 显示程序主要是来判断是否需要显示 ,以及如何去显示 ,是十分重要的程序之一。 设计流程图如图所示。 设 定 床 号 显 示 标 志 b ia o [ n ]n = 1B ia o [ n ] 是 否 不 为 0显 示 床 号 n扫 描 键 值n 是 否 为 6 4。基于单片机的病床呼叫系统的设计课程设计
相关推荐
存储 器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 容并且冻结振荡器,禁止所用其他芯片功能
控制器,可以根据室内温度状况自主的选择制冷还是制热,从而使室内的温度处于一个相对稳定的状态,为人们营造一个温馨 、 舒适的居家环境。 国内外温度控制器发展现状 温度控制器是信息技术的最前端产品。 从先前的模拟温度控制器到今天的数码控制器。 温控器的经历逐步向着智能化数字化的道路。 目前,温度传感器被广泛的应用在工业生产、科学事业研究和 生活等方面,需求量越来越大。 一般来说
求,并作出快速响应、及时处理。 这是由片内的中断系统来实现的。 当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。 中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。 图 6 为整个中断响应和处理过程。 图 6 中断响应和处理过程 6 数码管驱动模块 数码管是一种把多个 LED
7 的输入输出之间的电压差不致太高,减小器件本身的功耗。 C102 为滤波电容,滤除电源输入的尖峰电压。 +5V 电压直接从 +15V 经 LM7805 得到,此处因后端的功率不是很大,LM7805 可以满足要求,不必使用 LM317。 图中电容 均为滤波电容,滤除输入电压中的高频成分,使输出电压平 滑,纹波小。 功率驱动电路 功率驱动电路由 分立元件构成,具有功率放大、自举升压、硬件互锁
集程序设计 AetAD TLC1549 数据采集 sbit ADOUT P11 sbit ADCS P12 Void AetAD uchar i 1wPickCount uint vol for w 1w PickCountw ADCLK ADOUT 0 vol 0 ADCS 0 开启控制电路使能 DATA OUT 和 IO CLOCKfor i 1i 10i 采集 10 位串行数据 给一个脉冲
滤波电路时,就可以消除这些毛否则令其作用失效,从而保证系统的时钟信号正常 工作。 这样,就提高了单片机工作的可靠性。 Motorola 公司的 MC68HC08 系列单片机就采用了这种技术。 6 2. 低噪声布线技术及驱动技术 在传统的单片机中,电源及地线是在集成电路外壳的对称引脚上,一般是在左上、右下或右上、左下的两对对称点上。 这样,就使电源噪声穿过整块芯片,对单片机的内部电路造成干扰。