模擬電路可以利用三極管的導(dǎo)通 / 截止實(shí)現(xiàn)數(shù)字狀態(tài)的切換,從而實(shí)現(xiàn)0和1的邏輯運(yùn)算。
邏輯運(yùn)算常用的有3種:與、或、非,它們都是1個二進(jìn)制位的位運(yùn)算。
在位運(yùn)算的基礎(chǔ)上,可以進(jìn)一步實(shí)現(xiàn)加減運(yùn)算。
位運(yùn)算的特點(diǎn)是,多個位之間是無關(guān)的。
加減運(yùn)算有進(jìn)位和借位,多個位之間是相關(guān)的。
這里簡單的給一下它們的電路:
1,與門,
電路,與門
2個二極管只要有1個導(dǎo)通(低電位0),輸出電位就是0.7v,為低電位0。
0 & 1 == 1 & 0 == 0.
2個二極管都截止時(高電位1),輸出等于電源電壓,為高電位1。
1 & 1 == 1.
2,或門,
或門正好反過來,二極管接近電源正極,電阻接近電源負(fù)極。
電路,或門
2個二極管里只要有一個導(dǎo)通(高電位1),輸出端就是高電位1。
1 | 0 == 0 | 1 == 1.
2個二極管都截止時,輸出端是低電位0。
0 | 0 == 0.
二極管接到電源正極上就會導(dǎo)通,接到負(fù)極上就會截止。
3,非門,
非門,利用的是三極管的反相放大器。
當(dāng)b極為高電位1時,三極管導(dǎo)通,電源電壓大部分加在上拉電阻上,輸出為低電位0。
反之,輸出為高電位1。
電路,非門
位運(yùn)算的電路都是很簡單的,因?yàn)槎鄠€位之間不相關(guān)。
只要把多個電路并聯(lián)起來,每個處理1個二進(jìn)制位,就可以實(shí)現(xiàn)32位的運(yùn)算。
4,加法,
加法因?yàn)橛羞M(jìn)位,比單純的位運(yùn)算要復(fù)雜一點(diǎn)。
0 + 0 = 0,
1 + 0 = 1,
0 + 1 = 1,
1 + 1 = 10,
二進(jìn)制加法的前3種情況就是或運(yùn)算,所以1個或門就可以處理前3種情況。
復(fù)雜的是1+1 = 10的情況,要處理進(jìn)位:個位要變成0,十位要進(jìn)位1。
主要說說這種情況:
下圖是我隨手畫的二進(jìn)制加法的電路
電路,加法
藍(lán)色的電阻和2個向右的二極管組成或門,處理前3種情況:
0 + 0時,個位輸出和三極管的b極都是0,結(jié)果為0;
0 + 1 == 1 + 0時,個位輸出為1,三極管的b極為0,結(jié)果為1。
最后一種情況,1 + 1 == 10 時:
紅色的電阻和2個向左的二極管組成與門,當(dāng)2個加數(shù)都是1時,三極管的b極為高電位1,
這時三極管導(dǎo)通,三極管的c極為低電位0;
或門的輸出為1,電流將沿著圖中箭頭的流向,經(jīng)過三極管的c-e極流入電源負(fù)極,
個位輸出與三極管的c極電壓一樣,為低電位0;
十位輸出與三極管的b極電壓一樣,為高電位1。
這樣就實(shí)現(xiàn)了1個二進(jìn)制位的加法運(yùn)算:1 + 1 = 10.
如果有多個二進(jìn)制位,就把上圖的電路并聯(lián)起來,同時把(十位的)進(jìn)位輸出轉(zhuǎn)到下一級的輸入,繼續(xù)更高位的運(yùn)算。
位數(shù)越高電路越復(fù)雜,因?yàn)榧臃ǖ母鱾€位之間是可以進(jìn)位的。
所以,在數(shù)字電路層面不適合處理復(fù)雜的邏輯,因?yàn)閮H僅是加減乘除的實(shí)現(xiàn)就已經(jīng)很復(fù)雜了。
所以,計算機(jī)的設(shè)計必然是分層的:
1)數(shù)字電路僅僅實(shí)現(xiàn)匯編代碼級的邏輯,
2)更復(fù)雜的程序邏輯,放在C語言層面,
3)最復(fù)雜的邏輯,放在高級語言層面,畢竟C語言是個掛著高級語言的名頭的大號匯編如果不做分層設(shè)計,電子工程師要考慮的情況就太多了,需求的耦合度太大!
一旦耦合度大了之后,工程師們就會考慮分層分模塊的設(shè)計。
編譯器被分為詞法、語法、語義、中間代碼、機(jī)器碼、目標(biāo)文件生成、連接器,也是因?yàn)椴贿@么劃分的話耦合度太大了。
匯編代碼難寫,是因?yàn)樗^于底層,與人類平時的思維方式差別很大。
但從數(shù)字電路的角度來看,匯編代碼已經(jīng)很上層了。
-
三極管
+關(guān)注
關(guān)注
145文章
3653瀏覽量
123951 -
模擬電路
+關(guān)注
關(guān)注
125文章
1588瀏覽量
103673 -
C語言
+關(guān)注
關(guān)注
180文章
7630瀏覽量
140327 -
數(shù)字電路
+關(guān)注
關(guān)注
193文章
1637瀏覽量
81577 -
邏輯運(yùn)算
+關(guān)注
關(guān)注
0文章
57瀏覽量
9920
發(fā)布評論請先 登錄
16進(jìn)制字符串的邏輯運(yùn)算問題
邏輯運(yùn)算符是什么
邏輯電路與邏輯運(yùn)算符
基本邏輯運(yùn)算

邏輯運(yùn)算,什么是邏輯運(yùn)算
實(shí)用數(shù)制轉(zhuǎn)換及邏輯運(yùn)算計算器

邏輯運(yùn)算與移位指令
基于單片機(jī)實(shí)現(xiàn)的邏輯運(yùn)算程序詳解
單片機(jī)的邏輯電路與邏輯運(yùn)算的介紹

51單片機(jī)的算術(shù)和邏輯運(yùn)算功能介紹
C語言邏輯運(yùn)算符優(yōu)先次序
KUKA機(jī)器人的邏輯運(yùn)算符

verilog的邏輯運(yùn)算符

評論