基于单片机的继电器控制..

合集下载

单片机实训报告继电器

单片机实训报告继电器

一、实训目的本次单片机实训报告主要针对继电器控制实验进行总结。

通过本次实验,旨在:1. 理解继电器的工作原理及其在电路中的应用。

2. 掌握单片机如何通过编程控制继电器的工作状态。

3. 提高单片机硬件电路的设计和调试能力。

4. 增强理论与实践相结合的能力,提高解决实际问题的能力。

二、实验原理继电器是一种电控制器件,主要用于在电路中实现自动控制、远程控制等功能。

它主要由线圈、铁芯、衔铁、触点等部分组成。

当线圈中有电流通过时,线圈产生磁场,吸引衔铁,从而闭合或断开触点,实现电路的通断。

在本次实验中,我们使用的是一款基于51单片机的继电器控制电路。

该电路主要由单片机、继电器、驱动电路、电源等部分组成。

单片机通过编程控制驱动电路,驱动继电器线圈,从而控制继电器的通断。

三、实验步骤1. 电路搭建:根据实验原理图,搭建继电器控制电路。

主要包括单片机最小系统、继电器驱动电路、电源电路等。

2. 编程设计:使用C语言编写单片机程序,实现继电器控制功能。

程序主要分为以下几个部分:- 初始化:设置单片机IO口、定时器等。

- 主循环:读取按键状态,根据按键状态控制继电器通断。

- 中断服务程序:处理外部中断事件。

3. 调试与测试:将编写好的程序下载到单片机中,进行调试和测试。

观察继电器的工作状态,确保程序运行正常。

四、实验结果与分析1. 实验结果:在实验过程中,成功实现了继电器的控制。

当按下按键时,继电器吸合,电路通电;当释放按键时,继电器断开,电路断电。

2. 结果分析:- 单片机程序运行正常,能够根据按键状态控制继电器通断。

- 继电器驱动电路设计合理,能够满足实验要求。

- 实验过程中,注意了电源电压和电流的稳定,确保了实验的安全性。

五、实验总结通过本次继电器控制实验,我们掌握了以下知识和技能:1. 理解了继电器的工作原理及其在电路中的应用。

2. 掌握了单片机如何通过编程控制继电器的工作状态。

3. 提高了单片机硬件电路的设计和调试能力。

基于PIC12F675单片机的可编程多功能时间继电器的设计

基于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单片机的另一个好处是有廉价的替代品,台湾的麦肯单片机质优价廉,可以直接取代。

基于单片机数字式继电器的设计

基于单片机数字式继电器的设计

基于单片机数字式继电器的设计安徽滁州技师学院 白 芹【摘 要】继电保护装置对高压电网的安全、稳定运行有重要作用。

随着计算机技术的迅速发展,单片机继电保护装置在高压电网中得到了广泛应用。

文章研究设计了单片机继电保护装置,研究数字继电器的设计与开发,提出了数字继电器的整体配置方案,从高压电网故障的暂态过程着手,阐述了单片机保护的硬件结构图、模拟量输入、算法等。

【关键词】继电保护 数字继电器 EEPROM AT89S52单片机继电保护装置是指由各种继电器按照一定的性能和要求连接在一起而组成的一种自动装置,它的主要任务是保证电力系统安全运行。

当系统中的任何电气元件发生故障时,它可以借助断路器自动切除;而当出现不正常工作状况时,则能自动发生预警信号。

在高、中、低压电力系统中,数字自动化装置越来越多,传统的电磁式继电保护已经逐步退出市场,晶体管保护、集成电路保护随着单片机保护的发展,也逐步被新型的保护装置所替代——数字继电器。

一、数字继电器的设计要求要求在传统继电保护理论的基础上,设计出一种新型的数字继电器,能够监测220V交流电网的实时运行状态,并能对它实现一定的保护功能,如电流保护、低电压保护等;同时还可通过人机界面进行保护定值的设定和实时状态的显示;并配有RS485通信接口,可与上位计算机通信,实现电网集中监控、集中管理。

要求设计出数字继电器的硬件平台和软件平台,并完成所有的程序调试。

在进行硬件电路和软件编程时,应使该数字继电器具有一定的电磁兼容性。

二、数字继电器的硬件设计数字继电器的硬件部分主要由模拟量调理电路、A/D转换电路、EEPROM扩展、AT89S52单片机、光耦隔离、LCD 显示、键盘电路、晶振电路、复位电路以及电源电路组成。

数字继电器的硬件结构框图如图1所示。

数字继电器的硬件系统设计主要有六大部分的设计,分别为最小系统电路的设计、模拟信号的采集和变换电路和设计、人机接口电路的设计、工作电源的设计以及串口通讯电路的设计。

stm32单片机控制继电器代码

stm32单片机控制继电器代码

stm32单片机控制继电器代码1.引言1.1 概述在本文中, 我们将探讨如何使用STM32单片机来控制继电器。

继电器是一种常见的电子元件,用于控制电路的打开和关闭。

它可以通过小电流控制大电流,并在电路中起到开关的作用。

本文的目的是介绍如何使用STM32单片机来实现对继电器的控制。

我们将通过编写相应的代码,实现STM32单片机与继电器的连接,并控制继电器的开关。

此外,我们还将介绍继电器的原理和应用,并提供一些实际的应用案例和展望。

通过阅读本文,读者将会了解到如何利用STM32单片机来控制继电器,并且可以将所学知识应用于各种实际情境中。

本文将以易于理解和实践的方式呈现相关内容,以帮助读者更好地理解和掌握这一技术。

1.2文章结构1.2 文章结构本文将分为三个主要部分进行讨论。

首先,引言部分将提供关于文章的背景和主要目标的概述。

其次,正文部分将介绍STM32单片机的基本概念和特性,以及继电器的原理和应用。

最后,结论部分将展示如何实现STM32单片机控制继电器的代码,并提供一些应用案例和展望。

在正文部分中,我们将首先详细介绍STM32单片机的基本知识,包括其架构、性能和应用领域。

随后,我们将探讨继电器的原理和工作方式,以及在各种电子系统中的广泛应用。

通过对继电器的深入理解,我们将能够更好地理解STM32单片机控制继电器的代码实现过程,并加深对其应用的认识。

在结论部分,我们将给出一份实现STM32单片机控制继电器的代码示例,以帮助读者更好地理解如何利用STM32单片机实现对继电器的控制。

此外,我们还将提供一些实际应用案例,展示继电器在各种领域中的重要作用,并展望未来其在智能控制系统中的潜在应用。

通过本文的阅读,读者将能够掌握STM32单片机控制继电器的基本技术,并了解其在各种实际场景中的应用前景。

通过以上的分析和讨论,本文将全面介绍STM32单片机控制继电器的相关知识和技术,为读者提供一份系统而全面的指南。

STM32单片机控制继电器原理

STM32单片机控制继电器原理

STM32单片机控制继电器原理1.继电器基本原理继电器是一种电控开关设备,通过控制小电流来开关大电流。

它主要由电磁线圈和触点组成,当电磁线圈通电时,产生磁场吸引触点闭合;当电磁线圈断电时,磁场消失,触点断开。

继电器的触点可以用于开关电路,实现对其他电器设备的控制。

2.STM32控制继电器的硬件连接要控制继电器,首先需要将单片机的GPIO引脚与继电器的控制端连接。

通常继电器的控制端有两个脚,一个是输入脚(IN),一个是公共脚(COM)。

将STM32单片机的GPIO引脚与继电器的IN脚相连接,然后将继电器的COM脚与单片机的地(GND)相连。

3.STM32控制继电器的软件实现在STM32的软件编程中,需要配置GPIO引脚的工作模式和控制输出状态。

3.1配置GPIO引脚工作模式使用STM32的CubeMX软件来进行图形化配置,选择对应的GPIO引脚作为输出模式。

3.2控制继电器的开关状态通过编程控制GPIO引脚的输出状态来控制继电器的开关动作。

在程序中,先对GPIO引脚进行初始化配置,然后通过设置引脚的电平来控制继电器的状态。

3.2.1控制继电器闭合设置GPIO引脚输出高电平,通过拉高继电器的控制端,使得继电器触点闭合,从而实现电路的通断控制。

3.2.2控制继电器断开设置GPIO引脚输出低电平,通过拉低继电器的控制端,使得继电器触点断开,从而实现电路的通断控制。

4.保护电路设计在使用继电器进行电路控制时,需要注意对继电器保护,以防止单片机输出引脚过流或者过压造成的损坏。

4.1使用电流放大器在单片机输出引脚和继电器之间加一个电流放大器,通过电流放大器放大单片机输出引脚的电流,以减小对单片机引脚的负载。

4.2使用继电器驱动模块引入继电器驱动模块来驱动继电器,该模块具有过流保护电路,可以有效保护继电器和单片机。

5.注意事项在使用STM32单片机控制继电器时,需要注意以下事项:5.1引脚设置确认GPIO引脚与继电器的连接正确,并将引脚配置为输出模式。

单片机控制强电继电器的原理

单片机控制强电继电器的原理

单片机控制强电继电器的原理单片机控制强电继电器的原理是利用单片机的控制信号来控制继电器的工作状态。

首先,了解单片机和继电器的基本原理是很重要的。

单片机是一种集成电路,它集成了中央处理器、内存、输入/输出接口和其他辅助电路。

它可以用来控制和处理各种数字和模拟信号。

继电器是一种电流电压转换设备,它能够在控制信号发生变化时,通过绝缘电磁原理来控制高电流的通断。

继电器通常由电磁继电器和固态继电器两种类型。

下面是单片机控制强电继电器的基本原理:1. 硬件连接:首先,将单片机的IO口与继电器的控制端相连接。

这样单片机就可以通过IO口输出高低电平的控制信号来控制继电器的工作。

2. 编程控制:在单片机的程序中,编写相应的代码来控制IO口的输出信号。

可以使用高级语言如C语言或汇编语言来编写程序代码。

3. 信号逻辑:根据实际应用的需求,确定IO口输出高低电平信号和继电器的工作状态之间的对应关系。

通常,可以设置IO口输出高电平信号来控制继电器的吸合,输出低电平信号来使继电器断开。

4. 电流保护:在控制继电器的电路中需要考虑电流保护。

继电器通常具有控制电流和工作电流的限制。

单片机的IO口有一定的驱动能力,但可能不足以直接驱动继电器,所以可以使用驱动电路来增加IO口的驱动能力。

5. 隔离保护:为了保护单片机免受强电干扰或电压反扑,通常在单片机与继电器之间加入隔离电路。

例如,可以使用光耦隔离器或继电器驱动芯片等来实现隔离保护。

6. 程序设计:在单片机的程序中,编写控制继电器的代码。

可以使用单片机的GPIO口或特殊功能寄存器来设置IO口的输出状态,从而控制继电器的工作。

7. 验证和调试:编写完控制继电器的代码后,需要进行验证和调试。

可以通过使用调试工具或示波器来监测IO口的信号,确保控制信号正确生成,并且继电器的工作符合预期。

在实际应用中,单片机控制强电继电器的原理可以应用于各种场合。

例如,可以利用单片机控制继电器来实现家庭自动化系统、工业自动化控制、电力系统的电气保护等。

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

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

单片机制作控制继电器的电路单片机是一种集成电路,可用于控制和管理各种电子设备。

通过编程,单片机能够对电路中的继电器进行控制,实现各种功能。

本文将介绍如何使用单片机制作控制继电器的电路,并编写相应的程序。

一、电路设计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秒循环一次,控制继电器的开关动作。

单片机控制继电器实验

单片机控制继电器实验

手把手教你学单片机
单片机控制继电器实验
单片机轻松入门教学 ------- 『电子驿站』原创,转载请注明出处! -------------------------------------------------------------------------------------------------------------
下面是一个小型信号继电器HK4100F-DC5V-SH的实物照片和主要技术参数。。。
HK4100F电磁继电器
主要技术参数:
触点参数: 触点形式:1C(SPDT) 触点负载: 3A 220V AC/30V DC 阻 抗: ≤100mΩ 额定电流: 3A 电气寿命:≥10万次 机械寿命:≥1000万次
品 牌 :汇科(HUI KE) 型 号 : HK4100F-DC5V-SH 外形尺寸(mm): 10.5*15.5*11.8mm(W*L*H) 重 量 : 3.5g 产 地: 中国宁波
点击此处下载目标文件jdq.hex
下面程序驱动继电器采用了CPL位取反指令,程序的运行结果完全相同:
ORG 0000H AJMP START
;跳转到初始化程序
ORG START: MOV
MOV
0033H SP,#50H P3,#0FFH
;SP初始化 ;端口初始化
MAIN:
CPL P3.6 ACALL DELAY AJMP MAIN
451338254
476485321
『电子驿站』版权所有 Copyright (C) 2005-2007 All Rights Reserved
/mcujx/jdqkz.htm
2010-5-5
二、继电器驱动程序
下面给出了一个简单的继电器控制实验源程序,控制继电器不停地吸合、释放动作,程序很简单。

单片机控制继电器的原理

单片机控制继电器的原理

单片机控制继电器的原理
单片机控制继电器的原理是通过单片机的IO口输出电平信号
来控制继电器的开关动作。

继电器是一种电磁开关,具有较大的电流和电压容量,可以实现对高功率设备的控制。

单片机通常通过GPIO(General Purpose Input Output)口来控
制继电器。

GPIO口可以通过配置寄存器来设置为输出模式。

在输出模式下,单片机可以将数字电平信号输出到GPIO口,
即可以控制高电平或低电平。

在控制继电器时,可以通过GPIO口输出高电平或低电平信号。

在某些型号的继电器中,高电平可以表示继电器的闭合状态,低电平表示继电器的断开状态;而在另一些型号的继电器中,情况恰好相反。

因此,在使用具体型号继电器时,需要根据其规格书来确定高低电平的含义。

当单片机的GPIO口输出电平与继电器的工作电平匹配时,继
电器将打开或关闭。

通过这种方式,单片机可以控制继电器的状态,从而控制与继电器相连的电路的通断。

需要注意的是,单片机的GPIO口一般只能提供较小的电流,
因此在连接继电器时,通常需要使用电流放大器或者继电器驱动电路来增加电流的驱动能力,以确保继电器可靠地工作。

此外,为了保护单片机的IO口,通常还会在继电器与单片机之
间加入保护电路,如继电器的阻抗匹配电路、电流限制电路等,以防止继电器产生的电压、电流冲击对单片机造成损坏。

使用51单片机控制继电器示例代码

使用51单片机控制继电器示例代码

使用51单片机控制继电器示例代码
51单片机(如Intel的8051或其相容的微控制器)常被用于各种嵌入式系统。

使用继电器进行控制时,可以通过51单片机的数字输出引脚来控制继电器的开关状态。

下面是一个简单的示例代码,用于演示如何使用51单片机控制继电器:
#include <reg52.h> // 包含51单片机的头文件
sbit relay = P1^0; // 定义P1.0口为继电器控制口
void main() {
while(1) {
relay = 0; // 关闭继电器
delay(1000); // 延时1秒
relay = 1; // 打开继电器
delay(1000); // 延时1秒
}
}
void delay(unsigned int t) { // 简单的延时函数
while(t--);
}
这个示例代码使用了一个简单的循环来交替打开和关闭继电器。

delay函数用于在操作继电器之后进行简单的延时,以避免过于频繁的开关切换。

请注意,这只是一个基本示例,实际应用中可能需要更复杂的逻辑和保护措施。

此外,还需要注意以下几点:
继电器的驱动能力:根据具体应用选择适当的继电器,以确保其可以承受所需的负载和电压。

电源和地线:为继电器提供适当的电源和地线,并确保连接牢固。

保护措施:在继电器控制电路中添加适当的保护措施,如限流电阻、二极管等,以避免过电
压或过电流对设备和人员造成伤害。

编程和调试:根据实际硬件配置和需求对代码进行适当的修改和调试。

基于STC8 系列单片机的继电器控制电路设计

基于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]。

继电器主要有以下作用:①扩大控制范围。

可通过小电流来控制大电流的运作,以多触点继电器控制为例,一旦它的信号达到某一定值时,可以按触点组的不同形式,同时换接、开断、接通多路电路。

②放大。

51单片机控制继电器

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单片机作为一种常用的微控制器,具有体积小、功耗低、性能稳定等特点,被广泛应用于各种控制系统中。

单片机控制继电器实现开关状态显示

单片机控制继电器实现开关状态显示

单片机控制继电器实现开关状态显示单片机是一种集成电路,其中包含了处理器、存储器、定时器和I/O 端口等多种功能模块。

通过编写程序,可以控制单片机的各种功能,从而实现各种应用需求。

继电器是一种电器元件,可将小电流控制大电流的开关,常用于电力系统中。

在实际应用中,我们经常需要通过单片机来控制继电器的开关状态,并且需要实时显示继电器的状态。

下面将介绍如何利用单片机来实现这一功能。

首先,我们需要选择适合的单片机芯片。

常见的单片机芯片有51系列、AVR系列、STM32系列等。

在此我们以51系列的STC89C52为例进行说明。

这是一种常见的8位单片机,具有较强的功能和性价比。

接下来,我们需要连接继电器和单片机。

将单片机的IO口和继电器的控制端连接,通过控制IO口的高低电平信号来控制继电器的开关。

同时,我们还需要将继电器的状态通过LED等方式进行实时显示。

接下来,我们需要编写单片机的程序来实现控制继电器和显示继电器状态的功能。

我们可以使用C语言或者汇编语言来编写程序。

以下是一个示例的C语言程序:```c#include <reg52.h>sbit relay = P1^0; // 继电器IO口sbit led = P1^1; // LED IO口void delay(unsigned int ms) // 延时函数while (ms--)unsigned char i, j;for (i = 0; i < 10; i++)for (j = 0; j < 110; j++);}}void mainunsigned char switchStatus = 0; // 开关状态变量,0表示关闭,1表示打开while (1)if (switchStatus == 0) // 如果开关状态为关闭,则打开继电器并点亮LEDrelay = 1; // 继电器吸合led = 1; // LED点亮switchStatus = 1; // 更新开关状态为打开}else // 如果开关状态为打开,则关闭继电器并熄灭LEDrelay = 0; // 继电器断开led = 0; // LED熄灭switchStatus = 0; // 更新开关状态为关闭}delay(1000); // 延时1秒}```以上程序的逻辑很简单,当开关状态为关闭时,继电器吸合并点亮LED;当开关状态为打开时,继电器断开并熄灭LED。

用单片机 控制继电器

用单片机 控制继电器

用单片机控制继电器在现代电子控制系统中,单片机与继电器的结合应用十分广泛。

单片机作为控制核心,能够精确地控制继电器的开关动作,从而实现对各种电气设备的自动化控制。

单片机,也被称为微控制器,是一种集成在单个芯片上的微型计算机。

它具有体积小、功耗低、性能强等优点,能够完成复杂的计算和逻辑控制任务。

而继电器则是一种电气开关,通过电磁力来控制触点的闭合和断开,从而实现电路的通断控制。

要实现用单片机控制继电器,首先需要了解单片机的引脚功能和编程方法。

通常,单片机的引脚可以分为数字输入引脚、数字输出引脚、模拟输入引脚和模拟输出引脚等。

对于控制继电器,我们主要使用数字输出引脚。

在硬件连接方面,一般将单片机的数字输出引脚通过一个驱动电路与继电器的控制端相连。

这个驱动电路的作用是将单片机输出的低电平信号转换为能够驱动继电器工作的电流和电压。

常见的驱动电路有三极管驱动电路和继电器驱动芯片等。

以三极管驱动电路为例,其原理是利用三极管的开关特性来控制继电器。

当单片机的数字输出引脚输出高电平时,三极管导通,继电器线圈得电,触点闭合;当单片机输出低电平时,三极管截止,继电器线圈失电,触点断开。

在软件编程方面,需要根据所使用的单片机型号和开发环境来编写控制程序。

一般来说,程序的主要任务是设置单片机的引脚为输出模式,并在需要的时候输出高电平或低电平来控制继电器的开关。

例如,使用 C 语言在常见的 51 单片机上进行编程,首先需要包含相关的头文件,如`reg51h`。

然后定义控制继电器的引脚,如`sbit relay_pin = P1^0;`接下来,在主函数中进行初始化设置,将引脚设置为输出模式,如`relay_pin = 1;`表示将引脚设置为高电平输出。

为了实现更复杂的控制逻辑,可以使用定时器、中断等功能。

比如,通过定时器设定一定的时间间隔,让继电器按照一定的频率开关;或者在接收到外部中断信号时,改变继电器的状态。

在实际应用中,用单片机控制继电器有着广泛的用途。

单片机控制继电器

单片机控制继电器

单片机控制继电器,继电器控制家用电器,这个继电器什么要求吗?我的回答是:1. 具体的要看你这个家电的功率多少。

先确定一下继电器开关上的电流大小。

打个比方吧。

你如果要控制100W的家用电器,那个这个家电的工作电流是100W/220V=0.45A。

所以只要是开关上能承受220V强电,电流大于0.45A的继电器就行了,但是帐绝对不能这么算。

因为很多家用电器启动时的瞬间电流非常大。

所以你要留有余量,如果有可能看看这个系统上的保险丝是多大的。

如果保险丝是1A的话,(否则瞬间大电流要烧掉保险丝的)那么你选开关上能承受220V/1A以上的继电器就行了。

一般5A的继电器应该可以用了。

2. 再说线圈上的电压大小,一般单片机输出的高电平是5V,电流单个I/O口能达到25mA已经算比较大的了。

线圈电压是5vDC.开关上要承受220v强电的继电器比较少。

所以一般只能选线圈上12v或者24v的继电器,比如说选线圈电压12v吧,你就需要一个12v 的电源。

当然也可以用220v市电降压然后整流滤波变成12v直流电,供继电器使用。

注意:一定要隔离市电。

比如说用隔离变压器降压或者降压整流以后用光耦隔离。

(否则可能烧坏继电器或者单片机的)。

那单片机用的5v电源怎么办呢?很简单的12v直流用7805(线性稳压源)稳压,出来以后就是5V直流了。

注意:一般继电器线圈的工作电流大约是100mA 以上,所以单片机不能直接驱动继电器的。

3. 再说驱动部分,刚才说了不能直接驱动,现在的办法只能是用驱动电路了。

推荐使用两种方法驱动:(1)利用三极管(9013就行了)放大电流驱动。

注意继电器线圈加一个继流二极管保护线圈。

(必须要加)(2)利用IC驱动(比如UNL2003),这个要去看看IC的数据手册了。

UNL2003不必外加二极管保护,因为它里面已经集成有二级管了,其他的IC要看一下数据手册。

如果没有保护二极管,定要在线圈旁边并联一个继流二极管保护,线圈。

单片机驱动继电器原理

单片机驱动继电器原理

单片机驱动继电器原理单片机驱动继电器的原理是利用单片机的输出引脚来控制继电器的动作,实现继电器的开关功能。

继电器是一种被动电子元件,它可以通过控制小电流来切换大电流,从而进行电路的开关控制。

单片机通过输出引脚输出高电平或低电平信号,将信号传递给继电器的输入端。

当单片机输出高电平时,继电器的输入端收到高电平信号,继电器的控制电路闭合,形成通路;当单片机输出低电平时,继电器的输入端收到低电平信号,继电器的控制电路断开,形成断路。

通过不同的控制信号,单片机可以控制继电器的开关状态。

具体来说,单片机驱动继电器一般需要以下几个步骤:1.确定继电器的工作电压:首先需要确定继电器的控制电压,例如5V或12V等。

这可以通过查找继电器的技术规格书或者继电器的标志信息来确定。

2.连接继电器的控制端和单片机的输出引脚:将继电器的控制端与单片机的输出引脚相连。

通常情况下,单片机的输出引脚需要通过电阻器限流,以保证控制电流在安全范围内。

3.编写单片机的程序控制继电器:通过单片机的软件编写,设置相应的输出引脚为高电平或低电平,以控制继电器的开关状态。

可以使用单片机的IO口配置功能来设置输出引脚的电平状态。

4.测试和调试:将单片机和继电器连接起来后,通过设定不同的输出信号,观察继电器的动作情况。

如果继电器没有动作或者动作不正常,需要检查接线是否正确,程序是否有误,并进行相应的调试。

在实际应用中,单片机驱动继电器可以广泛应用于各种场景。

例如,通过单片机控制继电器的开关状态,可以实现对电器设备的自动化控制,如定时开关、温度控制等。

此外,单片机驱动继电器也常用于大功率电路的开关控制,如电机控制、照明控制等。

需要注意的是,单片机驱动继电器时需要注意继电器的额定电流和电压范围,并合理设计电路连接,以确保单片机和继电器之间的电气兼容性和安全性。

同时,也需要合理设计程序逻辑,确保继电器的开关操作稳定可靠。

单片机中继电器的工作原理及作用

单片机中继电器的工作原理及作用

单片机中继电器的工作原理及作用1.引言随着科技的发展,单片机技术渗透到各个领域,中继电器也成为了单片机应用中常用的元器件之一、本篇文章将介绍单片机中继电器的工作原理及其作用。

2.中继电器的定义中继电器(Relay)是一种电控制装置,是当输入的量(电流、电压、功率、频率、温度、速度等参数)达到一定设定值时,通过电磁、电气或电子等方式来实现线路的自动切断、接通或自动转换等动作,从而实现电路的自动控制。

3.单片机中继电器的工作原理(1)单片机为继电器提供控制信号。

在单片机程序中,当满足一定条件时,单片机会通过I/O口输出一个高电平或低电平的信号来控制继电器的开合。

(2)继电器接收到控制信号后,通过内置的电磁机构来实现开关的动作。

当继电器接收到高电平时,电磁机构会将开关切换到闭合状态;当继电器接收到低电平时,电磁机构会将开关切换到断开状态。

(3)继电器切换状态后,通过其内部的触点来控制电路的通断。

当继电器处于闭合状态时,触点闭合,电流可以从通路1通过继电器流向通路2;当继电器处于断开状态时,触点断开,电流无法从通路1流向通路24.单片机中继电器的作用(1)功率放大作用:继电器能够承受较高的电流和电压,可以实现单片机不能直接驱动的大功率负载的操作,如电机、电磁阀等。

通过控制继电器,单片机可以间接驱动这些大功率负载,满足实际应用需求。

(2)信号隔离作用:单片机和外部电路之间可以存在信号电平不匹配、地线干扰等问题,使用中继电器可以实现信号的隔离,保证信号的可靠传输。

通过将单片机的控制信号与负载电路隔离,可以防止单片机受到负载电路中电压浪涌、电磁干扰等问题的影响,从而提高系统的可靠性。

(3)电路保护作用:继电器可以提供电路的保护功能。

在电路中,通过设置合适的保护电路,当电路中出现故障或异常时,继电器可以迅速切断电路,有效保护电气设备和元器件免受损坏。

(4)电路控制作用:继电器可以实现在电路中的开关控制功能。

通过对继电器的控制,可以实现电路的通断操作,如实现电灯的开关控制、温度的自动调节等。

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

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

单片机制作控制继电器的电路单片机是一种集成电路芯片,通过编程控制来实现各种功能。

用单片机制作控制继电器的电路可以实现很多应用,例如电器的开关控制、温度控制、灯光控制等。

本文将详细介绍如何用单片机制作控制继电器的电路,并给出一个示例。

一、电路设计原理继电器是一种电控开关装置,其原理是利用小电流控制大电流。

一般来说,继电器由控制系统和被控制系统两部分组成。

控制系统通常由一个电磁线圈和一对可切换的接点组成。

当电磁线圈通电时,会产生电磁场,将接点从一个位置吸引到另一个位置,从而实现电器的开关控制。

二、电路设计步骤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。

单片机控制继电器驱动原理实例详解

单片机控制继电器驱动原理实例详解

单片机控制继电器驱动原理实例详解继电器驱动电路由3部分组成:单片机控制电路、继电器控制电路和继电器负载电路。

首先介绍单片机控制电路。

单片机通常有多个GPIO口,其中一个GPIO口可以配置为输出模式,通过该GPIO口的控制信号控制继电器的开关。

在单片机控制电路中,需要使用电平转换电路将单片机的控制信号转换为继电器驱动电路可接受的电平。

通常使用晶体管来实现电平转换,例如通过NPN型晶体管的基极接单片机的GPIO口,发射极接电源正极,而集电极接继电器控制电路。

接下来介绍继电器控制电路。

继电器控制电路是通过驱动电路来控制继电器的线圈电流,从而实现开关的操作。

一般使用光耦隔离器将单片机控制电路和继电器控制电路隔离,以提高系统的稳定性和可靠性。

光耦隔离器的输入端连接单片机的控制信号,输出端连接到继电器控制电路。

当单片机的控制信号发生变化时,光耦隔离器的阻止电流就会发生变化,从而改变继电器的线圈电流,实现继电器的开关操作。

此外,还需要使用电阻、二极管等元件来保护光耦隔离器和继电器控制电路。

最后介绍继电器负载电路。

继电器负载电路是通过继电器的常开(NO)和常闭(NC)触点来控制外部负载的通断。

当继电器吸合时,常开触点闭合,通断负载电路;当继电器断开时,常闭触点闭合,通断负载电路。

通常将外部负载电源的正极接继电器的公共端口(COM),负极接继电器的常开或常闭触点之一综上所述,单片机控制继电器驱动的原理可以概括为:通过单片机的控制信号,经过电平转换和光耦隔离器的电路转换,控制继电器的线圈电流,从而实现继电器的开关操作,最终控制外部负载的通断。

例如,我们可以通过单片机控制继电器驱动电路来实现远程控制家庭电器。

将继电器的负载电路与家庭电器相连,通过单片机控制继电器的开关状态来控制家庭电器的通断。

我们可以使用无线通信模块,将单片机控制信号通过无线信号发送给控制终端,从而实现远程控制家庭电器的功能。

总结起来,单片机控制继电器驱动的原理是通过电平转换和光耦隔离器的电路转换,实现对继电器的控制,从而实现对外部负载的通断控制。

动手用单片机控制5V继电器

动手用单片机控制5V继电器

用单片机控制继电器这里继电器由相应的S8050三极管来驱动,开机时,单片机初始化后的为高电平,+5伏电源通过电阻使三极管导通,所以开机后继电器始终处于吸合状态,如果我们在程序中给单片机一条:CLR 或者CLR 的指令的话,相应三极管的基极就会被拉低到零伏左右,使相应的三极管截至,继电器就会断电释放,每个继电器都有一个常开转常闭的接点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管.51单片机驱动继电器电路1.基本电路如右图。

2.单片机的IO口输出电流很小4到20mA,所以要用三极管放大来驱动继电器。

主要技术参数1.触点参数:触点形式:1C(SPDT)触点负载: 3A 220V AC/30V DC阻抗:≤100mΩ额定电流: 3A电气寿命:≥10万次机械寿命:≥1000万次2.线圈参数:阻值(士10%): 120Ω线圈功耗:额定电压:DC 5V吸合电压:DC释放电压:DC工作温度:-25℃~+70℃绝缘电阻:≥100MΩ型号:HK4100F-DC5V-SH线圈与触点间耐压:4000VAC/1分钟触点与触点间耐压:750VAC/1分钟继电器工作吸合电流为5V=40mA或5V/120Ω≈40mA。

三极管基极电流:继电器的吸合电流/放大倍数=基极电流(40mA/100 =4mA),为工作稳定,实际基极电流应为计算值的2倍以上。

基极电阻:()/基极电流=电阻值8mA =Ω)。

这里单片机IO口输出高电平触发三极管导通。

经过以上的分析计算得出:三极管可用极性是NPN的9014或8050,电阻选AT89S52 每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为?10?mA;?每个?8?位的接口(P1、P2?以及?P3),允许向引脚灌入的总电流最大为?15?mA,而?P0?的能力强一些,允许向引脚灌入的最大总电流为?26?mA;?全部的四个接口所允许的灌电流之和,最大为?71?mA。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,这样才保证了永久的循环。

相关文档
最新文档