基于单片机的继电器控制
基于单片机的继电器控制设计毕业论文
作者签名:日期: 年 月 日
导师签名: 日期: 年 月 日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:引言(或绪论)、正文、结论
1.3单片机的
单片机在一块半导体硅片上集成了计算机的所有基本功能部件,包括中央处理器、存储器、输入输出接口电路、中断系统、定时器计数器和串行通信接口电路等,因此,单片机只需要与适当的软件及适当的外部设备相结合,就可以构成一个完整的计算机应用系统。
单片机诞生于20世纪70年代,作为微型计算机的一个重要分支,应用面很广,发展很快。如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段:
(1)红外解码思路及红外解码原理的分析。
(2)设计相关控制电路、接收电路、以及被控功能电路。
(3)采用C程序语言进行相关程序的模块化编程并调试。
(4)通过电路设计图进行实物焊接并调试,实现红外开关控制功能。
第2章 系统硬件部分设计
2.1 系统硬件设计原理及
在进行系统硬件设计时,首先需要保证的便是整个系统的功能性与稳定性,将各个硬件电路模块进行认真仔细的分析,在通电之前,需要排除断路与短路现象的存在,以保证系统调试安全性,避免上述问题造成的硬件系统损坏等的不良结果,同时还需考虑到成本的客观因素,以使本设计简单易懂而又经济实用。
而从各国将遥控技术在航天、工业等方面得到广泛应用和发展后,遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。
单片机控制继电器设计单片机技术课程设计
单片机技术课程设计说明书继电器控制目录一理论部分1-1 课题要求与内容 (1)1-2 系统方案设计说明 (2)1-3 系统硬件设计 (3)1-4 系统软件设计 (4)二实践部分2-1 系统硬件原理及其说明 (5)2-2 系统硬件调试遇到的问题及解决方法 (6)2-3 相关系统软件 (7)2-4 系统软件程序 (8)2-5 系统软件调试遇到的问题及解决方法 (9)三小结 (11)四参考文献 (13)设计题目:继电器控制一理论部分1课题要求与内容设计目的:掌握用继电器的基本方法和编程。
设计要求:利用P1口输出高低电平,控制继电器的开合,以实现对8个外部电路的开关控制,每个通道用一个按键控制,并且要有LED数码管状态显示开关状态,要求有光电隔离。
2 系统方案设计说明三极管看成一个控制开关器件。
通+5v电源后三极管导通,初始状态为继电器是吸合状态。
当单片机接受指令后,相应的三极管基极变化为0V左右,使三极管处于截止状态。
方案一:三极管位于继电器下方,此种的连接方法三极管没有工作在饱和状态,即VCE未达到典型值0.2V,使得继电器线圈两端电压未达到理想值,一般达到4.4V。
改变电阻R可得到测试结果如下:1)R=2K,VCC=5V,此时VCE=0.96V,线圈电压4.04V。
2)R=4K,VCC=5V,此时VCE=1.2V,线圈电压3.8V3)R=6K,VCC=5V,此时VCE=1.6V,线圈电压3.4V。
这几种情况下,三极管工作在放大状态。
而继电器要求三极管工作在饱和区,作为开关来使用。
改变R的值,可得到想要的结果。
采用下图可得到结果如下:(1)R=2K,VCC=5.02V,此时VCE=0.037V,线圈电压4.983V。
(2)R=6K,VCC=5.02V,此时VCE=0.06V,线圈电压4.96V。
可见,R大小对线圈两端电压影响较小,达到继电器要求。
三极管一直工作在饱和区,达到设计要求。
单独测试继电器,VCC缓慢增加时,到3.4V时吸合;VCC下降到1.1V是断开。
单片机继电器的工作原理
单片机继电器的工作原理单片机继电器的工作原理主要是通过单片机控制继电器的开关,从而实现电路的开闭。
下面将从继电器的结构、原理以及单片机控制的角度来详细解释。
一、继电器的结构和原理:继电器是一种电控开关装置,由线圈、铁芯、接点和外壳组成。
其工作原理是通过电流通过线圈产生磁场,使铁芯产生磁化,从而吸引或释放接点,实现电路的开闭。
具体来说,继电器的结构和原理包括以下几个方面:1. 线圈:线圈是继电器的控制部分,通常由绝缘线材制成,可以根据实际需求进行绕制。
当线圈通过电流时,会产生磁场,从而使铁芯受到吸引力。
2. 铁芯:铁芯是继电器的动作部分,通常是由磁导材料制成,铁芯的磁导率比空气高,可以增强磁场的作用。
当线圈通电时,铁芯受到磁场的吸引力,会向线圈移动,从而影响接点的状态。
3. 接点:接点是继电器的主要开闭部分,通过铁芯的移动,可以实现接点的吸合或分离。
接点通常由铜材制成,具有良好的导电性和耐磨性。
接点的状态可以分为常开接点(NO)、常闭接点(NC)和公共接点(COM)。
4. 外壳:外壳是继电器的保护部分,通常由绝缘材料制成,可以防止继电器内部零部件受到损坏。
同时,外壳还具有保护用户安全的功能,防止电流泄露。
在未通电时,继电器的线圈中没有电流通过,对应的线圈产生的磁场也就没有了,铁芯处于非磁化状态,接点处于初始状态,即常闭接点(NC)闭合,常开接点(NO)断开。
当线圈通过电流时,线圈产生磁场,使得铁芯受到吸引力,向线圈方向运动,同时改变接点的状态。
如果是NC接点,则断开;如果是NO接点,则闭合。
继电器的工作就是通过控制线圈的通断来控制接点的状态,从而实现电路的开闭。
二、单片机控制继电器的原理:单片机作为一种集成电路,可以通过外部引脚与继电器进行连接,从而实现对继电器的控制。
单片机控制继电器可以通过以下几个步骤完成:1. 连接线路:首先,需要将单片机的输出引脚与继电器的线圈进行连接。
线圈一端连接到单片机的输出引脚,另一端连接到电源的正极(通常是Vcc)。
单片机控制继电器的电路毕业设计
实验与测试的结果分析和结论
实验目的:验证单片机控制继电器的可行性和稳定性
实验方法:使用单片机控制继电器,观察继电器的工作状态和性能
实验结果:继电器能够按照单片机的指令进行工作,性能稳定
结论:单片机控制继电器的电路设计是可行的,具有较高的稳定性和可靠性。
单片机控制继电器在未来的应用和发展前景
智能家居:实现家庭电器的智能化控制
工业自动化:提高生产效率,降低人工成本
汽车电子:实现汽车电子系统的智能化控制
医疗设备:实现医疗设备的智能化控制,提高医疗水平
航空航天:实现航空航天设备的智能化控制,提高安全性和可靠性
物联网:实现物联网设备的智能化控制,提高数据传输和处理能力
04
单片机控制继电器实验与测试
实验与测试的目的和内容
目的:验证单片机控制继电器的可行性和稳定性
内容:包括硬件连接、软件编程、测试方法、结果分析等
硬件连接:单片机、继电器、电源、开关等
软件编程:编写控制继电器的程序,实现开关控制
测试方法:通过模拟实际应用场景进行测试,如开关控制、故障检测等
结果分析:分析测试结果,评估单片机控制继电器的性能和可靠性
任务3:测试和调试软件,确保其稳定性和可靠性
任务4:编写软件文档,包括需求文档、设计文档、测试文档等
单片机控制继电器软件设计的实现方法
软件调试:使用仿真软件进行软件调试,确保程序能够正确运行
硬件测试:在实际硬件环境中进行测试,确保程序能够正确控制继电器
单片机编程:使用C语言或汇编语言编写程序,实现对继电器的控制
汽车电子:用于控制汽车电子设备,实现智能驾驶
医疗设备:用于控制医疗设备,实现智能化医疗
基于PIC12F675单片机的可编程多功能时间继电器的设计
基于PIC12F675单片机的可编程多功能时间继电器的设计摘要:定时控制是最基本的自动控制方式,由单片机制作的定时控制,具有定时精确,电路简单等诸多优点,能够实现多种定时模式,利用MCU内部的多个TMR模块,可以设计成多个集成的时间继电器,利用MCU内部的多路ADC转换模块通过各自的电位器独立调整延时时间,而且各定时模块可以级联控制,实现电动机控制电路的简化,如果通过IO口连接外部信号,便于实现多种简单的自动控制。
关键词:MCU、定时器、AD转换、级联控制1、引言常用的电子时间继电器普遍使用CD4060振荡计数分频CMOS集成电流构成,一般采用外部RC振荡器,定时精度低、控制功能单一。
由于这种电子时间继电器内部带有小功率稳压电源模块,用引脚较少的单片机取代原数字电路芯片,可以实现多个定时器集成在一起,或者多个定时级联控制。
如果用较少引脚的单片机构成时间继电器,则提高定时精度,而且实现多个时间继电器的集成,通过编程可以实现多个时间继电器的级联控制。
从而可以大大简化控制电路,节省了线材。
2、单片机及选型单片机又称微控器MCU,生产厂家和品牌很多。
众所周知proteus是开发单片机产品最好用的仿真软件,不但能够进行单片机仿真,而且能够进行电路仿真和PCB电路设计,因此选型时首先考虑容易购置且在proteus中有仿真模型的MCU产品。
经典的普林斯顿构架的51单片机,内部资源少,引脚多,不适合单片机产品的开发。
PIC单片机虽然品种繁多,但是一个IDE软件可以通吃,而且在proteus仿真软件有丰富的仿真模型,这样便于电路研发设计。
其中有PIC12F675[1]单片机是PICF12系列单片机中内部资源较为丰富的品种。
其内部有两个可编程定时器模块TMR0和TMR1,还具有4路10位ADC转换模块和比较器模块,比较适合制作时间继电器的控制电路。
选用PIC单片机的另一个好处是有廉价的替代品,台湾的麦肯单片机质优价廉,可以直接取代。
stm32单片机控制继电器代码
stm32单片机控制继电器代码1.引言1.1 概述在本文中, 我们将探讨如何使用STM32单片机来控制继电器。
继电器是一种常见的电子元件,用于控制电路的打开和关闭。
它可以通过小电流控制大电流,并在电路中起到开关的作用。
本文的目的是介绍如何使用STM32单片机来实现对继电器的控制。
我们将通过编写相应的代码,实现STM32单片机与继电器的连接,并控制继电器的开关。
此外,我们还将介绍继电器的原理和应用,并提供一些实际的应用案例和展望。
通过阅读本文,读者将会了解到如何利用STM32单片机来控制继电器,并且可以将所学知识应用于各种实际情境中。
本文将以易于理解和实践的方式呈现相关内容,以帮助读者更好地理解和掌握这一技术。
1.2文章结构1.2 文章结构本文将分为三个主要部分进行讨论。
首先,引言部分将提供关于文章的背景和主要目标的概述。
其次,正文部分将介绍STM32单片机的基本概念和特性,以及继电器的原理和应用。
最后,结论部分将展示如何实现STM32单片机控制继电器的代码,并提供一些应用案例和展望。
在正文部分中,我们将首先详细介绍STM32单片机的基本知识,包括其架构、性能和应用领域。
随后,我们将探讨继电器的原理和工作方式,以及在各种电子系统中的广泛应用。
通过对继电器的深入理解,我们将能够更好地理解STM32单片机控制继电器的代码实现过程,并加深对其应用的认识。
在结论部分,我们将给出一份实现STM32单片机控制继电器的代码示例,以帮助读者更好地理解如何利用STM32单片机实现对继电器的控制。
此外,我们还将提供一些实际应用案例,展示继电器在各种领域中的重要作用,并展望未来其在智能控制系统中的潜在应用。
通过本文的阅读,读者将能够掌握STM32单片机控制继电器的基本技术,并了解其在各种实际场景中的应用前景。
通过以上的分析和讨论,本文将全面介绍STM32单片机控制继电器的相关知识和技术,为读者提供一份系统而全面的指南。
用单片机 控制继电器
用单片机控制继电器用单片机控制继电器2010-05-2516:13首先看看继电器的驱动这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图为什么要明白这个图的原理?单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.这个很重要,因为,一直让我们的电气工程师(我指的是那些没有学习过相应的电子技术的)感到迷惑不解的是:一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西?怎么样理解这个电路图?要理解这个电路,其实也比较容易.那么请您按照我的思路来,应该没有问题:首先的,里面的三极管很重要.三极管是电子电路里很重要的一个元件.怎么样理解三极管呢?简单的来说三极管有两个作用一个是放大作用,一个是开关作用.(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理).在这里,我们只了解它跟本电路有关的开关作用.首先把三极管想成一个水龙头.上面的Vcc就是水池,继电器是一个水轮机,下面的GND是比水池低的任何一点.刚才说过,三极管就是水龙头,它的把手就是那个带有电阻的引脚.现在,单片机的某一个需要控制这个继电器电路的输出引脚就是一只"手",当单片机的这个引脚输出低电平的时候,就像"手"在打开三极管"水龙头",水就从上往下流,继电器"水轮机"就开始转起来了.反之,如果是输出高电平,"手"就开始关"水龙头",继电器"水轮机"因为没有水流下来,就会停止.这就是三极管的开关作用.简单的理解和记忆就是:三极管是一个开关器件,其实你真的可以将它看成是一个开关,只不过它不是用手来控制,而是用电压(电流)来控制的,因此,三极管有些时候也被称做电子开关(与机械开关相区别).图上还有一个东西,是保护二极管,如果不需要深入理解的话,你大可不必追就为什么有它存在,但是一定得记住,只要是用三极管驱动继电器的场合,一般都有它的存在.需要特别注意的是它的接法:并联在继电器两端阴极一定是接Vcc【电子制作实验室-转】这里我们先要安装好51试验板上的两个轻触按钮开关,我们采用的是独立式按钮开关,也就是说将开关直接连接到电源的地和单片机的对应引脚之间,这里K1接到单片机的P3.6引脚,K2接到P3.7。
单片机控制继电器设计报告
单片机课程设计报告——单片机控制继电器摘要:本实验是基于AT89S51单片机所设计的。
通过单片机的P3.6引脚输出低(高)电平时,三极管T5饱和导通(截止),+5V电源加到继电器线圈两端,继电器吸合(释放),同时状态指示的发光二极管也点亮(熄灭),继电器的常开触点闭合(释放),相当于开关闭合(断开)。
关键词:AT89S51 HK4100F电磁继电器一、目的、用途、功能1.1目的:设计一种投资少,简单易行,仅仅只是在现在的设备的基础之上稍加改造,又能从根本上解决对继电器的控制问题。
1.2用途与功能:现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全。
电子继电器便能完成这一桥梁作用。
二、硬件设计2.1硬件设计思想单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接2.2部分硬件方案论述方案一:8550位于继电器下方,此种的连接方法8550没有工作在饱和状态,即VCE未达到手册所说明的典型值0.2V,使得继电器线圈两端电压未达到理想值,一般达到4.4V。
改变电阻R,测试结果如下:1)R=2K,VCC=5V,此时VCE=0.96V,线圈电压4.04V。
2)R=4K,VCC=5V,此时VCE=1.2V,线圈电压3.8V3)R=6K,VCC=5V,此时VCE=1.6V,线圈电压3.4V。
动手用单片机控制5V继电器
动手用单片机控制5V继电器用单片机控制继电器这里继电器由相应的S8050三极管来驱动,开机时,单片机初始化后的P2.3/P2.4为高电平,+5伏电源通过电阻使三极管导通,所以开机后继电器始终处于吸合状态,如果我们在程序中给单片机一条:CLR P2.3或者CLR P2.4的指令的话,相应三极管的基极就会被拉低到零伏左右,使相应的三极管截至,继电器就会断电释放,每个继电器都有一个常开转常闭的接点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管.主要技术参数1.触点参数:触点形式:1C(SPDT)触点负载:3A 220V AC/30V DC阻抗:≤100mΩ额定电流:3A电气寿命:≥10万次机械寿命:≥1000万次2.线圈参数:阻值(士10%):120Ω线圈功耗:0.2W额定电压:DC 5V吸合电压:DC 3.75V释放电压:DC 0.5V工作温度:-25℃~+70℃绝缘电阻:≥100MΩ型号:HK4100F-DC5V-SH线圈与触点间耐压:4000V AC/1分钟触点与触点间耐压:750V AC/1分钟继电器工作吸合电流为0.2W/5V=40mA或5V/120Ω≈40mA。
三极管基极电流:继电器的吸合电流/放大倍数=基极电流(40mA/100 =4mA),为工作稳定,实际基极电流应为计算值的2倍以上。
基极电阻:(5V-0.7V)/基极电流=电阻值(4.7V/8mA =3.3KΩ)。
这里单片机IO口输出高电平触发三极管导通。
经过以上的分析计算得出:三极管可用极性是NPN 的9014或8050,电阻选3.3KAT89S52 每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为 10 mA;每个 8 位的接口(P1、P2 以及 P3),允许向引脚灌入的总电流最大为 15 mA,而 P0 的能力强一些,允许向引脚灌入的最大总电流为 26 mA;全部的四个接口所允许的灌电流之和,最大为 71 mA。
单片机控制强电继电器的原理
单片机控制强电继电器的原理单片机控制强电继电器的原理是利用单片机的控制信号来控制继电器的工作状态。
首先,了解单片机和继电器的基本原理是很重要的。
单片机是一种集成电路,它集成了中央处理器、内存、输入/输出接口和其他辅助电路。
它可以用来控制和处理各种数字和模拟信号。
继电器是一种电流电压转换设备,它能够在控制信号发生变化时,通过绝缘电磁原理来控制高电流的通断。
继电器通常由电磁继电器和固态继电器两种类型。
下面是单片机控制强电继电器的基本原理:1. 硬件连接:首先,将单片机的IO口与继电器的控制端相连接。
这样单片机就可以通过IO口输出高低电平的控制信号来控制继电器的工作。
2. 编程控制:在单片机的程序中,编写相应的代码来控制IO口的输出信号。
可以使用高级语言如C语言或汇编语言来编写程序代码。
3. 信号逻辑:根据实际应用的需求,确定IO口输出高低电平信号和继电器的工作状态之间的对应关系。
通常,可以设置IO口输出高电平信号来控制继电器的吸合,输出低电平信号来使继电器断开。
4. 电流保护:在控制继电器的电路中需要考虑电流保护。
继电器通常具有控制电流和工作电流的限制。
单片机的IO口有一定的驱动能力,但可能不足以直接驱动继电器,所以可以使用驱动电路来增加IO口的驱动能力。
5. 隔离保护:为了保护单片机免受强电干扰或电压反扑,通常在单片机与继电器之间加入隔离电路。
例如,可以使用光耦隔离器或继电器驱动芯片等来实现隔离保护。
6. 程序设计:在单片机的程序中,编写控制继电器的代码。
可以使用单片机的GPIO口或特殊功能寄存器来设置IO口的输出状态,从而控制继电器的工作。
7. 验证和调试:编写完控制继电器的代码后,需要进行验证和调试。
可以通过使用调试工具或示波器来监测IO口的信号,确保控制信号正确生成,并且继电器的工作符合预期。
在实际应用中,单片机控制强电继电器的原理可以应用于各种场合。
例如,可以利用单片机控制继电器来实现家庭自动化系统、工业自动化控制、电力系统的电气保护等。
单片机实验-定时器控制继电器
实验18 定时器控制继电器一、实验目的1、了解继电器的原理和作用;2、掌握定时器中断的编程方法;3、学习利用定时器中断控制继电器的基本方法。
二、实验原理继电器是电气测量和控制电路中常见的执行元件。
利用单片机控制继电器操作的电路原理如图3.4.1所示。
ULN2003为继电器驱动元件,每路输出端可驱动500mA电流,继电器线圈的工作电流约为10mA。
图3.4.1中左侧的大虚线框内为ULN2003的内部电路,在输出引脚和电源之间带有一个续流二极管。
图3.4.1右侧小虚线框内为继电器内部电路。
将继电器的线圈一端连接到电源VCC,另一端连接到ULN2003的输出端。
单片机的P1.7接到ULN2003的输入端,利用单片机的P1.7控制继电器动作。
当P1.7输出高电平时,ULN2003的输出端为低电平,从而继电器线圈得电,输出开关被电磁力吸合。
当P1.7输出低电平时,ULN2003的输出为高电平,继电器线圈没有电流流过,输出开关被弹簧弹开。
P1.7VCC图3.4.1 单片机控制继电器电路继电器输出开关,工作电压和电流依继电器的型号不同而各异,一般都为交流220V/5A 以上,可用于控制操作各种电器设备。
实验箱上继电器的线圈与电源、ULN2003之间的连接电路,在印刷电路板内部已经连接好,见于图1.3.11所示。
实验时继电器用于控制一个LED指示灯,图3.4.1中的LED指示灯电路部分,需自行连接。
定时器T1中断用于定时控制继电器,每隔20s改变一次继电器状态。
LED数码管显示器以秒为单位显示时间。
参考程序如下:;参考程序TIMC0 EQU 70HTIMC1 EQU 71HTIMC2 EQU 72HTIMC3 EQU 73HORG 0000HAJMP STARTORG 001BHLJMP TIM1ORG 0030HSTART: MOV SP,#30HMOV TMOD,#20H ;TI工作于定时方式2MOV TL1,#6MOV TH1,#6 ;装载定时初值SETB ET1 ;允许T1中断SETB TR1 ;启动T1SETB EA ;开启中断MAIN: MOV A,TIMC0CJNE A,#40,MAIN1 ;不到10s跳转MOV TIMC0,#0 ;清零250μs计数器INC TIMC1 ;10ms计数器增1MOV A,TIMC1CJNE A,#100,MAIN1 ;***;到1s跳转MOV TIMC1,#0 ;清零10ms计数器INC TIMC2 ;s计数器增1MOV A,TIMC2CJNE A,#20,MAIN1 ;不到20则跳转MOV TIMC2,#0 ;改变继电器状态CPL P1.7MAIN1:AJMP MAIN;***************************;定时器T1中断服务子程序;***************************TIM1:PUSH PSWPUSH ACC ;保护现场LCALL DISP ;显示子程序与实验4.2同INC TIMC0POP ACC ;恢复现场POP PSWRETI三、实验任务与要求1、自行设计LED数码管显示电路,并搭接显示和继电器控制电路,完成实验;2、修改实验程序,让LED指示灯两分钟改变一次状态,LED数码管分别显示分、秒;3、要求用继电器控制直流电机,每运转2分钟停止1分钟,采用LED 数码管以秒为单位显示电动机运转和停止时间,画出电路图,编程实现。
单片机制作控制继电器的电路
单片机制作控制继电器的电路单片机是一种集成电路,可用于控制和管理各种电子设备。
通过编程,单片机能够对电路中的继电器进行控制,实现各种功能。
本文将介绍如何使用单片机制作控制继电器的电路,并编写相应的程序。
一、电路设计1.硬件部分控制继电器的电路中,主要需要以下元件:单片机、继电器、电源、电阻、电容等。
其中,单片机负责接收外部信号并控制继电器的开关,电源为整个电路提供电能,电阻用于限流,电容用于稳压。
以下是一个简单的电路设计作为示例:电路连接方式:-将单片机的IO口与继电器的控制端连接;-将电源的正极与继电器的电源端连接;-将电源的负极与继电器的地线连接;-将继电器的常开端与负载(例如灯泡、电机等)连接;-将继电器的常闭端与地线连接;2.软件部分对于单片机的程序设计,可以采用C语言或者汇编语言进行编写。
以下是一个使用C语言编写的控制继电器的程序框架:```c#include <reg52.h>void delay(unsigned int n)unsigned int i,j;for(i=0;i<n;i++)for(j=0;j<125;j++);void mainwhile(1)//控制继电器打开//将IO口输出高电平//延时一段时间//控制继电器关闭//将IO口输出低电平//延时一段时间}```二、功能实现在程序中,使用delay函数来产生延时,在第一部分中,我们可以调整延时时间来控制继电器的工作时间和停止时间。
同时,在控制继电器打开和关闭的部分,通过控制IO口的电平来实现。
```c#include <reg52.h>void delay(unsigned int n)unsigned int i,j;for(i=0;i<n;i++)for(j=0;j<125;j++);void mainwhile(1)//控制继电器打开P2=0xFF;//将P2口的所有引脚置高电平delay(500); //延时0.5秒//控制继电器关闭P2=0x00;//将P2口的所有引脚置低电平delay(500); //延时0.5秒}```通过以上的程序,单片机将会每0.5秒循环一次,控制继电器的开关动作。
单片机控制继电器的原理
单片机控制继电器的原理
单片机控制继电器的原理是通过单片机的IO口输出电平信号
来控制继电器的开关动作。
继电器是一种电磁开关,具有较大的电流和电压容量,可以实现对高功率设备的控制。
单片机通常通过GPIO(General Purpose Input Output)口来控
制继电器。
GPIO口可以通过配置寄存器来设置为输出模式。
在输出模式下,单片机可以将数字电平信号输出到GPIO口,
即可以控制高电平或低电平。
在控制继电器时,可以通过GPIO口输出高电平或低电平信号。
在某些型号的继电器中,高电平可以表示继电器的闭合状态,低电平表示继电器的断开状态;而在另一些型号的继电器中,情况恰好相反。
因此,在使用具体型号继电器时,需要根据其规格书来确定高低电平的含义。
当单片机的GPIO口输出电平与继电器的工作电平匹配时,继
电器将打开或关闭。
通过这种方式,单片机可以控制继电器的状态,从而控制与继电器相连的电路的通断。
需要注意的是,单片机的GPIO口一般只能提供较小的电流,
因此在连接继电器时,通常需要使用电流放大器或者继电器驱动电路来增加电流的驱动能力,以确保继电器可靠地工作。
此外,为了保护单片机的IO口,通常还会在继电器与单片机之
间加入保护电路,如继电器的阻抗匹配电路、电流限制电路等,以防止继电器产生的电压、电流冲击对单片机造成损坏。
基于STC8 系列单片机的继电器控制电路设计
Science and Technology &Innovation ┃科技与创新2019年第13期·37·文章编号:2095-6835(2019)13-0037-02基于STC8系列单片机的继电器控制电路设计李虹静,李升辉(华中科技大学工程实训中心,湖北武汉430074)摘要:继电器是一种电控制器件,它具有控制系统和被控制系统,是当电、磁、声、光、热等输入量达到一定值时,输出量会产生跳跃式变化的一种自动控制器件。
继电器广泛应用于电力保护,自动化控制,远程遥控、测量以及各类通信等装置中,在电路中起着自动调节、安全保护、转换电路等作用,具有动作时间短、工作稳定、寿命长、体积小等优点,是用小电流控制大电流运作的一种控制开关。
对基于STC8系列单片机的继电器控制电路设计进行了研究,利用STC8系列单片机的GPIO 口,采用PNP 三极管放大GPIO 口的驱动电流,从而实现继电器电源的开启和关闭,最终实现对继电器电源的控制。
关键词:继电器;STC8;三极管;硬件设计中图分类号:TM58文献标识码:ADOI :10.15913/ki.kjycx.2019.13.0151引言继电器是具有隔离功能的自动开关元件,广泛应用于电力系统、遥控、通讯、自动控制、机电设备电力电子设备中,是最重要的控制元件之一。
继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频率、温度、压力、速度、光等)的感应机构,也称作输入部分;有能对被控电路实现“通”“断”控制的执行机构,也称作输出部分;在继电器的输入部分和输出部分之间,还有对输入量进行耦合隔离、功能处理和对输出部分进行驱动的中间机构,也称作驱动部分[1-3]。
继电器主要有以下作用:①扩大控制范围。
可通过小电流来控制大电流的运作,以多触点继电器控制为例,一旦它的信号达到某一定值时,可以按触点组的不同形式,同时换接、开断、接通多路电路。
②放大。
基于单片机的继电器控制
目录0 前言 (1)1 总体方案设计 (1)2 硬件电路设计 (2)2.1单片机系统 (2)2.1.1 晶振时钟电路 (2)2.1.2 复位电路 (3)2.2电流驱动系统 (3)2.3发光二极管演示系统 (5)2.4独立键盘系统 (5)3 软件设计 (6)3.1软件执行过程 (6)3.2子程序模块 (6)4 调试分析 (8)5 结论及进一步设想 (9)参考文献 (9)课设体会 (10)附录1 电路原理图 (11)附录2 程序清单 (12)基于单片机的继电器控制系统设计胡启洋沈阳航空航天大学自动化学院摘要:本文设计了一种基于单片机的继电器控制系统,由单片机、继电器、驱动电路、发光二极管、独立键盘等部分组成,主要使用了单片机开发板上STC公司生产的89C54RD+型号单片机及其最小系统、ULN2003A达林顿管驱动芯片、JQC-3F-05VDC-1ZS 型号继电器、四个发光二极管,运用定时器精准定时对继电器开关进行控制,并在继电器输出端使用发光二极管显示。
在以上基础上,实现了8路继电器的循环控制功能。
关键词:单片机;继电器;驱动电路。
0 前言继电器是当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器。
它可分为电气量(如电流、电压、频率、功率等)继电器及非电气量(如温度、压力、速度等)继电器两大类。
继电器具有动作快、工作稳定、使用寿命长、体积小等优点。
广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等。
电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。
只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸合的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。
51单片机控制继电器
引言:51单片机是一种广泛应用于嵌入式系统的微控制器,具有低功耗、易编程、性能稳定等特点。
而继电器则是一种常用的电气开关设备,可以实现对电路的远程控制。
本文将探讨如何使用51单片机控制继电器,介绍电路连接方式、编程实现方法以及常见应用案例。
概述:51单片机控制继电器是一种常见的嵌入式系统应用。
通过合理的电路连接和编程实现,可以实现对继电器的远程控制,从而控制电路的通断状态。
本文将从五个方面对51单片机控制继电器进行详细介绍。
正文:一、电路连接方式1.电源连接a.正确选择电源电压和电源类型b.连接稳压电路2.51单片机引脚连接a.确定控制继电器的引脚b.连接引脚到51单片机3.继电器连接方式a.根据继电器类型选择合适的连接方式b.连接继电器到电路二、编程实现方法1.了解51单片机的编程语言a.学习C语言b.掌握51单片机的特定指令2.基本控制指令a.设置引脚输入输出状态b.控制引脚高低电平3.继电器控制程序设计a.编写继电器控制函数b.调用函数实现对继电器的控制4.通信接口实现a.添加通信模块b.编程实现通信接口5.控制逻辑设计a.利用条件语句实现控制逻辑b.调试程序并提高效率三、常见应用案例1.家居自动化a.控制电灯开关b.控制窗帘的打开和关闭2.工业控制a.控制机器设备的启停b.监控温度、湿度等参数3.安防系统a.控制门禁系统b.控制报警器的开启4.智能农业a.控制灌溉系统b.控制温室内环境5.物联网应用a.控制智能家电b.实现远程监控和控制总结:51单片机控制继电器是一种常见的嵌入式系统应用,通过适当的电路连接和编程实现,可以实现对继电器的远程控制。
本文从电路连接方式、编程实现方法和常见应用案例等方面进行了详细介绍,希望能对读者在实际应用中提供一定的帮助和指导。
同时,读者在使用过程中应注意安全问题,合理使用继电器,确保电路的稳定运行。
引言:51单片机作为一种常用的微控制器,具有体积小、功耗低、性能稳定等特点,被广泛应用于各种控制系统中。
用单片机 控制继电器
用单片机控制继电器在现代电子控制系统中,单片机与继电器的结合应用十分广泛。
单片机作为控制核心,能够精确地控制继电器的开关动作,从而实现对各种电气设备的自动化控制。
单片机,也被称为微控制器,是一种集成在单个芯片上的微型计算机。
它具有体积小、功耗低、性能强等优点,能够完成复杂的计算和逻辑控制任务。
而继电器则是一种电气开关,通过电磁力来控制触点的闭合和断开,从而实现电路的通断控制。
要实现用单片机控制继电器,首先需要了解单片机的引脚功能和编程方法。
通常,单片机的引脚可以分为数字输入引脚、数字输出引脚、模拟输入引脚和模拟输出引脚等。
对于控制继电器,我们主要使用数字输出引脚。
在硬件连接方面,一般将单片机的数字输出引脚通过一个驱动电路与继电器的控制端相连。
这个驱动电路的作用是将单片机输出的低电平信号转换为能够驱动继电器工作的电流和电压。
常见的驱动电路有三极管驱动电路和继电器驱动芯片等。
以三极管驱动电路为例,其原理是利用三极管的开关特性来控制继电器。
当单片机的数字输出引脚输出高电平时,三极管导通,继电器线圈得电,触点闭合;当单片机输出低电平时,三极管截止,继电器线圈失电,触点断开。
在软件编程方面,需要根据所使用的单片机型号和开发环境来编写控制程序。
一般来说,程序的主要任务是设置单片机的引脚为输出模式,并在需要的时候输出高电平或低电平来控制继电器的开关。
例如,使用 C 语言在常见的 51 单片机上进行编程,首先需要包含相关的头文件,如`reg51h`。
然后定义控制继电器的引脚,如`sbit relay_pin = P1^0;`接下来,在主函数中进行初始化设置,将引脚设置为输出模式,如`relay_pin = 1;`表示将引脚设置为高电平输出。
为了实现更复杂的控制逻辑,可以使用定时器、中断等功能。
比如,通过定时器设定一定的时间间隔,让继电器按照一定的频率开关;或者在接收到外部中断信号时,改变继电器的状态。
在实际应用中,用单片机控制继电器有着广泛的用途。
单片机制作控制继电器的电路
单片机制作控制继电器的电路单片机是一种集成电路芯片,通过编程控制来实现各种功能。
用单片机制作控制继电器的电路可以实现很多应用,例如电器的开关控制、温度控制、灯光控制等。
本文将详细介绍如何用单片机制作控制继电器的电路,并给出一个示例。
一、电路设计原理继电器是一种电控开关装置,其原理是利用小电流控制大电流。
一般来说,继电器由控制系统和被控制系统两部分组成。
控制系统通常由一个电磁线圈和一对可切换的接点组成。
当电磁线圈通电时,会产生电磁场,将接点从一个位置吸引到另一个位置,从而实现电器的开关控制。
二、电路设计步骤1.选择继电器首先要选择适合的继电器,通常需要考虑以下几个因素:(1)工作电压:继电器工作时所需的电压。
(2)控制电流:继电器需要多大的电流才能正常工作。
(3)输出电流:继电器可以承受的最大电流。
2.连接电路将单片机与继电器连接起来,通常可以采用以下电路连接方式:(1)将单片机的IO口连接到继电器控制端的驱动电路上,以控制继电器的通断。
(2)将继电器的输出端连接到需要控制的设备上,以实现电器的开关。
3.编写控制程序使用单片机相应的编程语言编写控制程序,实现控制继电器的功能。
程序主要包括以下几个部分:(1)初始化:对单片机进行初始化设置。
(2)控制继电器:通过IO口控制继电器的通断。
(3)延时:为了控制继电器的通断时间,需要使用延时函数。
4.调试测试将电路接通电源后,使用测试仪器进行测试,确保继电器的控制与预期一致。
如果有异常情况,需要检查电路连接是否正确,调整编写的控制程序。
三、示例电路设计下面以一个简单的示例电路为例进行说明。
1.继电器选择:选择一个适合的继电器,假设继电器的工作电压为5V,控制电流为10mA,输出电流为5A。
2.连接电路:(1)将单片机的IO口A0连接到继电器控制端的驱动电路上。
(2)将继电器的输出端连接到需要控制的设备上。
3.编写控制程序:C语言程序如下:```#include <reg52.h>#define RELAY_CTRL P0void maiRELAY_CTRL=0;while (1)RELAY_CTRL=1;RELAY_CTRL=0;}```以上程序中,首先定义了一个宏定义RELAY_CTRL,用于指定IO口A0的地址为P0。
单片机控制继电器电路
单片机控制继电器电路毕业论文题目:单片机制作控制继电器的电路目录毕业论文引言??????????????????????????????????????????????1 摘要??????????????????????????????????????????????2 第1章、硬件部分结构功能简介:?????????????????????2 1.1单片机介绍????????????????????????????????????3 1.2 AT89S51单片机的主要性能参数和主要引脚????????3 1.3、继电器介绍???????????????????????????????????6 第2章、原理图????????????????????????????????????7 第3章、系统设计预期目标:?????????????????????????9 第4章、工作原理:?????????????????????????????????9 第5章、下面是我总结的制板“八步走”???????????????10 第6章、制板中容易出现的问题 :????????????????????11 第7章、本设计的C语言程序:???????????????????????11 第8章、总结??????????????????????????????????????13 第9章、答谢词????????????????????????????????????14 参考文献??????????????????????????????????????????14引言现代自动控制设备中,都存在一个电子电路一电气电路的互相连接问题,一方面要是电子电路的控制信号能够控制电器电路的执行元件(电动机、电磁铁、电灯等),另一方面又要为电子线路的电器电路提供良好的电隔离,以保护电子电路和人身的安全。
电子继电器便能起到这一桥梁作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录0 前言 (1)1 总体方案设计 (1)2 硬件电路设计 (2)2.1单片机系统 (2)2.1.1 晶振时钟电路 (2)2.1.2 复位电路 (3)2.2电流驱动系统 (3)2.3发光二极管演示系统 (5)2.4独立键盘系统 (5)3 软件设计 (6)3.1软件执行过程 (6)3.2子程序模块 (6)4 调试分析 (8)5 结论及进一步设想 (9)参考文献 (9)课设体会 (10)附录1 电路原理图 (11)附录2 程序清单 (12)基于单片机的继电器控制系统设计胡启洋沈阳航空航天大学自动化学院摘要:本文设计了一种基于单片机的继电器控制系统,由单片机、继电器、驱动电路、发光二极管、独立键盘等部分组成,主要使用了单片机开发板上STC公司生产的89C54RD+型号单片机及其最小系统、ULN2003A达林顿管驱动芯片、JQC-3F-05VDC-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,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。
图2 单片机系统电路2.1.2复位电路单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:手动按钮复位和上电复位,此设计中采用手动按钮复位,需要人为在复位输入端RST上加入高电平,如图1所示。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
2.2 电流驱动系统本设计采用了两种不同的驱动方案:(1)方案一是直接采用达林顿管驱动芯片ULN2003A。
共7路输入和7路输出,每一路都相当于一个反相器,当输入为高电平时输出为低电平,相反,当输入为低电平时输出为高电平,每个反相器的内部结构为由两个三极管组合而成的达林顿管放大电路,该电路可以放大电流,提供给继电器足够大的电流以使其正常工作。
除了7个输入和7个输出外,还有两个引脚在使用时分别接地和5V电源即可。
如图4所示当单片机输出高电平1时,经过ULN2003A后变为低电平0这样在继电器的线圈两端就产生了电位差,产生较大电流,从而产生足够的磁场,吸引继电器的衔铁与静触点1吸合,相反,则与静触点2吸合。
图3 ULN2003A芯片内部结构图4 单片机通过ULN2003A驱动继电器(2)方案二是采用PNP型三极管放大电路,如图5所示,线圈两端的电流由三极管来提供,当单片机控制端给三极管的B极送低电平时,三极管导通,继电器线圈有电流通过,继电器吸合;相反,当单片机控制端给三极管的B极送高电平时,三极管截止,继电器线圈无电流通过,继电器断开。
在继电器两端接一个二极管是非常重要的,必须连接,因为,线圈通电正常工作时,二极管对电路不起作用。
当继电器线圈在断电的一瞬间会产生一个很强的反向电动势,在继电器线圈两端反响并联二极管就是用来消耗这个反向电动势的,如果不加这个反向二极管,反向电动势会直接作用在驱动三极管上,很容易将三极管烧坏。
图5 单片机通过PNP型三极管驱动继电器2.3发光二极管演示系统该设计中在继电器的输出端相当于一个单刀双掷开关,如图6所示,将动触点接地,将左静触点的连一个发光二极管后与电源相连。
若动触点与左侧的静触点相连,就会使发光二极管点亮。
在程序一中则以1秒亮与2秒灭交替进行在程序二中8路发光二级管左循环点亮。
图6 发光二极管演示电路2.4 独立键盘系统该设计由两个程序组成,其一是使继电器通电1秒断开2秒循环,在程序开始时使按下独立键盘的第一个按键即可;其二是使八路继电器以一秒的间隔左移循环,在程序开始时按下第二个按键即可。
图7 独立键盘电路3 软件设计根据设计方案,本设计使用了编程软件Keil uVision3,使用C语言进行编程,使用protues 7 professional进行了仿真,并且使用了单片机开发板实现了程序,实现了最终目的。
3.1软件执行过程本课题的软件设计采用了模块化设计的思想。
主程序流程如图8所示,在流程图中,K1、K2分别表示独立键盘的第一、第二个按键,程序开始运行时,先初始化数据,定义定时器的工作方式,装入定时器初值,打开定时器中断允许开关,打开总中断开关。
进入键盘扫描程序,若按下K1键,则进入程序1,开启定时器后进入while(1)的死循环等待定时器中断产生,每50毫秒产生一次中断,20次中断后时间到达1秒,继电器连通1秒后断开,再通过定时器计时2秒后,重新接通,如此往复循环;若按下K2键,则进入程序2,给P2口给0xfe,使得只有P2.0口控制的继电器处于接通状态,开启定时器后进入while(1)的死循环等待定时器中断产生,每隔一秒8个继电器的状态左移一位,如此循环往复。
3.2子程序模块在整个程序中,共包含了主程序、定时器1中断程序、独立键盘扫描程序。
主函数先定义定时器1的工作方式并装入初值,此处选用工作方式1,装入的初值是15536。
这里先解释一下装初值的问题,定时器一旦启动它便在原来的数值上加1计数,若在程序开始时没有设置TH1和TL1,他们的默认值就都是0,时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器就是1us,计满TH1和TL1就需要216-1个数,图8 程序流程图再来一个脉冲计数器溢出,随即向CPU申请中断。
因此溢出一次共需要65536us,则我们要定时50ms的话,就需要给TH1和TL1装初值,在这个初值的基础上计50000个数后,定时器溢出,此时就是刚好50ms一次中断,TH1和TL1中要装入的总数为65536-50000=15536,把15536对256求模:15536\256=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,1秒后按位左移1位,并将移动后的数与0x01作或运算,刚好得到0xfd,以后的每次运算都作这种处理,便可实现循环左移的功能,当循环8次后,经或运算的结果为0xff,并将永久保持下去,故需要重新给P2赋值0xfe,这样才保证了永久的循环。