Java教程

第3章 硬件基础知识学习

本文主要是介绍第3章 硬件基础知识学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

三极管

横向一端是基极b,带箭头的一端是发射极e,另外一个是集电极c。

数字电路主要使用的是三极管的开关特性,只用到了截止与饱和两种状态:箭头朝内 PNP,导通电压顺箭头过,电压导通,电流控制。

be是控制端,ec是被控制端。对于以上两种类型,只要箭头开始一端的电压比箭头指向那一端电压高0.7V,即可实现ec之间的导通。

三极管都有一个放大倍数β,要想处于饱和状态,b 极电流就必须大于 e 和 c 之间电流值除以β(大约100)。STC89C52 的 IO 口输入电流最大理论值是 25mA,一般建议不超过 6mA(还要看具体芯片,详情要查看对应的官方手册)。

三极管应用场景:控制应用,驱动应用。

三极管实现电压转换图:

三极管实现驱动LED小灯发光图:

74HC245

74HC245是个双向缓冲器。1 引脚 DIR 是方向引脚,当这个引脚接高电平的时候,右侧所有的 B 编号的电压都等于左侧 A 编号对应的电压。比如 A1 是高电平,那么 B1 就是高电平,A2 是低电平,B2 就是低电平等等。如果 DIR 引脚接低电平,得到的效果是左侧 A 编号的电压都会等于右侧 B 编号对应的电压。

74HC138 三八译码器

把 3 种输入状态翻译成 8 种输出状态。作用是扩展IO口,具体使用需要查看对应芯片手册。

对应真值表如下:与上面电路图对应关系是:真值表中select中的A对应上图的A0,B对应A1,C对应A2。

三八译码器,在任何组合下的输出中都只有一路输出低电平,其他七路输出高电平。

电路图如下,如果要让右侧led小灯点亮,则需要Q16这个三极管导通,此时需要LEDS6这个引脚为低电平;那么就需要74HC138译码器右侧的LEDS6输出为低电平,此时对应查找真值表可以得到对应的A-C三个组合为多少,然后根据三个组合设置连接到单片机的引脚电平设置(通过物理跳线帽选择连接)。

单片机电路图:

缓冲器、译码器电路图:

点亮LED小灯过程:想要LED2到LED9中任意小灯点亮,首先需要三极管Q16导通,根据三极管特性,需要确保LEDS6引脚为低电平;此时需要三八译码器中右侧的LEDS6输出为低电平,先使ENLED为低电平(也就是P1.4为低电平)保证译码器使能,对应三八译码器的输入输出对应逻辑关系可以知道,此时需要A2、A1、A1引脚的电压关系为HHL,也就是单片机的P1.2为高电平,P1.1为高电平,P1.0为低电平。此时能确保三极管导通,如果想要LED2小灯点亮,需要单片机P0.0为低电平。

具体代码如下:

#include<reg52.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
	ENLED = 0;
	ADDR3 = 1;
	ADDR2 = 1;
	ADDR1 = 1;  
	ADDR0 = 0;
	while(1)
	{	
		P0 = 0xFE;   //1111 1110
	}
}

运行效果如图:

这篇关于第3章 硬件基础知识学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!