單片機(jī)邏輯原理_第1頁(yè)
單片機(jī)邏輯原理_第2頁(yè)
單片機(jī)邏輯原理_第3頁(yè)
單片機(jī)邏輯原理_第4頁(yè)
單片機(jī)邏輯原理_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單片機(jī)邏輯原理前言我們講,單片機(jī)不是憑空產(chǎn)生的,人們想要這樣的東西至少有文明以來就有。從最早的算盤,到機(jī)械計(jì)算器,到電子管計(jì)算機(jī),到晶體管計(jì)算機(jī)。1957年隨著諾伊斯等人發(fā)明集成電路制作工藝,單片機(jī)才出現(xiàn)在我們面前。1971年1月INTEL推出第一顆4004單片機(jī),之后單片機(jī)如雨后春筍般涌現(xiàn)。1974年8月摩托羅拉推出6800單片機(jī);德州儀器推出TMS1000;國(guó)家半導(dǎo)體推出PACE單片機(jī)邏輯原理結(jié)構(gòu)我們先來了解下單片機(jī)的內(nèi)部結(jié)構(gòu),下圖是8051單片機(jī)的內(nèi)部結(jié)構(gòu)圖,其實(shí)所有類型的單片機(jī)結(jié)構(gòu)都大同小異,都包含算術(shù)邏輯單元,程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,外設(shè)等。為什么是這樣的結(jié)構(gòu),要從計(jì)算機(jī)的歷史說起。

2、1946年第一臺(tái)電子計(jì)算機(jī)埃歷阿克面世,這臺(tái)“巨型機(jī)”占地面積為170平方米,總重量達(dá)到30噸,運(yùn)算速度在當(dāng)時(shí)是驚人的1秒5000次加法。雖然速度“很快”,但埃歷阿克沒有程序存儲(chǔ)器,所有指令得手動(dòng)輸入。單片機(jī)邏輯原理結(jié)構(gòu)手動(dòng)輸入運(yùn)行指令意味著,再快計(jì)算速度都是白搭,因?yàn)檩斎胫噶钫加么蟛糠謺r(shí)間。埃歷阿克顧問,數(shù)學(xué)家及“計(jì)算機(jī)之父”馮諾依曼針對(duì)埃歷阿克發(fā)表計(jì)算機(jī)史上著名的“101頁(yè)報(bào)告”,指出計(jì)算機(jī)要包括5個(gè)單元:運(yùn)算器CA、邏輯控制器CC、存儲(chǔ)器M、輸入裝置I和輸出裝置O,并用二進(jìn)制替代十進(jìn)制運(yùn)算。單片機(jī)邏輯原理邏輯為什么要采用二進(jìn)制,因?yàn)橛?jì)算機(jī)先驅(qū)們發(fā)現(xiàn)電路在處理二進(jìn)制“開、關(guān)”上要比十進(jìn)制方

3、便的多。1938年數(shù)學(xué)家香農(nóng)在他的碩士論文繼電器和開關(guān)電路的符號(hào)分析中用布爾代數(shù)對(duì)開關(guān)電路進(jìn)行相關(guān)分析,證明可以通過繼電器電路來實(shí)現(xiàn)布爾代數(shù)的邏輯運(yùn)算,同時(shí)明確地給出了實(shí)現(xiàn)加,減,乘,除等運(yùn)算的電子電路的設(shè)計(jì)方法。單片機(jī)邏輯原理邏輯與為了便于了解,這里用繼電器電路表示邏輯電路。VAB我們來看下左圖兩個(gè)繼電器控制燈泡的電路情況。C單片機(jī)邏輯原理邏輯與BCVACVAB單片機(jī)邏輯原理邏輯與A B都閉合時(shí),燈泡才亮,這就是與門邏輯電路。CVABABCA B C0 0 00 1 01 0 01 1 1單片機(jī)邏輯原理邏輯或A B只要一個(gè)閉合燈泡就亮,這就是邏輯或電路。VABCVABCA B C0 0 00

4、 1 11 0 11 1 1單片機(jī)邏輯原理邏輯或A B只要一個(gè)閉合燈泡就亮,這就是邏輯或電路。ABCA B C0 0 00 1 11 0 11 1 1VBCVA單片機(jī)邏輯原理邏輯或A B只要一個(gè)閉合燈泡就亮,這就是邏輯或電路。VACVABCA B C0 0 00 1 11 0 11 1 1VA單片機(jī)邏輯原理邏輯或A B只要一個(gè)閉合燈泡就亮,這就是邏輯或電路。CVABCA B C0 0 00 1 11 0 11 1 1VAVA單片機(jī)邏輯原理邏輯非A斷開時(shí)燈泡亮,A閉合時(shí)燈泡滅,邏輯非電路。ACA C0 11 0VA單片機(jī)邏輯原理邏輯非A斷開時(shí)燈泡亮,A閉合時(shí)燈泡滅,邏輯非電路。A C0 11 0

5、ACVA單片機(jī)邏輯原理邏輯與非門與門與非門組合邏輯,與非門。CVAVBA B C0 0 10 1 11 0 11 1 0ABC單片機(jī)邏輯原理邏輯或非門與門與非門組合邏輯,或非門。CVABABCA B C0 0 10 1 01 0 01 1 0單片機(jī)邏輯原理邏輯ABCABCACABCABC與門或門非門或非門與非門我們來看下幾個(gè)邏輯電路的符號(hào),就是這幾個(gè)邏輯電路,組成我們豐富的數(shù)字世界,用繼電器表示是為了直觀體現(xiàn),現(xiàn)在的數(shù)字電路都是在晶體管,場(chǎng)效應(yīng)管的基礎(chǔ)上的。單片機(jī)邏輯原理二進(jìn)制加法為什么要用二進(jìn)制,前面說過了,電路在處理二進(jìn)制“開、關(guān)”上要比處理十進(jìn)制簡(jiǎn)單的多。接下來我們來看看二進(jìn)制加法電路怎

6、么實(shí)現(xiàn),實(shí)際上只要能實(shí)現(xiàn)加法就能實(shí)現(xiàn)任何數(shù)學(xué)計(jì)算,我們編程的數(shù)學(xué)算法都是基于加法基礎(chǔ)上的,集成硬件加法器的處理器芯片并不多見,DSP是一種。我們來看下一位的二進(jìn)制加法:A、B輸入,C和輸出,D進(jìn)位輸出。你可能在學(xué)校里記過上面這張表,并背誦過如下口訣:0加0等于0,0加1等于1,1加0等于1,1加1等于0,進(jìn)1。與十進(jìn)制加法一樣,二進(jìn)制加法也從最右邊的一列開始,逐列相加兩個(gè)數(shù):A B C D0 0 0 00 1 1 01 0 1 01 1 0 1 0 1 1 0 0 1 0 1+ 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1單片機(jī)邏輯原理二進(jìn)制加法半加器A B S CO0

7、0 0 00 1 1 01 0 1 01 1 0 1數(shù)學(xué)上寫寫簡(jiǎn)單,誰(shuí)都會(huì),用電路怎么表示表示出來呢?我們來看下和C與進(jìn)位D與輸入AB之間的邏輯關(guān)系,可能大家都看出來了,進(jìn)位D好簡(jiǎn)單,就是與門電路,這個(gè)和怪別扭的,既不是與,也不或,非也不是,怎么弄?可能大家還是能看點(diǎn)名堂出來,AB輸入不同時(shí),和輸出為1,聰明的先輩們?cè)缇徒o我們想好這樣的電路了,并取名異或門,如下是電路連接,我們來分析下。ABS與門,輸入都為1時(shí)輸出1或門,輸入有一個(gè)為1時(shí)輸出1與非門,輸入不都為1時(shí)輸出1ABS異或邏輯表示單片機(jī)邏輯原理二進(jìn)制加法半加器和為異或邏輯,進(jìn)位為與邏輯,好了,我們的1位二進(jìn)制加法電路就出來了,由于沒有

8、進(jìn)位相加,我們稱之為半加器,我們把電路簡(jiǎn)化為右圖, 它可以把兩個(gè)二進(jìn)制位A和B相加,從而得到一個(gè)和輸出(簡(jiǎn)稱S) 和一個(gè)進(jìn)位輸出(簡(jiǎn)稱CO)。ABCOSAB半加器SCO單片機(jī)邏輯原理二進(jìn)制加法全加器但大部分二進(jìn)制數(shù)是多于1位的,半加器不能夠把前一步的進(jìn)位加到本次運(yùn)算中。例如做如下加法: 1 1 1 1+ 1 1 1 11 1 1 1 0 只能用半加器來計(jì)算最右邊一列數(shù):即1加1等于0,進(jìn)位為1。對(duì)于右邊第2列數(shù),由于進(jìn)位的存在,需要加3個(gè)數(shù),需要按如下方式把兩個(gè)半加器和一個(gè)或門連接起來,我們稱之為全加器:AB半加器SCOAB半加器SCO進(jìn)位輸出和輸出進(jìn)位輸入AB全加器SCOCI單片機(jī)邏輯原理二

9、進(jìn)制加法8位加法器有同學(xué)可能已經(jīng)想到了,我們把8個(gè)全加器串起來就是一個(gè)8位加法器,理論上可以串無限多。如何實(shí)現(xiàn)減法?A BFACICO SA BFACICO SA BFACICO S8位和進(jìn)位輸入進(jìn)位輸出A7.A0B7.B0 8位加法器CICO S7.S0單片機(jī)邏輯原理時(shí)鐘在單片機(jī)構(gòu)成圖里面有個(gè)CLOCK,是什么東西。我們先來看下這樣的一個(gè)電路,如下圖,當(dāng)A閉合時(shí),線圈通電,觸電下拉;觸點(diǎn)下拉,線圈斷電,觸點(diǎn)復(fù)位;觸電復(fù)位,線圈通電,觸點(diǎn)下拉看起來C的電壓如下:有周期的通斷,時(shí)鐘。所以數(shù)字電路都依賴于時(shí)鐘觸發(fā),所有程序的執(zhí)行也都依賴于時(shí)鐘,所以時(shí)鐘對(duì)于單片機(jī)是不可缺少的。VCAV0單片機(jī)邏輯原

10、理觸發(fā)器時(shí)鐘是如何控制數(shù)字電路的呢?接下去我們?cè)賮砜磦€(gè)電路。左邊或非門的輸出是右邊或非門的輸入,右邊或非門的輸出是左邊或非門的輸入。這是一種反饋。事實(shí)上,這和在振蕩器中類似,輸出又返回作為一種輸入。一開始只有左邊或非門輸出1,因?yàn)樗膬蓚€(gè)輸入都是0?,F(xiàn)在我們操作兩個(gè)開關(guān)看看。V或非門,輸入都為0時(shí),輸出1單片機(jī)邏輯原理觸發(fā)器閉合上面開關(guān),燈亮,斷開燈還是亮著。由于或非門一個(gè)輸入輸出就為0。V或非門,輸入都為0時(shí),輸出1V或非門,輸入都為0時(shí),輸出1單片機(jī)邏輯原理觸發(fā)器我們操作下面的開關(guān)看看,閉合燈泡滅了,斷開燈泡依舊不亮。V或非門,輸入都為0時(shí),輸出1V或非門,輸入都為0時(shí),輸出1單片機(jī)邏輯原

11、理觸發(fā)器我們來總結(jié)下: 閉合上面的開關(guān)使燈泡點(diǎn)亮,當(dāng)再斷開時(shí),燈泡仍然亮著。 閉合下面的開關(guān)使燈泡熄滅,當(dāng)再斷開時(shí),燈泡仍然不亮。電路的奇特之處是:有時(shí)當(dāng)兩個(gè)開關(guān)都斷開時(shí),燈泡亮著;而有時(shí),當(dāng)兩個(gè)開關(guān)都斷開時(shí),燈泡卻不亮。當(dāng)兩個(gè)開關(guān)都斷開時(shí),電路有兩個(gè)穩(wěn)定狀態(tài),這樣的一個(gè)電路稱為觸發(fā)器。觸發(fā)器電路可以保持信息,換句話說,它有記憶性。有了觸發(fā)器我們時(shí)鐘就可以控制數(shù)據(jù)了,也可以將我們的電路跟時(shí)鐘聯(lián)系在一起。觸發(fā)器有多種,下圖是最簡(jiǎn)單的RS觸發(fā)器。單片機(jī)邏輯原理鎖存器具體數(shù)據(jù)怎么保存呢,我們來看下這個(gè)電路:S和R輸入以及輸出Q均為0。只要保持位為0,數(shù)據(jù)端輸入對(duì)于電路輸出就沒有影響;當(dāng)保持位為1時(shí),

12、電路反映出數(shù)據(jù)端輸入的值。這個(gè)電路稱為電平觸發(fā)的D型觸發(fā)器,D表示數(shù)據(jù)端輸入。通常情況下保持位會(huì)標(biāo)為“時(shí)鐘”。實(shí)際上圖中電路數(shù)據(jù)在時(shí)鐘高電平時(shí)輸出,也就是電平觸發(fā),實(shí)際上用的為邊沿觸發(fā)。單片機(jī)邏輯原理鎖存器把多個(gè)鎖存器如下組合連接時(shí)可以構(gòu)成計(jì)數(shù)器,8位鎖存器構(gòu)成8位計(jì)數(shù)器。鎖存器,在數(shù)據(jù)跳變沿寫入單片機(jī)邏輯原理鎖存器跟8位加法器一樣,我們把8個(gè)鎖存器連接在一起就構(gòu)成了8位鎖存器。8位加法器與8位鎖存器組成電路就可以實(shí)現(xiàn)數(shù)據(jù)累加。D7.D0 8位鎖存器CLK Q7.Q0單片機(jī)邏輯原理存儲(chǔ)器存儲(chǔ)器的類型有很多,比如EEPROM,FLASH,SDRAM等,他們的作用都是存儲(chǔ)數(shù)據(jù),當(dāng)然各有優(yōu)缺點(diǎn),RO

13、M,F(xiàn)LASH掉電也能保存數(shù)據(jù),RAM不行,但讀寫速度快。比如電腦系統(tǒng)文件安裝在磁盤里,但是運(yùn)行程序往往在內(nèi)存中運(yùn)行,這就是為什么內(nèi)存大小會(huì)影響電腦運(yùn)行速度。我們看下右圖的電路表示8X1的RAM單元電路,通過地址選擇一位數(shù)據(jù)信息讀寫,可以用如下表示。單片機(jī)邏輯原理存儲(chǔ)器兩個(gè)81 RAM陣列也可以按照與單個(gè)鎖存器連接相同的方式組合構(gòu)成RAM陣列。單片機(jī)邏輯原理自動(dòng)操作前面我們提到加法器跟鎖存器可以構(gòu)成一個(gè)累加器,它可以在時(shí)鐘的控制下,累加我們的輸入數(shù)據(jù)。但是這個(gè)累加器存在一個(gè)待解決的問題,如果我要累加100個(gè)數(shù)據(jù),得一個(gè)個(gè)輸半天,如果中間一個(gè)不小心輸錯(cuò)了,又得重來。如果先把數(shù)據(jù)輸入到存儲(chǔ)器中,再

14、進(jìn)行累加,那么修改數(shù)據(jù)將變得簡(jiǎn)單。將它們結(jié)合在一起。單片機(jī)邏輯原理自動(dòng)操作我們就有了這樣的電路圖結(jié)構(gòu)。振蕩器提供時(shí)鐘信號(hào)。在清零開關(guān)斷開后,當(dāng)時(shí)鐘由0變?yōu)?時(shí),將同時(shí)發(fā)生兩個(gè)事件:鎖存器保存來自加法器的結(jié)果,16位計(jì)數(shù)器加1,指向R A M陣列的下一個(gè)地址。當(dāng)時(shí)鐘第一次由0變?yōu)?時(shí),鎖存器保存第一個(gè)數(shù),同時(shí),計(jì)數(shù)器增加到0 0 0 1 h;當(dāng)時(shí)鐘第二次由0變?yōu)?時(shí),鎖存器保存第一個(gè)數(shù)與第二個(gè)數(shù)之和,同時(shí)計(jì)數(shù)器增加到0 0 0 2 h;依此類推單片機(jī)邏輯原理自動(dòng)操作前面講的只是簡(jiǎn)單的對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行累加,現(xiàn)在我如果想要這樣的操作,比如將RAM中0000H-0002H的3個(gè)數(shù)據(jù)累加存放到0003H

15、中,將0005H-0006H的2個(gè)數(shù)據(jù)累加存放到0006H中,將0007H-0009H的3個(gè)數(shù)據(jù)累加存放到000AH,停止。詳細(xì)的說,應(yīng)完成如下工作: 把地址0000h中的數(shù)裝載到累加器中 把地址0001h中的數(shù)加到累加器中 把地址0002h中的數(shù)加到累加器中 把累加器中的數(shù)保存到地址0003h中 把地址0004h中的數(shù)裝載到累加器中 把地址0005h中的數(shù)加到累加器中 把累加器中的數(shù)保存到地址0006h中 把地址0007h中的數(shù)裝載到累加器中 把地址0008h中的數(shù)加到累加器中 把地址0009h中的數(shù)加到累加器中 把累加器中的數(shù)保存到地址000Ah中 停止運(yùn)行單片機(jī)邏輯原理自動(dòng)操作怎樣完成這些工作呢?只是簡(jiǎn)單地鍵入一組數(shù)到RAM中并期望自動(dòng)加法器來正確操作是不可能的。對(duì)于R A M中的每個(gè)數(shù)字,我們還需要一個(gè)數(shù)字代碼來表示自動(dòng)加法器所要做的工作:裝載,加,保存或停止。也許最容易的方法是把這些代碼存儲(chǔ)在一個(gè)完全獨(dú)立的RAM陣列中。這第二個(gè)RAM 陣列與最初的RAM陣列同時(shí)被訪問,但它存放的不是要加的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論