51单片机-继电器编程

文章目录

  • 原理
    • 原理图
    • 工作原理
    • 续流二极管(DD2)作用
    • 发光二极管(DK)
    • 三极管(Q1)
  • 实验程序
    • 实验现象问题
  • 其他程序

原理

原理图

51单片机-继电器编程_第1张图片

工作原理

io口和J2相连,io口输出低电平,发射极和基极导通,发射极电流流向集电极,线圈通电,常开触点(NO1)闭合,常闭触点(NC1)打开,MP口断开、NO口导通

续流二极管(DD2)作用

保护作用:与线圈形成回路,防止线圈累积能量烧坏三极管及其本身

发光二极管(DK)

指示作用:确认线圈通电

三极管(Q1)

驱动继电器

实验程序

/**************************************************************************************
*		              继电器实验												  *
实现现象:下载程序后继电器模块指示灯DK亮,会听到继电器吸合的声音
注意事项:无																				  
***************************************************************************************/

#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;

sbit relay=P1^4;	   


/*******************************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void main()
{	
	relay=0;
	while(1);
}

实验现象问题

写芯片超时

51单片机-继电器编程_第2张图片

处理方法
换一根数据线,接口可能有问题

其他程序

//驱动继电器实验
#include 
sbit buzzer = P1^5;				//声明蜂鸣器位置
sbit relay = P1^4;				//声明继电器位置
void delay(int);				//声明延迟函数
void pulse_BZ(int,int,int);		//声明蜂鸣器发声函数
void pulse_RL(int,int,int);		//声明继电器控制函数

//主程序。
main()
{
	while(1)
	{
		pulse_RL(10,2000,2000);
		//继电器开关各10次,分别用时2000×0.5ms=1s(接上灯可以观察到亮灭)
		pulse_BZ(100,1,1);
		delay(200);
		//蜂鸣器响第一声后延迟200×0.5ms=0.1s
		pulse_BZ(100,1,1);
		delay(200);
		//蜂鸣器响第二声后延迟200×0.5ms=0.1s
	}
}

//延迟函数。
void delay(int n)
{
	int i,j;
	for(j=0;j

程序出处

你可能感兴趣的:(51单片机)