基于单片机的二氧化碳浓度器设计(10)

更新时间:2024-05-14 19:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机制作控制继电器的电路

引言

现代自动控制设备中,都存在一个电子电路一电气电路的互相连接问题,一方面要是电子电路的控制信号能够控制电器电路的执行元件(电动机、电磁铁、电灯等),另一方面又要为电子线路的电器电路提供良好的电隔离,以保护电子电路和人身的安全。电子继电器便能起到这一桥梁作用。

如何设计一种投资少,简单易行,仅仅只是在现在的设备基础之上稍加改造,又能从根本上解决对继电器的控制问题的电路呢?

摘要

本实验基于AT89S51所设计的,通过单片机的P2.0和P2.1引脚输出低(高)电平时,三极管Q1和Q2饱和导通(截止),+5V电源加到继电器线圈两端,继电器吸合(释放),同时状态指示灯发光二极管也点亮(熄灭),继电器的常开触点闭合(释放),相当于开关闭合(断开)。

关键词:AT89S51 HK4100F电磁继电器

是为了探索以若空强的道路,我们的课题选定为单片机控制电动机正反转的设计题目。下面跟我一起来探索吧!

题目:单片机制作控制继电器的电路 第1章、 硬件部分结构功能简介:

用单片机控制与三极管相连的I/O口的输出电平,接通或关闭相应的三极管,达到使继电器吸合或断开。从而起到以弱控强的目的。

1.1单片机介绍

将为处理器(CPU)、存储器、I/O接口电路和相应的实时控制器件集成在一块芯片上的单片机微型计算机,简称单片机,特别适用于控制领域,故又称为微控制器。因此,单片机只需要和适当的软件与外部设备相组合,便可成为一个单片机控制系统。

单片机主控电路的主要元件是AT89S51单片机,其外形如下图(图1.1):

AT89S51是低功耗,高性能CMOS8位单片机,片内含4Kbytes的可系编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器与单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性能价比的应用场合,可灵活应用于各

种控制领域。

1.2AT89S51单片机的主要性能参数和主要引脚 1.2-1主要性能参数

与单片机产品兼容4K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口、三个16位定时器/计数器、八个中断源、全双工UART串行通道低功耗空闲和掉电模式、掉电后中断可唤醒看门狗定时器,双数据指针、掉电标识符。

1.2-2AT89S51单片机芯片内部结构简介 1)、中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽处理的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入和输出功能等操作。

2)数据存储器(内部RAM):AT89S51中数据存储器的地址空间为256个RAM单元,但其中能为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。

3)程序存储器(内部ROM):

程序存储器用于存放程序和固定不变的常数等。通常采用只读存储器,且其有多种类型,在51系列单片机中全部采用闪存。AT89S51单片机内部配置了4KB闪存。

4)、定时/计数器(ROM):

用于实现定时和计数功能。AT89S51共有2个16位定时/计数器 5)、并行输入输出(I/O)口:

8051共有4组8位I/O口(PO、P1、P2或P3),用于对外部数据的传输。每个口都由1个锁存器和1个驱动器组成。他们主要用于实现与外部设备中数据的并行输入与输出,有些 I/O口还有其他的功能。

6)、全双工串行口:

AT89S51内置一个全双工串行通信口,用于与其他设备间的串行数据传送,该串行口既可以用于异步通信收发器,也可以当同步移位器使用。

7)、时钟电路:

时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。 8)、中断系统:

中断系统的作用主要是对外部或内部的终端请求进行管理与处理。AT89S51共有5个中断源,其中有2个外部中断源和3个内部中断源。

每个51单片机处理周期包括12个时钟周期,每12个时钟周期用来完成一个操作,如取指令等。指令执行时间为时钟频率除以12后取倒数。如果时钟频率是11.059MHZ,则除以12后得到了每秒执行的指令为921583条,再取倒数将得到每条指令所需的时间为1.085us。

图1-3 51单片机的基本结构

1.2-3主电源引脚

VCC(40脚):接+5V电源正极。 VSS(20脚):接地端。

电源电压范围是4 ~ 5.5V,最高电源电压为6.6V。任何引脚对地的电压范围是-1~7V。

1.2-4外接晶体引脚

XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是相反放大的输入端,这个放大器构成了片内振荡器。当采用外部的时钟时,该引脚作为外部振荡信号的输入端。

XTAL2(18引脚):接外部石英晶体的另一端。在单片机内部,它是反向放大器的输出端。

1.2-5输入/输出引脚

(1)P0口(P0.0~P0.7)(引脚39~32) P0口具有漏极开路结构,还具有双重功能。

作为输出使用时,需要外接上拉电阻(在作为I/O口使用时,T1管夹断)。 若作为输入端使用,需要先将“1”写入端口(使T2管夹断)。 P0口可作为地址总线(AB0~AB7),也可作为数据总线(DB0~DB7)。 P0口可驱动8个LSTTL(低功耗肖特基TTL),其他端口可以驱动4个LSTTL。1个LSTTL负载为0.4mA。

(2)P1口(P1.0~P1.7)(引脚1~8)

P1口内部具有上拉电阻,因此可以作为准双向I/O使用。 作为输入端使用时,需要先将“1”写入端口(使T2管夹断)。 (3)P2口(P2.0~P2.7)(引脚21~28)

P2口内部具有上拉电阻,因此可以作为准双向I/O口使用。 作为输入端使用时,需要先将“1”写入端口(使T2管夹断)。 在将有片外存储器时,P2口作为8位地址总线(AB8~AB15)。 (4)P3口(P3.0~P3.7)(引脚10 ~17) P3口具有上拉电阻,可作为准双向I/O口使用。

作为输入端使用时,需要先将“1”写入端口(使T2管夹断)。 P3口的每个引脚还有第2个功能: P3.0:为串行输入端口(RXD); P3.1:为串行口输出端口(TXD); P3.2:为外部中断0(INT0); P3.3:为外部中断1(INT1);

P3.4:为定时/计数器0的外部输入口(T0); P3.5:为定时/计数器1的外部输入口(T1); P3.6:为外部数据存储器写选通(WR); P3.7:为外部数据存储器写选通(RD);

1.2-6RST(引脚9)

该引脚为单片机的上电复位引脚,高电平有效。当单片机电源电压达到单片机工作电压、同时单片机振荡器正常工作后,该引脚上必须持续两个机器的周期的高电平,才能实现复位操作,使单片机恢复到初始状态。

复位引脚具有双向功能:当上电时,外加电容与单片机内部下拉电阻形成复位电路使单片机复位;当单片机内部的看门狗(WDT)溢出时,该引脚输出高电平,不仅复位单片机,也复位单片机外部需要复位的芯片,以保持各芯片之间复位动作的一致性。若需要RST引脚输出复位信号,则需要1~10KΩ的外部复位电阻。 在只需要上电复位的系统中,由于单片机内部具有下拉复位电阻(阻值为50~300KΩ),所以可以不要外部下拉电阻,电容值可以减小到1uF。一般来说电源达到工作电压值的时间一般在10ms以内,时钟为12MHZ时,起振时间小于1ms。 1.3继电器介绍

本设计是用单片机控制继电器达到以弱控强的电路,下面再来介绍一下单片机和强电之间的桥梁----电磁继电器。

电磁继电器是有触点电继电器是有触点电继电器的一种。它是利用电磁效应实现电路开、关控制作用的原件,广泛应用在电子设备、仪器仪表及自动化设备中。在各种自动设备中,都要求用一个低电压电路提控制一个高电压的电器电路。这样不仅可以为电子线路和电器电路提供良好的电隔离,还可以保护电子电路和人员安全。

首先看看继电器的驱动

这是典型的继电器驱动电路图,这样的电路图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图。

单片机是一个弱电器件,一般情况下他们大都工作在5V甚至更低。驱动电流在mA级以下。而要把它用于一些大功率场合,比如控制电动机,显然是不行的。所以,就要有一个环节来衔接,这个环节就是所谓的“功率驱动”。继电器驱动就是一个典型的、的功率驱动环节。在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件:还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口。这个很重要,因为,一直让我们的电气工程师(我指的是那些没有学习过相应的电子技术的)感到迷惑不解的是:一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西?

怎么样理解这个电路图?

要理解这个电路图,其实也比较容易。那么请您按照我的我的思路来,应该没有问题:

首先的,里面的三极管很重要。三极管是电子电路里很重要的一个元件。怎么样理解三极管呢?

简单的来说三极管有两个作用一个是放大的作用,一个是开关作用。(严格来讲开关作用是是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理)。在这里,我们只了解它跟本电路有关的开关作用 首先把三极管想成一个水龙头

上面的VCC就是水池,继电器是一个水轮机,下面的GND是比水池低的任何一点。刚才说过,三极管就是水龙头,他的把手就是那个带有电阻的引脚。 现在,单片机的某一个需要控制这个继电器电路的输出引脚就是一只“手”,当单片机的这个引脚输出低电平的时候,就像“手”在打开三极管“水龙头”,水就从上往下流,继电器“水轮机”就开始转起来了。反之,如果是输出高电平,“手”就开始关“水龙头”,继电器“水轮机”因为没有水流下来,就会停止。 这就是三极管的开关作用简单的理解记忆就是:三极管是一个开关器件,其实你真的可以将它看成是一个开关,只不过它不是用手来控制,而是用电压(电

流)来控制的,因此,三极管有些时候也被称做电子开关(与机械开关相区别)。图上还有一个东西,是保护二极管,如如果不需要深入理解的话,你大可不必追究为什么有它的存在,但是一定得记住,只要是用三极管驱动继电器的场合,一般都有它的存在。需要特别注意的是它的接法:并联在继电器两端阴极一定是接VCC。

说完了继电器接着当然是看一下电路图了。下面是我们这个设计的电路部分。

第2章、原理图

图2.1

下面我来详细介绍一下这个设计:本设计所选用的是Atmel公司的AT89S51型单片机及DC5VHK4100F继电器和PNP型三极管。首先,将所需元件按电路搭接

图2.2(左图为单片机最小系

统)

这个电路主要由单片机最小系统,按键部分和继电器驱动部分构成。供电采用USB供电:为了起到提示作用,特别加了指示电路。如电源指示电路,和继电器相对应的指示电路:

第3章、 系统设计预期目标:

目标1:当按下按键S1,继电器RLY1和继电器RLY2都不吸合,指示灯D3、D4均不亮;

目标2: 当按下按键S2,继电器RLY1吸合,继电器RLY2不吸合,指示灯D3亮、D4不亮;

目标3: 当按下按键S3、继电器RLY1不吸合,继电器RLY2吸合,指示灯D3不亮、D4亮;

第4章、工作原理:

接通电源,当按下按键S1,单片机管脚P20输出高电平,这时三极管Q1是关闭状态,对应的继电器RLY1是不吸合状态,指示灯D3是不亮状态。同样地,管脚P21输出高电平,三极管Q2也是关闭状态,对应的继电器RLY2也是不吸合状态,指示灯D4也是不亮状态;按下按键S2,单片机管脚P20输出低电平,三极管Q1接通,对应的继电器RLY1吸合,指示灯D3发光。单片机管脚P21输出高电平,对应的三极管Q2是关闭状态,相应的继电器RLY2是不吸合状态,指示灯D4是不亮状态;当按下按键S3,单片机管脚P20输出高电平,对应的三极管Q1处于关闭状态。相应的继电器RLY1不吸合,指示灯D3处于不亮状态。单片机管脚P21处于低电平状态,对应的三极管Q2处于接通状态,相应的继电器RLY2吸合,

指示灯D4发光。这样把继电器RLY1和继电器RLY2的总共6个管脚,通过插针引出,接上正反转的外部电路就可以控制电动机的正反转了。 原理搞清楚了,下面我们就来做PCB板子了。 第5章、下面是我总结的制板“八步走”

开始是用Protel99se或者是DXP2009画出原理图,我是用DXP画的原理图,所以我就来把我画的步骤讲一下吧。其中很多元件的原理图都是我自己画的,为了用这个DXP画图,我花了三四天的时间研究,最后功夫不负有心人,我掌握了这个软件的使用方法,这对于我以后的生活学习来说都是很有用的经验,我下面只是把步骤简单的说一下。

第一步,打开DXP2009,然后新建工程,接着在工程里新建原理图文件,原理图库文件,PCB文件和PCB库文件;

接着,打开原理图文件,在里面放入元件连线(如上图),没有的原件原理图需要自己在原理图库里面画,这个我就不多讲了;

原理图画好后,需要给元件添加相应的封装了。这个封装没有的自己要在PCB库里面画了。把封装添好以后,下面我们就来生成PCB文件了;

第二步,在原理图页面打开设计(D)按钮选第一个选项,更新PCB文件; 接着,打开PCB图页面,这时,你黑色区域里有一个sheet1的网格下生成了一些元件封装,并且按一定规则排列,单击选择这个sheet网格(记住只选这个网格),删除。开始拖动这些封装,你会发现它们之间都有网线连着。接下来,你只需要按照你想要生成的PCB板的模样给这些元件封装布局就可以了;

第三步,布局好以后,就该连线了。先设置一下布线规则,打开设计,规则,更改线宽,等等一系列的规则。改好以后保存。接着,调用布线线工具进行布线,布线完成后保存一下。我再补充一点,画图的时候,最好每做几步就保存一下。养成一个好习惯,这样很有用,避免突发事件(像断电,电脑死机,等等),影响画图制板效率;

第四步,打印 就是把画好的PCB图打印到蜡纸上面,这一步很关键,是连接软件和硬件的桥梁。能不能制成PCB板,关键就是这一步了;

第五步,对于我们纯手工制版来说,就是腐蚀了。把铜板打磨干净,把打印好的蜡纸,转印到铜板上面。然后就是腐蚀了,为了较快腐蚀速度,建议选用盐酸加双氧水组合腐蚀;

第六步,打孔,将腐蚀好的板子,用电钻将焊盘中间的地方打孔; 第七步,组装,将将打好孔的板子按照PCB图把元件安装到板子上面; 最后一步,焊接,把所有元件的管脚都焊接好。

大功告成,然后就是测量电路了,看看硬件是不是有问题。方法:用万用表的电阻档一次测量各个焊点及线路是不是有断线,虚焊问题,如果有的话需重新制版。 第6章、制版中容易出现的问题:

在整个PCB制板过程中,真的可以说是有喜有忧。

首先,我要说说“忧”了,有的是我总共做过两次PCB板子。每一次都是因为考虑问题不周全,等到组装元件的时候,问题就接踵而来。不是少画线了,就是少画元件了。为此,我也请教过老师很多次。

说完忧了,再来说说“喜”,,喜的是,每次忧过,我总去找老师,让老师帮我解决相应的问题,我从中学到了很多以前没有学到的知识,或者说是以前没有注意到的知识,反而,通过这次毕业设计,让让我有了很大的进步。真的很感谢老师。 下面,我来把做这个毕业设计过程中出现的问题罗列出来,供大家参考,引以为

鉴:

第一个问题,出现在我做的第一个板子上,先前,由于搜集资料准备不充足,元件的尺寸参数测量的不够精确,导致PCB板元件封装出现巨大偏差。以至于,当PCB板子打好孔以后,元件安装不上去。为了解决这个问题,我重新又做了一个。 第二个问题,出现在第二个板子上面,这次还是跟前面一样,有重复问题的部分,主要是少布了几条线,该接电源的地方没接电源,还有最重要的一条,P0口接按键或是其他元件必须加上上拉电阻。当我把元件焊接好以后,把编写好的程序下载到单片机中,按照预期目标,PCB板子上的继电器和指示灯没有一点反应。我自己不知道如何让解决,只好请教老师了。经过老师的排查,最后给我下了个结论,P0口接元件,必须加上拉电阻,这个知识点我想我会记住的。向老师要了几个10K的电阻,然后回去,自己又把元件装上了。试了试,这次有反应了,但是跟我想要的预期要求还是不一样,没办法,还得找老师帮忙,经过老师又一次的仔细排查,一个新的问题被发现了,就是我板子上的三极管型号不对,该是PNP型的,而我用的是NPN型的,最后我把板子上的错误型号元件换了。经过检查,硬件问题完全解决了。

第三个问题,程序的问题,按照我编写的程序,下载到单片机中,经过调试,比较,发现程序错误,改吧,只好请教老师了,可调试过后还是不对,PCB板子上的预期现象还是没出现。这次,同样是做单片机毕业设计的同学帮我改正了程序,原来是松手检测的部分写错了,应该是

【while(!(P0_0==0)&&(P0)&&(P0_1==1)&&(P0_2==1));】循环中条件不满足的时候进行到下一步,而我写成了【while((P0_0==0)&&(P0_1==1&&(P0_2==1));】只有当条件满足的时候才能进行。 下面附上我的设计中的程序。 第7章、本设计的C语言程序: #include #define uchar unsigned char #define uint unsigned int Void delay ( uint z) {

Uchar i ,j ; For ( i =z; i >0;i--) For (j=124; j>0; j--); }

Void main ( ) { P0=0xff; While (1) {

If ((P0_0==0) && (p0_1==1) && (P0_2==1)) {

While (! P0_0==0) &&(p0_1)&&(P0_2==1)); P2==0xff; } } }

Else if (P0_0==1)&&(P0_1==0)&&(P0_2==1)); P2=0xff; } } }

Else if ((P0_0==1)&&(P0_1==0)&&(P0_2==1)) {

Delay (5); {

If ((P0_0==1)&&(P0_1==0)&&(P0_2==1)) {

Delay (5); {

If ((P0_0==1) && (P0_1==0) && (P0_2==1)) {

While (! (P0_1==1)&& (P0_1==0) && (P0_2==1)); P2=0xfe; } } }

Else if ((P0_0==1)&&(P0_1==1)&&(P0_2==0)) {

Delay (5); {

If ((P0_0==1) && (P0_1==1) && (P0_2==0)) {

While (! (P0_0==1) && (P0_1==1) && (P0_2==0)); P2=0xfd; } } } } }

现在算是软件硬件都合格了,预期的设计目标也实现了,就是下面的结果: 目标1:当按下按键S1,继电器RLY1和继电器RLY2都不吸合,指示灯D3、D4均不亮;

目标2:当按下按键S2,继电器RLY1吸合,继电器RLY2不吸合,指示灯D3亮、D4不亮:

目标3:当按下按键S3,继电器RLY1不吸合,继电器RLY2吸合,指示灯D3不

亮、D4亮; 第8章、总结:

通过本次的学习,让我们学到了很多东西,动手能力也增强了。而且通过自己的努力学会了一个软件DXP,虽然前提是我以前学过Protel99se,有这个软件的基础了。但通过自己的摸索、自学软件确实很有挑战性。还有他让我们懂得团体合作的重要性。在做我选定的项目的过程中,我分步完成,在网上找资料,然后整理资料,研究方案的可行性和不足的地方,在对它进行改进,在这过程中让我体会到学习或生活中仔细是很重要的。

第二,它让我对书本知识有进一步的理解。平时在学习书本知识时,觉得难以理解,对元件的认识也不太清楚,但经过这次的毕业论文设计制作,让我收获不少。平时对书本的学习我们只是记,并没有将知识结合实践和实物来理解。经过这次设计制作,充分运用书本知识,让我学有所用,也让我将书本知识记得更牢固, 找到了好的学习方法,就是将书本知识联系实际和电子实物。在元件的认识中我也体会不少。

第三,它让我学到书本上没有的知识。以前只是看书,学书本知识,眼光只停留在书本层面上,对其他的资料是不加留意的。而这次的方案设计制作让我知道书本知识是远远不够的,电子行业知识更新换代的速度是很快的,这就要求我们跟多跟丰富的知识,所以我们不仅要学好书本知识,也要对其他资料知识进行了解。总的来说这次设计让我学习到很多。 第9章、答谢词

学习了有关本次设计的知识后,我就开始了实际的设计部分,在这过程中遇到了不少问题和困难,比如单片机管脚是否接上拉电阻、程序的斧正等,在此我要衷心的感谢在此过程中刘莉莉老师给予的耐心指导和同学们的帮助。

实验室检验真理的唯一标准,经过3年的理论学习而这次在即将走向工作岗位的时候,能将理论与实践结合的机会来锻炼自己可谓是难得一次的提高,再次感谢在此过程中给予我极大帮助和理解的刘莉莉老师及同学。 参考文献

1、马忠梅.单片机C语言应用程序应用设计。北京:北京航天航空大学出版社,2007.

2、陈明莹.8051单片机基础教程。北京:科学出版社,2003.

3、刘昌华.易逵.8051单片机C语言应用程序设计与实践。北京:国防工业出版社,2007。

4、李朝青.PC机及单片机数据通信技术。北京:北京航天航空大学出版社,2007。

本文来源:https://www.bwwdw.com/article/yfz7.html

Top