单片机水温控制器设计(编辑修改稿)内容摘要:
PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP:外部访问允许,欲使 CPU 仅访问外部程序存储器 (地址为 0000HFFFFH),EA 端必须保持低电平 (接地 )。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存EA 端状态。 如 EA 端为高电平 (接 Vcc 端 ), CPU 则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加 上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V编程电压 Vpp。 7 单片机最小系统电路 单片机最小系统有复位电路和振荡器电路。 值得注意的一点是单片机的 31 脚 VPEA/必须接高电平,否则系统将不能运行。 因为该脚不接时为低电平,单片机将直接读取外部程序存储器,而系统没有外部程序存储器,所以 VPEA/ 必须接 VCC。 在按键两端并联一个电解电容,滤除交流干扰,增加系统抗干扰能力。 键盘电路 键盘是单片机应用系统 中的主要输入设备,单片机使用的键盘分为编码键盘和非编码键盘。 编码键盘采用硬件线路来实现键盘的编码,每按下一个键,键盘能够自动生成按键代码,并有去抖功能。 因此使用方便,但硬件较复杂。 非编码键盘仅仅提供键开关状态,由程序来识别闭合键,消除抖动,产生相应的代码,转入执行该键的功能程序。 非编码键盘中键的数量较少,硬件简单,在单片机中应用非常广泛。 图为按键和 AT89S52 的接线图,检测仪共设有 4 个按键,每个按键由软件来决定其功能, 4 个按键功能分别为 : (1) SW1: 设定按键 (设定按键 ) (2) SW2: 加法按键 (当前位加 5) (3) SW3: 减法按键 (当前位减 5) (4) SW4: 退出设置键 (系统初始化 ) E A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 101P 112P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10U2A T 8 9S 5 211223 4S W 3 S W P B ( 双 )11223 4S W 4S W P B ( 双 )11223 4S W 2S W P B ( 双 )11223 4S W 1 S W P B ( 双 )P P P P P P P P c o m199228833774466554 .7 k4 .7 kV C CP 1 .0P 1 .1P 1 .2P 1 .3P 1 .4P 1 .5P 1 .6P 1 .7 图 31 单片机最小系统 数码管及指示灯显示电路 1. 数码管显示说明 各个数码管的段码都是单片机的数据口输出 , 即各个数码管输入的段码都是一样的 ,为了使其分别显示不同的数字 , 可采用动态显示的方式 , 即先只让最低位显示 0(含点 ),经 8 过一段延时,再只让次低位显示 1,如此类推。 由视觉暂留 , 只要我们的延时时间足够短,就能够使得数码的显示看起来非常的稳定清楚 , 过程如 表 31 所示。 表 31 数码管编 码表 段码 位码 显示器状态 08H 01H □□□□□□□0 abH 02H □□□□□□1□ 12H 04H □□□□□2□□ 22H 08H □□□□3□□□ a1H 10H □□□4□□□□ 24H 20H □□5□□□□□ 04H 40H □6□□□□□□ aaH 80H 7□□□□□□□ 本论文中使用了 3 个数码管,其中前两位使用动态扫描显示实测温度,在设置加热温度的时候,两个数码管是闪烁,以提示目前处在温度设置状态。 第三位数码管静态显示符号 “℃ ”。 (2) 运行指示灯说明 本 热水器温度控制系统中共使用到 3 个 LED 指示灯和 3 个数码管。 右上角的红色 LED 是电源指示灯; 数码管右边的红色 LED 是加热指示灯,当刚开机或温度降到设定温度 5℃ 以下时,该灯会亮,表示目前处于加热状态;当温度上升到设定温度时,该 LED 灭,同时数码管右边的绿色 LED 亮,表示目前处于保温状态,用户可以使用热水器;当温度再次下降到设定温度 5℃ 以下时,绿色 LED 灭,红色加热的 LED 灯亮 , 不断循环。 V C CE1C3B2Q1P N PE1C3B2Q3P N PR6470R7470R8470R9470R 10470R 11470R 12470R 13470V C CE A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 101P 112P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10U2R 16R 17S 85 50 *3abfcgdeD P Y1234567abcdefg8dpdpabfcgdeD P Ydpcom19com210D P 1两位数码管ab fcgdeDPY1234567abcdefg8dpdpCOM9D P 2D P Y _7 S E G _D PR 14470V C C 图 32 LED 数码管显示电路图 9 温度采集电路 (1) DS18B20 介绍 Dallas 最新单线数字温度 传感器 DS18B20 简介新的 “ 一线器件 ” 体积更小、适用电压更宽、更经济。 Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 “ 一线总线 ” 接口的温度传感器。 一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 DS18B DS1822 “ 一线总线 ” 数字化温度传感器同 DS18B20 一样, DS18B20 也支持 “ 一线总线 ” 接口,测量温度范围为 55℃ ~+125℃ ,在 10℃ ~+85℃ 范围内 , 精度为 177。 ℃。 DS1822 的精度较差为 177。 2 ℃。 现场温度直接以 “ 一线总线 ” 的数字方式传输,大大提高了系统的抗干扰性。 其 DS18B20 的管脚配置和封装结构如图 33 所示。 图 33 DS18B20 封装 引脚定义: ① DQ 为数字信号输入 /输出端; ② GND 为电源地; ③ VDD 为外接供电电源输入端 (在寄生电源接线方式时接地 )。 (2) DS18B20 的单线 (1- wire bus)系统 单线总线结构是 DS18B20 的突出特点,也是理解和编程的难点。 从两个角度来理解单线总线:第一,单线总线只定义了一个信号线,而且 DS18B20 智能程度较低 (这点可以与微控制器 和 SPI 器件间的通信做一个比较 ),所以 DS18B20 和处理器之间的通信必然要通过严格的时序控制来完成。 第二, DS18B20 的输出口是漏级开路输出,这里给出一个微控制器和 DS18B20 连接原理图。 这种设计使总线上的器件在合适的时间驱动它。 显然,总线上的器件与 (wired AND)关系。 这就决定: (1) 微控制器不能单方面控制总线状态。 之所以提出这点,是因为相当多的文献资料上认为,微控制器在读取总线上数据之前的 I/O 口的置 1操作是为了给 DS18B20一个发送数据的信号。 这是一个错误的观点。 如果当前 DS18b20发送 0,即使微控制器 I/O 口置 1,总线状态还是 0。 置 1 操作是为了是 I/O 口截止 (cut off),以确保微控制器正确读取数据。 (2) 除了 DS18B20 发送 0 的时间段,其他时间其输出口自动截止。 自动截止是为确保: 1 时,在总线操作的间隙总线处于空闲状态,即高态。 2 时,确保微控制器在写 1 的时候 DS18B20 可以正确读入。 由于 DS18B20采用的是 1- Wire总线协议方式,即在一根数据线实现数据的双向传输,而对 AT89S52 单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序 来完成对 DS18B20 芯片的访问。 ① DS18B20 的复位时序,如图 34 所示: 10 图 34 DS18B20 的复位时序图 ② DS18B20 的读时序 对于 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程。 对于 DS18B20 的读时隙是从主机把单总线拉低之后,在 15 秒之内就得释放单总线,以让 DS18B20 把数据传输到单总线上。 DS18B20 在完成一个读时序过程,至少需要 60us才能完成。 DS18B20 的读时序图如图 35 所示。 图 35 DS18B20 的读时序 ③ DS18B20 的写时序 对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程。 对于 DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线要被拉低至少 60us,保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的 “0”电平,当要写 1 时序时,单总线被拉低之后,在 15us 之内就得释放单总线。 如图 36 所示。 图 36 DS18B20 的写时序图 (3) DS18B20 的供电方式 在图 37 中示出了 DS18B20 的寄生电源电路。 当 DQ 或 VDD 引脚为高电平时,这个电路便 “取 ”的电源。 寄生电路的优点 是双重的 , 远程温度控制监测无需本地电源 , 缺少正常电源条件下也可以读 ROM。 为了使 DS18B20 能完成准确的温度变换,当温度变换发生 11 时, DQ 线上必须提供足够的功率。 有两种方法确保 DS18B20 在其有效变换期内得到足够的电源电流。 第一种方法是发生温度变换时,在 DQ 线上提供一强的上拉,这期间单总线上不能有其它的动作发生。 如图 38 所示,通过使用一个 MOSFET 把 DQ 线直接接到电源可实现这一点,这时DS18B20 工作在寄生电源工作方式,在该方式下 VDD 引脚必须连接到地。 图 37 DS18B20 供电方式 1 另一种方法是 DS18B20 工作在外部电源工作方式,如图 38 所示。 这种方法的优点是在 DQ 线上不要求强的上拉,总线上主机不需要连接其它的外围器件便在温度变换期间使总线保持高电平,这样也允许在变换期间其它数据在单总线上传送。 此外,在单总线上可以并联多个 DS18B20,而且如果它们全部采用外部电源工作方式,那么通过发出相应的命令便可以同时完成温度变换。 图 38 DS18B20 供电方式 2 (4) DS18B20 设计中应注意的几个问题 DS18B20 具有测温系统简单、测 温精度高、连接方便、占用接口线少等优点 , 但在实际应用中也应注意以下几方面的问题 : 较小的硬件开销需要相对复杂的软件进行补偿 , 由于 DS18B20 与微处理器间采用串行数据传送。 因此 , 在对 DS18B20 进行读写编程时 , 必须严格的保证读写时序 , 否则将无法读取测温结果。 在 DS18B20 有关资料中均未提及1Wire 上所挂 DS18B20 数量问题 , 容易使人误认为可以挂任意多个 DS18B20, 在实际应用中并非如此。 当 1Wire 上所挂 DS18B20 超过 8 个时 , 就需要考虑微处理。单片机水温控制器设计(编辑修改稿)
相关推荐
分, 选 用单相桥式逆变电路, PWM 控制 技术 , 输出电压的大小及频率都 可 以 通过 PWM 控制进行调节。 脉宽调制原理 脉宽调制技术:通过 对 于一系列脉冲的宽度的调制,来得到等效的所需要的波形(包括 形状和幅值)。 PWM 控制的方式 可分为三类 , 即调制法、计算法与跟踪控制法。 三类中 ,调制法是最为常见 的也是 最基本的一类方式 , 而 调制法 之 中最基本的
统。 电路 可分为温湿度测量电路,显示电路, 主控电路。 选用的主要器件有:单片机 AT89C52,温湿度传感器 DHT11, 1602LCD 显示 器。 系统整体简介 LCD 液晶模块负责显示温湿度数值,采用 LCD1602具有较好的显示效果。 温湿度传感器模块采用数字式温湿度传感器 DHT11,该传感器 应用专用的数字模块采集技术和温湿度传感技术 ,确保 系统
晶振电路EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U1AT89S5212J
统程序框 是 否 否 是 否 无 有 程序流程如下: 系统上电复位后首先对定时器初始化, 12864 初始化, DS18B20 温度传感器初始化,接着在 12864 液晶显示时间,上下限温度参数,当前温度,然后打开定时器,在定时 器中断服务程序采集 DS18B20 的温度值并转换成实际温度值显示在 12864 液晶屏上。 进入 while(1)函数里面不断的检测设置,加减按键和启动按键。
) interrupt 1 //using ** //T0 定时中断处理 { TH0= 0x3c。 // T0 高 8 位 TL0= 0xb0。 // T0 低 8 位 second_timing++。 if (second_timing20) //记时一秒 { switch(status) { case 0: if (S_CAR_SL_G_time==S_CAR_SL_G_time_set)
④ EA/Vpp 、 EA/Vpp 为内部程序存储器和外部程序存储器选择端。 当 EA /Vpp 为高电平时,访问内部程序存储器,当 EA/Vpp 为低电平时,则访问外部程序存储器。 对于 EPROM 型单片机,在 EPROM 编程期间,此引脚上加 21伏 EPROM 编程电源( Vpp)。 输入 /输出引脚 , , ,。 ① P0 口( )是一个 8位漏极开路型双向 I/O 口