1. 程式人生 > 其它 >第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
	}
}

執行效果如圖: