AT89C52(共9篇)
AT89C52 篇1
在自动控制和测量系统中, 经常需要使用性能良好的可调电源。随着集成D/A转换器价格的降低, 目前, 已广泛地采用D/A转换器构成的可编程控制的精密电压源和精密电流源来驱动感性负载 (如控制偏转线圈等所需的电流) 。D/A转换器是单片机的重要接口之一, 只有通过D/A转换器把经过单片机 (如AT89C52) 处理的数字信号转换成模拟信号才能实现对各类模拟量的控制、调节和显示[2]。本文设计了一个基于AT89C52的数控直流电流源, 测定结果表明该系统具有良好的稳定性。
1 总体方案设计
1.1 单片机控制部分
如图1所示, 整个系统由3片AT89C52芯片为核心, 它们通过串行通信方式连接并互相通信:主控机完成键盘扫描、LED显示、发送指令和数据以及接收数据4项工作;从机1完成接收主控机发送的指令和数据、控制A/D-D/A芯片完成数模-模数转换、回送实测电流数据三项工作;从机2完成接收主控机发送的指令和数据并将数据转换为语音地址编码, 并将各种语音信息通过扬声器发声, 实时反应用户正在进行的操作[1]。
1.2 数控直流电流源控制方式
如图2所示, 运算放大器A1接成加法器, 为得到大电流, 其输出端进行了电流扩展。用VT1和VT2组和成复合NPN管, 以提高输出电流, VT3和VT4组合成复合PNP管, 以提高输出电流。当UM输入为正时, U3为负, VT1, VT2截止, VT3, VT4导通。当UM输入为负时, U3为正, VT1, VT2导通, VT3, VT4截止。VT2, VT4为低频大功率管 (3DD15) 。当管子工作时由于耗散功率较大 (IOMAX=2A) , 所以在管子上加了散热片, 以确保电路正常工作。由于输出回路的内阻很小, 为避免反馈回路的分流对输出的影响, 故将A2接成跟随器。A3接成反相器。
设A1输出端电压为U1, 根据加法原理得到:
其中UN为U2经跟随器A2和反相器A3后获得, 因此
从而
又因为A2是跟随器, 反馈支路的分流为零, 流过电阻RM的电流全部通过负载, 因而
由此可见, 这是一个仅与电压UM和电阻RM有关的恒定电流, 也就是说保证了输出电流只与电压UM和电阻RM有关。如果利用数模转换器输出电压信号来控制UM, 从而输出可调的恒定电流, 就可实现一个数控直流电流源系统。该系统中采用DAC0832实现数模转换, 以实现数控的功能。采用ADC0809采样RM上的电压值并实现模数转换, 以实现输出电流值的实时测量[2]。
1.3 稳压电源部分。
图3所示电路原理图是稳定电源的原理图, 电源部分输出+5V和±15V电压供给整个系统。数字部分和模拟部分通过模拟部分通过电感隔离[2]。
2 系统软件设计
单片机程序采用C语言书写, 在Keil Cx51 V7.50集成开发环境下编译, 用WAVE E2000L硬件仿真器调试。软件按模块划分, 共分为3个大的系统:
2.1 主控模块。
主控程序打开了串行中断的外部中断, 分别用于发送、接收指令、数据和获取键码, 其主要流程图如图4所示[1]。
2.2 A/D-D/A转换控制模块。
图5所示流程图为A/D-D/A转换模块程序流程图, 它只打开串行中断, 用于接收主控机发送的指令和数据, 在从机2内部通过软件滤波减小误差并把采样数据回送给主控机[2]。
3 恒流源输出电流采集
在系统调试通过的前提下, 本文作者利用如图6所示的测试框图对整个系统进行了步进为10m A的全面测试, 各设定工作值与实测值的线性关系如图7所示。
结束语
本系统以AT89C52芯片为核心控制部件, A/D-D/A芯片为核心转换部件, 恒流源为受控部件, ISD2560芯片为辅助语音模块, 采用主控机协调组织, 多个从机并行运行方式, 提高了工作效率和系统稳定性。在恒流源的制作方面, 采用集成电路恒流源, 较高指标的设计制作了该数控恒流源系统。如果进一步提高抗干扰能力和改进软件算法, 本系统的性能将进一步提高。
摘要:本文介绍并设计了一个数控直流电流源, 该系统可用于提供精密电流以驱动感性负载, 具有一定的工程应用价值。该系统以AT89C52为核心, 利用DAC0832、ADC0809完成数模和模数转换、键盘、LED显示、语音播放等电路, 实现了一个由一个主机控制, 多个从机并行工作的数控恒流源系统。主机使用键盘输入所需电流值, LED显示设置值和反馈的实测值, 同时还采用ISD2560语音芯片对各项操作做出说明, 很好地实现了数控直流电流源系统的设计。
关键词:AT89C52单片机,数/模,模/数转换
参考文献
[1]李朝清.单片机原理及接口技术[M].北京:北京航空航天大学出版社, 1998:98-222.
[2]赵建军.欧阳中辉.检测与转换技术[M].山东:海军航空工程学院, 1997:57-286.
AT89C52 篇2
东西方向60秒,南北方向57秒
#include
#define ON 0 #define OFF 1 sbit NS_G=P2^5;//南北绿灯
sbit NS_Y=P2^4;//南北黄灯 sbit NS_R=P2^3;//南北红灯
sbit EW_G=P2^2;//东西绿灯 sbit EW_Y=P2^1;//东西黄灯 sbit EW_R=P2^0;//东西红灯
sbit LED_D1=P3^7;//南北方向数码管位控制 sbit LED_C1=P3^6;//南北方向数码管位控制 sbit LED_B1=P3^1;//东西方向数码管为控制 sbit LED_A1=P3^0;//东方向数码管位控制
/*********倒计时赋初值*************/ uchar EWF=20,NSF=17,X=20,Y=17,Z=20,SHU=20;uchar count;
void Init(void){ TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;} /*******************中断服务程序**************************/ void timer1(void)interrupt 1 {
TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;
count++;if(count>19){
EWF--;
NSF--;
X--;
Y--;
Z--;
SHU--;
count=0;
}
} /******************延时**********************/
void Delay10uS(uchar z){ uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}
/******************led控制*******************/ unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管赋值
void display1(uchar num1,uchar num2)
//控制东西方向led显示 {
P0=table[num1];
LED_A1=ON;
Delay10uS(1);
LED_A1=OFF;
P0=table[num2];
LED_B1=ON;
Delay10uS(1);
LED_B1=OFF;
} void display2(uchar num3,uchar num4)//控制南北方向led显示 {
P0=table[num3];
LED_C1=ON;
Delay10uS(1);
LED_C1=OFF;
P0=table[num4];
LED_D1=ON;
Delay10uS(1);
LED_D1=OFF;
} void main(){ int i;/************初始状态东西南北禁止通行************/
NS_R=ON;//南北方向红灯打开
EW_R=ON;
//东西方向红灯打开
for(i=0;i<600;i++)
{
Delay10uS(20);
} NS_R=OFF;//南北方向红灯关闭
EW_R=OFF;//东西方向红灯关闭
while(1)
{
Init();
// 初始化计时器
/****************状态1:东西绿灯(57s),南北红灯(60s)**************/ /***************状态2:东西黄灯(3s),南北红灯(60s)****************/
EW_G=ON;//东西方向的绿灯打开
NS_R=ON;//南北方向的红灯打开
while(EWF!=0)
{
display1(EWF/10,EWF%10);// 东西方向红灯(60s)
display2(NSF/10,NSF%10);// 南北方向绿灯(57s)
while(EWF==3)
{
while(X!=0)
{
display1(EWF/10,EWF%10);// 东西方向红灯(3s)
display2(X/10,X%10);// 南北方向黄灯(3s)
EW_G=OFF;// 东西方向的绿灯关闭
EW_Y=ON;// 东西方向的黄灯打开
}
}
}
NS_R=OFF;// 南北方向的红灯关闭
EW_G=OFF;// 东西方向的绿灯关闭
EW_Y=OFF;// 东西方向的黄灯打?
/*=*************状态3:东西红灯(60s),南北绿灯(57s)************/ /****************状态4:东西红灯(60s),南北黄灯(3s)***************/
EW_R=ON;// 东西方向的红灯打开
NS_G=ON;// 南北方向的绿灯打开
while(Z!=0)
{
display2(Z/10,Z%10);// 南北方向红灯(57s)
display1(Y/10,Y%10);// 东西方向绿灯(57s)
while(Z==3)
{
while(SHU!=0)
{
display2(Z/10,Z%10);// 东西红灯(3s)
display1(SHU/10,SHU%10);// 南北绿灯(3s)
NS_G=OFF;//南北方向的绿灯关闭
NS_Y=ON;// 南北方向的黄灯打开
}
}
}
} EW_R=OFF;// 东西方向的红灯关闭
NS_G=OFF;// 南北方向的绿灯关闭
NS_Y=OFF;// 南北方向的黄灯关闭
EWF=60,NSF=57,X=60,Y=57,Z=60,SHU=60;//重新赋值
AT89C52 篇3
关键字:TC89C52单片机 数控电流源 D/A转换
中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2014)12(b)-0030-01
电源技术尤其是数控电源技术是一门理论性与实践性很强的的工程应用技术,涉及电气、电子、控制理论等多学科领域。计算机和通讯技术的发展,给电力电子技术提供了更加广阔的发展平台,同时也给电源提出新的要求。普通电源由于精确度不高与操作不便等缺点已不能满足现实的需要。直到单片机技术及A/D、D/A的出现,才使精确数控电流源发展成为可能。该文所设计的数控电流源采用STC89C52单片机为核心微处理器,按键,显示,D/A,A/D等模块为外围电路。
1 设计要求与总体设计思路
1.1 设计要求
该设计要求:输入DC15V,输出最高12V,通过按键控制输出电流,采用LCD1602显示设置电流,实测电流,负载电压,负载阻值。
1.2 总体设计思路
根据系统要求,采用D/A转换后,采用电压跟随器使D/A芯片输出负载轻,从而使电压稳定,而电阻R5是不变的,根据欧姆定律可知,电压确定,电阻确定,电流就确定了。所以直接改变电压值就可以得到设定的电流。在通过A/D转换把数据反馈给微处理器,然后单片机通过数据比较,自动调节,尽可能的减少误差。
2 硬件电路以及软件设计
根据数控电流源设计要求,系统主要由控制模块,按键模块,D/A模块,A/D模块,显示等模块构成。硬件电路图如图1所示。
通过按键控制TLC5615C(L)D芯片输出电压值,在通过电压跟随器可以直接确定加载在R5的电压,根据基尔霍夫电流定律可知,电流只能从主回路流入,从而控制负载上面的电流,而根据基尔霍夫定律将把多余的电压消耗在IRF640上面。而读取电流值时可以读取在R5上面的电压,在通过程序使用欧姆定律而得到电流值。读取负载电压时,因为它的电压有时会远远超过5V,所以要通过运放电路,把电压降到5V以下。如图1可知,确定U33的3脚为3V,根据虚短原理,2脚也为3V,从而根据基尔霍夫电流定律可以得到输出电压,通过软件乘以4则得到取模电压,再通过软件用输入电压减去取模电压最后得到负载电压,知道负载的电流以及负载的电压,通过软件通过欧姆定律则可以算出负载阻值。
3 系统测试
该设计要求输出电流在0.2A到2A可调,并且要能显示设置电流值、实际电流值、负载电压和负载阻值。该设计通过按键调节电流值,单片机经过处理后通过反馈回来的数据自动调节。经过proteus7.8软件上面仿真结果分析,该设计初步达到要求,误差比较低。实测部分LCD显示数据如表1所示。
通过以上数据分析误差主要产生在首尾,这结果是因为当初设计的时候没有考虑到,而直接只考虑了中间值,但是总体设计要求达到。
4 结语
该文所设计的基于STC89C52单片机的数控电流源实现了量程可选,输出可调,误差较小,并且设置电流值,实测电流值,负载电压,负载阻值能够在LCD显示器上同时显示。人机接口采用独立按键与LCD显示,控制界面直观和简洁,具有良好的人机交互性能。可靠性高,易于标准化,集成化,系统维护方便,生产制作方便等优点。但是也具有功耗比较高的缺点。
参考文献
[1]江世明.单片机原理及应用--基于Proteus的单片机应用系统设计与仿真[M].上海:上海交通大学出版社,2013.
[2]江世明,黄同成.单片机原理及应用[M].北京:中国铁道出版社,2010.
AT89C52 篇4
超声探伤检测中,检测不同直径的回转体轴类零件(或同一零件不同精度的检测)就需要不同型号的探测头与之相配合。探测头在检测过程中需要进行人工更换,存在以下缺点:①占用了大量的工作时间,工作效率低;②在进行同一零件不同精度的定位探测时,进行探头更换会使得前后空间坐标定位有误差,影响检测精度;③手动更换探测头在一定程度上会减少探头的使用寿命。本文借助于AT89C52单片机技术、现代电子技术和超声检测技术,研制了一种适合现场使用、性价比高的无损探测头自动更换系统,将无损探测头自动更换系统和三轴联动的数控扫描运动系统集成于一体,使得探测头定位准确,使用方便,进一步提高了无损检测精度。
1探测头自动更换系统结构设计
图1为探测头自动更换系统结构框图,它主要包括机械系统、信号判别系统和通信系统。
1.1 机械系统
机械系统包括工作探测头装置、探测头夹具、探测头更换机械手、步进电机以及在更换过程中起到动力作用的推拉电磁铁。机械系统在接收到AT89C52单片机发来的更换指令后,控制机械手进行探测头更换工作,等到更换完毕迅速复位,返回一个完成信号。
1.2 信号判别系统
信号判别系统主要是在单片机接到探测头更换指令之后,对探测头夹具的编码N进行判别。该系统通过步进电机驱动探头库转动(采用的是4拍50齿,每次转45°,停留5 s),联合信号传感器反馈的信号(有信号为1,没有时置0)通过8-3编码器判别编号是否与指令中的N相等,否,则步进电机继续转动;是,则停止,等待系统进行探测头更换。
1.3 通信系统
通信系统主要完成各模块之间的数据传输与交换,实现实时通信。
2探测头自动更换系统机械设计
2.1 探测头夹具设计
根据探测头的型号系列,制作一套内径可调的夹具与之配合,装配后形成一套标准夹具探头。探测头夹具简图如图2所示。
2.2 探测头库设计
探测头库的结构简图如图3所示。探头库转盘的主轴旋转是靠AT89C52单片机控制电机驱动实现的(电机每次转动45°,停5 s进行判断),转盘中装有8个夹具探测头,将其分别转化为二进制编码为:1-001、2-010、3-011、4-100、5-101、6-110、7-111、8-000。探测头库转盘上的信号传感器正对面有一个固定的传感器信号接收装置,当探头库选择探头转动时,该装置就可以接收到相应的信号。通过缓冲寄存器将信号传送给单片机,进行探测头编码的判断识别。
2.3 机械手设计
探测头更换系统的另一重要组成部分是负责探测头更换动作的机械手,其结构简图如图4所示,由推拉电磁铁、机械臂、压紧球头及探头夹具组成。其进给、旋转运动分别由单片机控制电动机实现,推拉电磁铁和压紧球头同时工作实现机械手抓紧探测头夹具动作。
2.4 更换系统的工作过程
探测头更换系统工作简图如图5所示。当控制界面发出更换探测头指令时,AT89C52单片机发出指令控制X轴和Y轴电机联动让探测头迅速退至初始设定更换位置,等待换探头;同时单片机对探测头库中的夹具探测头进行编码设定、判断选择(其原理是通过74LS148编码器和信号传感器联合工作,控制探头盘旋转,直到选出编码为指令中编码的夹具探测头停止),探头库将该夹具探测头送到指定的更换坐标点,等待换探头。
准备工作做好后,分如下几步进行更换:
(1)拔出动作:单片机驱动电机使得机械手靠近探头更换指定位置,停留5 s,这时开启机械手中的推拉磁铁,电动机再一次驱动丝杠推进机械手(行程预先设定好的),使其正好卡住探测头夹具(插入动作),停留5 s;电磁铁吸住工作台上和探测头库中的探测头夹具,迅速反向驱动电机(行程预先设定好的),使得机械手拔出两个探测头夹具,停留5 s。
(2)旋转动作:驱动控制机械手的电机,使其转动180°,实现两个探测头位置交换,停留5 s。
(3)插入动作:重复拔出动作前部分的插入动作,然后断开电磁铁,利用其推力将探测头准确定位在工作台上和探测头库中,停留10 s(保证其可靠性);然后机械手迅速后退复位。
3探测头自动更换系统软件设计
系统设定了8个信号传感器和1个配套信号接收器作为探测头选择的信号脉冲源,同一系列不同尺寸、参数的探测头分别放在编有1~8编码的探测头夹具上。当系统对探测头的编号N进行判别时,探测头盘转动,夹具旁边的传感器也随着转动,对面的信号接收装置就会产生信号(为0或1),根据8个传感器的置1或清0,将产生一序列信号。通过74LS148编码器,将序列信号转换成二进制的数,再通过编程语言将其转换成对应的编码号,并将编码号通过8255扩展端口输送到单片机AT89C52,与上位机发送的探测头号N相比较,做出进一步的判断,如是,则信号传感器向上位机(52单片机)反馈Y;如不是,单片机给传感器信号接仪器发送指令,探测头库转动(每次转45°),停留5 s后进行判断比较是否为该探测头,重复上一步动作,直到选中为止。
更换系统采用74LS148二进制编码器对探测头的存取进行编码,有信号为高电平1,无信号为低电平0。
探测头更换流程如图6所示,首先将系统初始复位,设置探测头以及相关参数,然后就可以根据程序指令开始更换探测头。将相应的探测头选中并且将其编号输入到程序中,然后启动探测头库的转盘,通过步进电机使得每次转动45°停5 s进行一次探测头型号读取和判别,判断所取探测头与所输入探测头编号N是否一致,假如不是,信号传回步进电机,再转45°,重新判断,直至读到编号为止。完成自动换探测头后,将探测头更换系统复位,以便下次自动更换探测头。
AT89C52单片机控制探测头自动更换系统的部分程序如下:
4结语
本设计是以AT89C52单片机为控制核心实现的,利用其控制简单、能力强的特点与现代化数控机械相结合实现了检测中心探测头的自动更换。通过实验测得探测头夹具定位精度达到0.05 mm,解决了传统检测控制系统中探测头更换与高精度定位的矛盾。实验表明,该系统稳定、可靠,适合检测中心控制系统的工作。
参考文献
[1]李朝青.单片机原理及接口技术[M].第3版.北京:北京航空航天大学出版社,2005.
[2]景枫,张吉堂.基于AT89C52单片机的超声检测控制系统[J].机械工程与自动化,2008(3):153-158.
[3]许为民.基于PLC的气动换刀装置设计[J].液压与气动,2009(1):50-54.
AT89C52 篇5
1电路结构
该电路由水位探测、水深选择、单片机、数字显示、继电器控制等5部分组成。四个常开型干簧管H1-H4分别置于水箱里的四个不同的位置,作为水位探测电路;三个开关S1,S2,S3为功能选择开关,作为可控水深选择电路;S1的功能是设置水位在H1-H4之间进行高水位自动检测控制;S2的功能是设置水位在H1-H3之间进行中水位自动检测控制;S3的功能是设置水位在H1-H2之间进行低水位自动检测控制。将AT89C52的p1口通过限流电阻与一个共阳极数码管相连,用来显示水位的高低,p3.6.做为继电器控制端,继电器的常开触点作水泵的电源控制开关,常开触点闭合时,水泵通电给水箱灌水。
2电路的工作原理
上电后,芯片自动复位并从0000H单元开始执行程序。初始化以后,芯片循环检测P3.4,P3.5,P3.7口,即检测功能开关S1-S3的状态,若哪个端口被检测为低电平,则执行相应的水位检测程序。功能开关S1-S3的闭合和断开会出现如下几种情况:
1)当用水人数很多时,闭合S1,程序循环检测水箱里不同高度的四只常开型干簧管H1-H4的状态。当水位降低到最低位置时,H1闭合,数码管显示“1”,P3.6口输出低电平,三极管导通,继电器线圈得电,常开触点闭合,水泵得电开始抽水;当水位上升到H2的位置时,H2闭合,数码管显示“2”,P3.6口保持低电平,继电器触点保持闭合,水泵继续抽水;当水位上升到H3的位置时,H3闭合,数码管显示“3”,P3.6口保持低电平,继电器触点保持闭合,水泵继续抽水;当水位上升到H4的位置时,H4闭合,数码管显示“4”,P3.6口输出高电平,继电器触点断开,水泵停止抽水。水箱里的水位下降时与上述情况相反。即水位下降在H4与H1之间时,P3.6口输出高电平,水泵不抽水,直到水位下降到H1时,P3.6口才输出低电平,三极管导通,继电器线圈得电,常开触点闭合,水泵得电开始抽水。
2)当用水人数比较多时,闭合S2,程序循环检测水箱里不同高度的三只常开型干簧管H1-H3的状态。与S1闭合时相似,当水位降低到最低位置时,H1闭合,数码管显示“1”,P3.6口输出低电平,水泵得电开始抽水;此后水泵继续抽水,直到水位上升到H3的位置时,H3闭合,数码管显示“3”,P3.6口输出高电平,继电器触点断开,水泵停止抽水。水箱里的水位下降时与上述情况相反。
3)当用水人数比较少时,闭合S3,程序循环检测水箱里不同高度的两只常开型干簧管H1-H2的状态。当水位降低到最低位置时,H1闭合,数码管显示“1”,P3.6口输出低电平,水泵得电开始抽水;当水位上升到H2的位置时,H2闭合,数码管显示“2”,P3.6口输出高电平,水泵停止抽水。水箱里的水位下降时与上述情况相反。
4)当S1,S2,S3中有两个或三个闭合,则属于误操作,数码管显示“E”,P3.6口输出高电平,继电器触点断开,水泵不抽水。
参考文献
[1]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:高教出版社,2004.
AT89C52 篇6
煤气的主要成分为一氧化碳、氢气和甲烷等可燃性气体, 它们都是无色无味的气体。家庭煤气中毒主要指一氧化碳、液化石油气和天然气中毒等。液化石油气和天然气中毒多见于液化灶具泄漏或煤气管道泄漏, 一氧化碳中毒除见于灶具或煤气管道泄漏外, 冬天用煤炉取暖, 门窗紧闭, 排烟不良时, 也常发生。煤气中毒时病人最初感觉为头痛、头昏、恶心、呕吐、软弱无力, 当他意识到中毒时, 常挣扎下床开门、开窗, 但一般仅有少数人能打开门, 大部分病人迅速发生抽痉、昏迷, 如救治不及时, 很快因严重缺氧窒息造成死亡。煤气中毒中一氧化碳中毒最为严重, 其表现依吸入空气中所含一氧化碳的浓度、中毒时间的长短而不同。当居室内一氧化碳体积达0.06%时, 人会感到头晕、头痛、恶心、呕吐、四肢乏力等症;超过0.1%时, 吸入半小时, 人即会昏睡, 进而昏迷;达到0.4%时, 只要吸入1小时就可致人于死亡。另外, 煤气泄漏引发的火灾也屡见不鲜。虽然煤气厂在家用水煤气中特意掺入少量难闻气味的气体, 目的是为了当煤气泄漏时能闻到并及时发现, 但是当家中无人值守或者晚上人们睡觉时往往不能察觉。本文介绍的报警器可以用来检测一氧化碳在空气中的浓度, 当它们的浓度超过设定值时会发出警报。
2 系统框图
整个系统由气敏传感器、模数转换、主控、显示报警等单元电路组成。气敏传感器用于检测一氧化碳气体的浓度, 并将检测到的浓度信号转换为电信号送给A/D转换电路。A/D转换电路将气敏传感器输出的模拟信号转换为数字信号后送到下一级电路。主控电路用单片机来实现, 它是整个控制系统的核心, 它输出的数字量信号可以直接显示, 当浓度值达到设定值并持续较短时间后发出持续的报警声。
3 硬件电路设计
3.1 气敏传感器采用MQ-7, 它适宜检测一氧化碳气体的浓度。
MQ-7使用的气敏材料是在清洁空气中电导率较低的二氧化锡 (Sn O2) , 它的电导率随空气中一氧化碳气体浓度增加而增大, 使其表面电阻值减小。它工作时须处于200℃~300℃环境中, 加热器为气敏元件提供了必要的工作条件。测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内, 封装好的气敏元件有6只针状管脚, 其中4个用于信号取出, 2个用于提供加热电流。其检测CO浓度的线性范围为10ppm~10000ppm。
测试电路如图2所示。加热器和敏感元件共用5V直流电源电压。为更好利用传感器的性能, 需要选择恰当的RL值, 此处为10KΩ。传感器输出的模拟电压UAO为:
UAO=UC*R2/ (R2+RP1+RS) =50/ (10+RP1+RS) 。其中:UAO为传感器输出的模拟电压, UC为传感器电源, RS为传感器表面电阻。由上式可知传感器输出的模拟电压UAO随着RS为传感器电阻的减小而增大, 该电压被送往ADC08062的IN1引脚。调整RP1的值, 使CO的浓度在100ppm时输出的UAO=30m V。同时, 该信号经过LM324A放大后送入LM324B同相输入端与参考电压比较后输出矩形波信号, 调整RP2的值, 使CO的浓度达到100ppm时UDO翻转变为高电平, 发光二极管发光报警。
3.2 模数转换电路使用ADC08062, 它是逐次逼近式的8位A/D转换器, 可以和单片机接口直接连接。
ADC08062由一个3Bit电压比较器、一个3Bit Flash A/D转换器、解码器和一个输出锁存与三态缓冲器组成。ADC08062内置S/H电路, 可直接对模拟量变化较快的输入信号进行A/D转换。ADC08062对模拟量要求为-50 m V≤VINPUT≤+50 m V, 可直接用UAO作为其输入信号而不需要再进行放大。ADC08062有两路模拟量输入, 通过A0端子进行控制和选择, A0端为0时IN1选通, 为1时IN2选通, 浓度信号采集电路传送来的模拟信号UAO送入其1脚IN1, IN2引脚备用。实际使用时取UCC=5V, VREF+=5V, VREF-=GND。
读、写模式通过MODE引脚控制, 低电平为读模式, 高电平为写模式。WR有效时开始A/D转换, 转换结果滤波后将存入输出锁存器, RD有效时转换结果出现在DB0~DB7中。INT为转换结束标志, 转换结束时INT变为低电平, 表示A/D转换结束, 等待取用。
3.3 单片机采用AT89C52, 其与ADC08062芯片的接线见图3。
AT89C52的P0/AD口作为AD转换后的数据输入口, 其P3.1控制ADC08062的A0脚, 以控制UAO信号能送入IN1。ADC08062的INT脚与AT89C52的P3.0脚连接, 以保证MCU能检测到是否A/D转换结束, 以便读取数据, 当RD为高电平时该引脚会自动复位。
3.4 这里采用的显示器是北京精电蓬远显示技术有限公司生产的MDLS-16265B点阵字符型液晶显示模块, 其价格便宜, 且对于本系统已经足够使用。
它内嵌HD44780字符集, 具有字符发生器ROM可显示192种字符 (160个5×7点阵字符和32个5×10点阵字符) 和64个字节的自定义字符RAM (可自定义8个5×8点阵字符或4个5×11点阵字符) , 标准的接口特性51系列MCU的操作时序, 模块结构紧凑轻巧装配容易, 单+5V电源供电, 低功耗、长寿命和高可靠性是其特点。其与AT89C52的接线图见图3。RS引脚为输入寄存器选择, 1:数据, 0:指令;R/W为输入读、写操作选择, 1时选择读, 0时表示写;E为输入使能信号端, 高电平有效。DB0~DB7为其8条数据总线, 这里利用其间接控制方式接口电路, 可充分利用HD44780具有的4位数据总线功能, 简化接口电路。MCU与显示器之间的读写操作和数据指令传送选择功能由AT89C52的P3.5、P3.6和P3.7引脚控制。
3.5 报警器采用蜂鸣器及其驱动电路组成, 见图3所示。
当CO浓度达到设定值 (100ppm) 时, 会触发MCU的P2.0引脚产生高电平, 9013饱和导通, 蜂鸣器发出警报声。系统的其他设施主要有复位按键、电源指示灯和故障诊断电路等。当报警声响起, 按下复位按键可解除警报;R1作为故障自诊断电路, 用于检测传感器电源连接情况。
4 软件部分设计
由主程序、信号采集、看门狗和延时子程序等构成。主程序流程图见图4。
5 系统仿真及调试
按照图2和图3所示电路在Protues软件中设计硬件电路图, 并在Keil C51软件中编写程序, 将生成的.hex文件装载入Protues的AT89C52芯片中, 电气规则检测无误后进行仿真和调试。图5为常温下正常情况下室内的检测结果。由于条件限制, 用热敏电阻模拟CO浓度达到100ppm的情况, 当温度升高到一定程度时二极管VD1会发出红色光, 同时蜂鸣器报警声响起。
本装置以MQ-7为输入探头, 经ADC08062数模转换后送入AT89C52中进行数据处理与分析, 并用MDLS-16265B进行夜晶显示, 浓度达到设定值时声、光报警, 经过仿真, 电路实现了预定要求, 所用分立元件很少, 电路结构简洁可靠, 有一定的使用价值。
参考文献
[1]杨术明, 翟晓华.单片机原理及接口技术[M].武汉:华中科技大学出版社, 2013.2。
[2]ADC08061/ADC08062500ns A/D Converter with S/H Function and Input Multiplexer[EB/OL].National Semiconductor., June1999
[3]点阵字符型液晶显示模块[EB/OL].北京精电蓬远显示技术有限公司, 2001.7
AT89C52 篇7
单片机体积小、功能强大、价格低廉、使用灵活, 本文从实现温室大棚温度的智能控制的硬件、软件设计等两个方面入手, 就利用单片机AT89C52实现大棚温度控制进行设计。
1 硬件选择
1.1 温度传感器DS 18 B2 0性能特点
采用单总线专用技术, 既可通过串行口线, 也可通过其它I/O口线与微机接口, 无须经过其它变换电路, 直接输出被测温度值 (9位二进制数, 含符号位) ;测温范围为-55℃~+125℃, 测量分辨率为0.0625℃;可以将多个DSl8B20温度传感器挂接在一根总线上, 即允许一条信号线上接数十乃至上百个数字式传感器, 每个都有-个在ROM中的64位自己独有的芯片序列号, 可实现多点温度的检测。被测温度用可编程为9位~12位A/D转换精度的串行输出。内含64位经过激光修正的只读存储器ROM;适配各种单片机或系统机;用户可分别设定各路温度的上、下限;内含寄生电源, 其工作电源既可在远端引入、也可采用寄生电源方式产生。
DS18B20控制方法。主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换, 再读出温度转换值。本程序仅挂接一个芯片, 使用默认的12位转换精度, 外接供电电源, 读取的温度值高位字节送WDMSB单元, 低位字节送WDLSB单元, 再按照温度值字节的表示格式及其符号位, 经过简单的变换即可得到实际温度值。在硬件上, DS18B20与单片机的连接有两种方法, 一种是Vcc接外部电源, GND接地, I/O与单片机的I/O线相连;另一种是用寄生电源供电, 此时UDD、GND接地, I/O接单片机I/O。无论是内部寄生电源还是外部供电, I/O口线要接5KΩ左右的上拉电阻。
1.2 AT89C52单片机
A T 8 9C 5 2是在A T 8 9 C 5 1的基础上, 存储器容量、定时器和中断能力等得到改进的型号。
标准单片机的主要性能如下。
4KB或8KB的Flash存储器;128或256字节内部RAM;32条可编程I/O线;2~3个16位定时器/计数器;6~8个中断源;3级程序存储器保密;可编程串行接口;片内时钟振荡器。
AT89C52引脚图如图1所示。
1.3 显示电路的选择
本系统采用四位LED数码管显示, 采用共阳数码管动态显示。
2 系统设计
本系统共包括六部分:主控电路、报警及控制电路、按键电路、复位电路、显示电路及检测电路。系统的总体结构如图2所示。
2.1 主控电路设计
此部分由AT89C52、12MHz晶体振荡器和电阻等元件构成。AT89C52单片机具有CPU系统、存储器系统及I/O口和其他功能单元。
如图3所示。
2.2 显示电路设计
4位0.5IN (英寸) 共阳LED数码管作为温度显示。本系统采用动态显示方式, 4个数码管由位控制依次轮流显示, 同一时刻只有一个数码管显示数字, 其余三个灭, 快速地轮流显示。由于存在视觉暂留现象, 感觉上如同4个数码管同时显示不同的数字。
如图4所示。
2.3 复位电路设计
复位电路采用上电复位与手动复位相结合的方案。手动复位时, 按下复位按钮, 电容C通过电阻R1迅速放电, 使RST∕VPD迅速变为高电平, 松开后, 电容通过R2和内部下拉电阻充电, 逐渐使RST∕VPD恢复低电平。复位电路图如图5所示。
2.4 按键电路设计
本设计设了两个按键, 用于调节上下限的温度。R13, R14为了上拉电阻, 由于P3口内部有上拉电阻可以取消, 此处采用上拉电阻的目的是提高按键可行性。采用C13C14两个电容的目的是消除按键抖动。
如图6所示。
2.5 报警及控制电路设计
当温度超过上下限时, 蜂鸣器发出报警声响, 通过继电器对温度进行反馈控制, 继电器和单片机的P1.3口进行通讯。
2.6 检测电路设计
温度传感器是本系统的重要组成部分, 采用DALLAS半导体公司生产的最新单线智能温度传感器DS18B20作温度检测器DS18B20能够直接将所采集的信号进行模数转换, DS18B20可以被编程, CPU (89C52) 首先写入命令给DS18B20, 然后DS18B20开始转换数据, 转换后通过89C52来处理数据。
3软件设计
3.1系统的主程序设计
主程序是系统的监控程序, 在程序运行的过程中必须先经过初始化, 包括键盘程序, 中断程序, 以及各个控制端口的初始化工作。流程图如图7所示。系统在初始化完成后就进入温度测量程序, 实时的测量当前的温度并通过显示电路在LCD上显示。程序中以中断的方式来重新设定温度的上下限。根据硬件设计完成对温度的控制。按下4×4键盘上的A键可以设定温度上限, 按下B键可以设定温度下限。系统软件设计的总体流程图。
3.2温度监控系统软件设计
温度采集主要由DS18B20传感器完成, DS18B20单线通信功能是分时完成的, 它有严格的时隙概念, 因此系统对DS18B20编程时必须完全按通信协议和时序图进行从上到下分别为主机写时序、读时序、复位时序。整个温度采集过程如下:初始化DS18B20 (发复位脉冲) -发SKIPROM命令代码-发温度转换CONVERT命令代码-等待DS18B20A/D转换-发复位脉冲-发SKIPROM命令代码-发READSCRATCHPAD读温度命令-读两字节温度值-发复位脉冲。
考虑到DS18B20通信传输线路比较长及PIC微处理器端口位操作的独有特性, 编程时必须对连续写同一端口的操作特别注意, 在执行第二条端口写操作指令前一定要确保端口引脚状态已经稳定。常用的方法是在两条写端口操作指令间插1到2个NOP指令。
3.3 AT89C52单片机温控程序
在系统软件中, 主程序完成系统初始化和感应器导通和关断;温度测定、键盘输入、时间确定和显示、控制算法等都由子程序来完成;中断服务程序实现定时测温和温度调节。
4 结语
本系统对AT89c52单片机在大棚温度控制中的应用进行了设计研究, 该系统还可方便接人其他模拟量传感器, 功能扩展性好。液晶模块显示和键盘操作设置系统参数, 人机交互界面好。检测数据准确可靠, 线性度好, 降低了系统成本, 增强了系统的通用性。软件设计采用C语言, 可移植性好, 结构严谨, 开发速度快, 大大减少了软件开发的时间, 具有一定的实用价值。
参考文献
[1]李全利.单片机原理及应用技术[M].北京:高等教育出版社, 2006, 5.
[2]付家才.单片机控制工程实践技术[M].北京:化学工业出版社, 2005, 3.
[3]李国兴, 李伟.单片机开发应用技术[M].北京:北京大学出版社, 2007, 8.
[4]张迎辉、贡雪梅.单片机实训教程[M].北京:北京大学出版社, 2005, 9.
AT89C52 篇8
关键词:AT89C52单片机,温度检测,光强检测,湿度检测,最优控制
随着现代社会的不断发展,人们对生活环境质量的要求也不断提高。很多人会选择在家里培育一些花卉,一方面可以美化家中环境;另一方面可以净化家中的空气,使得人们能够呼吸到更加清新洁净的空气。但是随着社会生活节奏的加快,大多数人没有时间去照顾花卉。基于此现象,市场上出现了各种各样的花卉培养装置,如智能花盆等。但其仅仅只对花卉生长环境的单个影响因素分别进行检测和控制,而并未达到花卉的最佳生长环境。本文在调查了花卉所需生长环境的基础上,选择了对花卉生长最重要的三种因素,即温度、光照强度和土壤湿度来分别进行检测,并将测得的数据进行综合分析,最后得出最佳的控制方案。
1 系统总体设计
系统主要由MCU、温度检测模块、光照强度检测模块、湿度检测模块和液晶显示模块等组成,能够实时地检测花卉生长环境中的温度、光照强度和土壤湿度。在获得三种生长影响因素后,再实时地显示,并通过单片机对三种影响因素进行综合分析得到最优的控制方案。当光照强度太强或太弱时,通过调节花房遮阳板的开度来使得光照强度达到花卉生长最适宜的范围。当花房温度太高或太低时,通过打开空调的加热功能或制冷功能来对环境进行升温或降温,直至环境温度达到花卉生长最适宜的范围。当花卉所生长的土壤湿度不足时,便可通过打开水泵对花卉进行浇水,直至土壤湿度达到花卉生长最适宜的范围。系统总体设计图如图1所示。
2 系统硬件设计
2.1 主控芯片模块
本系统以AT89C52单片机作为主控芯片。AT89C52是Atmel公司生产的一款低电压、高性能CMOS 8位单片机,其主要特性有:1)片内含8 k bytes的可反复擦写的Flash只读程序存储器(ROM)和256 bytes的随机存取数据存储器(RAM);2)器件采用高密度、非易失性存储技术生产,兼容标准MCS-51指令系统;3)片内配置通用8位中央处理器(CPU)和Flash存储单元;4)器件具有32个双向I/O口,3个16位可编程定时/计数器中断,2个串行中断,可编程UART串行通道,2个外部中断源。总体上AT89C52单片机具有接口简单、方便使用、功能强大等优点,并且成本低,所以能为本系统提供高灵活、超高效的解决方案。
2.2 温度检测模块
本系统的温度检测模块采用DS18B20温度检测模块。DS18B20是一种常用的温度传感器,具有测温系统简单、体积小、测温精度高、耐磨耐碰、连接方便、占用口线少、硬件开销低和抗干扰能力强等特点。DS18B20独特的单线接口方式使得其在与微处理器连接时仅需要一条口线即可实现与微处理器之间的通讯。其测温范围为-55℃~+125℃,固有测温误差为1℃。DS18B20在使用中不需要任何外围元件,其可用数据总线供电,电压范围为3.0 V至5.5 V且无需备用电源。本系统中温度检测模块的电路图如图2所示。
2.3光照强度检测模块
本系统的光照强度检测模块采用GY-30模块。GY-30光照强度检测模块的特点有:1)采用I2C总线接口(f/s模式支持);2)无需任何外部零部件;3)光源的依赖性不大;4)对光照强度适应范围宽。本系统中光照强度检测模块的电路图如图3所示。
2.4湿度检测模块
本系统的湿度检测模块采用土壤湿度检测模块。土壤湿度传感器的工作原理基于电磁脉冲原理,其根据电磁波在介质中的传播频率来测量土壤的介电常数,从而得到土壤容积含水量。土壤湿度传感器具有简便安全、快速准确、定点连续、自动化、宽量程等优点。本系统中湿度检测模块的电路图如图4所示。
2.5液晶显示模块
液晶显示模块需要对当前环境的温度、光照强度、土壤湿度进行实时地显示。本系统中的液晶显示模块采用LCD1602液晶显示模块。LCD1602液晶是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。LCD1602液晶具有微功耗、体积小、显示内容丰富、超薄轻巧等特点。本系统中LCD1602液晶显示模块的电路图如图5所示。
3 系统软件设计
在软件设计方面,采用C语言编程实现对AT89C52单片机的控制。C语言具有简洁紧凑、灵活方便、表达方式灵活、可移植性好等特点。本系统的软件设计部分包括系统初始化、温度检测、光照强度检测、土壤湿度检测、电机控制等部分。待传感器将花卉生长环境中的温度、光照强度、土壤湿度三个参量检测到并传给主控芯片后,主控芯片便对温度、光照强度、土壤湿度三个参量通过LCD1602进行显示,并对其进行综合分析从而制定出一种最优控制方案。最后分别对空调开关、水泵开关、遮阳板开度进行相应的控制。系统程序流程图如图6所示。
4 结语
_本系统综合利用AT89C52单片机和各种传感器技术,实现对花卉生长环境的最优控制,从而使得花卉能够处于一个最优的生长环境。经过实践的检验显示,基于AT89C52单片机的智能花卉培育系统具有较好的工作稳定性及较高的工作性能。同时,该系统操作比较简单,只需设置相应的工作参数即可。所设计的基于AT89C52单片机的智能花卉培育系统还具有设计成本低、可扩展性强、便于操作等优点。
参考文献
[1]谭浩强.C程序设计[M].北京:清华大学出版社,2005.
[2]李全利.单片机原理及接口技术[M].北京:高等教育出版社,2009.
[3]周国运.单片机原理及应用(C语言版)[M].北京:中国水利水电出版社,2009.
AT89C52 篇9
随着摄像机、移动电话、笔记本电脑、PDA等便携式电器设备的迅速普及, 与之配套的小型镍氢、镍镉、特别是锂离子电池的生产及需求量也与日俱增。锂离子电池体积小、重量轻;比能量高, 是Ni/Cd电池的3倍;循环寿命长, 充电可达1 000次;安全性好:单体电池电压高, 通常为3.6 V;自放电率低。因此, 其广泛应用于可移动便携式电器设备中。锂离子电池制造成本相对低廉, 随着生产技术的发展, 它还有进一步优化的趋势, 因此是未来最有前途的便携性电池。
使用过程中, 锂离子电池的充电方法和技术引起了人们的重视, 因为它对充电控制电路要求较高, 所以使用中需严格避免出现过充电、过放电等现象[1,2]。对于便携性电池, 人们希望在获得大容量电能的同时, 能够尽量减轻重量, 延长寿命。另外, 由于便携式设备的散热条件一般比较差, 所以对整个电源系统的效率也提出了较高要求。这里针对以上期望设计了一种基于单片机控制的智能电源管理器[3,4]。
1 智能电器主体设计
1.1 主体设计方案
本文中采用了目前应用最为广泛的恒流恒压充电方式, 通过使用开关模式的电源来提供电池充电所需要的电压和电流, 并且应用单片机和一系列周边电路来实现对充放电的控制和电池的保护。
利用单片机和开关电源相结合, 我们就可以构造出一个智能化的锂离子电池智能管理系统:开关电源主功率回路负责将电能转化成电池充电所需要的形式, 同时尽量提高效率, 减小电压电流纹波;单片机负责控制整个系统的运行, 包括充电器参考电压电流值的给定, 充电完毕或者保护状态时充电器的关闭, 根据电池电压、充电电流、温度等各种参数来智能监测电池充电状态和实现对电池的一系列保护。
整个智能管理系统分为2大部分:充电器和电池组。充电器主要包括了主功率回路和一部分的电源控制电路, 而电池组部分则包括电池、检测电路和单片机控制电路。这2部分通过接口互相连接, 能量从充电器传往电池组, 而控制信号一部分控制电池组充放电回路的开通与关断, 另一部分则从电池组发送到充电器, 控制充电器的启动关闭和输出恒压恒流值[5]。
综合考虑后本文选用了ATMEL公司生产的AT89C52单片机, 它含有非易失FLASH、并行可编程的程序存储器, 所有器件都通过引导装载器串行编程 (ISP) 。该单片机是采用了高性能的CMOS的8位单片微控制器, 是80C51微控制器系列的派生, 和80C51指令相同[5,6], 再加上它具有8 Kb的可反复擦写的程序储存器 (EEPROM) 和256 b的随机存取数据储存器 (RAM) , 因此非常适合用作智能管理系统的中心控制单片机 (图1) 。
智能电源管理控制器的设计包括3部分:
(1) 控制电路。控制电路主要包括单片机及其外部的扩展电路, 其主要作用是控制充电电路的工作, 同时对充电电池各项反馈数据 (如电流、电压和温度等) 进行处理。充电器部分的控制电路主要包括负责给充电器部分控制电路供电的辅助电源部分和主功率电路的电源控制芯片部分 (包括PFC和DC/DC两部分的控制) 。除了恒流参考信号、恒压参考信号和电路保护信号由电池组部分的单片机发到充电器控制电路以外, 其余部分的控制功能全部都由充电器的控制电路自主完成。
(2) 充电电路。充电电路主要包括充电芯片和同步整流电路, 它能够根据CPU发出的指令给充电电池提供恒流或恒压。本文设计了一个工频输入, 能够实现恒流恒压输出的AC/DC开关电源。充电器具体指标要求是输入电压:130~265 V;输出电压:0~30 V;输出恒流变化范围:0~10 A。根据这个指标, 我们采用PFC+DC/DC的2级模式, 以增大电源功率因数, 减小对电网的不良影响, 同时避免可能出现的变压器偏磁甚至饱和现象。
(3) 显示等外围电路。显示电路主要包括显示器及其驱动芯片, 其主要作用是方便用户对智能控制器的操作及工作进程有一个直观的了解。其他外围电路由报警和传感器等电路构成。
出于功能、性价比的考虑, 本文采用MAX1898作为充电管理芯片。这是一种线性充电芯片, 其内部有一个精度为0.5%的基准源, 可以作为限压电流源, 满足锂离子电池充电对电压精度的要求。为简化充电器的设计, 采用独立的电压、电流调节回路控制外部PNP晶体管。选用AT89C52单片机作为电源管理控制器的主芯片, 负责输电的控制和提示。智能电源管理电器在单片机的控制下, 能够完成充电管理、充满自停和充完显示及报警等功能。
外围元件及引脚设置方法:
(1) 设置电池节数:1~2节。
(2) 设置浮充电压:在USET与地之间接入精度为1%的电阻, 可调低浮充电压。若USET悬空, 浮充电压为每节电池4.2 V。
(3) 电流调节环路ISET端的电压保持在1.65 V, 选择电阻RSET以满足电流检测放大器输入端所需要的反馈电压。
(4) 为降低外部晶体管功耗, 应尽可能降低输入电源电压, 或使电源电压跟随电池电压变化。
(5) 通过微控制器I/O口设置USET、ISET、ON、OFF端, 通过BATT端分压器监控电池电压, 通过ISET监控电池电流。微控制器电源和复位信号由MAX1898提供。
MAX1898的典型充电电路如图2所示。
1.2 智能电器电路设计
(1) 硬件设计:在单片机和MAX1898控制下, 充电过程分为预充、快充、满充、截止和报警5个部分 (图3) 。
1) 预充。在安装好电池后, 接通输入直流电源, 当充电器检测到输入电压大于电池电压时, 则将定时器复位, 从而进入预充过程。在此期间, 充电器以快充电流的1/10给电池充电, 使电池电压、温度恢复到正常状态。预充时间由定时器的外接电容确定, 如果在规定的充电时间内电池电压达到2.5 V以上, 电池温度正常, 则进入快充过程;如果电池电压低于2.5 V, 则认为电池不可充电, 充电器显示电池故障。
2) 快充。快充过程也称恒流充电, 此时充电器以恒定电流对电池充电。锂电池大多选用1 C充电速率, 充满电池约需要1~2 h。恒流充电时, 电池电压将缓慢上升, 一旦电池电压达到设定的终止电压 (一般为4.1 V或4.2 V) , 恒流充电就会终止, 充电电流快速递减, 进入涓流充电过程。
3) 满充。在涓流充电过程中, 充电电流逐渐衰减, 当减小到20~30 m A时, 补充电完成。一般情况下, 补充电可增加电池5%~10%的使用时间。充电器输入电压范围为220 V±10%, 50 Hz, 充电电流最大可达2.0 A。
4) 截止。当电池正常充满后, MAX1898芯片2引脚发送的脉冲电平将会被单片机检测到, 引起单片机中断并判断出充电完毕的状态。由单片机通过P2.0口输出控制MAX1898芯片的EN/OK脚, 使控制器停止充电, 从而保证芯片和电池的安全, 同时也减小功耗。同理, 当电池因短路或断路不可充电时, 单片机也会控制停止充电并显示电池故障。
5) 报警。当电池充满后, MAX1898芯片本身也会向外接的LED灯发出指令使其闪烁。同时单片机在检测到充满状态的脉冲或电池故障后, 不仅会自动切断MAX1898芯片的供电, 而且会通过蜂鸣器报警, 提醒用户及时取出电池。单片机监测MAX1898的输出信号CHG, 当MAX1898将要完成充电时, 引脚会发出1.5 Hz信号的脉冲, 单片机的INT0引脚接收中断时, 供电就随之中断, 并使其T0计数器开始计数, 当下一个脉冲到来时, 外中断程序会判断计数值是否在4 s左右, 如果是, 则通过控制P1.2输出控制MAX1898芯片的EN/OK脚, 使控制器停止充电, 并引发蜂鸣器报警。
(2) 软件设计:当MAX1898完成充电时, 其CHG引脚会产生由低到高的跳变, 该跳变引起单片机的INT0中断。CHG的输出为高存在3种情况:1) 电池未放进充电器上或无充电输入;2) 充电完毕;3) 充电出错。前2种情况单片机都可以直接控制电源切断, 所以程序只需针对第3种充电出错的情况即可, 该流程如图4所示。
2 智能电器外围电路设计
2.1 液晶显示模块设计
本文采用了内含KS0108B/HD61202控制器的图形液晶显示模块GXM12864, 它是一种采用低功耗CMOS技术实现的点阵图形LCD模块, 有8位微处理器接口, 通过内部的128×64位映射DDRAM (Display Data RAM) 实现128×64大小的平板显示。该液晶显示模块使用KS0108B作为列驱动器, 同时使用KS0107B作为行驱动器。KS0107B不与单片机发生联系, 只要提供电源就能产生行驱动信号和各种同步信号。这样的配置大大简化了设计, 节约了单片机的资源。
这里软件设计的重点在于对液晶模块的驱动。本设计中行驱动芯片KS0107B不与单片机发生联系, 因此只需考虑KS0108B的工作方式和指令控制即可。KS0108B驱动器具有以下特点:内部有64×64=4 096位显示RAM, RAM中每位数据对应LCD屏上一个点的亮暗状态;KS0108B列驱动器有64路列驱动输出;KS01018B的占空比为1/32~1/64;KS0108B内部有输入输出寄存器, 它们相当于微控制器和内部的显示RAM之间的缓冲器。
2.2 看门狗功能设计
看门狗功能用于在系统设计中通过软件或硬件的方式在一定的周期内监控单片机微处理器的运行情况, 如果它在规定时间内没有收到来自单片机微处理器的触发信号, 则会令系统强制复位。
单片机AT89C52监控复位电路由MAX6304实现。单片机P1口的P1.0和P1.1用于LED指示灯的显示, 由红、绿LED构成, 完成简单测试。P1.2口和MAX6304的看门狗 监测器输入脚WDI相连, 单片机程序控制它在一定时间周期内 (小于看门狗的超时时间) 发生电平变化。如果在看门狗的超时时间内MAX6304没有检测到这个变化, 则认为“程序跑飞”或者“死机”。这样, MAX6304的RESET输出脚产生复位信号, 对单片机复位。MAX6304的RESET输出脚和89C52的RESET输入脚相连。MAX6304是否正常工作取决于它的外围电路设计。
对单片机的监控只需要硬件电路就可以实现, 而看门狗功能则需要软件程序的配合, 即在程序中放置“喂狗”语句。“喂狗”语句的放置主要需要考虑间隔时间的问题, 必须在看门狗超时时间内及时让WDI产生电平变化。
3 结语
单片机系统通常工作在一些特定环境中, 不可避免会受到外界的干扰, 这些干扰轻则导致系统内部数据出错, 重则将严重影响程序的运行。为了保护数据, 抑制干扰, 在单片机系统的开发过程中需要进行可靠性设计。所以, 单片机监控电路应运而生, 利用监控芯片和少量外围元件能方便地组成各种有效的复位电路, 并对电源异常情况进行各种监控。这种芯片具有监视功能多、可靠性高、外围元件少、监控电路简单和体积小等优点。因此, 它被广泛应用于计算机、微控制器应用系统、便携式智能仪器、自动控制等领域。
参考文献
[1]张杭.电器智能化系统的国内外现状与发展趋势.机电信息, 2003 (20) :23~24
[2]周志敏.国内智能电器的现状与发展趋势.电器开关, 2002 (6) :2~3
[3]文方, 罗锋华, 黄海哨.基于51单片机的自动寻迹小车控制设计.科技信息, 2010 (2) :50~52
[4]刘昕, 杨峰, 谢晋.基于单机片AT89C52的多功能更电子钟设计.信息化研究, 2010 (4) :61~64
[5]向德军.用于铅酸蓄电池的大容量智能充电系统的研究:[硕士论文].武汉:武汉大学, 2004
【AT89C52】推荐阅读:
TA89C5206-20
STC89C52RC11-05
AT89C205106-02
AT89C51ED2论文05-27
STC89C5106-30
AT牵引供电06-18
AT供电系统07-23
AT咨询公司11-18
89C51单片机07-04
STC89C51RC01-02