版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理及應(yīng)用第1章 數(shù)據(jù)基礎(chǔ)及單片機(jī)概述 1.1 數(shù)值型數(shù)據(jù)的表示 1.1.1 進(jìn)位計(jì)數(shù)制 按照一定的進(jìn)位方式進(jìn)行計(jì)數(shù)的數(shù)值,稱為進(jìn)位計(jì)數(shù)制,簡(jiǎn)稱進(jìn)制。還是以我們常用的十進(jìn)制為例,可用展開(kāi)的方式來(lái)表示進(jìn)位計(jì)數(shù)的思想,如下:012341010810910510210332598)(N 人們?cè)诰幊虝r(shí)常常用八進(jìn)制、十六進(jìn)制等來(lái)表示數(shù)值信息 1二進(jìn)制 在二進(jìn)制中,每個(gè)數(shù)位僅允許選擇0或1兩個(gè)數(shù)碼,加法時(shí)“逢二進(jìn)一”,減法時(shí)“借一當(dāng)二”,基數(shù)r=2。用多項(xiàng)式表示為: (1-3)其中取值0或者1。舉例說(shuō)明mmnnnnmnnXXXXXXXXXXXXS2.222.22).()(11011122112101
2、212102101232)75.11(212121212021)11.1011(2十六進(jìn)制 在十六進(jìn)制中,每個(gè)數(shù)位選擇的數(shù)碼個(gè)數(shù)為16個(gè),即015,書(shū)寫時(shí)為09,A、B、C、D、E、F,加法時(shí)“逢十六進(jìn)一”,減法時(shí)“借一當(dāng)十六”,基數(shù)r=16。舉例說(shuō)明mmnnnnmnnXXXXXXXXXXXXS16.161616.1616).()(11011122111610121161010116)75.107(16121611166).6(CB3八進(jìn)制 在八進(jìn)制中,每個(gè)數(shù)位選擇的數(shù)碼為8個(gè)0,即07。加法時(shí)“逢八進(jìn)一”,減法時(shí)“借一當(dāng)八”,基數(shù)r=8。用多項(xiàng)式表示為: 其中取值07。舉例說(shuō)明mmnnnnm
3、nnXXXXXXXXXXXXS8.888.88).()(110111221181012181010122)5 .83(84838281)4 .123(4BCD碼 四位二進(jìn)制數(shù)來(lái)表示一位十進(jìn)制數(shù),從左起高位的權(quán)值依次是23、22、21、20,即8、4、2、1,故這種編碼又稱為“8421碼”,但所能表示的數(shù)僅限于十進(jìn)制的10個(gè)數(shù)碼09。例例 BCD)100110000001()189(101.1.2 進(jìn)位計(jì)數(shù)制之間的轉(zhuǎn)換 進(jìn)制之間的轉(zhuǎn)換可分為三種情況: 第一種是二進(jìn)制、八進(jìn)制、十六進(jìn)制之間的轉(zhuǎn)換,轉(zhuǎn)換方法是:以小數(shù)點(diǎn)為左右起點(diǎn),每三位為一組,左右不足三位用數(shù)字“0”補(bǔ)充;如果要轉(zhuǎn)換為十六進(jìn)制,則是
4、以小數(shù)點(diǎn)為左右起點(diǎn),每四位為一組,左右不足四位用“0”補(bǔ)充。八進(jìn)制、十六進(jìn)制轉(zhuǎn)換為二進(jìn)制執(zhí)行“一位八進(jìn)制數(shù)對(duì)應(yīng)三位二進(jìn)制數(shù),一位十六進(jìn)制數(shù)對(duì)應(yīng)四位二進(jìn)制數(shù)”的原則即可完成。 例例 將10101011101101 B轉(zhuǎn)換為八進(jìn)制和十六進(jìn)制。 101010111.01101 B = 101 010 111.011 010 B = 527.3 O101010111.01101 B = 0001 0101 0111.0110 1000 B = 157.68 H例例 將 2763 O轉(zhuǎn)換為十六進(jìn)制。 2763 O = 010 111 110 011 B = 0101 1111 0011 B = 5F3
5、H第二種是十進(jìn)制同BCD碼(二-十進(jìn)制)之間的轉(zhuǎn)換,也可以分段進(jìn)行。例 將十進(jìn)制數(shù)286轉(zhuǎn)換為BCD碼。 286 = (0010 1000 0110)BCD 第三種是二進(jìn)制和十進(jìn)制直接的轉(zhuǎn)換 1二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)(包括整數(shù)和小數(shù)部分)利用式(1-3),即可實(shí)現(xiàn)二進(jìn)制數(shù)向十進(jìn)制數(shù)之間的轉(zhuǎn)換。 2十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù) 利用“除2取余”法,即可實(shí)現(xiàn)十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù),其規(guī)律為:將十進(jìn)制整數(shù)除以2,所得余數(shù)為對(duì)應(yīng)二進(jìn)制數(shù)的最低位;繼續(xù)對(duì)得到的商除以2,所得的各個(gè)余數(shù)就是所求的二進(jìn)制數(shù)的各位值;如此進(jìn)行,直到商等于為止,最后一項(xiàng)得到的余數(shù)作為二進(jìn)制數(shù)的最高位(最左位)。 例例 將十進(jìn)制
6、整數(shù)98轉(zhuǎn)換為二進(jìn)制數(shù)表示。 則98 = (1100010)2 3十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù) 利用“乘2取整”法,即可實(shí)現(xiàn)將十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù),其規(guī)律為:將十進(jìn)制小數(shù)乘以2,所得到的整數(shù)即為二進(jìn)制小數(shù)的最高位值(小數(shù)點(diǎn)右第一位);將整數(shù)部分去掉,繼續(xù)對(duì)乘積的所余小數(shù)部分乘以2,所得整數(shù)就是二進(jìn)制小數(shù)的次高位值;如此繼續(xù),直到去掉整數(shù)部分的乘積變?yōu)?,或者滿足精度滿足精度要求時(shí)結(jié)束。例例 將十進(jìn)制小數(shù)0.8125轉(zhuǎn)換為二進(jìn)制小數(shù)。1.0 . 125 . 00.5 . 0225. 01.25. 12625. 01.625. 128125. 0則0.8125=0.1101B 1.1.3 帶符
7、號(hào)數(shù)表示 具有正負(fù)號(hào)的數(shù)值稱為帶符號(hào)數(shù),在日常應(yīng)用中,我們也稱之為真值。真值包含正負(fù)號(hào)(+、-),以及用十進(jìn)制或二進(jìn)制表示的數(shù)值部分,其中正號(hào)可以省略。由于計(jì)算機(jī)無(wú)法直接存儲(chǔ)正負(fù)號(hào),需對(duì)正負(fù)號(hào)數(shù)字化(0、1化,用0表示正號(hào)、1表示負(fù)號(hào))后,才可以存儲(chǔ)帶符號(hào)數(shù)。將帶符號(hào)數(shù)的形式進(jìn)行轉(zhuǎn)化,變成可以在計(jì)算機(jī)中存儲(chǔ)及應(yīng)用的形式,得到的數(shù)稱為機(jī)器數(shù)。 機(jī)器數(shù)的形式有多種,最常用的包括原碼、反碼和補(bǔ)碼。 1原碼 原碼是一種最為簡(jiǎn)單的機(jī)器數(shù),其表現(xiàn)形式為:約定數(shù)碼序列的最高一位為符號(hào)位,用0表示正數(shù),用1表示負(fù)數(shù);剩余的有效數(shù)值部分用二進(jìn)制的絕對(duì)值表示。 例例 真值 X原 + 1011 0 000 1011
8、 - 1011 1 000 1011 +0.1011 0.000 1011 -0.1011 1.000 1011原碼的特點(diǎn)整數(shù)0有兩種原碼形式。根據(jù)符號(hào)不同,+0真=0 000 0000B, -0真=1 000 0000;符號(hào)位不是有效數(shù)值位,不能參與算術(shù)運(yùn)算,它們僅是人為約定的符號(hào)“0、1化”的產(chǎn)物,在運(yùn)算中需單獨(dú)處理; 原碼表示中因?yàn)椴捎媒^對(duì)值表示數(shù)值大小,非常直觀。但是由于其最高位的符號(hào)位是硬性規(guī)定的,不能參與運(yùn)算,這個(gè)二進(jìn)制的加減運(yùn)算帶來(lái)不便。因此,原碼目前很少用于算術(shù)運(yùn)算。nX22補(bǔ)碼 補(bǔ)碼是以模運(yùn)算為基礎(chǔ)的一種碼制,具有良好的特點(diǎn)。以整數(shù)為例,補(bǔ)碼的表示方法是:如果數(shù)是正數(shù),則其補(bǔ)
9、碼形式同期原碼形式相同;如果數(shù)是負(fù)數(shù),則首先得到負(fù)數(shù)的原碼,然后除原碼符號(hào)位外,其余所有位取反,然后在末位加1。 補(bǔ)碼的來(lái)歷 以時(shí)鐘為例引出補(bǔ)碼的定義。我們常見(jiàn)的圓盤時(shí)鐘是以12為計(jì)數(shù)循環(huán)的,表盤上的數(shù)從112。12點(diǎn)也可以看成是0點(diǎn),所以也可認(rèn)為表盤上的數(shù)是從011的。假設(shè)當(dāng)前為0點(diǎn),以時(shí)針為研究對(duì)象,分別進(jìn)行如下操作。 a. 順時(shí)針旋轉(zhuǎn)9格,時(shí)針指向9點(diǎn); b. 逆時(shí)針旋轉(zhuǎn)3格,時(shí)針也指向9點(diǎn)。 可見(jiàn),上面兩個(gè)操作的效果是一樣的,都使時(shí)針指向了相同的位置。操作不同,而結(jié)論相同的原因是,圓盤時(shí)鐘上的時(shí)針是圓周運(yùn)動(dòng)的,其指向始終在011之間變化,即時(shí)針的讀書(shū)是以12為模的。三角函數(shù)中用到的圓周
10、 圓周從1到360,或者認(rèn)為是從0到359。顯然圓周的模是360。按照上面時(shí)鐘的思路,從0順時(shí)針旋轉(zhuǎn)330,和逆時(shí)針旋轉(zhuǎn)30,效果是一樣的??梢哉f(shuō),在模360的前提下,-30可以映射為330,它們互為模數(shù)。 從數(shù)學(xué)上看,以上兩個(gè)例子都是有模運(yùn)算。計(jì)算機(jī)運(yùn)算時(shí)用到的寄存器也是有一定的字長(zhǎng)限制的,因此它的運(yùn)算也是有模運(yùn)算。 補(bǔ)碼定義:在有模運(yùn)算中,假設(shè)模為M,則某數(shù)X對(duì)該模的補(bǔ)數(shù)稱為其補(bǔ)碼,定義為: (1-7) M)(modXM 補(bǔ)X補(bǔ)碼的計(jì)算 由原碼得到補(bǔ)碼:正數(shù)的補(bǔ)碼形式同原碼形式相同;負(fù)數(shù)的補(bǔ)碼是在負(fù)數(shù)原碼的基礎(chǔ)上,將所有的有效數(shù)值位(也稱為尾數(shù))取反,然后再末位加1(可簡(jiǎn)稱為“求反加一”)
11、。 例例 1101011. 111101010. 10010101. 1補(bǔ)末位加一變反原XX 由原碼得到補(bǔ)碼的快捷方法:正數(shù)的補(bǔ)碼形式同原碼形式相同;負(fù)數(shù)的補(bǔ)碼是在負(fù)數(shù)原碼的基礎(chǔ)上,符號(hào)位保持不變,有效數(shù)值位自右向左,找到第一個(gè)1,將這個(gè)1以及右邊的所有0保持不變,這個(gè)1前面的所有位全部按位取反。 例例 1010100. 11000101. 1補(bǔ)原XX 由補(bǔ)碼得到原碼及真值 利用方法1)和方法2)對(duì)補(bǔ)碼形式進(jìn)行相同的運(yùn)算,就可以得到對(duì)應(yīng)的原碼形式。再有原碼變成真值,只需要根據(jù)符號(hào)位進(jìn)行相應(yīng)轉(zhuǎn)換就可以了。例:0101101. 00101101. 11010011. 1真原補(bǔ)XXX補(bǔ)碼的性質(zhì) 補(bǔ)碼
12、的最高位Xn表示數(shù)的正負(fù),1表示負(fù)數(shù)、0表示正數(shù)。這從形式上同原碼是一致的,但補(bǔ)碼的符號(hào)位是數(shù)值的一部分,是通過(guò)補(bǔ)碼定義計(jì)算出來(lái)的,因此可以參與運(yùn)算; 0的補(bǔ)碼形式只有一種,即0000 0000,這同原碼中0有兩種原碼形式是不同的; 負(fù)數(shù)的補(bǔ)碼形式比原碼的表示范圍多一個(gè)數(shù)碼組合。對(duì)定點(diǎn)整數(shù),負(fù)數(shù)補(bǔ)碼的最小值為-2n,而負(fù)數(shù)原碼的最小值是-2n-1; 補(bǔ)碼運(yùn)算可以変減為加,有利于簡(jiǎn)化運(yùn)算器的設(shè)計(jì)。 3反碼 對(duì)原碼的符號(hào)位保持不變,僅將所有的位數(shù)部分按位取反,即得到另一種機(jī)器數(shù)的表示形式,即反碼。反碼同補(bǔ)碼類似,當(dāng)數(shù)值為負(fù)數(shù)時(shí),其形式比補(bǔ)碼形式少加一個(gè)1。 假定為數(shù)X的反碼序列,則有022101X
13、XXXnn)(反1nn22XX 例1010001. 01010001. 0反原XX0101110. 11010001. 1反原XX1.1.4 定點(diǎn)表示與浮點(diǎn)表示 1定點(diǎn)數(shù)的表示方法 在定點(diǎn)數(shù)中,小數(shù)點(diǎn)的位置是固定的。因?yàn)橛?jì)算機(jī)只能存儲(chǔ)0、1信息,所以小數(shù)點(diǎn)的位置一旦固定,就以約定的方式固定下來(lái),并沒(méi)有給小數(shù)點(diǎn)預(yù)留存儲(chǔ)空間。有三種形式的定點(diǎn)數(shù)。 (1)無(wú)符號(hào)整數(shù):是將正號(hào)略去的整數(shù)形式,其所有數(shù)位全部用于表示數(shù)值大小,小數(shù)點(diǎn)默認(rèn)在(最低位)最右位之后。假設(shè)無(wú)符號(hào)整數(shù),則其表示范圍為0(2n+1-1)。例如當(dāng)n=7時(shí),其表示范圍為0255。 (2)帶符號(hào)定點(diǎn)整數(shù):假設(shè)為整數(shù)序列,則Xn是符號(hào)位,小
14、數(shù)點(diǎn)默認(rèn)在(最低位)最右位之后,其所能表示的數(shù)值范圍根據(jù)其機(jī)器數(shù)形式不同而不同。例如,原碼定點(diǎn)整數(shù)的表示范圍是-(2n-1)(2n-1),補(bǔ)碼定點(diǎn)整數(shù)的表示范圍是-2n (2n-1)。 (3)帶符號(hào)定點(diǎn)小數(shù):假設(shè)為整數(shù)序列,則Xn是符號(hào)位,小數(shù)點(diǎn)默認(rèn)在最高位Xn之后,其所能表示的數(shù)值范圍根據(jù)其機(jī)器數(shù)形式不同而不同??梢钥闯?,帶符號(hào)定點(diǎn)小數(shù)是純小數(shù)。原碼定點(diǎn)整數(shù)的表示范圍是-(1-2-n)(1-2-n),補(bǔ)碼定點(diǎn)整數(shù)的表示范圍是-1 (1-2-n)。 2浮點(diǎn)數(shù)的表示方法 對(duì)任意一個(gè)二進(jìn)制數(shù)N來(lái)說(shuō),它總可以表示為一個(gè)純整數(shù)(或純小數(shù))和一個(gè)2的整數(shù)次冪的乘積的形式:。其中S稱為N的尾數(shù),P稱為N的
15、階碼,可以決定小數(shù)點(diǎn)的位置,2稱為階碼的底。PfPmPm-lPlSmSn-lSfSl階碼P階符尾數(shù)S尾符 例如1101010101. 02010101.11014N同定點(diǎn)數(shù)相比,浮點(diǎn)數(shù)的優(yōu)點(diǎn)是數(shù)的表示范圍很大,但缺點(diǎn)也較為明顯,其運(yùn)算較為復(fù)雜,需要對(duì)階碼和尾數(shù)分別運(yùn)算。1.2 二進(jìn)制數(shù)的運(yùn)算1.2.1 算術(shù)運(yùn)算 1加法運(yùn)算: 二進(jìn)制加法遵從“逢二進(jìn)一”的規(guī)則 0+0 = 0 ; 0+1 = 1; 1+0 = 1; 1+1 = 10 2減法運(yùn)算 二進(jìn)制減法遵從“借一當(dāng)二”的規(guī)則 0-0 = 0 ; 1-1 = 0 ; 1-0 = 1 ; 0-1 = 1 3乘法運(yùn)算 乘法運(yùn)算是多次加法運(yùn)算,其運(yùn)算
16、規(guī)則是: 111001010;000; 例例 兩個(gè)無(wú)符號(hào)4位定點(diǎn)整數(shù) X=1011B,Y= 0011B,求XY。4除法運(yùn)算:從被除數(shù)的最高位開(kāi)始運(yùn)算,查出夠減除數(shù)的位數(shù),上商1,并完成被除數(shù)同除數(shù)的減法操作,然后把被除數(shù)的下一位移到余數(shù)的位置上。若余數(shù)不夠減除數(shù),則商0,并把被除數(shù)的再下一位移到余數(shù)的位置上;若余數(shù)夠減除數(shù),則商1并進(jìn)行余數(shù)減除數(shù)的操作。反復(fù)進(jìn)行,只到全部被除數(shù)的各位都移到余數(shù)位置上為止。 例例 設(shè)二進(jìn)制無(wú)符號(hào)定點(diǎn)整數(shù)X= 10101011, Y = 110 B,求XY。 利用豎式求解,得 所以,XY = 111000B 余數(shù)11B。 1.2.2 邏輯運(yùn)算 1邏輯與運(yùn)算 又稱為
17、邏輯乘,一般用“”來(lái)表示。其運(yùn)算規(guī)則為:00 = 0 ; 01 = 0 ; 10 = 0 ; 11 = 1 例例 X = 10100010B, Y= 01011110B,求XY。 利用豎式計(jì)算,有2邏輯或運(yùn)算 又稱為邏輯加,一般用“”來(lái)表示,其運(yùn)算規(guī)則為:00 = 0 ; 01 = 1 ; 10 = 1 ; 11 = 1 例例 X = 10100010B, Y= 01011110B,求XY。3邏輯非運(yùn)算 又稱邏輯取反,一般用“”來(lái)表示,其運(yùn)算規(guī)則為:01;10XBX01000101例例 X = 10111010B,求 。 。4邏輯異或運(yùn)算 也稱為半加運(yùn)算,是不考慮進(jìn)位的二進(jìn)制加法運(yùn)算。一般用符
18、號(hào)“ ”來(lái)表示,其運(yùn)算規(guī)則為: 0 0 = 1 1 = 0 ; 0 1 = 1 0 = 1 1.2.3 補(bǔ)碼的加減運(yùn)算 1補(bǔ)碼加法 設(shè)X、Y是兩個(gè)帶符號(hào)數(shù)的真值,通過(guò)嚴(yán)格的數(shù)學(xué)推理,可以得到以下公式補(bǔ)碼加法的步驟:1)將兩個(gè)數(shù)轉(zhuǎn)換為補(bǔ)碼形式;2)對(duì)兩個(gè)數(shù)的補(bǔ)碼形式進(jìn)行二進(jìn)制加法運(yùn)算,如果出現(xiàn)向高位的進(jìn)位則舍棄不要;3)判斷結(jié)果是否溢出:如果溢出溢出,則本次計(jì)算不正確,進(jìn)入溢出處理流程;否則,對(duì)結(jié)果再次求補(bǔ),即得到結(jié)果的真值。補(bǔ)補(bǔ)補(bǔ)()2()2Y(2 Y)XnnXYXYXn 所謂溢出,是指運(yùn)算的結(jié)果超出了給定的二進(jìn)制存儲(chǔ)空間的表示范圍。 溢出的標(biāo)志是:如果兩個(gè)正數(shù)相加的結(jié)果符號(hào)位為1,或者兩個(gè)負(fù)
19、數(shù)相加的結(jié)果的符號(hào)位為0,就說(shuō)明出現(xiàn)了溢出。當(dāng)出現(xiàn)溢出時(shí),有兩個(gè)解決方法:一是直接舍棄,報(bào)錯(cuò);而是增加存儲(chǔ)空間位數(shù),重新計(jì)算。例例 用補(bǔ)碼計(jì)算 64+(-10) 第一步:將64和-20變成補(bǔ)碼形式:64補(bǔ)=0100 0000B,-10補(bǔ)=11110110B。 第二步:執(zhí)行補(bǔ)碼加法:0100 0000 + 11110110 = 1 0011 0110 B0011 0110B (舍棄向最高位的進(jìn)位)第三步:因?yàn)檎龜?shù)和負(fù)數(shù)相加不可能產(chǎn)生溢出,結(jié)果正確,可求真值 0011 0110B = 54例例 用16位補(bǔ)碼計(jì)算 64+65 第一步:將64和65變成補(bǔ)碼形式:64補(bǔ)=0000 0000 0100 0
20、000B,65補(bǔ)=0000 0000 0100 0001B。 第二步:執(zhí)行補(bǔ)碼加法:0000 0000 0100 0000 + 0000 0000 0100 0001 = 0000 0000 1000 0001第三步:因?yàn)檎龜?shù)和正數(shù)相加結(jié)果應(yīng)該還是正數(shù),而結(jié)果的符號(hào)位為0,說(shuō)明結(jié)果正確,可就真值 0000 0000 1000 0001B = 129。2補(bǔ)碼減法在計(jì)算機(jī)中,需要做減法時(shí),需要將減數(shù)再次求補(bǔ),然后執(zhí)行加法,即其中,(Y補(bǔ))補(bǔ)都是在已知補(bǔ)碼的基礎(chǔ)上所有所有位數(shù)“求反加一”得到的。實(shí)際上,通過(guò)該“求補(bǔ)”操作得到的是Y的相反數(shù)的補(bǔ)碼形式。補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ)補(bǔ))()(YYYXXXYX例例 用補(bǔ)
21、碼減法計(jì)算 8-4。 第一步:將8和4變成補(bǔ)碼形式:8補(bǔ)=0000 1000B,4補(bǔ)=0000 0100B。 第二步:求(4補(bǔ))補(bǔ): 第三步:執(zhí)行補(bǔ)碼的加法運(yùn)算0000 1000 + 11111100 = 1 0000 0100 B0000 0100B (舍棄向最高位的進(jìn)位)第四步:因?yàn)檎龜?shù)和負(fù)數(shù)相加不可能產(chǎn)生溢出,結(jié)果正確,可求真值 0000 0100B = 411001111101000000)4(補(bǔ)補(bǔ)1.3 非數(shù)值型數(shù)據(jù)的表示 1.3.1 ASCII碼 美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)于20世紀(jì)50年代推出了美國(guó)信息交換標(biāo)準(zhǔn)代碼(ASCII碼, American Standard Code
22、For Information Interchange),用于表示計(jì)算機(jī)中常用的各種字符。1967年,ASCII碼被確定為美國(guó)國(guó)家標(biāo)準(zhǔn)。目前,ASCII碼已被國(guó)際標(biāo)準(zhǔn)化組織(ISO)定為國(guó)際標(biāo)準(zhǔn),稱為ISO 646標(biāo)準(zhǔn),適用于所有拉丁文字字母,參見(jiàn)附錄B ASCII碼表。 1.3.2 漢字編碼 1漢字交換碼 為了在信息交換中有通用的規(guī)則,我國(guó)于1981年公布了國(guó)家標(biāo)準(zhǔn)GB2312-80信息交換用漢字編碼字符基本集,簡(jiǎn)稱國(guó)標(biāo)碼。在該標(biāo)準(zhǔn)中,每個(gè)漢字的編碼由16位二進(jìn)制數(shù)表示,占兩個(gè)字節(jié),每個(gè)字節(jié)按照標(biāo)準(zhǔn)ASCII碼的規(guī)則編碼。國(guó)標(biāo)碼是重要的漢字交換碼,是漢字在計(jì)算機(jī)中存儲(chǔ)的基礎(chǔ)。 2漢字機(jī)內(nèi)碼
23、為了避免出現(xiàn)國(guó)標(biāo)碼和ASCII碼之間的沖突問(wèn)題,研究人員對(duì)漢字國(guó)標(biāo)碼進(jìn)行了如下轉(zhuǎn)換:將漢字國(guó)標(biāo)碼每一個(gè)字節(jié)的最高位變?yōu)?。仍以漢字“萬(wàn)”為例,最高位轉(zhuǎn)變后,漢字編碼變?yōu)椋?100 1101 1111 0010。這樣就解決了漢字編碼同ASCII碼的沖突問(wèn)題。以上轉(zhuǎn)變可認(rèn)為是在國(guó)標(biāo)碼的基礎(chǔ)之上增加8080H,就得到了漢字機(jī)內(nèi)碼,即: 漢字國(guó)標(biāo)碼 + 8080H = 漢字機(jī)內(nèi)碼3其他編碼 漢字要在計(jì)算機(jī)中順利使用,除需要解決存儲(chǔ)外,其輸入方式、顯示方式都是需要解決的。目前已經(jīng)提出了很多漢字輸入方式,歸納起來(lái)包括音碼、形碼、音形結(jié)合碼。漢字輸入碼也稱為漢字的外碼。另一方面,從漢字的顯示上看,要在顯示器
24、及打印機(jī)上展現(xiàn)漢字字形,也許對(duì)漢字字形進(jìn)行編碼,當(dāng)前主要有點(diǎn)陣法和矢量法兩種方法。 1.4 微型計(jì)算機(jī)概述1.4.1 有關(guān)微型計(jì)算機(jī)系統(tǒng)的幾個(gè)概念1微處理器 微處理器是微型計(jì)算機(jī)的核心部件,是將運(yùn)算器、控制器以及一些寄存器集成到一塊大規(guī)模集成電路上而得到的。 按照不同的體系結(jié)構(gòu),微處理器支持兩種不同的體系結(jié)構(gòu):一種是復(fù)雜指令集計(jì)算機(jī)(CISC, Complex Instruction Set Computer),另一種是精簡(jiǎn)指令集計(jì)算機(jī)(RISC, Reduced Instrucion Set Computer)。2. 微型計(jì)算機(jī) 所謂微型計(jì)算機(jī),是指采用微處理器作為CPU的計(jì)算機(jī)。我們知道,
25、單純微處理器是無(wú)法執(zhí)行任何工作的,還需配套存儲(chǔ)器、輸入/輸出接口及設(shè)備。將這些部件通過(guò)系統(tǒng)總線連在一起,在控制器的協(xié)調(diào)下,整臺(tái)計(jì)算機(jī)才可高效運(yùn)轉(zhuǎn)。 3. 微型計(jì)算機(jī)系統(tǒng) 計(jì)算機(jī)系統(tǒng)包括軟件系統(tǒng)和硬件系統(tǒng)。微型計(jì)算機(jī)系統(tǒng)也不例外,是指以微型計(jì)算機(jī)為中心,配上所需外設(shè)、電源以及合適的軟件而構(gòu)成的系統(tǒng)。 如果將微處理器、存儲(chǔ)器、I/O接口電路等大規(guī)模集成電路芯片及必要外部設(shè)備組裝在一張大型電路板上,得到的微型計(jì)算機(jī)稱為單板機(jī)微型計(jì)算機(jī)(Single Board Microcomputer),簡(jiǎn)稱單板機(jī)。除去外部設(shè)備,僅將微處理器、存儲(chǔ)器(RAM及ROM)、定時(shí)/計(jì)數(shù)器及多種接口電路集成在一塊集成電路
26、芯片上的微型計(jì)算機(jī),稱為單片微型計(jì)算機(jī)機(jī),簡(jiǎn)稱單片機(jī)或微控制器(Microcontroller)。1.4.2 微型計(jì)算機(jī)的結(jié)構(gòu) 所謂總線(BUS),是指計(jì)算機(jī)中用于在各部件之間傳輸?shù)男畔⒌墓补餐ǖ?。總線有三種類型: 1. 數(shù)據(jù)總線:Data Bus,用于微處理器和存儲(chǔ)器之間,以及微處理器同I/O接口之間進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)總線是雙向的,既可以從CPU傳輸?shù)酵獠?,也可以從外部傳輸回CPU。CPU的字長(zhǎng)往往同數(shù)據(jù)總線的條數(shù)相同。 2. 地址總線:Address Bus,用于CPU向存儲(chǔ)器或者I/O接口傳輸?shù)刂沸畔?。?jì)算機(jī)執(zhí)行訪問(wèn)操作時(shí),不管是讀操作,還是寫操作,都是首先由CPU通過(guò)地址總線向訪問(wèn)
27、目標(biāo)發(fā)送地址信息。地址總線是單向的,即只能由CPU向外部傳送地址信號(hào)。地址總線的條數(shù)決定的CPU可以直接訪問(wèn)的存儲(chǔ)器單元的數(shù)目。假設(shè)某CPU的地址總線的條數(shù)是n,則可訪問(wèn)的最大的存儲(chǔ)空間的容量是2n。例如,假設(shè)一個(gè)存儲(chǔ)單元保存一個(gè)字節(jié)的內(nèi)容,則具有16條地址總線的CPU可訪問(wèn)的最大存儲(chǔ)容量為216Byte=64KB。 3. 控制總線:Control Bus,用于傳輸CPU發(fā)給各個(gè)部件的控制信號(hào),以及傳送其他部件回傳到CPU的狀態(tài)信號(hào)或請(qǐng)求信號(hào)。對(duì)每一條控制線,其傳輸方向的固定的,或者是CPU向外發(fā)出的控制信號(hào),或者是其他部件傳送給CPU的狀態(tài)、請(qǐng)求信號(hào)。1.4.3 微處理器的基本結(jié)構(gòu)介紹 微處
28、理器包括運(yùn)算器、控制器和一些寄存器,運(yùn)算器主要包括ALU、累加器ACC、標(biāo)志寄存器FR、寄存器組等,而控制器主要包括程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、地址寄存器AR、控制信號(hào)發(fā)生器等。 1. 算術(shù)邏輯單元ALU ALU是運(yùn)算器的核心部件,它在控制器發(fā)出的控制信號(hào)的作用下,可執(zhí)行算術(shù)運(yùn)算和邏輯運(yùn)算。執(zhí)行運(yùn)算的操作數(shù)提前放到累加器和數(shù)據(jù)寄存器中。算術(shù)運(yùn)算一般包括加法、減法、加一、減一、比較等,也有的可以執(zhí)行乘法、除法運(yùn)算。邏輯運(yùn)算一般包括邏輯與、邏輯或、邏輯非、邏輯異或、邏輯同或等。為配合以上運(yùn)算,ALU還支持一些輔助操作,如移位操作等。2.累加器A或ACC(Accumulator)
29、 累加器的英文原文是積累、集聚的意思,翻譯成累加器有可能讓讀者理解為這是一種加法器。累加器實(shí)際上一個(gè)寄存器,往往用于存儲(chǔ)送入ALU進(jìn)行運(yùn)算的某一個(gè)操作數(shù)。3.標(biāo)志寄存器FR(Flag Register) 計(jì)算機(jī)在運(yùn)算過(guò)程中,可能產(chǎn)生很多標(biāo)志位信息。例如,在執(zhí)行加法或減法運(yùn)算時(shí),可能產(chǎn)生進(jìn)位或借位,如果是帶符號(hào)數(shù)的運(yùn)算,還可能產(chǎn)生溢出位。另外,運(yùn)算結(jié)果是負(fù)數(shù)或者是0,當(dāng)前奇偶校驗(yàn)位是1還是0,等等,都是經(jīng)常出現(xiàn)的位信息。這些位信息對(duì)計(jì)算機(jī)的下一步運(yùn)算具有直接影響,因此有必要將他們單獨(dú)保存起來(lái),標(biāo)志寄存器就是用于存放各種標(biāo)志位信息的,是所有型號(hào)的微處理器都具備的一個(gè)重要寄存器。 4. 寄存器組 學(xué)
30、習(xí)CPU,寄存器組是必須要理解并重視的重要部件。因?yàn)橛脩粼谑褂肅PU時(shí),一定會(huì)用到寄存器組。寄存器組分為兩類:通用寄存器組和專用寄存器組。所謂通用寄存器組,可理解為CPU內(nèi)部的較小容量的存儲(chǔ)器,這些存儲(chǔ)器用于暫時(shí)存放運(yùn)算數(shù)或中間結(jié)果。由于通用寄存器在CPU內(nèi)部,所以速度很快,這對(duì)提高運(yùn)算速度是有好處的。例如累加器ACC就是通用寄存器。 專用寄存器組是一些具有專門用途的寄存器的集合。例如標(biāo)志寄存器FR、堆棧指針寄存器SP、程序計(jì)數(shù)器PC等等。5. 程序計(jì)數(shù)器PC(Program counter) 程序計(jì)數(shù)器PC是CPU中最重要的專用寄存器,用于保存下一條要執(zhí)行的指令的地址。指令保存在存儲(chǔ)器的某個(gè)
31、存儲(chǔ)單元,每個(gè)單元對(duì)應(yīng)一個(gè)地址。要執(zhí)行哪條指令,就需要CPU把哪條指令的地址(存儲(chǔ)在PC中)通過(guò)地址總線送到存儲(chǔ)器。由于指令大部分是順序執(zhí)行的,也就是說(shuō),當(dāng)PC的地址送到地址總線上后,可對(duì)PC的內(nèi)容自動(dòng)加1,使其指向下一條要執(zhí)行的指令,從而可以繼續(xù)執(zhí)行指令。從這一方面看,PC的作用是非常重要的。 當(dāng)然,程序不一定總是順序執(zhí)行的,也存在跳轉(zhuǎn)的可能。當(dāng)跳轉(zhuǎn)時(shí),PC的內(nèi)容除了自動(dòng)加一外,還要執(zhí)行一些調(diào)整操作以修改PC的指向。這在后文介紹指令系統(tǒng)時(shí)將有詳細(xì)解釋。 6. 指令寄存器、指令譯碼器 指令寄存器(IR, Instruction Register)用于保存從存儲(chǔ)器傳送過(guò)來(lái)的指令信息,該信息在指令
32、執(zhí)行過(guò)程中一直存在。 指令譯碼器(ID,Instruction Decoder)對(duì)指令寄存器送來(lái)的指令進(jìn)行譯碼,產(chǎn)生各種電平控制信號(hào)。這些控制信號(hào)送到控制信號(hào)發(fā)生器。由指令譯碼器送出的電平信號(hào)同外部時(shí)鐘脈沖在控制信號(hào)產(chǎn)生電路中組合,形成各種按照一定節(jié)拍變化的電平信號(hào)和脈沖信號(hào),也就是生成各種控制信號(hào)。這些控制信號(hào)被送到運(yùn)算器、存儲(chǔ)器或I/O接口電路,執(zhí)行各種操作。1.4.4 程序執(zhí)行過(guò)程 一條指令的執(zhí)行大致可分為兩個(gè)過(guò)程:取指令階段和執(zhí)行指令階段?!叭≈噶睢笔菑拇鎯?chǔ)器的某存儲(chǔ)單元將指令通過(guò)數(shù)據(jù)總線傳送到指令寄存器的過(guò)程?!皥?zhí)行指令”是指將指令從指令寄存器IR中送到指令譯碼器ID,由ID對(duì)指令進(jìn)
33、行解釋,然后通過(guò)控制部件執(zhí)行的過(guò)程。程序執(zhí)行的具體過(guò)程可描述為:1)控制器將PC當(dāng)前內(nèi)容送到地址寄存器AR,即送出當(dāng)前指令的地址,然后PC自動(dòng)加1。2)在控制器作用下,指令地址通過(guò)地址總線送到存儲(chǔ)器的地址譯碼部件,由地址譯碼部件選中存儲(chǔ)器的相應(yīng)存儲(chǔ)單元。3)控制器向存儲(chǔ)器發(fā)出“讀”指令的控制命令,存儲(chǔ)器收到命令后,選中相應(yīng)存儲(chǔ)單元,并將其內(nèi)容,也就是當(dāng)前指令的機(jī)器碼送到數(shù)據(jù)總線。4)通過(guò)數(shù)據(jù)總線,指令機(jī)器碼送入指令寄存器IR,然后送到指令譯碼器ID譯碼,在控制信號(hào)產(chǎn)生器的作用下產(chǎn)生各種控制信號(hào),執(zhí)行各種操作。需要說(shuō)明,當(dāng)程序完全是順序執(zhí)行時(shí),PC自動(dòng)加1就可保證程序的自動(dòng)、高效執(zhí)行。但是當(dāng)程序
34、中存在跳轉(zhuǎn)指令時(shí),還需根據(jù)實(shí)際情況調(diào)整PC的取值。1.5 單片微型計(jì)算機(jī)概述 所謂單片微型計(jì)算機(jī),就是將CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器和多種I/O接口電路都集成在一塊集成電路芯片上的微型計(jì)算機(jī),又簡(jiǎn)稱為單片機(jī)或微控制器。 單片機(jī)具有集成度高、功能強(qiáng)、體積小、成本低、功耗小、可靠性強(qiáng)、使用靈活方便、控制功能強(qiáng)、編程保密化等特點(diǎn),使它在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集和處理、節(jié)能技術(shù)改造、通信系統(tǒng)和分布式控制系統(tǒng)及家用電器產(chǎn)品中都得到了廣泛應(yīng)用。 1.5.1 單片機(jī)的分類 通用型/專用型 通用型單片機(jī)內(nèi)部資源比較豐富,性能全面,而且通用性強(qiáng),可履蓋多種應(yīng)用要求。 專用型單片機(jī)針對(duì)某一種產(chǎn)品或
35、某一種控制應(yīng)用而專門設(shè)計(jì)的,設(shè)計(jì)時(shí)已使結(jié)構(gòu)最簡(jiǎn),軟硬件應(yīng)用最優(yōu),可靠性及應(yīng)用成本最佳。專用型單片機(jī)用途比較專一,出廠時(shí)程序已經(jīng)一次性固化好,不能再修改的單片機(jī)。 2. 總線型/非總線型 這是按單片機(jī)是否提供并行總線來(lái)區(qū)分的。總線型單片機(jī)普遍設(shè)置有并行地址總線、數(shù)據(jù)總線、控制總線,這些引腳用以擴(kuò)展并行外圍器件。如我們常常見(jiàn)到的80C51單片機(jī)就是總線結(jié)構(gòu)。非總線型單片機(jī)把所需要的外圍器件及外設(shè)接口集成在一片內(nèi),在許多情況下不需要擴(kuò)展總線,大大地節(jié)省了封裝成本和芯片體積。 3. 工控型/家電型 這是按照單片機(jī)大致應(yīng)用的領(lǐng)域進(jìn)行區(qū)分的。一般而言,工控型尋址范圍大,運(yùn)算能力強(qiáng);用于家電的單片機(jī)多為專用
36、型,通常是小封裝、低價(jià)格,外圍器件和外設(shè)接口集成度高。 4. 4位單片機(jī)/8位單片機(jī)/16位單片機(jī)/32位單片機(jī)/64位單片機(jī) 這是按照CPU字長(zhǎng)來(lái)劃分的,4位機(jī)每次只能處理以為BCD碼數(shù)據(jù),指令系統(tǒng)簡(jiǎn)單、運(yùn)算功能單一,主要由于袖珍或臺(tái)式計(jì)算器、家電、娛樂(lè)產(chǎn)品和簡(jiǎn)單的過(guò)程控制,是單片機(jī)的低級(jí)階段。 8位單片機(jī)一次可以處理一個(gè)字節(jié)的數(shù)據(jù),指令系統(tǒng)比較完善,尋址能力強(qiáng),外圍配套電路齊全,功能豐富,通用性強(qiáng),廣泛應(yīng)用于事務(wù)管理、工業(yè)生產(chǎn)過(guò)程的自動(dòng)檢測(cè)和控制、通信、智能終端、教育以及家用電器控制等領(lǐng)域。8位單片機(jī),特別是8051內(nèi)核的單片機(jī),是目前教學(xué)和工程應(yīng)用中使用最多的單片機(jī)。1.5.2單片機(jī)的硬
37、件特性及其特點(diǎn) 1. 單片機(jī)的硬件特性(1)集成度高 許多單片機(jī)不僅集成了構(gòu)成微型計(jì)算機(jī)的中央處理單元(CPU)、存儲(chǔ)器、輸入/輸出接口、定時(shí)器等傳統(tǒng)功能單元,而且還集成了A/D轉(zhuǎn)換模塊、D/A轉(zhuǎn)換模塊、脈寬調(diào)制器(PWM)、看門狗定時(shí)器和多種通信方式(如UART、CAN、SPI等)。 (2)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,使用方便,模塊化 許多單片機(jī)內(nèi)部集成程序存儲(chǔ)器(EPROM或Flash)和數(shù)據(jù)存儲(chǔ)器(RAM),在實(shí)際應(yīng)用中一般不再需要外部擴(kuò)展程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,從而不再需要外部擴(kuò)展總線。構(gòu)成系統(tǒng)的電路結(jié)構(gòu)簡(jiǎn)單,體積減小,穩(wěn)定性提高。 單片機(jī)按其程序存儲(chǔ)器類型,可分為掩模(MASK)ROM型單片機(jī)、一次性可編程(OTP)ROM型單片機(jī)以及多次可編程(MTP)的Flash ROM型單片機(jī)。這三種單片機(jī)適合于特定的應(yīng)用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東德州宏泰旅游有限公司招聘筆試參考題庫(kù)含答案解析
- 二零二五年度數(shù)字經(jīng)濟(jì)民工勞動(dòng)合同4篇
- 2025年新科版八年級(jí)地理下冊(cè)階段測(cè)試試卷含答案
- 二零二五年度藝術(shù)品拍賣授權(quán)委托合同4篇
- 2024年度青海省公共營(yíng)養(yǎng)師之四級(jí)營(yíng)養(yǎng)師模擬試題(含答案)
- 2024年度黑龍江省公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師測(cè)試卷(含答案)
- 2024年度陜西省公共營(yíng)養(yǎng)師之四級(jí)營(yíng)養(yǎng)師自我檢測(cè)試卷B卷附答案
- 2024-2025學(xué)年高中地理第四章工業(yè)地域的形成與發(fā)展1工業(yè)的區(qū)位選擇課后作業(yè)含解析新人教版必修2
- 2025年人教A版九年級(jí)歷史上冊(cè)月考試卷含答案
- 2025年度車輛掛靠客運(yùn)站場(chǎng)服務(wù)合同3篇
- 臨床三基考試題庫(kù)(附答案)
- 合同簽訂執(zhí)行風(fēng)險(xiǎn)管控培訓(xùn)
- DB43-T 3022-2024黃柏栽培技術(shù)規(guī)程
- 九宮數(shù)獨(dú)200題(附答案全)
- 人員密集場(chǎng)所消防安全管理培訓(xùn)
- 《聚焦客戶創(chuàng)造價(jià)值》課件
- PTW-UNIDOS-E-放射劑量?jī)x中文說(shuō)明書(shū)
- JCT587-2012 玻璃纖維纏繞增強(qiáng)熱固性樹(shù)脂耐腐蝕立式貯罐
- 保險(xiǎn)學(xué)(第五版)課件全套 魏華林 第0-18章 緒論、風(fēng)險(xiǎn)與保險(xiǎn)- 保險(xiǎn)市場(chǎng)監(jiān)管、附章:社會(huì)保險(xiǎn)
- 典范英語(yǔ)2b課文電子書(shū)
- 員工信息登記表(標(biāo)準(zhǔn)版)
評(píng)論
0/150
提交評(píng)論