基于单片机的温度测控系统的设计内容摘要:

组键或一个键盘,总有一个接口电路与 CPU 相连。 CPU 可以采用查询或中断方式了解有无将键输入并检查是哪一个键按下,将该键号送入累加器 ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。 3)按键结构与特点 微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的 通断转换成为电气上的逻辑关系。 也就是说,它能提供标准的 TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。 抖动时间的长短与开关的机械特性有关,一般为 510ms。 在触点抖动期间检测按键的通与断状态,可能导致判断出错。 即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。 为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。 在键数较少时,可采用硬件去抖,而 当键数较多时,采用软件去抖。 软件上采取的措施是:在检测到有按键按下时,执行一个 10ms 左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电 8 平,若仍保持闭合状态电平,则确认该键处于闭合状态;同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。 4)按键编码 一组按键或键盘都要通过 I/O 口线查询按键的开关状态。 根据键盘结构的不同,采用不同的编码。 无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。 5)编制键盘程序 一个完善的键盘控制程序应具备以下功能: ( 1)检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。 ( 2)有可靠的逻辑处理办法。 每次只处理一个按键,其间对任何按键的操作对系统都无影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 ( 3)准确输出按键值(或键号),以满足跳转指令要求。 独立式键盘 独立式按键是指各按键相互独立地接通一条输入数据线,如图 所示。 这是最简单的键盘结构,该电路为查询方式电路。 当任何一个键按下时,与之相连的输入数据线即被清 0(低电平 ),而平时该线为 1(高电平 )。 要判别是否有键按下,用单片机的位处理指令十分方便。 这种键盘结构的优点是电路简单;缺点是当键数较多 时,要占用较多的 I/O 线。 图 独立式键盘接口电路 行列式键盘 为了减少键盘与单片机接口时所占用 I/O 线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。 图 所示的就是本设计所采用的 4179。 4 键盘接口电路图,下面就说明一下行扫描法识别哪一个按键被按下的工作原理。 9 图 行列式式键盘接口电路 首先判别键盘中有无键按下, 由单片机 I/O 口向键盘送 (输出 )全扫描字,然后读入 (输入 )列线状态来判断。 方法是:向行线 (图中水平线 )输出全扫描字 00H,把全部行线置为低电平,然后将列线的电平状态读入累加器 A中。 如果有按键按下,总会有一根列线电平被拉至低电平,从而使列输入不全为 1。 判断键盘中哪一个键被按下是通过将行线逐行置低电平后,检查列输入状态实现的。 方法是:依次给行线送低电平,然后查所有列线状态,称行扫描。 如果全为 1,则所按下的键不在此行;如果不全为 1,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个键。 1) 行扫描法识别键号 (值)的工作原理 将第 0 行变为低电平,其余行为高电平时,输出编码为 1110。 然后读取列的电平,判别第 0 行是否有键按下。 在第 0行上若有某一按键按下,则相应的列被拉到低电平,则表示第 0 行和此列相交的位置上有按键按下。 若没有任一条列线为低电平,则说明 0 行上无键按下。 将第 1 行变为低电平,其余行为高电平时,输出编码为 1101。 然后通过输入口读取各列的电平。 检测其中是否有变为低电平的列线。 若有键按下,则进而判别哪一列有键按下,确定按键位置。 将第 2 行变为低电平,其余行为高电平时,输出编码为 1011。 判别是否有哪一列键 按下的方法同上。 将第 3 行变为低电平,其余行为高电平时,输出编码为 0111。 判别是否有哪一列键按下的方法同上。 在扫描过程中,当发现某行有键按下,也就是输入的列线中有一位为 0时,便可判别闭合按键所在列的位置,根据行线位置和列线位置就能判断按键在矩阵中的位置,知道是哪一个键按下。 2) 键盘扫描工作过程 ( 1) 判断键盘中是否有键按下; ( 2)进行行扫描,判断是否键按下,若有,则调用延时子程序去抖动; 10 ( 3)读取按键的位置码; (4)将按键的位置码转换为键值(键的顺序号) 0、 2„ 、 F。 3)键的位置码及键值 的译码过程 上述行扫描过程结束后得到的行号和列号存放在不同的寄存器中。 键值(号)的获得(译码)通常采用计数译码法。 这种方法根据矩阵键盘的结构特点,每个按键的值 =行号179。 每行的按键个数 +列号,即键号(值) =行首键号 +列号,由此: 第 0 行的键值为: 0行179。 4+列号( 0~ 3)为 0、 3; 第 1 行的键值为: 1行179。 4+列号( 0~ 3)为 7; 第 2 行的键值为: 2行179。 4+列号( 0~ 3)为 A、 B; 第 3 行的键值为: 3行179。 4+列号( 0~ 3)为 C、 D、 E、 F。 4179。 4键盘行首键号为 0、 C, 列号为 0, 1, 2, 3。 编制程序时可以把键号制成表,查表实现键功能的处理或直接用跳转程序的处理。 显示部分 显示器是计算机的主要输出设备,它把运算结果、程序清单等以字符的形式显示出来,以供用户查阅。 目前常用的显示器有数码管显示器( LED 显示器)、液晶显示器( LCD 显示器)和 CRT 显示器等,本设计中采用的是 LED显示器。 下面就相信介绍 LED 显示器的结构和工作原理。 LED 显示器简介 1) 数码管结构 数码管由 8个发光二极管(以下简称字段)按“日”字形排列构成,其中 7个发光二极管组成“日”字形 的笔画段,另一个发光二极管为圆点形状。 通过不同的组合可用来显示数字 0 ~字符 A ~ F、 H、 P等、符号 “ ” 及小数点 “ .”。 数码管又分为共阴极和共阳极两种结构。 2) 数码管工作原理 共阳 (阴 )极数码管的 8 个发光二极管的阳极(阴极)连接在一起。 通常,公共阳(阴)极接高(低)电平,其它管脚接段驱动电路输出端。 当某段驱动电路的输出端为低(高)电平时,则该端所连接的字段导通并点亮。 根据发光字段的不同组合可显示出各种数字或字符。 此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相 应的限流电阻。 (注:二极管阳(阴)极为二极管正(负)端,高电平一般指接电源,低电平一般指接地。 ) 11 3) 数码管字形编码 当某一二极管导通时,相应的字段发亮。 这样,若干个二极管导通,就构成了一个字符。 在共阴极数码管中,导通的二极管用“ 1”表示,其余的用“ 0”表示。 这些“ 1”,“ 0”数符按一定的顺序排列,就组成了所要显示字符的显示代码。 例如,对于共阴极数码管来说,阳极排列顺训为 h、 g、 f、 c、 e、 d、 c、 b、 a。 这样,字符 1 的显示代码为 00000110,字符 F 的显示代码为 11110001,用十六进制表示分别为 06H和 71H。 若要显示某一个字符,就在二极管的阳极按显示代码加以高电平,阴极加低电平即可。 LED 静态显示法接口设计 所谓静态显示,就是每一个显示器各笔画段都要独占具有锁存功能的输出口线, CPU 把欲显示的字形代码送到输出口上,就可以使显示器显示所需的数字或符号,此后,即使 CPU 不再去访问它,因为各笔画段接口具有锁存功能,显示的内容也不会消失。 静态显示法的优点是显示程序十分简单,显示亮度大,由于 CPU不必经常扫描显示器,所以节约了 CPU的工作时间。 但是其主要缺点是占用的 I/O 口线较多,硬 件成本较高。 所以静态显示法常用在显示器数目较少的应用系统中。 LED 动态显示法接口设计 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。 通常,各位数码管的段选线相应并联在一起,由一个 8 位的 I/O 口控制;各位的位选线(公共阴极或阳极)由另外的 I/O 口线控制。 [10]动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。 依此规律循环,即可使各位数码管显示将要显示 的字符。 虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。 采用动态显示方式比较节省 I/O 口,硬件电路也较静态显示方式简单,但其亮度不如静态 显示方式,而且在显示位 数较多时,CPU 要依次扫 描,占用CPU 较多的时 间。 本设计显示电路采用 简单实用 12 的 8 位共阳 LED 数码管,段码 由 P0 口输出, 用 74LS244 驱动 ; 位码 由 P2 口输出, 用 PNP 三 极管 驱动。 其 显示电路 原理图 如图 所示。 图 显示电路 原理图 74LS244 芯片 AT89S52 外部扩展空间很大,但数据总线口和控制信号线的负载能力有限的。 如果 扩展的芯片较多, AT89S52 总线 接 口负载 就会 过重, 不利于系统的正常运行。 此时,就需要 扩展 接 口, 同时提高其驱动能力 ,以减轻总线 接 口的负担。 因此,本设计中的显示电路,就利用 74LS244 来扩展单片机的 P0 口,以满足八个 LED 数码显示器的驱动。 实际上,我在自制的电路板上验证过 ,不加此芯片也可以正常显示,只是效果不太好而已。 下面就简单的介绍一下 74LS244。 1)功能特性 74LS244 是 一种三态输出的 8 总线缓冲驱动器,无锁存功能, 8 个三态门分为两组,每组 4 个 , 使用时可分别以 1G 和 2G 作为它们的选通工作信号。 当 1G和 2G 都为低电平时,输出端 Y和输入端 A 状态相同;当 1G和 2G 都为高电平时,输出呈高阻态。 74LS244 的驱动能力比较强,因此适合单片机并行接口的扩展。 2) 引脚 功能 74LS244 是 20 引脚的 双列 直 插 芯片,其封装形式如图 所示。 下面结合图 来介绍一下各引脚 的功能。 图 74LS244逻辑及管脚图 ( 1)电源引脚  Vcc( 20脚):主电源正端,接 +5V 电源。  GND( 10脚):主电源负端,接地。 ( 2)控制引脚  1G( 1 脚): 1Y11Y4 输出控制 端 ,低电平有效,高电平高阻。  2G( 19 脚): 2Y12Y4输出控制 端 ,低电平有效,高电平高阻。 13 ( 3) I/O 引脚  输入引脚 ( 1 1 1 17脚 ): 1A11A4,2A12A4。  输出引脚 (1 1 1 1 3脚 ): 1Y11Y4,2Y12Y4。 其中输入与输出必须是相互对应的,如 1A1 对应 1Y1,以此类推。 3) 真值表 图 真值表 复位电路 复位操作 复位是单片机的初始化操作。 其功能主要是将程序计数器( PC)初始化为0000H,使程序从 0000H 单元开始执行,并将特殊功能寄存器赋一些特定值。 复位是上电的第一个操作,然后 程序从 0000H 开始执行。 在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。 要使其进入正常状态,唯一办法是将单片机复位,以重新启动。 复位也是使单片机退出低功耗工作方式而进入正常状态一种操作。 复位电路 RST 引脚是复位端,高电平有效。 在读引脚输入至少连续两个机器周期以上的高电平,单片机复位。 RST 引脚内部有一个施密特 ST 触发器以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。 使用时,一般在此引脚与 Vss 引脚之间接上一个约 的下拉电阻, 与 Vcc 引脚之间接一个约 10uF 的电解电容,即可保证上电自动复位。 [4]复位电路如图 所示。 14 图 复位电路 电容 C和电阻 R1实现上电自动复位功能。 增加按键开关 SW 和阻值 R1 又可实现按键复位功能。 该电阻的作用是在按键开关按下时,防止电容放电电流过大烧坏开关的触点。 应保证( R2/R1) 10。 一般取 C=10uF, R1=100, R2=。 时钟电路 单。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。