实验课总结3 实验二

记录一些关于本人实验课的总结,由于本人是新手小白,许多程序和电路图较为粗略。

同样是提前预习了一下接下来的实验,接下来是轨道电路实验,由于种种原因还未开学只能借助protues电脑仿真。

实验要求

获取轨道电路是否为车辆所占用的实际状态,并通过发光二极管显示出来。
目的主要是为看看轨道上有没有列车占用
用51单片机,LED,ULN2003,按键等在protues软件仿真

原理

原理是通过按键按下来虚拟列车在轨道上,控制51单片机输出高电平再使用ULN2003反相原理驱动继电器控制LED变为红色。

画一个草图用于观察原理
在这里插入图片描述

具体实现

按照常规套路,还是先上搜索引擎搜索继电器的驱动电路
在这里插入图片描述
上面的电路图和蜂鸣器类似,继电器需要一个大电流来驱动所以使用三极管。
想想如果还是用三极管驱动就前面撞车了,所以开始看看有没有另外的方法。
在Bilbil里找到一个简单快速的驱动电路
放上链接: Protues 仿真ArduinoUNO继电器控制实例.
使用ULN2003芯片驱动,开始以为这芯片就是一个非门,上网搜索芯片资料后发现是两个三极管组成的达林管(虽然这里就是使用了非门原理)
放上链接 ULN2003引脚功能介绍.

 开始探索达林顿管的工作原理:
 达林顿管就是两个三极管接在一起,极性只认前面的三极管。
 模电中学过复合管,达林顿管应该就是和复合管的一种
 以两个相同极性的三极管为例,前面三极管集电极跟后面三极管集电极相接,前面三极管发射极跟后面三极管基极相接,前面三极管功率一般比后面三极管小,前面三极管基极为达林顿管基极,后面三极管发射极为达林顿管发射极,用法跟三极管一样,放大倍数是两个三极管放大倍数的乘积。
 芯片内部构造图在链接中可以看到

搞完这些那就开始画仿真图了
在这里插入图片描述
放上简单的程序

#include "reg52.h"

sbit KEY0=P1^0;
sbit TEXT=P2^0;

void delay(unsigned int n);
void key();

int main()
{
	while(1)
	{
		key();
	}
}
void key()
{
	if(KEY0==0)
	{
		delay(5);
		TEXT=1;
	}
	if(KEY0==1)
	{
		TEXT=0;
	}
}
void delay(unsigned int n)
{
	unsigned int i=0,j=0;//定义无符号int变量
	for(i=0;i<n;i++)
	{
		for(j=0;j<120;j++);
	}
}

结语

本次实验学习了ULN2003芯片,回忆起模电对三极管、复合管的计算及其工作原理,完成仿真任务

猜你喜欢

转载自blog.csdn.net/qq_43710355/article/details/106208991