




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章微型計算機基礎(chǔ)知識1.1微型計算機數(shù)制及其轉(zhuǎn)換微型計算機是以二進制形式進行算術(shù)運算和邏輯操作的,二進制數(shù)是計算機系統(tǒng)能認識、處理的惟一數(shù)制。因此,用戶在鍵盤上輸入的十進制數(shù)字和符號命令,微型計算機都必須先把它們轉(zhuǎn)換成二進制形式進行識別、運算和處理,然后再把運算結(jié)果還原成十進制數(shù)字和符號在顯示器上顯示出來。為了使讀者弄清機器的這一工作機理,我們先對微型計算機中常用的數(shù)制和數(shù)制間的轉(zhuǎn)換進行討論。1.1.1微型計算機的數(shù)制所謂數(shù)制是指數(shù)的制式,是人們利用符號計數(shù)的一種科學方法。數(shù)制有很多種,微型計算機中常用的數(shù)制有十進制、二進制和十六進制三種。1.十進制(Decimal)十進制是大家很熟悉的進位計數(shù)制,它共有0、1、2、3、4、5、6、7、8和9十個數(shù)字符號。這十個數(shù)字符號又稱為數(shù)碼,每個數(shù)碼在數(shù)中最多可有兩個值的概念。
下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換十進制是一種科學的計數(shù)方法,它所能表示的數(shù)的范圍很大,可以從無限小到無限大。十進制數(shù)通常具有如下兩個主要特點:
(1)它有0~9十個不同的數(shù)碼,這是構(gòu)成所有十進制數(shù)的基本符號。
(2)它是逢十進位的。十進制數(shù)在計數(shù)過程中,當它的某位計滿10時就要向它鄰近高位進一。因此,任何一個十進制數(shù)不僅和構(gòu)成它的每個數(shù)碼本身的值有關(guān),而且還和這些數(shù)碼在數(shù)中的位置有關(guān)。這就是說,任何一個十進制數(shù)都可以展開成冪級數(shù)形式。
上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換一般地說,任意一個十進制數(shù)均可表示為:2.二進制(Binary)二進制數(shù)的特點是:只有兩個數(shù)碼,即0和1,逢二進一。因此,二進制數(shù)同樣也可以展開成冪級數(shù)形式,任何二進制數(shù)的通式為:上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換1位二進制數(shù)只能表示0和1兩個狀態(tài),為了表示更多的狀態(tài),可用兩位或兩位以上的二進制數(shù)表示。二進制數(shù)的位數(shù)與它能表示的狀態(tài)數(shù)之間的關(guān)系如下:1位二進制數(shù),共有21(即2)個狀態(tài),分別編碼為0、1;2位二進制數(shù),共有22(即4)個狀態(tài),分別編碼為00、01、10、11;4位二進制數(shù),共有24(即16)個狀態(tài),分別編碼為
0000000100100011010001010110011110001001101010111100110111101111上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換8位二進制數(shù),共有28(即256)個狀態(tài),分別編碼為
000000000000000100000010000000110000010000000101000001100000011100001000000010010000101000001011
……11111100111111011111111011111111上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換在計算機系統(tǒng)中,寄存器、存儲器的本質(zhì)就是一組觸發(fā)器。一個觸發(fā)器,如RS、D型觸發(fā)器等均有兩個穩(wěn)定的狀態(tài),即0態(tài)和1態(tài),顯然一個觸發(fā)器可以存儲1位二進制數(shù)。為了提高數(shù)據(jù)處理速度,在計算機中往往需要并行處理多位二進制數(shù)。習慣上,存儲器中一個存儲單元通常由8個觸發(fā)器組成,即一個存儲單元可以存放一個8位二進制數(shù)。一個8位二進制數(shù)稱為一個字節(jié)(Byte),有256種狀態(tài),或者說可以表示256個符號。因此,存儲器(包括內(nèi)存儲器和外存儲器)容量單位常用字節(jié)(或干字節(jié))表示,如某存儲器的容量為640KB,即該存儲器有640×1024個存儲單元,每個存儲單元的大小為一個字節(jié)。上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換10位二進制數(shù),共有210(1024,在計算機中,“1024”習慣上稱為1K)個狀態(tài),編碼為0000000000~1111111111。16位二進制數(shù),共有216(65536,即64K)個狀態(tài),編碼為0000000000000000~1111111111111111。有些微處理器,如大多數(shù)8位的微處理器,就有16根地址線。由于每根地址線有兩種可能的狀態(tài),所以可以用地址線狀態(tài)的不同編碼尋址不同的存儲單元。因此,16根地址線相當于16位二進制數(shù),最多可以尋址64K個存儲單元。而存儲單元的大小一般是一個字節(jié),所以對于具有16根地址線的微處理器來說,最多可以尋址64KB的存儲空間,或者說尋址能力為64KB。為了不致引起混亂,二進制數(shù)用后綴字母B作標記,如二進制數(shù)1110記為lll0B。上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換3.十六進制(Hexadecimal)十六進制數(shù)的特點是:逢十六進一,具有16個數(shù)碼,分別用0、1、2、…、9和A、B、C、D、E、F表示。1位十六進制數(shù)可以表示16種狀態(tài),編碼從O~F;2位十六進制數(shù)可以表示162(256)種狀態(tài),編碼從00~FF;4位十六進制數(shù)可以表示164(65536,即64K)種狀態(tài),編碼為0000~FFFF;而8位十六進制數(shù)可以表示168(4096M)種狀態(tài),編碼為00000000~FFFFFFFF。為了不致引起誤解,十六進制數(shù)要加后綴字母H,如十六進制數(shù)“3F”記為“3FH”;而對于以字母開頭的十六進制數(shù),必須帶有前綴0(零),以區(qū)別于一般字符串,如十六進制數(shù)FE記為“0FEH”。與十進制數(shù)類似,對于n位十六進制數(shù),可以表示為上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換1.1.2微型計算機數(shù)制間數(shù)的轉(zhuǎn)換1.二進制數(shù)與十進制數(shù)之間的轉(zhuǎn)換對于n位十進制數(shù),可以表示為:
同理,n位二進制數(shù)也可以表示為:可見,將二進制數(shù)轉(zhuǎn)換為十進制數(shù)不難,只要按上式展開即可求出對應(yīng)的十進制數(shù)。而十進制數(shù)轉(zhuǎn)換為二進制數(shù)時,可以按如下規(guī)律進行:上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換整數(shù)部分除以2所得的余數(shù)就是對應(yīng)二進制數(shù)的個位,其商再除以2所得的余數(shù)就是對應(yīng)二進制數(shù)的十位,依次類推,即可獲得對應(yīng)二進制數(shù)的整數(shù)部分。小數(shù)部分乘以2所得的整數(shù)就是對應(yīng)二進制數(shù)小數(shù)部分的十分位,乘積中的小數(shù)部分再乘以2得到的整數(shù)就是對應(yīng)二進制數(shù)小數(shù)部分的百分位,依次類推,即可求出所有的小數(shù)位。例1.113.75的整數(shù)部分是13,小數(shù)部分是0.75,轉(zhuǎn)換為二進制數(shù)的過程如下所示。上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換13相當于二進制數(shù)1101;而0.75×2=1.5,因此十分位為1;0.5×2=1.0,因此百分位為l,即13.75=1101.1IB。2.二進制數(shù)與十六進制數(shù)之間的轉(zhuǎn)換二進制和十六進制數(shù)間的轉(zhuǎn)換十分方便,這就是為什么要采用十六進制形式來對二進制數(shù)加以表達的內(nèi)在原因。(1)二進制數(shù)轉(zhuǎn)換成十六進制數(shù)時,按如下規(guī)則進行。對于二進制數(shù)的整數(shù)部分來說,從個位開始,每4位作為一組,劃分整數(shù)部分(如果最后一組不足4位,可在前面補1~3個零);對于二進制數(shù)的小數(shù)部分來說,從十分位開始,每4位作為一組,劃分小數(shù)部分(同樣,當最后一組不足4位時,可在后面補1~3個零)。然后把每組中的4位二進制數(shù)用對應(yīng)的十六進制數(shù)表示,即可獲得相應(yīng)的十六進制數(shù)。上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換如:1110010101.10101B=0011100l0101.10101000395A8即1110010101.10101B=395.A8H(2)十六進制數(shù)轉(zhuǎn)換為二進制數(shù)時,按如下規(guī)則進行。將十六進制數(shù)的整數(shù)部分和小數(shù)部分的每一位十六進制數(shù)碼用對應(yīng)的4位二進制數(shù)表示,然后再刪除整數(shù)部分前面和小數(shù)部分后面多余的零,即可獲得對應(yīng)的二進制數(shù),如:93FE.3A3H=1001001111111110.001110100011B又如:3E.CH=00111110.11OOB=111110.11B(刪除整數(shù)部分前面的零和小數(shù)部分后面的零)上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換可見二進制數(shù)與十六進制數(shù)之間的轉(zhuǎn)換非常方便,只要記住4位二進制數(shù)0000~1111與十六進制數(shù)0~F之間的對應(yīng)關(guān)系即可。下面是二進制數(shù)0000~1111對應(yīng)的十六進制數(shù)和十進制數(shù)。二進制數(shù)十進制數(shù)十六進制數(shù)二進制數(shù)十進制數(shù)十六進制數(shù)000000100088000111100199001022101010A001133101111B010044110012C010155110113D011066111014E011177111115F上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換1.1.3二進制數(shù)和十六進制數(shù)的運算1.二進制數(shù)的運算二進制數(shù)的四則運算包括加、減、乘、除,在學習單片機原理時,尤其需要掌握其中的加、減和乘法運算規(guī)則。(1)二進制數(shù)的加法二進制數(shù)的加法運算規(guī)則為0+0=0,0+1=1,1+0=1(交換律),1+1=10(二進制數(shù)中的“10”就是十進制數(shù)的“2”)。例如:
10010110B+01110011B100001001B上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換(2)二進制數(shù)的減法二進制數(shù)向前借位時,為“10”,例如:
10010110B-01110011B00100011B(3)二進制數(shù)的乘法二進制數(shù)的乘法運算規(guī)則為0×0=0,0×1=0,1×0=0(交換律),1×1=1。例如:
10010110B×101B1001011000000000+100101101011101110B上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換2.十六進制數(shù)的運算十六進制數(shù)的四則運算包括加、減、乘、除,在學習單片機原理時,同樣需要掌握其中的加、減和乘法運算規(guī)則。十六進制數(shù)的加法運算規(guī)則與十進制數(shù)的加法運算規(guī)則相同,如3H+4H=7H,7H+4H=0BH(結(jié)果是十進制數(shù)的11,即十六進制數(shù)的0BH),8H+7H=0FH(結(jié)果是十進制數(shù)的15,即十六進制數(shù)的0FH),8H+9H=11H(結(jié)果是十進制數(shù)的17,即十六進制數(shù)的llH)。例如:
346AH+589CH8D06H上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換在上式中,個位的A(10)加C(12),結(jié)果為22,即十六進制數(shù)的“16”,向十位進1,結(jié)果為6;十位的6+9+1(個位進位),結(jié)果為16,即十六進制數(shù)中的“10”,向百位進1,結(jié)果為0;百位4+8+1(十位進位),結(jié)果為13,即十六進制數(shù)中的“D”;千位3+5,結(jié)果為8。上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換746AH-589CH1BCEH在上式中,個位向十位借1后,變成十六進制數(shù)的“1A”,即十進制數(shù)的26,再減C(即十進制數(shù)的12),結(jié)果為14,即十六進制數(shù)的“E”;十位原本是“6”,個位借1后變?yōu)椤?”,十位再向百位借l,變成十六進制數(shù)的“15”,即21;減9,結(jié)果為12,即十六進制數(shù)的“C”;百位原本是“4”,十位借1后變?yōu)椤?”,百位向千位借1,變成十六進制數(shù)的“13”,即19;減8,結(jié)果為11,即十六進制數(shù)的“B”。上一頁下一頁返回1.1微型計算機數(shù)制及其轉(zhuǎn)換746AH×9CH(進位)347574F8(進位)235
+417BA46F098可見十六進制數(shù)的乘法與十進制數(shù)的乘法運算方法類似,但必須注意將十六迸制數(shù)乘法運算的中間結(jié)果轉(zhuǎn)為十六進制數(shù),例如6×9的結(jié)果為十進制數(shù)的54,轉(zhuǎn)化為十六進制數(shù)是36H。上一頁返回1.2碼制計算機內(nèi)部所有的數(shù)據(jù)均采用二進制代碼表示,但通過輸入設(shè)備(如鍵盤)輸入的信息和通過輸出設(shè)備(如顯示器、打印機)輸出的信息卻是多種多樣的,既有字母、數(shù)字,又有各種控制字符,甚至漢字。為了方便,人們對計算機中常用的符號進行了編碼。當通過輸入設(shè)備向計算機輸入某個字符時,計算機會自動將該字符轉(zhuǎn)化為對應(yīng)的二進制數(shù),再進行處理同時計算機也將處理結(jié)果還原為對應(yīng)的字符。于是,字符所對應(yīng)的二進制數(shù)就稱為該字符的編碼。下一頁返回1.2碼制1.2.1英文字符的表示方法——ASCII碼由于計算機只能處理二進制數(shù),因此除了數(shù)值本身需要用二進制數(shù)形式表示外,字符(包括數(shù)碼,如0,1,2,3,4,5,6,7,8,9)、字母(如A,B,C,D,…,X,Y,Z及a,b,C,d,…,x,y,z)、特殊符號(如%,!,+,-,=)等也必須用二進制數(shù)表示,即在計算機中需將數(shù)碼、字母、特殊符號等代碼化,以便于計算機識別、存儲和處理。英文屬于典型的拼音文字,由字母、數(shù)字、特殊符號等組合而成,但這些字母、數(shù)字、特殊符號的數(shù)目畢竟有限,不過百余個。我們知道7位二進制數(shù)可以表示128種狀態(tài),如果每一種狀態(tài)代表特定的字母或數(shù)字,則7位二進制數(shù)可表示128個字符。上一頁下一頁返回1.2碼制
在計算機系統(tǒng)中,存儲單元的長度通常為8位二進制數(shù)(一個字節(jié)),為了存取方便,規(guī)定一個存儲單元存放一個ASCII碼,其中低7位表示字母本身的編碼,第8位(bit7)用作奇偶校驗位或規(guī)定為零(通常如此)。因此,也可以認為ASCII碼的長度為8位(但bit7為0)。128個字符對于某些特殊應(yīng)用來說,可能不夠,因此就采用8位的ASCII,即擴展ASCII碼(共有256個代碼)。其中前128個(高位為O)編碼用于表示基本的ASCII碼,基本ASCII碼主要用于表示數(shù)字、英文字母(大、小寫)、標點符號、控制字符等,后128(高位為1)個編碼用于表示擴展的ASCII碼,擴展ASCII用于表示一些特殊的符號,如希臘字母等。上一頁下一頁返回1.2碼制1.2.2BCD碼(二進制編碼的十進制數(shù))十進制數(shù)畢竟是人們最習慣的計數(shù)方式,在向計算機輸入數(shù)據(jù)時,常用十進制數(shù)輸入,但計算機只認識二進制數(shù),因此每一位十進制數(shù)必須用二進制數(shù)表示。一位十進制數(shù)包含0~9十個數(shù)碼,必須用4位二進制數(shù)表示,這樣就需要確定0~9與4位二進制數(shù)0000B~1111B之間的對應(yīng)關(guān)系,其中較常用的8421BCD碼規(guī)定了十進制數(shù)0~9與4位二進制數(shù)編碼之間的對應(yīng)關(guān)系如下。上一頁下一頁返回1.2碼制上一頁下一頁返回
十進制數(shù)8421BCD碼
十進制數(shù)8421BCD碼0000050101l0001601102001070lll300ll81000401009100l1.2碼制
1.2.3計算機中帶符號數(shù)的表示方法在計算機中,對于帶符號數(shù)來說,一般用最高位表示數(shù)的正負。對于正數(shù),最高位規(guī)定為“0”;對于負數(shù),最高位為“1”。例如:56H可以表示為01010110(對于8位二進制數(shù)來說,b7位表示數(shù)的正負,b6~b0表示數(shù)的絕對值),-56H可以表示為11010110。0256H可以表示為0000001001010110(對于16位二進制數(shù)來說,b15位表示數(shù)的正負,b14~b0表示數(shù)的絕對值),-0256H可以表示為1000001001010110。1.原碼對于帶符號數(shù)來說,用最高位表示數(shù)的正負,其余各位表示該數(shù)的絕對值,這種表示方法就稱為原碼表示法,如上所述。上一頁下一頁返回1.2碼制2.反碼帶符號數(shù)也可以用反碼表示,反碼與原碼的關(guān)系是:正數(shù)的反碼與原碼相同,如[56H]反=[56H]原=01010110B。負數(shù)的反碼等于對應(yīng)正數(shù)的原碼按位求反。因此,求-56H反碼的過程如下:對應(yīng)正數(shù)56H的原碼為01010110,按位求反后為10101001,即-56H的反碼為10101001?;蛘哒f,正數(shù)的反碼與原碼相同,而負數(shù)的反碼是對應(yīng)負數(shù)原碼除符號位外,絕對值部分按位取反。上一頁下一頁返回1.2碼制3.補碼在計算機內(nèi),帶符號數(shù)并不是用原碼或反碼表示,而是用補碼表示,引入原碼、反碼的目的只是為了方便理解補碼概念而已。不用原碼表示的原因是:用原碼表示時,0的原碼并不惟一,0的原碼可以表示為00000000(+0),也可以表示為10000000(一0),這會造成混亂;再就是用原碼表示時,減法并不能轉(zhuǎn)化為加法運算,反碼也存在類似問題。在計算機中,帶符號數(shù)用補碼表示后,減法就可以轉(zhuǎn)化為加法運算,例如:上一頁下一頁返回1.2碼制56H-23H=56H-23H+100H(100H是8位二進制能表示的最大數(shù),加上100H后,對計算結(jié)果沒有影響,原因是8位二進制無法存放100H中的“1”,即b8位)=56H+100H-23H=56H+0DDH=133H=33H(由于8位二進制不能存放b8位,結(jié)果133H中最高位“l(fā)”自然丟失)可見在8位二進制中,56H-23H的結(jié)果與56H+0DDH相同,即引入補碼后減法可以用加法來完成。顯然在8位二進制中,23H與0DDH互為補碼。補碼的定義為:正數(shù)的補碼與反碼、原碼相同;負數(shù)的補碼等于它的反碼加1。因此,求-23H補碼的過程如下:上一頁下一頁返回1.2碼制對應(yīng)正數(shù)23H的原碼為00100011,按位求反后為11011100,即-23H的反碼,反碼加1后為11011101,即-23H的補碼為11011101(相當于無符號數(shù)的0DDH)??梢?,用補碼表示時,最高位為O,表示該數(shù)為正數(shù),數(shù)值部分就是真值。而最高位為1時是負數(shù),數(shù)值部分并不是它的真值,必須再求補后,才得到該數(shù)的絕對值,如上例中的一23H的補碼為11011101,按位取反后為00100010,加1后為00100011,即23H。對于8位二進制數(shù)來說,補碼表示的范圍是-128~+127;對于16位二進制數(shù)來說,補碼表示的范圍是-32768~+32767。上一頁返回1.3微型計算機組成原理
迄今為止,所有計算機的組成結(jié)構(gòu)都是馮·諾依曼型的,即:它是執(zhí)行存儲器中程序而工作的。計算機執(zhí)行程序是自動按序進行的,毋需人工干預,控制器在時鐘信號的控制下,從存儲器中取出計算步驟(指令)和數(shù)據(jù),并根據(jù)指令操作碼內(nèi)容發(fā)出相應(yīng)的控制信號。程序和數(shù)據(jù)由輸入設(shè)備輸入存儲器,執(zhí)行程序所獲得的運算結(jié)果由輸出設(shè)備輸出。因此,計算機通常有運算控制部件、存儲器部件、輸入設(shè)備和輸出設(shè)備四部分組成,計算機系統(tǒng)的基本結(jié)構(gòu)如圖1—1所示。下一頁返回1.3微型計算機組成原理在計算機中,往往把運算器、控制器做在一個芯片上,稱為中央處理器(CentralProcessorUnit,簡稱CPU),有時也稱為微處理器(MicroProcessorUnit,MPU)。為了進一步減小電路板面積,提高系統(tǒng)可靠性,將輸入、輸出接口電路、時鐘電路,以及存儲器、運算器、控制器等部件集成到一個芯片內(nèi),就成為單片機(也稱為微控制器,即MicroControllerUnit,簡稱MCU)。這就表示一個芯片就具備了一個完整的計算機系統(tǒng)所必需的基本部件。為了適應(yīng)不同的需求,將不同功能的外圍電路,如定時器、中斷控制器、A/D及D/A轉(zhuǎn)換器、串行通信接口電路等集成在一個芯片內(nèi),形成系列化產(chǎn)品,就構(gòu)成了所謂“嵌入式”單片機控制芯片。上一頁下一頁返回1.3微型計算機組成原理1.3.1微型計算機的基本結(jié)構(gòu)1.CPU的內(nèi)部結(jié)構(gòu)圖1-1中的運算器和控制器等部件往往做在同一芯片內(nèi),稱為中央處理器(CPU)。8位通用微處理器內(nèi)部基本結(jié)構(gòu)可用圖1-2描述,它由算術(shù)邏輯運算單元(ArithmeticLogicUnit,簡稱ALU)、累加器A(8位)、寄存器B(8位)、程序狀態(tài)字寄存器PSW(8位)、程序計數(shù)器PC(有時也稱為指令指針,即IP,16位)、地址寄存器AR(16位)、數(shù)據(jù)寄存器DR(8位)、指令寄存器IR(8位)、指令譯碼器ID、控制器等部件組成。上一頁下一頁返回1.3微型計算機組成原理
(1)程序計數(shù)器PC是CPU內(nèi)部的寄存器,用于記錄將要執(zhí)行的指令代碼所在存儲單元的地址編碼。一般說來,PC的長度與CPU地址線數(shù)目一致,例如8位機的CPU一般具有16根地址線(A15~A0),PC的長度也是16位。復位后,PC具有確定值,例如在MCS一51系列單片機中,復位后,PC=0000H,即復位后將從程序存儲器的0000H單元讀取第一條指令碼。由于復位后,PC的值就是第一條指令代碼存放的單元地址,因此設(shè)計程序時,必須了解復位后PC的值是什么,以便確定第一條指令碼從存儲器哪一存儲單元開始存放。PC具有自動加1的功能,即從存儲器中讀出一個字節(jié)的指令碼后,PC會自動加1(指向下一存儲單元)。上一頁下一頁返回1.3微型計算機組成原理(2)地址寄存器AR(AddressRegister,16位)用于存放將要尋址的外部存儲器單元的地址信息,指令碼所在存儲單元的地址編碼,由程序計數(shù)器PC產(chǎn)生;而指令中操作數(shù)所在存儲單元的地址碼,由指令的操作數(shù)給定。地址寄存器AR通過地址總線AB與外部存儲器相連。(3)指令寄存器IR(InstructionRegister)用于存放取指階段讀出的指令代碼的第一字節(jié),即操作碼,使指令譯碼器ID的輸入保持不變。存放在IR中的指令碼經(jīng)指令譯碼器ID譯碼后,輸入控制器,產(chǎn)生相應(yīng)的控制信號,使CPU完成指令規(guī)定的動作。上一頁下一頁返回1.3微型計算機組成原理(4)數(shù)據(jù)寄存器DR(DataRegister)用于存放寫入外部存儲器或I/O端口的數(shù)據(jù)信息。可見,數(shù)據(jù)寄存器DR對輸出數(shù)據(jù)具有鎖存功能,數(shù)據(jù)寄存器與外部數(shù)據(jù)總線DB直接相連。(5)算術(shù)邏輯運算單元ALU主要用于算術(shù)(加減乘除)、邏輯(與、或、非、異或)運算。由于ALU內(nèi)部沒有寄存器,參加運算的操作數(shù)必須放在累加器A中(運算結(jié)果也存放在累加器A中),例如執(zhí)行指令:ADDA,B;A←A+B時,累加器A的內(nèi)容通過輸入口In_1輸入ALU,寄存器B的內(nèi)容通過內(nèi)部數(shù)據(jù)總線經(jīng)輸入口In_2輸入ALU,A+B的結(jié)果通過ALU的輸出口Out、內(nèi)部數(shù)據(jù)總線,送回累加器A。(6)程序狀態(tài)字寄存器PSW用于記錄運算過程中的狀態(tài),如是否溢出、進位等。上一頁下一頁返回1.3微型計算機組成原理
2.存儲器存儲器是計算機系統(tǒng)中必不可少的存儲設(shè)備,主要用于存放程序(指令)和數(shù)據(jù)。盡管寄存器和存儲器均用于存儲信息,但CPU內(nèi)的寄存器數(shù)量少,存取速率快,它主要用于臨時存放參加運算的操作數(shù)和中間結(jié)果;而存儲器一般在CPU外(但單片機CPU除外,其內(nèi)部一般均含有一定容量的存儲器),單獨封裝。在存儲器芯片內(nèi),存儲單元數(shù)目多,從幾千字節(jié)到數(shù)百兆字節(jié),能存放大量的信息,但存取速率比CPU內(nèi)的寄存器要慢得多。目前,存儲器的存取速率已成為制約計算機運行速率的關(guān)鍵因素之一。上一頁下一頁返回1.3微型計算機組成原理存儲器的種類很多,根據(jù)存儲器能否隨機讀寫,將存儲器分為兩大類:只讀存儲器(ReadOnlyMemory,簡稱ROM)和隨機讀寫存儲器(RandomAccessMemory,簡稱RAM)。根據(jù)存儲器存儲單元結(jié)構(gòu)和信息保存方式的不同,又可以將隨機讀寫存儲器分為靜態(tài)RAM(采用雙極型晶體管結(jié)構(gòu),存取速率快,無需刷新,但構(gòu)成一個存儲單元所需的晶體管數(shù)目較多,集成度低,價格略高)和動態(tài)RAM(采用CMOS工藝,依靠MOS管柵極與襯底之間的寄生電容保存信息,一般均為單管結(jié)構(gòu),集成度高,但寄生電容容量小,漏電大,信息保存時間短,僅為毫秒級,需要刷新電路,致使動態(tài)RAM存儲器系統(tǒng)電路復雜化,不適用于僅需要少量存儲容量的單片機系統(tǒng))。只讀存儲器中“只讀”的含義是信息寫入后,只能讀出,不能隨機修改,適合存放系統(tǒng)監(jiān)控程序。上一頁下一頁返回1.3微型計算機組成原理在單片機應(yīng)用系統(tǒng)中,所需的存儲器容量不大,外圍電路應(yīng)盡可能簡單,因此幾乎不使用動態(tài)RAM,常使用PROM(可編程的只讀存儲器)、EPROM(紫外光可擦寫的只讀存儲器)、OTPROM(一次性編程的只讀存儲器,內(nèi)部結(jié)構(gòu)、工作原理與EPROM相似,是一種沒有擦寫窗口的EPROM)、EEPROM(也稱為E2PROM,是一種電可擦寫的只讀存儲器,其結(jié)構(gòu)與EPROM類似,但絕緣柵很薄,高速電子可穿越絕緣層,中和浮柵上的正電荷,起到擦除目的,也就是說可通過高電壓擦除)、FlashROM(電可擦寫只讀存儲器,寫入速度比EEPROM快,因此也稱為閃爍存儲器)等只讀存儲器作為程序存儲器,使用SRAM(靜態(tài)存儲器)作隨機讀寫RAM,使用E2PROM、FRAM(鐵電存儲器,讀寫速率快,操作方法與SRAM相似)作非易失的數(shù)據(jù)存儲器。盡管這些存儲器工作原理不同,但內(nèi)部結(jié)構(gòu)基本相同。上一頁下一頁返回1.3微型計算機組成原理(1)內(nèi)部結(jié)構(gòu)EPROM、EEPROM、FlashROM、SRAM、FRAM等存儲器內(nèi)部結(jié)構(gòu)可以用圖1-3描述,由地址譯碼器、存儲單元、讀寫控制電路等部分組成。
寄存器或存儲器中的一個存儲單元,等效于一組觸發(fā)器,每個觸發(fā)器有兩個穩(wěn)定狀態(tài),可以記錄一位二進制數(shù)。每一存儲單元包含的觸發(fā)器的個數(shù)稱為存儲單元的字長,對于并行存取的存儲器芯片,存儲單元內(nèi)包含的觸發(fā)器的個數(shù)與存儲器芯片數(shù)據(jù)線條數(shù)相同。例如,由8個觸發(fā)器并排在一起構(gòu)成的存儲單元的字長為8位,它可以存放一個8位二進制數(shù)(一個字節(jié))。在計算機中,為了提高處理速度,一次操作(如數(shù)據(jù)傳送或運算)要同時處理多位二進制數(shù)。因此,在并行存取的存儲器芯片中,一個存儲單元的容量通常為8位。
上一頁下一頁返回1.3微型計算機組成原理存儲器芯片內(nèi)存儲單元數(shù)目與存儲器芯片地址線條數(shù)有關(guān)。存儲單元長度也可以大于或小于8位,例如PICl6C56單片機內(nèi)的程序存儲器容量為1K×12bit,即共有1024個存儲單元,每個存儲單元可以存放12位二進制數(shù),即存儲單元的字長為12位。存儲單元的地址編碼與存儲單元中的內(nèi)容是兩個不同的概念,存儲單元地址編碼的長度由存儲器芯片所包含的存儲單元的個數(shù)決定。上一頁下一頁返回1.3微型計算機組成原理(2)存儲器工作狀態(tài)存儲器芯片工作狀態(tài)由存儲器控制信號電平狀態(tài)決定,如表1-1所示。(3)存儲器讀操作下面以CPU讀取存儲器中地址編號為0000H的存儲單元的內(nèi)容為例來說明CPU讀存儲器中某一存儲單元信息的操作過程(如圖1-4所示)。①CPU地址寄存器AR給出將要讀取的存儲單元的地址信息,即0000H。②存儲單元地址信息通過地址總線A15~A0輸入到存儲器芯片地址線上(CPU地址總線與存儲器地址總線相連)。③存儲器芯片內(nèi)的地址譯碼器對存儲器地址信號A14~A0進行譯碼,并選中0000H單元。上一頁下一頁返回1.3微型計算機組成原理④CPU給出讀控制信號(接存儲器的),將選中的0000H存儲單元內(nèi)容輸出到數(shù)據(jù)總線D7~D0(存儲器數(shù)據(jù)總線與CPU數(shù)據(jù)總線相連),結(jié)果0000H單元的內(nèi)容12H就通過存儲器數(shù)據(jù)總線輸入到CPU內(nèi)部的數(shù)據(jù)寄存器DR中,然后送到CPU內(nèi)部某一特定寄存器或暫存器內(nèi),這樣便完成了存儲器的讀操作過程。對于存儲器來說,完成讀操作后,被讀出的存儲單元信息將保持不變。(4)存儲器寫操作把某一數(shù)據(jù)(如55H)寫入存儲器內(nèi)某一存儲單元(如0003H單元)的操作過程如下:①CPU地址寄存器AR給出待寫入的存儲單元的地址編碼0003H,通過地址總線A15~A0輸入到存儲器芯片地址線A14~A0上。上一頁下一頁返回1.3微型計算機組成原理3.地址總線、數(shù)據(jù)總線和控制總線一個電路總是由元器件通過導線連接而成的。在模擬電路中,器件、部件間一般是串行關(guān)系,彼此之間的連線并不多,關(guān)系也不復雜。但在以微處理器為核心的計算機電路中,器件、部件都要與微處理器相連,需要的連線多,如果仍采用模擬電路的連線方式,在微處理器與各器件間單獨連線,則連線數(shù)量將多得驚人,為此在計算機電路中引入了總線的概念:即每一器件的數(shù)據(jù)線連接在一起,構(gòu)成數(shù)據(jù)總線;地址線連接在一起,構(gòu)成地址總線;然后與CPU的數(shù)據(jù)、地址總線相連。為避免混亂,任何時候只允許一個設(shè)備與CPU通信,因此需要控制線進行控制。上一頁下一頁返回1.3微型計算機組成原理②存儲器芯片內(nèi)的地址譯碼器對存儲器地址信號A14~A0進行譯碼,并選中0003H單元。③在寫操作過程中,寫入的數(shù)據(jù)55H存放在CPU內(nèi)的數(shù)據(jù)寄存器DR中。當CPU寫控制信號有效時(與存儲器寫允許信號相連),DR寄存器中的內(nèi)容55H就通過數(shù)據(jù)總線D7~D0傳輸?shù)酱鎯ζ髦斜贿x中的0003H存儲單元,結(jié)果0003H單元的內(nèi)容即刻變?yōu)?5H,完成了存儲器的寫操作過程??梢姡瑢懖僮骱?,被寫入的存儲單元原有信息將不復存在。上一頁下一頁返回1.3微型計算機組成原理所有器件的8根數(shù)據(jù)線全部接到8根公用的數(shù)據(jù)線上,即相當于各個器件并聯(lián)起來。但僅這樣還不行,如果有兩個器件同時送出數(shù)據(jù),一個為0,一個為1,那么接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發(fā)送數(shù)據(jù)(可以有多個器件同時接收)。器件的數(shù)據(jù)線也就被稱為數(shù)據(jù)總線,器件所有的控制線被稱為控制總線。在單片機內(nèi)部或者外部存儲器及其他器件中有存儲單元,這些存儲單元要被分配地址才能使用。分配地址當然也是以電信號的形式給出的,由于存儲單元比較多,所以用于地址分配的線也較多,這些線被稱為地址總線。上一頁下一頁返回1.3微型計算機組成原理
在計算機系統(tǒng)中,常包含以下幾種總線:(1)地址總線(AddressBus,簡稱AB)。它是單向傳輸,用于傳送地址信息,如圖1—1中運算器與存儲器之間的地址線,地址線的數(shù)目決定了可以尋址的存儲空間。一根地址線有兩種狀態(tài),即可以區(qū)分兩個不同的存儲單元,或者說可以尋址兩個存儲單元;兩根地址線有四種狀態(tài),可以尋址四個存儲單元……8位微處理器通常有16根地址線,可以尋址216,即64K個存儲單元。一般存儲單元的大小為一個字節(jié),因此8位微處理器的尋址范圍為64KB。上一頁下一頁返回1.3微型計算機組成原理(2)數(shù)據(jù)總線(DataBus,簡稱DB)。它一般為雙向傳輸,用于CPU與存儲器、CPU與外設(shè)或外設(shè)與外設(shè)之間傳送數(shù)據(jù)(包括實際意義的數(shù)據(jù)和指令碼)信息。在計算機中,為了提高處理速度,總是一次處理由多位二進制數(shù)組成的信息,即在運算器中數(shù)據(jù)線的數(shù)目應(yīng)與待處理的數(shù)據(jù)位數(shù)相同。因此,運算器數(shù)據(jù)線的數(shù)目往往不止一條,一般為4條、8條、16條,甚至32條。運算器內(nèi)數(shù)據(jù)線的多少被稱為微處理器的“字長”。字長是衡量微處理器運算速度及精度的重要指標之一,也是劃分微處理器檔次的重要依據(jù)。根據(jù)字長,可以將微處理器分為1位機、4位機、8位機、16位機、32位機、64位機等。1位機的運算器只有一根數(shù)據(jù)線,每次只能處理1位二進制數(shù),工業(yè)上常用來取代繼電器,用于控制線路的通和斷、設(shè)備的開和關(guān);4位機有四根數(shù)據(jù)線,常用于家用電器,如電視機、空調(diào)機、洗衣機等的控制電路中;8位機功能強大,不僅可用于工業(yè)控制、家用電器,也可作為通用微機系統(tǒng)的中央處理器。上一頁下一頁返回1.3微型計算機組成原理(3)控制總線(ControlBus,簡稱CB)。它是計算機系統(tǒng)中所有控制信號線的總稱,在控制總線中傳送的信息是控制信息。4.I/O接口和外設(shè)I/O接口是架設(shè)在微處理器和外設(shè)間的橋梁,是一種過渡的大規(guī)模集成電路芯片。由于大多數(shù)外部設(shè)備都是機電型的,工作速度較慢,因此微處理器MPU通常不和它們直接相連,而是通過I/O接口緩沖后再和外設(shè)相連,以便實現(xiàn)速度、電平和信號性質(zhì)的匹配。上一頁下一頁返回1.3微型計算機組成原理1.3.2微型計算機的基本原理微型計算機是通過執(zhí)行程序來工作的,機器執(zhí)行不同程序就能完成不同的運算任務(wù)。因此,微型計算機執(zhí)行程序的過程實際上也體現(xiàn)了微型計算機的基本工作原理。為此,我們先從指令和程序談起。1.微處理器的指令及指令系統(tǒng)將CPU所執(zhí)行的各種操作(如從指定的存儲器單元中取數(shù)據(jù),將CPU內(nèi)特定寄存器的內(nèi)容寫入存儲器某一指定的存儲單元中,以及算術(shù)或邏輯運算等)用命令的形式記錄下來,就稱為指令(Instruction)。一條指令與計算機的一種基本操作相對應(yīng)。當然,指令也只能用二進制代碼表示,例如在MCS一51系列單片機中,累加器A中的內(nèi)容除以寄存器B中的內(nèi)容(A÷B)的操作用84H作為指令代碼。上一頁下一頁返回1.3微型計算機組成原理為使計算機能夠準確理解和執(zhí)行指令所規(guī)定的動作,不同操作對應(yīng)的指令要用不同的指令代碼表示;或者說,不同的指令代碼表示不同的操作。例如,在MCS一5l系列單片機中,“E4H”表示將累加器Acc清零,“F4H”表示將累加器Acc內(nèi)容按位取反;又如,用“74HxxH”表示將立即數(shù)“xxH”傳送到累加器Acc中(這條指令占用兩個字節(jié),其中“74H”表示將立即數(shù)傳送到累加器Acc中,是操作碼,而xxH就是要傳送的立即數(shù))。在計算機中,所有指令的集合稱為指令系統(tǒng)。上一頁下一頁返回1.3微型計算機組成原理一條指令通常由操作碼和操作數(shù)兩部分組成:操作碼(Operationcode)決定了指令要執(zhí)行的動作,一般用一個字節(jié)表示,除非指令數(shù)目很多,才需要用兩個字節(jié)表示。用一個字節(jié)表示指令的操作碼時,最多可以表示256種操作,即256條指令,一般已足夠。計算機系統(tǒng)所包含的指令數(shù)目并不很多,尤其是單片機系統(tǒng),如PICl6系列單片機系統(tǒng)僅含有幾十條指令。操作數(shù)(Operand)指定了參加操作的數(shù)據(jù)或數(shù)據(jù)所在的存儲單元的地址。上一頁下一頁返回1.3微型計算機組成原理不同計算機指令系統(tǒng)所包含的指令種類、數(shù)目、指令代碼對應(yīng)的操作由CPU設(shè)計人員指定。因此,不同種類的CPU具有不同的指令系統(tǒng)。一般說來,不同系列CPU的指令系統(tǒng)也不一定相同,除非它們彼此兼容。根據(jù)計算機指令系統(tǒng)的特征,可以將計算機指令系統(tǒng)分為兩大類,即復雜指令系統(tǒng)(ComplexInstructionSetComputer,簡稱CISC指令結(jié)構(gòu))和精簡指令系統(tǒng)(ReducedInstructionSetComputer,簡稱RISC指令結(jié)構(gòu))。采用復雜指令結(jié)構(gòu)的計算機系統(tǒng)(如MCS一51系列單片機)具有如下特點:上一頁下一頁返回1.3微型計算機組成原理(1)指令機器碼長短不一。
(2)可選擇兩條或兩條以上指令完成同一操作,程序設(shè)計靈活性大,但缺點是指令數(shù)目較多(這類CPU一般具有數(shù)十條到數(shù)百條指令)。由于指令操作碼和操作數(shù)均存放在存儲器中,而每條指令占用的字節(jié)數(shù)長短不同。因此,指令中的操作碼不僅要指明該指令所要執(zhí)行的操作,還應(yīng)指出指令占用的字節(jié)數(shù)。根據(jù)指令代碼的長短,可將指令分為:單字節(jié)指令——這類指令僅有操作碼,沒有操作數(shù),或操作數(shù)隱含在操作碼字節(jié)中。雙字節(jié)指令——這類指令第一字節(jié)為操作碼,第二字節(jié)為操作數(shù)。多字節(jié)指令——這類指令第一字節(jié)為操作碼,第二、三字節(jié)為操作數(shù)或操作數(shù)所在的存儲單元地址。上一頁下一頁返回1.3微型計算機組成原理采用精簡指令技術(shù)的計算機指令系統(tǒng)情況剛好相反。完成同一操作,一般只有一條指令可供選擇,指令數(shù)目相對較少,尤其是采用了精簡指令的單片機CPU,如PIC系列、Atmel的AVR系列單片機,指令數(shù)目僅為數(shù)十條,但程序設(shè)計的靈活性相對較差。另外,在采用精簡指令技術(shù)的系統(tǒng)中,指令機器碼長度相同,例如PICl6C54單片機任一指令機器碼的長度均為12位(1.5字節(jié))。由于所有指令碼長度相同,取指、譯碼過程中不必做更多的判斷,因而指令執(zhí)行速度較快。上一頁下一頁返回1.3微型計算機組成原理但無論采用何種類型的指令系統(tǒng),任何CPU的指令系統(tǒng)都會提供數(shù)據(jù)傳送指令、算術(shù)/邏輯運算指令、控制轉(zhuǎn)移指令等四種基本類型指令。此外,在單片機系統(tǒng)中,還要提供位操作指令,以簡化控制系統(tǒng)的程序設(shè)計。用二進制代碼表示的指令稱為機器語言指令,其中的二進制代碼稱為指令的機器碼。機器語言指令是計算機系統(tǒng)中惟一能夠理解和執(zhí)行的指令。正因如此,形象地將二進制代碼形式的指令稱為機器語言指令。上一頁下一頁返回1.3微型計算機組成原理2.程序程序(Program)就是指令的有機組合,是完成特定工作所用到的指令(這些指令當然是某個特定計算機系統(tǒng)的指令)的總稱。一段程序通常由多條指令組成,程序中所包含的指令數(shù)目及種類由程序功能決定。用機器語言指令編寫的程序,就稱為機器語言程序,如:74AAF875A882程序的編制稱為程序設(shè)計。通常,設(shè)計人員是采用指令的匯編符(即助記符)形式編程的,這種程序設(shè)計稱之為匯編語言程序設(shè)計。上一頁下一頁返回1.3微型計算機組成原理3.匯編語言及匯編語言程序由于機器語言指令中的操作碼和操作數(shù)均用二進制數(shù)表示、書寫,沒有明顯的特征,一般人很難理解和記憶,使程序編寫工作成了一件非常困難和乏味的事。為此,人們想出了一個辦法:將每條指令操作碼所要完成的動作用特定符號表示,即用指令功能的英文縮寫替代指令操作碼,形成了指令操作碼的助記符;并將機器語言指令中的操作數(shù)也用CPU內(nèi)寄存器名、存儲單元地址或I/O端口號代替,這樣便形成了操作數(shù)助記符,于是就獲得了“匯編語言指令”。例如,將累加器A內(nèi)容清零,記為“CLRA”;用“MOV”作為數(shù)據(jù)傳送指令的助記符,于是將立即數(shù)23H傳送到累加器A中的指令就可以用“MOVA,#23H”(#是立即數(shù)標志)表示;將存儲器43H單元中的內(nèi)容傳送到累加器A中,可用“MOVA,43H”表示??梢?,匯編語言指令比機器語言指令容易理解和記憶。上一頁下一頁返回1.3微型計算機組成原理
用指令助記符(由操作碼助記符和操作數(shù)助記符組成)表示的指令稱為匯編語言指令,由匯編語言指令構(gòu)成的程序,稱為匯編語言程序(有時也稱為匯編語言源程序)??梢?,匯編語言程序容易理解,可讀性強,方便了程序的編寫和維護。由于匯編語言指令與機器語言指令一一對應(yīng),而機器語言指令中每一指令碼的含義由CPU決定,因此不同計算機系統(tǒng)匯編語言指令格式、助記符等不一定相同。例如,在IntelMCS-51系列單片機系統(tǒng)中,將立即數(shù)55H送累加器A的匯編語言指令記作“MOVA,#55H”;但在MotorolaM6805系列單片機中,卻表示為“LDAA$55”;在PIC系列單片機中,寫為“MOVLW0x55”,其中:“MOVLW”是“MOVLiteraltoW”的縮寫,含義是“操作數(shù)傳送到工作寄存器W中”(在PIC系列單片機CPU內(nèi),工作寄存器W與IntelMCS一51CPU內(nèi)累加器A的地位、作用相同);“0x”表示隨后的數(shù)是十六進制數(shù)。上一頁下一頁返回1.3微型計算機組成原理當然,計算機只能理解和執(zhí)行二進制代碼形式的機器語言指令,不能理解和執(zhí)行匯編語言指令,但可以通過專門軟件或手工查表方式將匯編語言程序中的匯編語言指令逐條翻譯成對應(yīng)的機器語言指令。將匯編語言程序轉(zhuǎn)換為機器語言程序的過程就稱為匯編過程,將完成匯編語言指令轉(zhuǎn)換為機器語言指令的程序稱為匯編程序??梢妳R編程序的功能就是逐一讀出匯編語言源程序中的匯編語言指令,再通過查表比較方式,將其中的匯編語言指令逐一轉(zhuǎn)換成機器語言指令。當然這一過程也可以由人工查表完成,即所謂的人工匯編。上一頁下一頁返回1.3微型計算機組成原理4.微型計算機執(zhí)行程序的過程為了弄清微型計算機的工作原理,現(xiàn)以如下的求和程序來說明微型計算機的工作過程。MOVA,0020H;將存儲器0020H單元中的內(nèi)容傳送到累加器中,該指令對應(yīng)的機器碼為;E52000。ADDA,0021H;將存儲器0021H單元中的內(nèi)容與累加器內(nèi)容相加,和存放在累加器A中,;該指令對應(yīng)的機器碼為252100。MOV002FH,A;將結(jié)果傳送到存儲器002FH單元中,該指令對應(yīng)的機器碼為F52F00。上述求和程序完成的操作是將存儲器0020H單元與0021H單元中的內(nèi)容相加,結(jié)果存放在002FH單元中。假設(shè)這些指令的機器碼從存儲器0000H單元開始順序存放,如圖1—5所示。我們知道,對于特定的CPU來說,復位后程序計數(shù)器Pc的值是固定的。為方便起見,假設(shè)復位后PC的值正是這個小程序第一條指令所在的存儲單元地址,即0000H。上一頁下一頁返回1.3微型計算機組成原理下面我們來看計算機執(zhí)行存儲單元中指令代碼的操作過程:①將程序計數(shù)器PC中的內(nèi)容,即第一條指令所在的存儲單元地址0000H通過內(nèi)部地址總線送地址寄存器AR中。②當PC中的內(nèi)容可靠地傳送到AR后,PC內(nèi)容自動加1,指向下一存儲單元。③地址寄存器AR中的內(nèi)容通過外部地址總線AB將0000H單元地址信息送到存儲器地址總線上。④存儲器芯片內(nèi)的地址譯碼器對地址信號進行譯碼,并選中存儲器芯片內(nèi)的0000H單元。⑤CPU給出存儲器讀控制信號,結(jié)果0000H單元中的內(nèi)容“E5”經(jīng)存儲器和CPU之間的數(shù)據(jù)總線DB送到CPU內(nèi)部的數(shù)據(jù)存儲器DR中。上一頁下一頁返回1.3微型計算機組成原理
⑥由于指令第一字節(jié)是操作碼,不是操作數(shù)(CPU設(shè)計時約定的規(guī)則),因此進入DR寄存器中的E5H,即指令的第一字節(jié)將送入指令寄存器IR中保存,這樣就完成了第一條指令操作碼的取出過程。
⑦接著指令譯碼器ID對指令寄存器IR中的內(nèi)容(操作碼)進行譯碼,以確定指令所要執(zhí)行的操作,指示CPU內(nèi)的控制器給出相應(yīng)的控制信號,這樣就完成了指令的譯碼過程。譯碼后,也就知道了該指令有無操作數(shù),以及存放位置,同時也就知道了指令的字節(jié)數(shù)。譯碼后,得知操作碼為E5的指令是三字節(jié)指令,操作碼E5后的兩個字節(jié)是操作數(shù)所在的存儲單元地址(這里假設(shè)低8位地址在前,因此0020H單元地址編碼在存儲器中的存放順序是2000),需要取出隨后的兩個字節(jié)。⑧將程序計數(shù)器PC內(nèi)容(當前為0001)傳送到AR寄存器中,同時程序計數(shù)器PC自動加1,指向下一存儲單元,即0002H單元。上一頁下一頁返回1.3微型計算機組成原理⑨地址寄存器AR內(nèi)容(目前為0001H)通過外部地址總線AB輸出到存儲器地址總線上。存儲器芯片內(nèi)的地址譯碼器對地址信號進行譯碼,并選中存儲器芯片內(nèi)的0001H單元。⑩CPU給出存儲器讀控制信號,結(jié)果0001H單元中的內(nèi)容“20”經(jīng)存儲器和CPU之間的數(shù)據(jù)總線DB送到CPU內(nèi)部的數(shù)據(jù)存儲器DR中。由于第二字節(jié)是指令操作數(shù)所在存儲單元地址的低8位,因此數(shù)據(jù)寄存器DR中的內(nèi)容通過內(nèi)部數(shù)據(jù)總線送入暫存器中。⑾重復⑧~⑩的操作過程,取出指令第三字節(jié),即操作數(shù)所存在存儲單元地址的高8位,并存放在數(shù)據(jù)寄存器DR中。上一頁下一頁返回1.3微型計算機組成原理⑿進入指令執(zhí)行階段。由于這條指令第二、三字節(jié)是操作數(shù)所在存儲單元地址,因此,在執(zhí)行階段將存放在DR中的高8位內(nèi)容送地址寄存器AR的高8位,將存放在暫存器中的低8位送AR的低8位,形成操作數(shù)16位地址碼,經(jīng)AR輸出。AR輸出的地址信號經(jīng)存儲器芯片內(nèi)的地址譯碼器譯碼后,在存儲器讀信號的控制下,即可將0020H單元中的內(nèi)容12H經(jīng)存儲器數(shù)據(jù)總線DB輸入CPU內(nèi)部數(shù)據(jù)寄存器DR,然后傳送到累加器A中,這樣就完成了指令的執(zhí)行過程??梢姡粭l指令的執(zhí)行過程包括了:取操作碼(取指令第一字節(jié))→譯碼(對指令操作碼進行翻譯,指示控制器給出相應(yīng)的控制信號)→取操作數(shù)(取出指令第二、三字節(jié),指令第一字節(jié),即操作碼字節(jié)將告訴CPU該指令的長短)→執(zhí)行指令規(guī)定的操作,然后,不斷重復“取操作碼→譯碼→取操作數(shù)→執(zhí)行”的過程,直到程序結(jié)束(如遇到停機或暫停指令)。在指令取出過程中,程序計數(shù)器PC每輸出一個地址編碼到地址寄存器AR后,PC內(nèi)容自動加1,指向下一個存儲單元。上一頁返回1.4單片機及其發(fā)展概況目前計算機硬件技術(shù)向巨型化、微型化和單片化三個方向高速發(fā)展。自1975年美國得克薩斯儀器公司第一塊單片微型計算機芯片TMS-1000問世以來,在短短的二十多年間,單片機技術(shù)已發(fā)展成為計算機技術(shù)一個非常有前途的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用領(lǐng)域。單片機芯片具有體積小、個性突出(某些方面的性能指標大大優(yōu)于通用微機中央處理器)、價格低廉等優(yōu)點。一方面,單片機芯片是自動控制系統(tǒng)的核心部件,廣泛應(yīng)于工業(yè)控制、智能化儀器儀表、通信終端設(shè)備、家用電器、高檔電子玩具等領(lǐng)域;另一方面,單片機也是電子技術(shù)數(shù)字化的核心部件之一,在數(shù)字化電子產(chǎn)品中承擔數(shù)字信號處理的重任。由于模擬技術(shù)的局限性——信號在傳輸、存儲、還原過程中不可避免地存在失真及保密性差等無法克服的缺點。在高速ADC與DAC、數(shù)字信號處理技術(shù)的推動下,電子技術(shù)正逐步向數(shù)字化方向發(fā)展,而電子技術(shù)數(shù)字化的關(guān)鍵和核心是數(shù)字信號的處理,單片機正是電子技術(shù)數(shù)字化的核心部件之一。下一頁返回1.4單片機及其發(fā)展概況1.4.1單片機及其特點在通用微機中央處理器基礎(chǔ)上,將輸入/輸出(I/O)接口電路、時鐘電路,以及一定容量的存儲器等部件集成在同一芯片上,再加上必要的外圍器件,如晶體振蕩器,就構(gòu)成了一個較為完整的計算機硬件系統(tǒng)。由于這類計算機系統(tǒng)的基本部件均集成在同一芯片內(nèi),因此被稱為單片微控制器(SingleChipMicroController,簡稱單片機——國內(nèi)習慣稱謂)、微控制單元(MicroControllerUnit,簡稱MCU)或嵌入式控制器(EmbeddedController)。上一頁下一頁返回1.4單片機及其發(fā)展概況對于通用微處理器來說,其主要任務(wù)是數(shù)值計算和信息處理。在運算速率和存儲容量方面的要求是速率越快越好,容量越大越好,因此它沿著高速、大容量方向發(fā)展。字長由8位(如8085)、16位(如8086、80286),迅速向32位(如80486)、64位(如Pentium系列CPU,Pentium系列CPU內(nèi)部數(shù)據(jù)總線為32位,對外數(shù)據(jù)總線為64位,因而Pentium還不是真正意義上的64位微處理器)過渡;時鐘信號的頻率由最初的4.77MHz向33MHz、66MHz、100MHz、200MHz、400MHz、600MHz、1GHz、2GHz,甚至更高頻率過渡。而單片機主要面向工業(yè)控制,8位字長已足夠(在工業(yè)控制中,一般僅需要控制線路的通、斷,觸點的吸合與釋放,有時4位單片機也能勝任)。
上一頁下一頁返回1.4單片機及其發(fā)展概況盡管也有16位、32位的單片機芯片,但這些高檔單片機芯片主要用于語音、圖像處理系統(tǒng),絕對數(shù)量不多,時鐘信號頻率也不高,一般在數(shù)十兆以內(nèi)。單片機主要發(fā)展方向是不斷強化控制功能(將更多的外設(shè)電路單元集成到同一封裝模塊內(nèi))、低功耗(以便電池供電)、低成本(例如,在CPU芯片內(nèi),按用途分別集成不同的外圍電路,形成系列化產(chǎn)品,這樣既能滿足不同應(yīng)用領(lǐng)域的需要,也降低了成本)。單片機芯片作為控制系統(tǒng)的核心部件,它除了具備通用微機CPU的數(shù)值計算功能外,還必須具有靈活、強大的控制功能,以便實時監(jiān)測系統(tǒng)的輸入量、控制系統(tǒng)的輸出量,實現(xiàn)自動控制功能。單片機主要面向工業(yè)控制,它的工作環(huán)境比較惡劣,如高溫、強電磁干擾,甚至含有腐蝕性氣體。在太空中工作的單片機控制系統(tǒng),還必須具有抗輻射能力。因而決定了單片機CPU與通用微機CPU具有不同的技術(shù)特征和發(fā)展方向。
上一頁下一頁返回1.4單片機及其發(fā)展概況(1)抗干擾性強,工作溫度范圍寬(按工作溫度分類,有民用級、工業(yè)級、汽車級及軍用級)。而通用微機CPU一般要求在室溫下工作(與民用級單片機工作溫度相同),抗干擾性能也較差。(2)可靠性高。在工業(yè)控制中,任何差錯都可能造成極其嚴重的后果,因此在單片機芯片中普遍采用硬件看門狗技術(shù),通過“復位”喚醒處于“失控”狀態(tài)下單片機芯片。(3)電磁輻射量小。高可靠性和低電磁輻射指標決定了單片機系統(tǒng)時鐘頻率比通用微處理器低。(4)控制功能很強,數(shù)值計算能力較差。通用微機CPU具有很強的數(shù)值運算能力,但控制能力相對較弱。將通用微機用于工業(yè)控制時,一般需要增加一些專用的接口電路,如承擔AD/DA轉(zhuǎn)換任務(wù)的數(shù)據(jù)采集卡等。上一頁下一頁返回1.4單片機及其發(fā)展概況(5)指令系統(tǒng)簡單。(6)單片機芯片往往不是單一數(shù)字電路芯片,而是數(shù)字、模擬混合電路系統(tǒng),即單片機芯片內(nèi)常集成了一定數(shù)量的模擬比較器、AD及DA轉(zhuǎn)換電路等。(7)采用嵌入式結(jié)構(gòu)。盡管同一系列內(nèi)品種、規(guī)格繁多,但彼此差異卻不大。(8)更新?lián)Q代速度比通用微處理器慢得多。Intel公司1980年推出標準MCS一51內(nèi)核8051(HMOS工藝)、80C51(CHMOS工藝)單片機芯片后,持續(xù)生產(chǎn)、使用了十余年,直到1996年3月才被增強型MCS一51內(nèi)核8XC5X芯片取代。上一頁下一頁返回1.4單片機及其發(fā)展概況1.4.2單片機技術(shù)現(xiàn)狀及將來發(fā)展趨勢前單片機芯片系列、品種、規(guī)格繁多,先后經(jīng)歷了4位機、8位機、16位機、新一代8位機、32位機等幾個具有代表性的發(fā)展階段。4位機主要用于家用電器,如電視機、空調(diào)機、洗衣機中。不過隨著8位機價格的下降,在家用電器中己開始大量采用8位機,以便在家用電器中采用一些新技術(shù),如模糊控制、變頻調(diào)速等,以提升家用電器的智能化、自動化程度,并盡可能降低系統(tǒng)的能耗。16位機具有較強的數(shù)值運算能力和較快的反映速度,常用在需要實時控制、處理的系統(tǒng)中。盡管16位單片機進入市場已有十余年,但一直未能取代8位機芯片成為主流產(chǎn)品,并且目前已被強化了控制接口功能的新一代8位機和數(shù)值運算能力更強的32位嵌入式單片機芯片所取代。
上一頁下一頁返回1.4單片機及其發(fā)展概況32位嵌入式單片機芯片具有很強的數(shù)值計算能力,在圖像處理、機器人控制需求的刺激下,32位嵌入式單片機芯片的銷量也在迅速上升。在今后一段時期內(nèi),8位、16位和32位嵌入式單片機芯片銷量的絕對值可能會有不同程度的增長,但在目前,甚至在今后相當長的時間內(nèi),如5年、10年,8位單片機,尤其是強化了控制接口功能的新一代8位單片機,如80C51、MC68HCl1系列,依然是單片機的主流產(chǎn)品。1.新一代8位單片機芯片8位單片機先后經(jīng)歷了三個發(fā)展階段。第一代8位單片機系統(tǒng)(如Intel公司的MCS一48系列)功能較差,它實際上是8位通用微處理器單元電路和基本I/O接口電路、小容量存儲器、中斷控制系統(tǒng)的簡單組合,沒有串行通信功能,不帶A/D、D/A轉(zhuǎn)換器,中斷控制和管理能力也較弱,功耗大,因而應(yīng)用范圍受到了很大的限制。上一頁下一頁返回1.4單片機及其發(fā)展概況第二代8位單片機特點是通用性強,但個性還不突出,控制功能也有限,依然不能滿足不同應(yīng)用領(lǐng)域、不同測控系統(tǒng)的要求。20世紀90年代中后期,各大芯片廠商,如Intel、Philips、Winbond、Atmel、SST、Microchip、Motorola、TemicSemiconductorTechnology等,在第二代單片機CPU內(nèi)核基礎(chǔ)上,除了進一步強化原有功能(如在串行接口部件中增加幀錯誤偵測和地址自動識別功能)外,針對不同的應(yīng)用領(lǐng)域,將不同功能、用途的外圍接口電路嵌入到第二代單片機CPU內(nèi),形成了規(guī)格、品種繁多的新一代8位單片機芯片,如Intel、Philips、Atmel、SST公司的8XC5X系列,Winbond公司的78E、77E系列(與MCS一51系列兼容),Motorola公司的68HC05、68HCll系列,MicroChip公司的PIC系列等。新一代8位單片機芯片系列、品種繁多,主流品種有:(1)Motorola的M68HC系列上一頁下一頁返回1.4單片機及其發(fā)展概況Motorola公司的M68HC05、M68HCll、M68HCl2系列的特點是在同樣的速率下所用的時鐘頻率較MCS一51內(nèi)核芯片低得多,因而高頻噪聲低、抗干擾能力強,更適合于工控領(lǐng)域及惡劣環(huán)境下使用。(2)ATMEL公司的AVR系列AVR系列單片機采用增強型RISC結(jié)構(gòu),在一個時鐘周期內(nèi)可執(zhí)行復雜指令,每兆赫茲可實現(xiàn)1MIPS(MIPS,每秒指令數(shù))的處理能力。AVR單片機工作電壓為2.7~6.0V,功耗小,廣泛應(yīng)用于計算機外部設(shè)備、工業(yè)實時控制、儀器儀表、通信設(shè)備、家用電器、宇航設(shè)備等各個領(lǐng)域。(3)MicroChipPIC系列及兼容芯片MicroChip公司8位單片機主要包括PICl2C、PICl6C、PICl7C、PICl8C/18F等系列。采用RISC結(jié)構(gòu),指令數(shù)目少、運行速度快、工作電壓低、功耗小、高低電平驅(qū)動能力較強,任一I/O口均可直接驅(qū)動LED發(fā)光二極管,適用于用量大、檔次低、價格敏感的產(chǎn)品。
上一頁下一頁返回1.4單片機及其發(fā)展概況(4)MCS一51系列及兼容芯片MCS一51系列最先由Intel公司開發(fā),后來其他公司通過技術(shù)轉(zhuǎn)讓、交換等方式取得了MCS一51內(nèi)核技術(shù),生產(chǎn)廠家很多,目前主要有Philips、Atmel、Winbond(W78及W77系列)、SST、LG(GMS90系列)等。特點是通用性較強,采用CISC{復雜指令)結(jié)構(gòu),指令格式與Intel公司8位微處理器相同或相近。由于MCS一51系列進入市場時間早,總線開放,仿真開發(fā)設(shè)備多,芯片及其開發(fā)設(shè)備價格低廉、速度較快、電磁兼容性較好,是國內(nèi)8位單片機的主流品種。上一頁下一頁返回1.4單片機及其發(fā)展概況2.16位單片機16位單片機操作速率及數(shù)據(jù)吞吐能力等性能指標比8位機有較大提高。目前以INTEL的MCS一96/196系列、TI(得州儀器公司)的MSP430系列及MOTOROLA的68HCll系列為主。16位單片機主要應(yīng)用于工業(yè)控制、智能化儀器儀表、便攜式設(shè)備等領(lǐng)域,其中TI的MSP430系列以其超低功耗的特性廣泛應(yīng)用于低功耗場合。3.32位單片機由于8位、16位單片機數(shù)據(jù)吞吐率有限,在語音、圖像、工業(yè)機器人、INTERNET,以及無線數(shù)字傳輸技術(shù)需求的驅(qū)動下,開發(fā)、使用32位單片機芯片就成為一種必然趨勢。目前,各大芯片廠家正紛紛推出各自的32位嵌入式單片機芯片,主要有MOTOROLA、TOSHIBA、HITACH、NEC、EPSON、MITSUBISHI、SAMSUNG、Atmel、Philips等,其中以32位ARM單片機及MOTOROLA的MC683xx、68K系列應(yīng)用較為廣泛,產(chǎn)量也較大。上一頁下一頁返回1.4單片機及其發(fā)展概況
ARM(AdvancedRISCMachines)是微處理器行業(yè)的一家知名企業(yè),但它本身不生產(chǎn)芯片,通過轉(zhuǎn)讓設(shè)計使用許可方式由合作伙伴來生產(chǎn)各具特色的芯片。ARM公司設(shè)計了大量高性能、廉價、耗能低的RISC處理器及其相關(guān)產(chǎn)品和軟件。目前,包括Intel、IBM、SAMSUNG、OKI、LG、NEC、SONY、PHILIPS等公司在內(nèi)的30多家半導體公司與ARM簽訂了硬件技術(shù)使用許可協(xié)議。當前ARM處理器有6個系列(ARM7、ARM9、ARM9E、ARMl0、ARMll和SecurCore)、數(shù)十種型號,其中ARMll最新。進一步產(chǎn)品來自于合作伙伴,例如IntelXscale微體系結(jié)構(gòu)和StrongARM產(chǎn)品。ARM7、ARM9、ARM9E、ARMl0是4個通用處理器系列。每個系列提供一套特定的性能來滿足設(shè)計者對功耗、性能、體積的需求。SecurCore是第5個產(chǎn)品系列,專門為安全設(shè)備設(shè)計。上一頁下一頁返回1.4單片機及其發(fā)展概況1.4.3增強型MCS-51單片機芯片特征及主流芯片目前增強型MCS一51及兼容單片機芯片生產(chǎn)廠商較多,主要有Philips、Ateml、TemicSemiconductor(簡稱TS)、Winbond、SST等(Intel已不是MCS一51單片機芯片的主要生產(chǎn)商)。1.增強型MCS一51單片機芯片的主要特征以增強型MCS-51為內(nèi)核的8XC5X
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 明確方向2024籃球裁判員試題及答案
- 種子繁育員實踐與理論試題及答案
- 生態(tài)農(nóng)業(yè)高標準建設(shè)項目可行性研究報告(參考范文)
- 游泳救生員應(yīng)對健身者需求試題及答案
- 2024模具設(shè)計師資格考試觀念重塑試題及答案
- 多角度分析游泳救生員資格試題及答案
- 倉儲物流項目技術(shù)創(chuàng)新與可行性研究報告
- 模具設(shè)計工具集錦試題及答案
- 體育經(jīng)紀人資格考試自我提升方法 試題及答案
- 體育經(jīng)紀人成功的關(guān)鍵信息試題及答案
- 2025年第六屆美麗中國全國國家版圖知識競賽題(附答案)
- 基于“教-學-評”一致性的學習評價設(shè)計
- 妊娠期母體變化講解
- 2025年平頂山職業(yè)技術(shù)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年度全國初中應(yīng)用物理競賽試題及答案
- 衛(wèi)星網(wǎng)絡(luò)管理與運維-深度研究
- 五星級酒店餐飲部管理制度大全
- 2025年紫金財產(chǎn)保險股份有限公司招聘筆試參考題庫含答案解析
- 2025年高中作文素材積累:15個“小眾又萬能”的人物素材
- 2025年春新人教版語文一年級下冊教學課件 11 浪花
- 《某小區(qū)深基坑支護設(shè)計》8100字(論文)
評論
0/150
提交評論