2 硬件电路设计
硬件部分采用传感器件完成对温度、压力、流量、液位四个参数的采集,采用单片机STC89C52作为主控芯片,将采集的数据显示在LCD1602上,其中硬件的设计部分包括:传感器选型、单片机最小系统电路设计、电流电压转换电路设计、模拟量采集电路设计、显示电路设计、按键接口电路设计、报警电路及串行口功能设计,下面将对各个设计部分做详细的介绍。
2.1 传感器的选型
需测量的温度为水的温度,选择温度传感器的测量范围应为0~100℃,且选择传感器要求精度高、转换速度快、简单实用,所以选择Pt100作为温度传感器;需测量的压力测量范围为0~1.4MPa,所选压力传感器BP—801、电源为24VDC、输出为4~20mA电流信号;需测量的流量测量范围为0~0.6立方米/小时,所选流量传感器采用涡轮式传感器LWGY-15A、精度为0.5%、输出为4~20mA电流信号;需测量的液位测量范围为1~1000毫米,所选液位传感器型号为BPY—800、精度为0.5%、供电电源为24VDC、输出为4~20mA电流信号。
2.2 单片机最小系统设计
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统,本设计最小系统包括:单片机、时钟电路、复位电路。 2.2.1 单片机的选型
选用的单片机型号是STC89C52。STC89C52引脚如图2.1所示,是一种带8K字节闪烁可擦除可编程的只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低压电、高性能的微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,12时钟/机器周期和6时钟/机器周期可以任意选择。
1、主要特性
⑴工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机); ⑵片上集成512字节RAM;
6
⑶通用I/O口(32个),复位后为:P0/P1/P2/P3是开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;
⑷ISP(在系统可编程)/IAP(在应用可编程),不需要专用编程器,不需要专用仿真器,可通过串口(RXD/P3.0,TXD/3.1)直接下载用户程序,几秒钟即可完成一片,准双向口/弱上拉,P0口是漏极;
⑸具有EEPROM功能; ⑹具有看门狗功能;
⑺共3个16位定时器/计数器,即定时器T0、T1、T2; ⑻工作频率范围:0~40MHZ,实际工作频率可达48MHZ;
⑼外部中断4路,下降沿中断或低电平触发电路,掉电模式可由外部中断低电平触发中断方式唤醒。
此外,STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置节电模式。此模式下,CPU暂时停工作,此时外部中断系统、RAM定时计数器,串行端口可以继续工作,掉电模式使振荡器冻结从而将RAM的数据保存,停止芯片的其它功能直至硬件复位或外中断激活。与此同时STC89C52芯片还具有PLCC、TQFP及PDIP等三种封装模式,可以满足不同产品的需求。
2、单片机管脚说明
其中包括4个8位并行I/O接口线、6条控制信号线和2条电源线
并行口P0(P0.0~P0.7):P0口为一个8位漏极开路双向I/O接口,8TTL门电流可被每个引脚吸收。P0口的管脚第一次写入高电平时,被称为高阻态输入。它可以被定义为地址/数据的低八位,应用外部程序数据存储器进行存取时可使用P0口。应用FIASH编程时,P0口可作为原码输入口,在FIASH进行校验时,P0口可作为输出口输出原码,此时P0口外部必须被拉高。连接外部存储器或扩充外设时,作为低8位地址线和高8位数据线。
并行口P1(P1.0~P1.7):P1口是一个内部提供上拉电阻的8位双向I/O接口,4TTL门电流可被P1口缓冲器接收、输出。P1口管脚写入高电平后,被内部上拉为高,可作为输入,当P1口被外部下拉为低电平时,P1口将输出电流,这是由于内部为上拉状态的原因。当FLASH校验和编程时,P1口可用作低八位地址接收,P1口还具有第二功能,可以通过对单片机进行设置,将P1口作为A/D转换口使用。在编程和校验试接收低8位地址,每一位可以独立的输入/输出。
7
并行口P2(P2.0~P2.7):P2口为一个内部提供上拉电阻的8位双向I/O接口,4TTL门电流可被P2口缓冲器接收、输出。当P2口被写入高电平时,其内部上拉电阻将其管脚拉高,并作为输入。作为输入时,P2口的管脚被外部拉为低电平时,P2口将输出电流,这是由于内部为上拉状态的原因。当应用16位地址外部数据存储器或外部程序存储器时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收控制信号和高八位地址信号[7]。
并行口P3(P3.0~P3.7):P3口为一个8位准双向I/O接口,另外还兼有中断(P3.2(外部中断0)、P3.3(外部中断1))、定时/计数器(P3.4(定时/计数器0)、P3.5(定时/计数器1))、串行通信(P3.0(串行口输入)、P3.1(串行口输出))、读/写(P3.6(外部数据存储器写信号)、P3.7(外部数据存储器读信号))等控制功能。
VCC供电电压;GND接地。
图2.1 STC89C52单片机引脚图
2.2.2 时钟电路与复位电路
1、时钟电路
单片机芯片内部有一个反向放大器构成的振荡器,XTAL1和XTAL2引脚分别为振
8
荡器的输入端和输出端,时钟可以由内部或外部产生。内部时钟电路是在XTAL1和XTAL2引脚上接一定时元件,内部振荡电路就产生自激振荡,定时元件通常是由石英晶体(晶振)和电容组成谐振电路。晶体振荡频率可在1.2MHz~12MHz之间选择,电容C1、C2的取值在5pF~30pF之间。外部时钟电路为XTAL1接地,XTAL2接外部振荡器,振荡器频率为不低于12MHz的方波信号。设计采取的是内部时钟电路如图2.2所示。
图2.2 晶振电路原理图
2、复位电路
单片机有两种复位方式,上电复位和开关复位,上电复位在上电瞬间RC电路充电,RST引脚上出现正脉冲,只要正脉冲保持100ms以上,就能使单片机有效复位。由于某种干扰,单片机不能正常复位,就需要加开关复位,当开关按下时,单片机复位。
3、复位电路的用途
单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。单片机复位电路如图2.3所示。
图2.3 复位电路原理图
4、复位电路的工作原理
在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,
9
如果释放后再按下,系统还会复位,所以可以通过按键的断开和闭合在运行的系统中控制其复位。
在电路图中,电阻大小为10k,电容大小为0.1uF。所以根据公式,可计算出电容充电电压为单片机电源电压(5V)的0.7倍,充电到电源电压的0.7倍就是3.5V,所需时间为10K*0.1UF=1S。也就是说在电脑启动的1S内,电容两端的电压值在0~3.5V增加。这个时候10K电阻两端电压值从5~1.5V减少(串联电路各处电压之和为总电压)。所以在1S内,单片机的RST引脚接收的电压值在5V~1.5V之间。在5V工作正常的51单片机中低电平信号为小于1.5V的电压信号,高电平信号则为大于1.5V的电压信号。所以在开机1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为1S左右)。
在单片机启动1S后,电容C两端的电压持续充电为5V,这时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在1S内,从 5V释放到变为了1.5V甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平,单片机系统自动复位。
对于片内有ROM/EPROM/E2PROM的单片机,用一片这种芯片构成的最小系统简单、可靠。构成最小系统时,只要将单片机接上时钟电路和复位电路,将EA非接高电平即可。最小系统时,P0、P1、P2、P3都可用作I/O线,但由于集成度限制,片内存储器容量有限,因此,最小系统主要用于一些简单的控制系统中。 2.2.3 单片机使用注意事项
⑴对于31脚(EA/VPP),当接高电平时,单片机在复位后从内部ROM的0000H开始执行,当接低电平时,复位后直接从外部ROM的0000H开始执行,这一点是初学者容易忽略的;
⑵晶振电路容易在焊接时漏掉电容需要接地,并且使用电容的大小一定要选准,晶振电路部分一定要焊接完全,否则容易使晶振电路出现虚接,影响设计;
⑶复位电路部分接口的电阻与电容选择要正确,要保证在电容充满电时,单片机有足够的时间进行复位;
⑷单片机的电源部分引脚接对,使用单片机时看单片机的缺口处来找单片机的引脚顺序;
10