基于单片机的温度测控系统的设计内容摘要:
组键或一个键盘,总有一个接口电路与 CPU 相连。 CPU 可以采用查询或中断方式了解有无将键输入并检查是哪一个键按下,将该键号送入累加器 ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。 3)按键结构与特点 微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的 通断转换成为电气上的逻辑关系。 也就是说,它能提供标准的 TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。 抖动时间的长短与开关的机械特性有关,一般为 510ms。 在触点抖动期间检测按键的通与断状态,可能导致判断出错。 即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。 为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。 在键数较少时,可采用硬件去抖,而 当键数较多时,采用软件去抖。 软件上采取的措施是:在检测到有按键按下时,执行一个 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=。 时钟电路 单。基于单片机的温度测控系统的设计
相关推荐
D1330 在进行显示驱动设计时需要为其设计一个显示数据存储器,这里选择了随机存储器 RAM 芯片 62256,该芯片具有 32K8 的存 储空间, SED1330 接口部分具有功能较强的 I/O 缓冲器,这使得 MPU 访问 SED1330,它不需要判断其是否忙, SED1330 随时准备接受 MPU 的访问并在内部时序控制下及时地把 MPU 发来的指令数据传输就位。 8 图 控制部硬件电路图
CS 一 51 指令系统 及 8052 产品引脚兼容 ,片内置通用 8 位中央处理器( CPU)和 Flash 存储单 元,功能强大 AT89C52 单 片机 适应于 许多高性价比的应用场合。 5 图 AT89C52 引脚 AT89C52 主要性能参数 与 Mcs 一 51 产品指令系统 和引脚 完全兼容 8k 字节可重擦写 Flash 闪 速存储器 1000 次擦写周期 全静态操作: OHz
地位极为重要,正在汽车技术领域发展成为一门独立的分支学科,其性能的优劣直接影响到汽车的动力性、经济性、可靠性、安全性、排放干净、及舒适性等。 电子控制技术在汽车上,首先应用于发动机燃油消耗控制与排放进化与排放控制,接 着被应用于底盘部分的控制,以提高行驶的稳定性、安全性、与舒适性等。 随着交通运输向高密度发展,电子控制技术又进一步应用于汽车的乘坐安全性和导航等方面。
部分设计用到了温度传感器 DS18B20,这种传感器是单数据总线传感器,一共有三只引脚,一个引脚接电源 VCC,一个引脚接地 GND,还有一个就是数据总线引脚 DQ 接到单片机的其中一只引脚。 设计图如下。 图 5 DS18B20 原理图 14 这个是 DS18B20 传感器的硬件设计。 1 脚接电源 VCC, 2 脚是数据总线的引脚用于接到单片机 ATmega16 的 PB3 引脚, 3
时进行高低电平的转变,而不 为 用软件延时。 应用此 方案 时编程相对复杂。 (3) 利用单片机自带的 PWM控制器。 在 STC12系列单片机中自身带有 PWM控制器,但本系统所用到得 AT89系列单片机无此 性能。 对于方案一,该方案能够实现对直流风扇电机的无级调 速, 速率 变化灵敏,但 为 D/A转化 芯片的价格较高,与其温控状态下无级调速 性能 相比性价比不高。 对于方案二
本;温度传感器采用的总线负载能力如何,能否满足多点测温的需要;占用 MCU 的 I/O 引脚数情况如何,因为 MCU 的系统资源非常宝贵,输入通道有限,多点温度测量时,如果测量的点数超过了输入通道时,就要添加多路复用器,这将增加成本和开发时间,应尽量节约;与 MCU 的通信协议应尽量简单,温度测量的软件开发难度、成本要尽量小。 目前在数字温度传感器中采用的串行总线主要有 Philips 公司的