图5.1.1 单片机控制模块电路
SW-PBS2+5VC510uF+5VU19R388.2K101114RSTVCCEAP3.0/RXDP3.1/TXDP0.0P3.4/T0P0.1P0.2XTAL2XTAL1GNDAT89S514031R375139383P0.72C630PC730PY112M181920该电路采用按键加上电复位,S2为复位按键,复位按键按下后,复位端通过51Ω的小电阻与电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源通过8.2KΩ的电阻对10KμF的电容C5重新充电,RST引脚端出现复位正脉冲.
AT89S51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路,C6和C7的值通常选择为30pF左右,晶振Y1选择12MHz.为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器电容应尽可能安装得与单片机引脚XTAL1和XTAL2靠近。
单片机的31脚(EA)接+5V电源,表示允许使用片内ROM。
1.2温度检测模块
温度由DALLAS 公司生产的一线式数字温度传感器DS18B20 采集。DS18B20 测温范围为-55°C~+125°C,测温分辨率可达0.0625°C,被测温度用符号扩展的16 位补码形式串行输出。CPU 只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
本设计采用三引脚PR-35封装的DS18B20,其引脚图见图5.1.2。Vcc接外部+5V电源,GND接地,I/O与单片机的P3.4(T0)引脚相连。
图5.1.2 温度传感器电路引脚图
1.3水位检测模块
1.3.1 传感器电路
系统选用B2119压阻式压力传感器,压阻式压力传感器是利用单晶硅的压阻效应制成的器件。这种传感器精度高、工作可靠,容易实现数字化,比应变式压力传感器体积小而输出信号大。它是目前压力测试中使用最多的一种传感器。压阻式压力传感器使用集成电路工艺技术,在硅片上制造出四个等值的薄膜电阻,并组成电桥电路,当不受到压力作用时,电桥处于平衡状态,无电压输出;当受到压力作用时,电桥失去平衡,电桥输出电压。电桥输出的电压与压力成正比例。其工作原理图如5.1.3.1所示
图5.1.3.1压阻式压力传感器原理图
1.3.2 时钟电路与复位电路
要使单片机按照设计要求正常工作,完整单片机最基本的工作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计算,采用11.0592MHz的晶振提供系统时钟。并附加复位电路,组成单片机最小系统。复位操作有上电自动复位和按键手动复位两种方式。我们采用上电自动复位,其是通过外部复位电路的电容充电来实现的。其电路图如图2-16(a)所示。这样,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。关
于参数的选定,在振荡稳定后应保证复位信号高电平持续时间大于2个机器周期。当采用的晶体频率为6 MHz时,可采用C=22μF,R=1kΩ;当采用的晶体频率为12 MHz时,可采用C=10μF,R=8.2kΩ。
VccVccC10uFRSTR18.2KVss(a)上电复位电路89C51C 10uFKVccVcc89C51R2R18.2KRSTVss(b)按键电平复位
图2-16复位电路
如果上述电路复位不仅要使单片机复位,而且还要使单片机的一些外围芯片也同时复位,那么上述电阻、电容参考值应作少许调整。
对于CMOS型的89C51,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1μF。
1.3.3 A/D采集转换电路
本系统A/D芯片所选用的是ADC0809,该大规模集成电路芯片是一种由单一+5V电源供电,采用逐次逼近转换原理,能够对8路0—+5V输入模拟电压进行分时转换的八位并行通用型可编程模数转换器。ADC0809由单片机控制驱动,对传感器进行定式循环采集,然后单片机将各测量参数传至PC机,进行后台数据处理。电路连接如图5.1.3.3。
图5.1.3.3 A/D转换电路图 1.3.4 按键设计
键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机系统输入数据、发送命令等功能,是人工干预单片机的主要手段。考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路。在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态判断是否有按键按下。
+5V+5VD1Q2图5.1.3.4 系统按键电路 IN4007452311.4 控制模块 P0.2R391K 控制电路与单片机的P0.2口相连,由于单片机输出控制信号非常微弱,需要用Q1JDQ三极管来驱动外围电路,三极管选用NPN型的 9014,当检测温度低于设定温度时,2KR329014在单片机的P0.2口输出高电平控制信号,使三极管9014导通,使继电器两控制端产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热。控制电路电路图如图5.1.4所示。
图5.1.4 控制电路
1.5 驱动电路设计
在单片机控制系统中,需要用开关量去控制和驱动一些执行元件,如发光二极管、继电器等。但89C51单片机驱动能力有限,且高电平比低电平驱动低。一般情况下,需要加驱动接口电路,且用低电平驱动。如图5.1.5所示
图5.1.5驱动电路
六.软件设计
1.1 系统软件设计整体思路
程序设计语言有三种:机器语言、汇编语言和高级语言。机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。
高级语言是面向问题和计算过程的语言,它可通过于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流,但是本系统却选用了汇编语言。原因在于,本系统是编制程序工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那样占用较多的存储空间,适合于存储容量较小的系统。同时,本系统对位处理要求