基于89c52单片机的恒温控制系统设计内容摘要:
表 单片机 管脚含义 ALE/PROG 地址锁存控制信号: 在访问片外程序存储器的时候,每机器周期这个信号出现两次,它的下降沿用来控制锁存 P0口输出的低 8位地址。 就算不在访问片外程序存储器的时候,这个信号也以振荡频率的 1/6 出现,因此可以用来作为对外输出的时钟脉冲。 但是在访问片外数据存储器的时候, ALE 脉冲会跳空一个,那此时作为时钟输出就不合适了。 /PSEN 外部程序存储器读选通信号: 在向片外程序存储器读取指令或常数期间,每个机器周期这个信号(低电平)两次有效,以通过数 据总线 P0 口读回指令或常数。 但是在访问片外数据存储器的时候, /PSEN 信号将不会出现。 /EA/VDD 访问 程 序存储器控制信号 : 这个引脚有效(低电平)的时候只能选用片外程序存储器,不然计算机上电或者复位后先选用片内程序存储器。 但是对于内部含 有 可擦除可编程只读寄存器 的 机型,我们在编程的时候,这个引脚用作 21V 编程电源 VDD 的输入端。 RST 复位信号: 在单片机的振荡器工作的时候,这个引脚上出现持续两个机器周期的高电平就能够实现复位的操作,从而使得单片机回复到初始的状态。 上电时,我们考虑到振荡器有一定的起振时 间,这个引脚上高电平必须持续 10ms以上的时间才能够保证有效复位。 XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2: 来自反向振荡器的输出。 VCC: 接 +5V 电源正端。 VSS: 接 +5V 电源地端。 硬件电路设计概述 基于单片机的 恒温控制系统 其硬件电路方框图 如图 所示: 由 图可知,硬件电路由 8部分组成,即 按键输入电路、 时钟电路、复位电路 、温度采集电路、引脚 第 2 功能 RXD(串行口输入端) TXD(串行口输出端) INT0( 外部 中断 0 请求输入端,低电平有效) INT1( 外部 中断 1 请求输入端,低电平有效) T0( 定 时器 /计数器 0 计数脉冲端) T1( 定 时器 /计数器 1 计 数脉冲端) WR( 外 部数据存储器写选通信号输出端,低电平有效) RD( 外 部数据存储器读选通信号输出端,低电平有效) 9 数码管显示 电路 、 蜂鸣器报警电路、继电器控制加热和制冷电路等。 图 硬件电路方框图 下面具体介绍各个电路模块的基本原理及电路图 原理 、主要实现的功能和 在应用过程中应当注意的问题。 单片机最小系统是保证单片机能够正常工作的最基本的硬件电路,时钟电路、复位电路都属于单片机最小系统。 单片机工作的时间基准是由 时钟电路提供的。 在单片机的 XTAL1 和 XTAL2 管脚,按图 所示接上晶振和电容就构成了单片机的时钟电路: 图 时钟电路 图中电容 C C3 对晶振频率有微调的作用,通常的取值范围为 2040pf,C C3 的典型值为 30pF。 石英晶体选择 12MHz,选择不同的石英晶体,其结果只是机器周期不 相 同 [5]。 此电路大约延迟 10ms 后振荡器起振,在 XTAL2 引脚产生幅度为 3V 左右的正弦波时钟信号,其振荡频率主要由石英晶体的频率确定。 电路中两个电容 CC3的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。 按键输入电路 时钟电路 复位电路 温度采集电路 单 片 机 数码管显示电路 蜂鸣器报警电路 继电器控制加热电路 继电器控制制冷电路 10 单片机工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期,其大小是时钟信号频率的倒数,时钟信号频率常用 fosc 表示。 图中时钟频率为 12MHz,即 fosc=12MHz,则时钟周期为 1/12μs。 复位电路设计 单片机的第 9 脚 RST 为硬件复位电路,只要在该 引脚 加上持续 4 个机器周期的高电平即可实现复位,复位后单片机的各个状态都恢复到初始化状态。 单片机的复位方式有上电复位和手动复位两种。 本设计系统采用上电自动复位和手动复位组合电路,如图 : 图 复位电路 图 中由按键 S 电阻 R1 以及 电容 C1 构成上电复位及手动 复位 电路。 由于单片机是高电平复位,所以 当 上电复位 的时候 ,接通电源 就可以了 , 在 上电以后 ,电容 C1 开始 缓慢 充电, 由图我们可以看到 电路由电源到电容和地之间形成一个通 路,由于在 电阻 R1 上产生 了 电压降, 那么 单片机的 RST 脚 为高电平,经过一段时间后电容的电充满,此时 电容 C1 处可视为断路,单片机 RST 脚处电压逐渐降为 0V,即处于稳定的低电平状态, 这时 单片机 就 完成 了 上电复位,程序从 0000H 开始执行。 手动复位时,按一下图中的 按键 S1 就可以了 ,当按键按下的时候,单片机的 RST 脚处于高电平,此时单片机处于复位状态。 按键 输入 电路设计 基于单片机的 恒温 控制系统工作时应具备以下功能:一、 可以调节温度上下限 ; 二、 可以切换显示实时温度和温度上下限的值。 要 具备 这些功能,可以通过按键 输入电路 来实现。 键盘结构可分为 矩阵式 键盘 和 独立式键盘 两类,由于本系统只采用 5 个按键,因此 选用独立式按键。 按键输入 电路 由 四个按键组成,按键采用轻触开关 ,如图 所示 : 11 图 按键 输入 电路 各个按键的功能为: S2 用来切换数码管显示界面,当数码管界面显示的是温度上下限时通过按键 S3 可以调节要调整的温度上下限的整数位和小数位 ; 当数码管界面显示为某一位闪动时通过按键 S S5 调节闪动位的数值。 整数位 的数值变化范围为 099之间 , 小数位的数值变化范围 为 09之间。 按键 S4加数值 ,按键 S5 减数值 [6]。 蜂鸣器报警电路设计 根据 设计 的 要求,当温度 高于上限 或 低于下限时,应 当 具有报警功能。 这样我们 就可以用一只蜂鸣器作为三极管的集电极负载,当 三极管 导通时,蜂鸣器发出 蜂鸣 声;当 三极管 截止时,蜂鸣器不发声。 图 : 12 图 蜂鸣器驱动电路 由图可以看出 : 单片机的 管脚 通过 三极管的基极连接到 蜂鸣器。 当 单片机控制端 =1时, 给三极管 Q1 基极一个高电平, 三极管 Q1 导通, 蜂鸣器的两个管脚间获得 接近 5V 的直流电压,蜂鸣器中有电流通 过,从而 产生蜂鸣声;当 单片机控制端 =0 时, 给三极管 Q1 基极一个低电平, 三极管Q1截止,蜂鸣器的两个管脚间的直流电压接近于 0,蜂鸣器不产生蜂鸣声 , 其中R2=1kΩ 为限流电阻 [7]。 继电器控制加热电路设计 按照本次设计的设计要求,当环境温度低于所设定的 下限温度时,需要通过继电器驱动加热装置来进行升温。 常用的室内升温装置有空调、电热毯、电炉等。 对于一些简易的电热装置,其主要部件是 电阻加热器。 继电器控制加热电路 如 下图 : 由图可知 单片机的 CTL0, 端口 接 CTL1, 端口 控制一个 双 刀双掷继电器 RL2, 端口控制一个双刀双掷继电器 RL1。 当测量 的温度低于设定的温度下限时, 单片机控制端 给三极管 Q7基级一个高电平, 单片机控制端 给三极管 Q6基极一个 高 电平 ,三极管 Q6 和 Q7均 导通, 发光二级管 D2和 D4 发红光, 两个 线圈 都 有电流流过,继电器 RL1和 RL2 均 闭合 ,此时 OVEN 装置两端加上正向电压,装置开始加热。 加热一段时间后,当温度重新回到温度下限 以 上时,单片机控制端 给三极管 Q7 基极一个 低 电平,三极管 Q7 截止, 发光二级管 D4 不发光, 继电器 RL2的 线圈无电流流过,继电器 RL2 断开, 而单片机控制端 依然给三极管 Q6基级一个高电平,但是三极管 Q6 集电极未接电源,三极管 Q6 也截止,发光二极 13 管 D2 和 D5均不发光,继电器 RL1 的线圈也没有电流流过,继电器 RL1 断开, 加热装置停止工作 [8]。 图 继电器控制加热电路 注意:在继电器 RL1 和 RL2 线圈两端 都 必须反接一个二极管。 这个二极管 很重要,当使用电磁继 电器 的时候 必须连接。 其原因为: 当线圈通电正常工作的时候 ,二极管对电路不起作用,当继电器 在断电的一瞬间会产生一个很强的反向电动势,在继电 器线圈两端反向并联 一个二极管用来消耗这个反向电动势 ,通常这个二极管叫做消耗二极管, 假如 不加这个消耗二极管,反向电动势会直接作用在驱动三极管上,很容易将三极管损坏 [8]。 继电器控制制冷电路设计 按照本次设计的设计要求,当环境温度 高 于所设定的 上限温度时,需要通过继电器驱动制冷装置来进行降温。 实际中常用的制冷装置主要有空调、冷藏柜、冷库等 [9]。 继电器控制 制冷 电路 如 下图 : 由图可知 单片机的 CTL0, 端口 接 CTL1, 端口 控制一个 双 刀双掷继电器 RL2, 端口 控制一个 14 双刀双掷继电器 RL1。 当测量 的温度 高于 设定的温度 上 限时,单片机控制端 给三极管 Q7基级一个高电平,单片机控制端 给三极管 Q6基极一个 低 电平 ,三极管 Q7 导通, 三极管 Q6 截止, 发光二级管 D4发红光, 发光二极管 D5发绿光,继电器 RL1 的 线圈有电流流过 , 继电器 RL1 闭合, 而继电器 RL2 继续保持断开,此时 OVEN 装置两端加上 反向 电压,装置开始 制冷。 制冷 一段时间后,当温度重新回到温度 上限 以 下 时,单片机控制端 给三极管 Q7 基极一个 低 电平, 单片机控制端 依然 给三极管 Q6 基级一个低电平, 三极 管 Q6 和 Q7均 截止, 发光二级管 D D4和 D5都 不发光, 两个线圈都没有 电流流过,继电器 RL1 和 RL2 均 断开, 制冷 装置停止工作。 图 继电器控制制冷电路 温度采集电路设计 本设计采用 ADC0808 模数转换器 作为温度采集电路核心部件。 在介绍温度采集电路之前先详细介绍一下 ADC0808 模数转换器。 ADC0808 模数转换器 是采样分辨率为 8位的、以逐次逼近原理进行模数转换的器件。 它的 内部有一个 8通道多路开关,它可以根据地址码锁存译码后的信号, 15 只选通 8 路模拟输入信号中的一个进行 A/D 转换。 它的转换原理就是把输入电压 Vi 和一组从参考电压分层得到的量化电压进行比较,比较从最大的量化电压开始,由粗到细逐次进行,通过每次比较的结果来确定相应的位是 0还是 1。 经过不断地比较,不断地逼近,直到二者的差别小于某一误差范围时就完成了一次转换 [10]。 本设计的温度采集电路如图 所示: 图 温度采集 电路 示意图 工作过程:把电热炉的输出通过电阻分压转换成 0~ 5V 的模拟信号输入到IN0 引脚,然后经过模数转换后,数字信号从 D0~ D7 引脚输出送给单片机,单片机再对信号进行相应处理。 各引脚的功能如下: ( 1) IN0~ IN7: 8 通道模拟量输入端 ; ( 2) D0~ D7:结果数据输出端 ; ( 3) START:启动转换命令输入端。 在该引脚上加高电平,就开始转换 ; ( 4) EOC:转换介绍指示脚。 在平时它为高电平,在转换开始后和转换过程中为低电平,转换一结束,它又变回了高电平 ; ( 5) ALE:地址锁存允许信号 ; 16 ( 6) OE:数据输出允许信号,这个引脚加高电平,即打开输出缓冲器三态门,读出数据 ; ( 7) CLK:时钟脉冲输入端。 ADC0808 典型的时钟频率为 640kHz,转换时间是 100us; ( 8) A, B和 C:三位地址输 入线,用于选通 8 路模拟输入中的一路 ; ( 9) REF(+), REF():参考电压输入端 [11]。 LED 数码管显示电路设计 在 单片机应用系统中,通常都需要进行人机对话,这包括人对应用系统的状态干预与数据输入以及应用系统向人们显示运行状态与运行结果等 [12]。 LED 数码管显示器由 8 个发光二极管中的 7个长条发光二极管按 a、 b、 c、 d、e、 f、 g 顺序组成 “8” 字形,另一个点形的发光二极管放在右下方,用来显示小数点。 数码管按内部连接方式又分为共阳极数码管和共阴极数码管两种。 若内部 8 个发光二极管的阳极 连在一起接电源正极,就称为共阳极数码管;若 8个发光二极管的阴极连在一起接地,则称为共阴极数码管。 LED 显示电路由 位驱动电路 和 段驱动电路 组成。 因为 单片机的并行口不能驱动 LED 显示器, 所以 必须采用。基于89c52单片机的恒温控制系统设计
相关推荐
如果有外设产生一个中断请求信号, IRQ 中断相应的位会被置位,否则会被清 0。 IRQEN 中断使能寄存器 当某一位置 1 时,相应的中断源可以请求中断,相反,相应的中断源没有被使能。 IRQCLR 中断屏蔽寄存器 可以用来清空在 IRQEN 寄存器中相应的位,当某一位置 1 有效。 要想取消一个已经使能的中断源,用户必须通过 IRQCLR 对应的位置 1 来实现。 单独清空 IRQEN
功能 闹铃文件 维护闹铃 闹铃接收 闹铃 基本日历 基本日历界面 日历界面适配器 桌面闹钟主要界面 维护数字时钟 布局按钮 HandleSetAlarm,java 设置 alarm 到 activity 数字帮组 重复 设置闹铃 设置闹铃页面 功能设置 Android的资源文件保存在 /res的子目录中。 其中 /res/drawable目录中保存的事图像文件,/res/layout
一转变过程中的主力军。 随时随地可用,传感器丰富等相对传统桌面计算机的突出优点,为智能手机改变人们的工作与生活提供了各种可能。 智能手机将逐步发展成人们眼、耳、脑以及不存在感官的延伸,帮助人们获取、处理、存储与呈现信息,帮助人们作出决定,展现给人们美好的事物,引领人们更加智慧与舒适地生活。 移动平台是目前和将来相当一段时间应用部署的重要平台。 2020 年年初,苹果应用商店已经拥有了超过 53
宁科技大学本科生毕业设计 第 14 页 第四章 系统软件设计 软件分 为两部分,主程序和中断服务程序,如图 41 所示。 主程序完成初始化工作、超声波发射和接收, 距离计算、结果的输出。 外部中断服务子程序主要完成时间值的读取。 NO YES 图 41 主程序流 程图 外部中断子程序 计算距离 结果输出 定时器及中断初始化 发射超声波 开外部中断 指示灯闪烁 单片机初始化 DS18B20 初始化
dd=num/100%10。 ee=num/10%10。 ff=num%10。 display(aa,bb,cc,dd,ee,ff)。 } if(mode==3) { num=500000/num1。 aa=num/100000。 bb=num/10000%10。 cc=num/1000%10。 dd=num/100%10。 ee=num/10%10。 ff=num%10。 display(aa
降沿时,寄存器的值加 1,在这种工作方式下,每个 机器周期的 5SP2 期间,对外部输入进行采样。 若在第一个机器周期中采到的值为 1,而在下一个机器周期中采到的值为 0, 则在紧跟着的下一个周期的 S3P1 期间寄存器加 1。 由于识别 1 至 0 的跳变需要 2 个机器周期( 24 个振荡周期),因此,最 高计数速率为振荡频率的 1/24。 为确保采样的正确性