《補(bǔ)充內(nèi)容:預(yù)備知識(shí)很過(guò)分》由會(huì)員分享,可在線閱讀,更多相關(guān)《補(bǔ)充內(nèi)容:預(yù)備知識(shí)很過(guò)分(25頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、*,單擊此處編輯母版標(biāo)題樣式,單片機(jī)原理與接口技術(shù),付會(huì)凱,新鄉(xiāng)學(xué)院,第1章 預(yù)備知識(shí)(數(shù)制與碼制),1.1 進(jìn)位計(jì)數(shù)制及各計(jì)數(shù)制間的轉(zhuǎn)換,1.2 二進(jìn)制數(shù)的運(yùn)算,1.3 帶符號(hào)數(shù)的表示方法 原碼、反碼、補(bǔ)碼,1.4 定點(diǎn)數(shù)與浮點(diǎn)數(shù),1.5 BCD碼和ASCII碼,進(jìn)位計(jì)數(shù)制及其相互轉(zhuǎn)換,十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制采用的都是進(jìn)位計(jì)數(shù)制,進(jìn)位計(jì)數(shù)制中用少量數(shù)碼按次序排列成數(shù)位,并按由低到高的進(jìn)位方式進(jìn)行計(jì)數(shù)。,基數(shù),和,位,權(quán),是進(jìn)位十進(jìn)制的兩個(gè)基本要素。,基數(shù),R(Radix,),:是進(jìn)位計(jì)數(shù)制中所用數(shù)碼的個(gè)數(shù),基數(shù)為,r,的進(jìn)位計(jì)數(shù)制中需要,R,個(gè)數(shù)碼,每個(gè)數(shù)位計(jì)滿,R,就向高位進(jìn)一,
2、即“逢,R,進(jìn)一”。,位權(quán),W(Weight,),:在進(jìn)位計(jì)數(shù)制表示的數(shù)中,同一數(shù)字處在不同位置表示不同的值,它所表示的值是該數(shù)字乘以一個(gè)由它所處位置所決定的常數(shù),這一常數(shù)就是該數(shù)位所具有的位權(quán)。,R,進(jìn)制數(shù)各位的權(quán)是以,R,為底的冪。,1.1 進(jìn)位計(jì)數(shù)制及各計(jì)數(shù)制間的轉(zhuǎn)換,進(jìn)位計(jì)數(shù)制及其相互轉(zhuǎn)換,任何一個(gè)R進(jìn)制數(shù)N可以表示為:,若,R=10,,,則十進(jìn)制數(shù),其各位的權(quán)是以,10,為底的冪;,若,R=2,,,則是二進(jìn)制數(shù),其各位的權(quán)是以,2,為底的冪;,若,R=8,,,則是八進(jìn)制數(shù),其各位的權(quán)是以,8,為底的冪,八進(jìn)制中共有八個(gè)數(shù)碼:,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7
3、,;,若,R=16,,,則是十六進(jìn)制數(shù),其各位的權(quán)是以,16,為底的冪,十六進(jìn)制中共有,16,個(gè)數(shù)碼:,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7,、,8,、,9,、,A,、,B,、,C,、,D,、,E,、,F,。,為了明確表示一個(gè)數(shù)所采用的進(jìn)位計(jì)數(shù)制,可以該數(shù)的后面加上下標(biāo),(B),、,(O),、,(D),、,(H),,,分別表示該數(shù)為二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制,進(jìn)位計(jì)數(shù)制及其相互轉(zhuǎn)換,R進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),按照公式展開求和,例1,.分別把二進(jìn)制數(shù)1011.01和十六進(jìn)制數(shù)F0.C用十進(jìn)制表示,十進(jìn)制數(shù)轉(zhuǎn)換為R進(jìn)制數(shù),整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,整數(shù)部分的轉(zhuǎn)換步驟
4、,:,把R寫成十進(jìn)制數(shù);,將N除以R,記錄商和余數(shù),并用R進(jìn)制表示余數(shù),這余數(shù)便是用R進(jìn)制表示的數(shù)的最低位數(shù)字;,把上次的商進(jìn)行中所述除以R取余的運(yùn)算,用R進(jìn)制表示余數(shù);重復(fù)這種運(yùn)算直到商為0,這時(shí)的余數(shù)即為十進(jìn)制數(shù)N用R進(jìn)制表示時(shí)的最高位數(shù)字。,(除基取余),十進(jìn)制數(shù)轉(zhuǎn)換為R進(jìn)制數(shù),例2,.把十進(jìn)制數(shù)103用二進(jìn)制表示,例3,.把十進(jìn)制數(shù)506用十六進(jìn)制表示,小數(shù)部分的轉(zhuǎn)換步驟,:,把R寫成十進(jìn)制數(shù);,將N乘以R,記錄積的整數(shù)部分和小數(shù)部分,并用R進(jìn)制表示整數(shù)部分,該整數(shù)即為轉(zhuǎn)換后R進(jìn)制小數(shù)的最高位;,把上次積的小數(shù)部分進(jìn)行中所述乘以R取整的運(yùn)算,用R進(jìn)制表示積的整數(shù)部分;重復(fù)這種運(yùn)算直到積
5、的小數(shù)部分為0,或者達(dá)到所要求的位數(shù),這時(shí)的整數(shù)部分即為十進(jìn)制數(shù)N轉(zhuǎn)換成R進(jìn)制小數(shù)的最低位。,(乘基取整),十進(jìn)制數(shù)轉(zhuǎn)換為R進(jìn)制數(shù),例4,.把十進(jìn)制0.8125用八進(jìn)制表示,二進(jìn)制與八進(jìn)制、十六進(jìn)制的相互轉(zhuǎn)換,從二進(jìn)制轉(zhuǎn)換成十六進(jìn)制時(shí),從小數(shù)點(diǎn)位置開始,整數(shù)部分向左,小數(shù)部分向右,每四位二進(jìn)制數(shù)為一組用一位十六進(jìn)制的數(shù)字來(lái)表示,不足四位的用0補(bǔ)足,就是相應(yīng)十六進(jìn)制的表示。,從二進(jìn)制轉(zhuǎn)換成八進(jìn)制時(shí),從小數(shù)點(diǎn)位置開始,整數(shù)部分向左,小數(shù)部分向右,每三位二進(jìn)制數(shù)為一組用一位八進(jìn)制的數(shù)字來(lái)表示,不足三位的用0補(bǔ)足,就是相應(yīng)八進(jìn)制的表示。,例5,.把二進(jìn)制用十六進(jìn)制表示,例6,.把八進(jìn)制數(shù)62.31用二
6、進(jìn)制表示,1.2 二進(jìn)制數(shù)的運(yùn)算,二進(jìn)制數(shù)的算術(shù)運(yùn)算,二進(jìn)制數(shù)不僅物理上容易實(shí)現(xiàn),而且算術(shù)運(yùn)算也比較簡(jiǎn)單,其加、減法遵循“逢2進(jìn)1”、“借1當(dāng)2”的原則。,以下通過(guò)4個(gè)例子說(shuō)明二進(jìn)制數(shù)的加、減、乘、除運(yùn)算過(guò)程。,1.二進(jìn)制加法,1 位二進(jìn)制數(shù)的加法規(guī)則為:,000 011 101 1110 (有進(jìn)位),3.二進(jìn)制乘法,1 位二進(jìn)制數(shù)的乘法規(guī)則為:,000 010 100 111,2.二進(jìn)制減法,1 位二進(jìn)制數(shù)的減法規(guī)則為:,101 110 000 011(有借位),二進(jìn)制數(shù)的算術(shù)運(yùn)算,2.二進(jìn)制除法,二進(jìn)制除法的運(yùn)算過(guò)程類似于十進(jìn)制除法的運(yùn)算過(guò)程。,二進(jìn)制數(shù)除法是二進(jìn)制數(shù)乘法的逆運(yùn)算,在沒(méi)有除
7、法指令的微型計(jì)算機(jī)中,常采用比較、相減、余數(shù)左移相結(jié)合的方法進(jìn)行編程來(lái)實(shí)現(xiàn)除法運(yùn)算。由于MCS-51系列單片機(jī)指令系統(tǒng)中包含有加、減、乘、除指令,因此給用戶編程帶來(lái)了許多方便,同時(shí)也提高了機(jī)器的運(yùn)算效率。,二進(jìn)制數(shù)的算術(shù)運(yùn)算,2.“或”運(yùn)算(OR),“或”運(yùn)算又稱邏輯加,運(yùn)算符為或?!盎颉边\(yùn)算的規(guī)則如下:,000 01101 111,1.“與”運(yùn)算(AND),“與”運(yùn)算又稱邏輯乘,運(yùn)算符為或?!芭c”運(yùn)算的規(guī)則如下:,000 01100 111,二進(jìn)制數(shù)的邏輯運(yùn)算,4.“異或”運(yùn)算(XOR),“異或”運(yùn)算的運(yùn)算符為,其運(yùn)算規(guī)則如下:,0 00 0 11 01 1 10,3.“非”運(yùn)算(NOT),
8、“非”運(yùn)算又稱邏輯非,如變量A的“非”運(yùn)算記作 ?!胺恰边\(yùn)算的規(guī)則如下:,二進(jìn)制數(shù)的邏輯運(yùn)算,1.3 帶符號(hào)數(shù)的表示方法原碼、反碼、補(bǔ)碼,符號(hào)數(shù)的表示(原碼、補(bǔ)碼與反碼),把二進(jìn)制數(shù)的最高一位定義為符號(hào)位,符號(hào)位為,0,表示正數(shù),符號(hào)位為,1,表示負(fù)數(shù),這種在計(jì)算機(jī)中使用的、連同符號(hào)位一起數(shù)值化了的數(shù),稱為機(jī)器數(shù)。機(jī)器數(shù)所表示的真實(shí)的數(shù)值,稱為真值。對(duì)于符號(hào)數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和補(bǔ)碼三種。數(shù),X,的原碼記作,X,原,,反碼記作,X,反,,補(bǔ)碼記作,X,補(bǔ),。,最高位表示符號(hào),數(shù)值位用二進(jìn)制絕對(duì)值表示的方法,稱為原碼表示法,一個(gè)負(fù)數(shù)的原碼符號(hào)位保持不變,其余位取反就是機(jī)器數(shù)的另一
9、種表示方法,反碼表示法。正數(shù)的反碼與原碼相同。,將負(fù)數(shù)的反碼加1,則得到機(jī)器數(shù)的補(bǔ)碼表示。正數(shù)的補(bǔ)碼與原碼相同。,二進(jìn)制數(shù)的補(bǔ)碼,最高位為符號(hào)位(0為正,1為負(fù)),正數(shù)的補(bǔ)碼和它的原碼相同,負(fù)數(shù)的補(bǔ)碼=數(shù)值位逐位求反+1,如,+5=(0 0101),-5=(1 1011),通過(guò)補(bǔ)碼,將減一個(gè)數(shù)用加上該數(shù)的補(bǔ)碼來(lái)實(shí)現(xiàn),二進(jìn)制數(shù)的補(bǔ)碼,7 4=3,7+8=3(舍棄進(jìn)位),4+8=12 產(chǎn)生進(jìn)位的模,8是-4對(duì)模數(shù)12的補(bǔ)碼,二進(jìn)制數(shù)的補(bǔ)碼,1110 0110=1000,(14-6=8),1110+1010=11000,=1000(舍棄進(jìn)位),(14+10=8),0110+1010=2,4,1010
10、是-0110對(duì),模,2,4,(16)的補(bǔ)碼,16,8,4,12,14,2,6,10,補(bǔ)碼加減法的運(yùn)算規(guī)則,X,Y,補(bǔ),=X,補(bǔ),+,Y,補(bǔ),其中X,Y為正負(fù)數(shù)均可,符號(hào)位參與運(yùn)算。,模(module)就是一個(gè)計(jì)數(shù)系統(tǒng)的最大容量,其大小等于以進(jìn)位計(jì)數(shù)制基數(shù)為底,以位數(shù)為指數(shù)的冪。凡是用器件進(jìn)行的運(yùn)算都是有模運(yùn)算,運(yùn)算結(jié)果超過(guò)模的部分被運(yùn)算器自動(dòng)丟棄。因此,當(dāng)器件為n位時(shí),有,,X=2,n,+X (mod 2,n,),不難驗(yàn)證,,X,補(bǔ),=2,n,+X (mod 2,n,),因此,,X,Y,補(bǔ),=2,n,+(X,Y)(mod 2,n,),=(2,n,+X)+(2,n,+X),=X,補(bǔ),+,Y,補(bǔ),
11、補(bǔ)碼加減法的運(yùn)算規(guī)則,例7,.設(shè)X=23,Y=-42,以2,8,為模,用補(bǔ)碼運(yùn)算求X+Y和X-Y。,當(dāng)運(yùn)算結(jié)果超出補(bǔ)碼表示的數(shù)值范圍時(shí),補(bǔ)碼運(yùn)算就不正確了。這種現(xiàn)象稱為溢出。,對(duì)于n位補(bǔ)碼,當(dāng) 時(shí)應(yīng)用補(bǔ)碼運(yùn)算可以得到正確的結(jié)果,無(wú)符號(hào)數(shù)的表示,無(wú)符號(hào)數(shù)的最高位不是符號(hào)位而是數(shù)值的一部分,1.4 定點(diǎn)數(shù)與浮點(diǎn)數(shù),定點(diǎn)數(shù)的表示,1.定點(diǎn)整數(shù)表示法,小數(shù)點(diǎn)固定在最低數(shù)值位之后,機(jī)器中能表示的所有數(shù)都是整數(shù),這種方法稱之為定點(diǎn)整數(shù)表示法。當(dāng)用n位表示數(shù)N時(shí),1位為符號(hào)位,n1位為數(shù)值位,則N的取值范圍是:,2,n-1,N2,n-1,1,2.定點(diǎn)小數(shù)表示法,小數(shù)點(diǎn)固定在最高數(shù)值位之前,機(jī)器中能表示的所有
12、數(shù)即為純小數(shù),這種方法稱之為定點(diǎn)小數(shù)表示法。當(dāng)用n位表示數(shù)N時(shí),1位為符號(hào)位,n1位為數(shù)值位,則N的范圍是:,(12,1-n,)N12,1-n,浮點(diǎn)數(shù)的表示,任意一個(gè)二進(jìn)制實(shí)數(shù)X都可以表示成如下一般格式:,10.01011101,2,+5,的階碼為+5,表示把尾數(shù)的小數(shù)點(diǎn)向右移動(dòng)5位就是小數(shù)點(diǎn)的實(shí)際位置,規(guī)格化處理:整數(shù)部分必須是1,8421BCD碼,壓縮,BCD,碼的每一位用,4,位二進(jìn)制表示,,00001001,表示,09,,一個(gè)字節(jié)表示兩位十進(jìn)制數(shù)。,非壓縮,BCD,碼用一個(gè)字節(jié)表示一位十進(jìn)制數(shù),高,4,位總是,0000,,低,4,位的,00001001,表示,09,。,1.5 BCD碼和ASCII碼,ASCII碼,采用7位二進(jìn)制代碼對(duì)字符進(jìn)行編碼,數(shù)字,09,的編碼是,01100000111001,,它們的高,3,位均是,011,,后,4,位正好與其對(duì)應(yīng)的二進(jìn)制代碼相符。,英文字母,AZ,的,ASCII,碼從,1000001,(,41H,),開始順序遞增,字母,az,的,ASCII,碼從,1100001,(,61H,),開始順序遞增,這樣的排列對(duì)信息檢索十分有利。,美國(guó)標(biāo)準(zhǔn)信息交換代碼,1.5 BCD碼和ASCII碼,ASCII碼,