文档详情

基于单片机的继电器控制

gg****m
实名认证
店铺
DOCX
320.82KB
约19页
文档ID:227197950
基于单片机的继电器控制_第1页
1/19

0 前言 11总体方案设计 12硬件电路设计 22. 1 单片机系统 22. 1. 1晶振时钟电路 22. 1. 2复位电路 32. 2电流驱动系统 32. 3发光二极管演示系统 52. 4独立键盘系统 53软件设计 63. 1软件执行过程 63. 2子程序模块 64调试分析 85 结论及进一步设想 9参考文献 9课设体会 9附录1 电路原理图 10附录2程序清单 11基于单片机的继电器控制系统设计胡启洋沈阳航空航天大学自动化学院摘要:本文设计了一种基于单片机的继电器控制系统,由单片机、继电器、驱动电路、 发光二极管、独立键盘等部分组成,主要使用了单片机开发板上STC公司生产的 89C54RD+型号单片机及其最小系统、ULN2003A达林顿管驱动芯片> JQC-3F-O5VDC-1ZS 型号继电器、四个发光二极管,运用定时器精准定时对继电器开关进行控制,并在继电 器输出端使用发光二极管显示在以上基础上,实现了 8路继电器的循环控制功能 关键词:单片机;继电器;驱动电路0前言继电器是当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导 通或断开的电器它可分为电气量(如电流、电压、频率、功率等)继电器及非电气量(如 温度、压力、速度等)继电器两大类。

继电器具有动作快、工作稳定、使用寿命长、体积 小等优点广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称 输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一 种"自动开关"故在电路中起着自动调节、安全保护、转换电路等电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的只要圈两端加上一定 的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸合的作用 下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合当 线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用下返回原来的位置,使动 触点与原来的静触点(常闭触点)吸合这样吸合、释放,可以这样来区分:继电器线圈 为通电时处于断开状态的静触点,成为“常开触点”;处于接通状态的静触点称为“常闭 触点”1总体方案设计针对本课题的设计任务,进行分析得到:本次设计通过单片机I/O 口输出高低电平控 制继电器的输入端,采用ULN2003A型号的达林顿管驱动芯片加大输入电流,使用内部 定时器中断进行精准计时,实现继电器通断时间分别为1秒、2秒的精准控制,并实现通 过继电器进行八路发光二级管循环1秒的控制。

该继电器控制系统的设计,在总体上大致可分为以下几个部分组成:1.单片机及其最 小系统电路,为了使单片机正常工作,需要加入晶振电路,为了使单片机方便使用,需要 加入复位电路2.继电器驱动电路部分由于单片机输出的电流不足以使电磁继电器的线 圈产生足够大的磁力,无法使衔铁与触点簧片吸合,就不能使继电器正常工作为了使继 电器正常工作,需要加入放大电流的驱动电路该设计考虑了两种不同的驱动方案:(1) 使用ULN2003A达林顿管驱动芯片进行驱动,此方案简单易用,只需一个芯片便可驱动7 路继电器;(2)采用PNP型三极管放大电路,该方案目的明确,易于理解3.定时器计时 部分该设计中采用了定时器1的工作方式1,装入的初值是(65535-50000),在计满50000 个数之后,TF1置为1,产生中断,当使用晶振频率为12MHz时,定时器刚好每50ms产生 一次中断,这个时间的20倍恰好是1秒中,这样便可实现1秒与2秒的精准控制图1系统原理框图精 准 定 时发光 二级 管的 演示整个电路的工作原理是单片机首先定义定时器1的工作方式为1,使用晶振频率 12MHz,装入初值(65535-50000),这样当开启定时器1时每50ms产生一次中断,累计 20次便为1秒,1秒累计2次便为2秒,通过设置标志位flag的状态,区别继电器的通 2秒与断1秒。

设置P2 口为输出口,将P2 口连接在ULN2003A的输入端,ULN2003的电源 端接+5V电源,地端接地,输出直接接在继电器的一个输入端,继电器的另一个输入端接 地这样便可通过控制P2 口的高低电平,来控制继电器的通断2硬件电路设计2.1单片机系统2.1.1晶振时钟电路晶振是单片机正常工作的必要器件,他提供时钟周期,执行程序代码它的连接方式 是XTAL1和XTAL2端分别接晶振的两端,再接两个小电容后接地,如图1所示单片机工 作时,是一条一条地从ROM中取指令,然后一步一步地执行单片机访问一次存储器的时 间,称之为一个机器周期,这是一个时间基准一个机器周期包括12个时钟周期为了 实现精准定时,本设计中采用的晶振为12MHz,它的时钟周期是l/12us,它的一个机器周期是 12X (l/12)us,也就是luso• • -

89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的 当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2 个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位单片机系统的复位 方式有:手动按钮复位和上电复位,此设计中采用手动按钮复位,需要人为在复位输入端 RST上加入高电平,如图1所示一般采用的办法是在RST端和正电源Vcc之间接一个按 钮当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端手动按钮复位的电路如 所示由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时 间要求2.2电流驱动系统本设计采用了两种不同的驱动方案:OUI 1OUT 2OUT 3EOUT 4OUT 6IN 6IN 7ONDuOUT 7(1)方案一是直接采用达林顿管驱动芯片ULN2003Ao共7路输入和7路输出,每 甘输 亥电 俞出 平1 主较 点2 图3 ULN2003A芯片内部结构RL1::W172DIP-5 4TEXT>图4单片机通过ULN2003A驱动继电器(2)方案二是采用PNP型三极管放大电路,如图5所示,线圈两端的电流由三极管 来提供,当单片机控制端给三极管的B极送低电平时,三极管导通,继电器线圈有电流 通过,继电器吸合;相反,当单片机控制端给三极管的B极送高电平时,三极管截止, 继电器线圈无电流通过,继电器断开。

在继电器两端接一个二极管是非常重要的,必须连 接,因为,线圈通电正常工作时,二极管对电路不起作用当继电器线圈在断电的一瞬间 会产生一个很强的反向电动势,在继电器线圈两端反响并联二极管就是用来消耗这个反向 电动势的,如果不加这个反向二极管,反向电动势会直接作用在驱动三极管上,很容易将 三极管烧坏U112— >XTAL1PO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5W172DIP-5 • • •XTAL2务 pseFFP0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A1121二•007 R彳 1k Q1 --MPSA55

图7独立键盘电路3软件设计根据设计方案,本设计使用了编程软件Keil uVision3,使用C语言进行编程,使用 protues 7 professional进行了仿真,并且使用了单片机开发板实现了程序,实现了最终目 的3.1软件执行过程本课题的软件设计采用了模块化设计的思想主程序流程如图8所示,在流程图中, KI、K2分别表示独立键盘的第一、第二个按键,程序开始运行时,先初始化数据,定义 定时器的工作方式,装入定时器初值,打开定时器中断允许开关,打开总中断开关进入 键盘扫描程序,若按下K1键,则进入程序1,开启定时器后进入while (1)的死循环等 待定时器中断产生,每50毫秒产生一次中断,20次中断后时间到达1秒,继电器连通1 秒后断开,再通过定时器计时2秒后,重新接通,如此往复循环;若按下K2键,则进入 程序2,给P2 口给Oxfe,使得只有P2.0 口控制的继电器处于接通状态,开启定时器后进 入while (1)的死循环等待定时器中断产生,每隔一秒8个继电器的状态左移一位,如此 循环往复3.2子程序模块在整个程序中,共包含了主程序、定时器1中断程序、独立键盘扫描程序主函数先 定义定时器1的工作方式并装入初值,此处选用工作方式1,装入的初值是15536o这里 先解释一下装初值的问题,定时器一旦启动它便在原来的数值上加1计数,若在程序开始 时没有设置TH1和TL1,他们的默认值就都是0,时钟频率为12MHz, 12个时钟周期为 一个机器周期,那么此时机器就是lus,计满TH1和TL1就需要216-1个数,定时器装初值图8程序流程图再来一个脉冲计数器溢出,随即向CPU申请中断。

因此溢出一次共需要65536us,则 我们要定时50ms的话,就需要给TH1和TL1装初值,在这个初值的基础上计50000个 数后,定时器溢出,此时就是刚好50ms 一次中断,TH1和TL1中要装入的总数为 65536-50000=15536,把 15536 对 256 求模:15536X256=60 装入 TH1 中,把 15536 对 256 求余:15536%256=176装入TL1中则当定时器工作在方式1,设机器周期为T,定时器 产生一次中断的时间为t,那么需要计数的个数N=t/T,则装入THX和TLX中的数就分 别为:THX=(65536-N)/256 (1)TLX=(65536-N)%256 (2)在打开了中断总开关和定时器1的开关后,累计20次中断就成为1秒,这样就形成了 1 秒的精准定时在独立键盘扫描程序中,使用了 2个if语句,分别表示检测K1键和K2 键是否按下,通过给定义的pro赋不同的值来控制定时器中断子程序执行的语句,当pro 为0时,以flag为标志,区别是接通1秒还是断开2秒,用if语句判断,若flag为0,为 接通1秒,若flag为1,为断开2秒;当pro为1时,同样通过if语句实现其功能,先给 输出P2赋值0xfe,l秒后按位左移1位,并将移动后的数与0x01作或运算,刚好得到Oxfd, 以后的每次运算都作这种处理,便可实现循环左移的功能,当循环8次后,经或运算的结 果为Oxff,并将永久保持下去。

下载提示
相似文档
正为您匹配相似的精品文档