电子设计精品基于单片机的温度自动控制系统设计内容摘要:

片机的一组 I/O口正好相符合。 转换时间为 100μs,量程为 0到 5V上可以分析,本系统采用该模数转换器,量化误差也足以满足系统要求,综合各种参数跟本系统十分符合,故选择 ADC0809作为本系统的模数转化模块。 驱动 ADC0809最基本连接是在 VCC接 +5V电压为 ADC0809的工作电压, GND接地, REF+和 REF为参考电压,功能是与输入的模拟信号进行比较,作为逐次逼近的基准,其典型值为REF+=+5v, REF=0v,本系统电源电压正好也为 +5v,所以采用电源 电压。 如表 : 温度值 /℃ AD590电流 /μ A 经 10千欧 /V 经放 大电路输出 ADC0809的输出 0 0 00 10 19 20 32 30 4B 40 64 50 7D 60 96 70 AF 80 C8 90 E1 100 FA 表 输入输出对照表 基于单片机的温度自动控制系统设计 15 INT0INT7为 8个模拟量输入通道,本系统中只用一个模拟量输入就是 AD590的输出端,故只选择 INT0作为作为模拟量的输入 ADDA, ADDB, ADDC,是 8路模拟通道地址输入选择断,从表 ,变为选择 INT0作为模拟量的输入通道。 ADDC ADDB ADDA 选择通道 0 0 0 Int0 0 0 1 Int1 0 1 0 Int2 0 1 1 Int3 1 0 0 Int4 1 0 1 Int5 1 1 0 Int6 1 1 1 Int7 表 模拟通道地址输入选择表 D7D0为数据输出线,也是我们将要得到的数字量,所以应该将他接入到 89C51的 P0口上。 CLK为 时钟脉冲输入端 因为 ADC0809内部没有时钟电路,需要外接时钟信号, 要求时钟频率不高于 640KHZ,而 89C51的 ALE,当不访问外部存储器时,该端以时钟频率的 1/6输出固定的正脉冲信号,所以将 ADC0809的 CLK通过分频器接到 89C51的 ALE端。 由于 89c51的 ALE输出 1/6的时钟频率 ,计算: 12M/6=2M 2M/4=500KHz 在 ADC0809可以接受的频率范围之内。 基于单片机的温度自动控制系统设计 16 ALE为地址锁存信号。 在上升沿将通道地址所存到锁存器。 Stare 为启动控制信号,在上升沿,所有内部寄存器清零,下降的时候开始 AD转换这俩个管脚一起控制 ADC0809的启动过程,而单片机的 WR端输出为低电平输出控制,所以将这俩个管脚通过非门电路并联到单片机的 ( WR)管脚,当单片机执行写出操作时,通 过 WR管脚启动 ADC0809的模数转换。 OE端为数据输出端控制端, 当 A/ D转换结束时,此端输入一个高电平,才能打开输出三态门, 输出转换后的数字量,而单片机的 RD端输出也为低电平输出控制,所以将它通过非门接到单片机的 RD端,当单片机执行读入操作时,打开 ADC0809的数据输出控制。 EOC端 A/ D转换结束信号输出 端 ,当 A/ D转换结束时,此端输出一个高电平 ,此引脚接到 89C51的 ,用于判断温度转换是否结束,结束的话就取转换数据,没有的话就继续等待转换。 连接方法如图 36所示: 图 模数转换电路 基于单片机的温度自动控制系统设计 17 数码显示电路 显示电路采用 7段 BCD码所存译码显示驱动器 CD4511,来驱动 阴极 LED数码管 ,这样可以省去繁琐的拆字程序和查表程序,节省很大一部分 CPU资源是时间。 如图。 图 CD4511封装和逻辑图 CD4511的 特点:具有 BCD转换、消隐和锁存控制、七段译码及驱动功能的 CMOS电路能提供较大的拉电流。 可直接驱动 LED显示器。 其管脚功能和连接原理如下: BI: 4脚是消隐输入控制端,当 BI=0时,不管其它输入端状态如何 ,数码 管均处于熄灭(消隐)状态,不显示 数字。 所以这里接电源电压高电位使其能够显示当前要显示的数值。 LT: 3脚是测试输入端,当 BI=1, LT=0 时,译码输出全为 1,不管输入 DCBA 状态如何,七段均发亮,显示 “8”。 它主要用来检测数码管是否损坏。 这里也接电源电压使其能够正常工作。 基于单片机的温度自动控制系统设计 18 LE:锁定控制端,当 LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,译码器输出被保持在 LE=0时的数值 ,这里保持一直温度显示,不需要锁定控制功能,所以也接电源电压。 A A A A为 8421BCD码输入端 ,本系统中我们用p2口作为单片机的输出 接入到 cd4511的数据输入,由于显示的温度为 2位数,需要用到俩个 CD4511, ,单片机 p2口直接输出压缩型 BCD码片能实现数据显示。 如表 13为 CD4511的真值表,对应的可以看到各引脚输入的电平与输出的关系 a、 b、 c、 d、 e、 f、 g, 为译码输出端,输出为高电平 1有效 ,因为 CD4511的 CMOS电路提供的电流较大,所以需要外接限流电阻,接上 200Ω限流电阻就可。 基于单片机的温度自动控制系统设计 19 表 3 CD4511 真值表 : 表 输 入 输 出 LE BI LI D C B A a B c d e f g 显示 X X 0 X X X X 1 1 1 1 1 1 1 8 X 0 1 X X X X 0 0 0 0 0 0 0 消隐 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 2 0 1 1 0 0 1 1 1 1 1 1 0 0 1 3 0 1 1 0 1 0 0 0 1 1 0 0 1 1 4 0 1 1 0 1 0 1 1 0 1 1 0 1 1 5 0 1 1 0 1 1 0 0 0 1 1 1 1 1 6 0 1 1 0 1 1 1 1 1 1 0 0 0 0 7 0 1 1 1 0 0 0 1 1 1 1 1 1 1 8 0 1 1 1 0 0 1 1 1 1 0 0 1 1 9 基于单片机的温度自动控制系统设计 20 CD4511与数码显示管的连接方法如图 图 键盘输入电路与加热控制电路 本系统的 键盘控制需要完成以下功能,能够控制温度的升高和降低且在设置温度的时候显示电路能够显示当前设置的温度,还能够按下一个键时为查看当前的温度。 本系统中水的温度,基本在 0度 100度之间,温度之间的相差不是很大,综合考虑使用独立键盘,使用六个键来控制温度的升高和降低,再用另一个键来用于用户控制显示当前设置的温度。 控制键分俩组一组增加温度,一组降低温度, 3个键分别为,增加 1℃,增加 5℃,增加 10℃。 另一组与其对应减少。 用 P1口的16这 6个引脚来用于控制温度,第 基于单片机的温度自动控制系统设计 21 当前设置的温度,其中这 些按键都并联在外部中断口 INT0上。 如图 图 键盘电路 温度加热电路将加热控制信号经驱动器,来驱动固体继电器( SSR)工作,从而接通或断开加热丝两端电源,实现对水的加热控制。 固体继电器特点: (1)驱动电流小,仅仅几毫安与 TTL,CMOS等数字电路兼容 (2)无触点,无火花干扰寿命长,耐腐蚀 (3)能承受的浪涌电流大,一般为额定值的 612倍 所以单片机的 P1口,通过电路放大就可以控制 SSR来接通加热丝,加热水温度 连接接方法如图 : 基于单片机的温度自动控制系统设计 22 图 加热电路 基于单片机的温度自动控制系统设计 23 4 程序设计 主程序设计 本系统软件同样将对各个模块编写程序,主程序调用各个模块来运行整个系统。 主程序首先对 89C51 的端口和所用内存初始化。 然后系统不停的重复调用各个模块,用于更快捷的做出控制反应。 调用顺序分别为温度检测模块,数值转化模块,显示模块,和比较加热模块。 键盘模块采用中断扫描方式,这样可以节省很多 CPU 资源。 主程序流程图如图 所示: 基于单片机的温度自动控制系统设计 24 开始 内存单元清零 关闭加热丝,端口初始 化 外部中断初始 化 调用温度检测模块 调用数值转换模块 调用 BCD 显示模块 调用比较控制模块 无条件转换 结束 基于单片机的温度自动控制系统设计 25 根据流程图编写程序,程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP JIANPAN ORG 0030H MAIN: MOV SP,60H ;堆追指令赋值 MOV P1 ,7FH ;关闭加热丝,键盘初始化 CLR IT0 ; IT0 低电平有效 SETB EA ; CPU 中断开放 SETB EX0 ;允许外部中断 0控制 SETB PX0 ;外部中断 0 高优级先控制 MOV 50H ,00H ; ADC0809 检测值缓冲区清零 MOV 60H ,00H ;数值转换存储单元清零 MOV 70H , 00H ;显示内存单元清零 MOV 80H , 00H ;键盘输入单元基于单片机的温度自动控制系统设计 26 清零 XUNHUAN: ACALL WENDU ;调用温度检测模块 ACALL ZHUANHUA ;调用数值转换模块 ACALL BCD ;调用 BCD 显示模块 ACALL JIARE ;调用比较加热模块 AJMP XUNHUAN ;跳转到主程序重新开始执行 END 温度检测模块 A/D 转换后的数字量通常采用查询方式和中断方式传送到单片机进行数据处理。 本控制系统采用单片机通过查询方式测试EOC 的状态,可以判断转换是否完成。 为了实现温度的准确检测,采用了平均值滤波法抗干扰。 即连续 2 次启动 ADC0809 进行 A/D 转换,求取转换结果的平均值,存入指定单元,以得到检测温度值。 最后将计算的结果存入温度检测缓冲区 50H。 如图 所示。 基于单片机的温度自动控制系统设计 27 开始 转换单元初始化 启动 ADC0809 累加转换结果 求平均值 转换是否结束 2 次转换是否结束 存结果 Y N N Y 返回 基于单片机的温度自动控制系。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。