單片機(jī)原理、接口及應(yīng)用:第0章 計(jì)算機(jī)的基礎(chǔ)知識_第1頁
單片機(jī)原理、接口及應(yīng)用:第0章 計(jì)算機(jī)的基礎(chǔ)知識_第2頁
單片機(jī)原理、接口及應(yīng)用:第0章 計(jì)算機(jī)的基礎(chǔ)知識_第3頁
單片機(jī)原理、接口及應(yīng)用:第0章 計(jì)算機(jī)的基礎(chǔ)知識_第4頁
單片機(jī)原理、接口及應(yīng)用:第0章 計(jì)算機(jī)的基礎(chǔ)知識_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理、接口及應(yīng)用嵌入式系統(tǒng)技術(shù)基礎(chǔ)(第2版)高等學(xué)校教材計(jì)算機(jī)應(yīng)用第0章 計(jì)算機(jī)的基礎(chǔ)知識單片機(jī)原理、接口及應(yīng)用內(nèi) 容 提 要 緒論 微型計(jì)算機(jī)的基本結(jié)構(gòu)和工作原理 計(jì)算機(jī)中的數(shù)制與碼制 小結(jié)0.1 緒 論 計(jì)算機(jī)的新分類 嵌入式系統(tǒng) 單片機(jī) 單片機(jī)的應(yīng)用 單片機(jī)的發(fā)展趨勢 MCS-51系列單片機(jī)類型一、計(jì)算機(jī)的新分類 長期以來人們按照計(jì)算機(jī)的體系結(jié)構(gòu)、運(yùn)算速度、結(jié)構(gòu)規(guī)模、適用領(lǐng)域,將其分為 大型計(jì)算機(jī)、中型機(jī)、小型機(jī)和微型計(jì)算機(jī)。 隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,計(jì)算機(jī)技術(shù)和產(chǎn)品對其它行業(yè)的廣泛滲透,人們以應(yīng)用為中心、按計(jì)算機(jī)的嵌入式應(yīng)用和非嵌入式應(yīng)用進(jìn)行新的分類,將其分為 嵌入式計(jì)算機(jī) 和

2、 通用計(jì)算機(jī)。 通用計(jì)算機(jī)具有計(jì)算機(jī)的標(biāo)準(zhǔn)形態(tài),通過裝配不同的應(yīng)用軟件,以類同面目出現(xiàn),并應(yīng)用在社會的各個方面,其典型產(chǎn)品為PC機(jī); 嵌入式計(jì)算機(jī)則是以嵌入式系統(tǒng)的形式隱藏在各種裝置、產(chǎn)品和系統(tǒng)中。 什么是嵌入式系統(tǒng) 嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、針對具體應(yīng)用系統(tǒng)、對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。 嵌入式計(jì)算機(jī)在應(yīng)用數(shù)量上遠(yuǎn)遠(yuǎn)超過了各種通用計(jì)算機(jī),一臺通用計(jì)算機(jī)的外部設(shè)備中就包含了5-10個嵌入式微處理器,鍵盤、鼠標(biāo)、軟驅(qū)、硬盤、顯示卡、顯示器、網(wǎng)卡、Modem、聲卡、打印機(jī)、掃描儀、數(shù)字相機(jī)、USB集線器等均是由嵌入式處理器控制的。在

3、制造工業(yè)、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、家電產(chǎn)品等方面無不是嵌入式計(jì)算機(jī)的應(yīng)用領(lǐng)域。二、嵌入式系統(tǒng)1.嵌入式系統(tǒng)的種類 嵌入式系統(tǒng)的核心部件有以下三類: (1)嵌入式微處理器(Embedded Microprocessor Unit, EMPU): 功能同標(biāo)準(zhǔn)的CPU,但在工作溫度、 電磁干擾、可靠性等方面做了各種增強(qiáng)。 (2)嵌入式微控制器(Microcontroller Unit, MCU又稱單片機(jī))。 (3)嵌入式DSP處理器(Embedded Digital Signal Processor, EDSP):DSP處理器對系統(tǒng)結(jié)構(gòu)和指令進(jìn)行了特殊設(shè)計(jì),使其

4、適合于執(zhí)行DSP算法,編譯效率較高,指令執(zhí)行速度也較高。 2.嵌入式系統(tǒng)的特點(diǎn) (1)產(chǎn)品穩(wěn)定性 不象PC機(jī)那樣更新?lián)Q代很快,51單片機(jī)問世20多年,至今方興未艾。 (2)不可壟斷性 PC機(jī)壟斷全世界,Windows壟斷全世界,而單片機(jī)沒有一個能壟斷全世界,各種單片機(jī)各有自己的市場。 (3)產(chǎn)品的多樣性、分散性、創(chuàng)新性 (4)軟件特性:不是以磁盤的形式存儲,而是固化在芯片中 (5)嵌入式系統(tǒng)的開發(fā)需要開發(fā)工具 嵌入式系統(tǒng)自身無開發(fā)能力,需借助開發(fā)工具,如編程器、仿真器。 全稱單片微型計(jì)算機(jī)(Single ChipMicrocomputer) 又稱微控制器MCU(Micro Controller

5、 Unit),是將計(jì)算機(jī)的基本部分微型化,使之集成在一塊芯片上的微機(jī)。片內(nèi)含有CPU、ROM、RAM、并行I/0、串行I/O、定時器/計(jì)數(shù)器、中斷控制、系統(tǒng)時鐘及系統(tǒng)總線等,它本身就是一個嵌入式系統(tǒng),同時它也可作更大的嵌入式系統(tǒng)的核心。 單片機(jī)的特點(diǎn)是小而全,即體積小、功能全、功耗低、性能價格比高。三、單片機(jī) 1.單片機(jī)的應(yīng)用 由于單片機(jī)小而全,易于推廣應(yīng)用等顯著優(yōu)點(diǎn),在自動化裝置,智能化儀器儀表和家用電器等領(lǐng)域得到日益廣泛的應(yīng)用。下面僅列舉一些典型的應(yīng)用領(lǐng)域。 (1)工業(yè)控制 數(shù)控機(jī)床,電機(jī)控制,工業(yè)機(jī)器人,自動控制等 (2)儀器儀表 智能儀器,醫(yī)療器械,數(shù)字示波器等。 (3)電信技術(shù) 調(diào)制

6、解調(diào)器,聲像處理,數(shù)字濾波,通信設(shè)備等。 (4)辦公自動化和計(jì)算機(jī)外部設(shè)備 傳真機(jī),復(fù)印機(jī),打印機(jī),繪圖儀,掃描儀等 (5)汽車與節(jié)能 點(diǎn)火控制,變速控制,防滑車控制,排氣控制,計(jì)費(fèi)器,交通控制等。 (6)導(dǎo)彈 導(dǎo)彈控制,魚雷制導(dǎo),智能武器裝置,航天導(dǎo)彈系統(tǒng)等。 (7)商用產(chǎn)品 電子收款機(jī),電子秤,銀行統(tǒng)計(jì)機(jī)等。 (8)家用電器 微波爐,電視機(jī),錄像機(jī),音響設(shè)備,游戲機(jī)等 以上可見它無處不有、無時不在,像個萬能的螺絲釘。2.單片機(jī)的發(fā)展趨勢(1)單片機(jī)的字長由4位、8位、16 位發(fā)展到32位。 這幾種字長的MCU目前同時存在于市場,由于單片機(jī)主要用于控制,目前8位的MCU 仍然占主流地位,只有

7、在精度要求特別高的場合如圖像處理等,才采用16位的MCU, 用戶可以根據(jù)產(chǎn)品的需要進(jìn)行選擇。(2)運(yùn)行速度不斷提高。 單片機(jī)的使用最高頻率由6MHz、12MHz 、24MHz、 33MHz、發(fā)展到 40MHz。(3)單片機(jī)內(nèi)的存儲容量越來越大。 由1KB、 2KB、 4KB、 8KB、 16KB、 32KB、發(fā)展到 64KB 等。(4)ROM存儲器的編程也越來越方便 有 ROM型(掩模型)、OTP型(一次性編程)、EPROM(紫外線擦除編程)、EEPROM(電擦除編程)及FLASH(閃速編程)。編程(燒錄)方式也越來越方便,目前有脫機(jī)編程、在系統(tǒng)編程(ISP)、在應(yīng)用編程(IAP)。各類產(chǎn)品并

8、存,可供用戶選擇。 (5)I/O端口多功能化 單片機(jī)內(nèi)除集成有并行接口、串行接口外,還集成有A/D、D/A、LED/LCD顯示驅(qū)動、DMA控制、PWM(脈寬調(diào)制輸出)、 PLC(鎖相環(huán)控制)、 PCA(邏輯陣列) WDT(看門狗)等。 (6)功耗越來越低 采用CHMOS制作工藝使單片機(jī)集HMOS的高速、高集成度和CMOS的低功耗技術(shù)為一體,使單片機(jī)的功耗進(jìn)一步降低,適應(yīng)的電壓范圍更寬(2.66V)。(7)結(jié)合專用集成電路ASIC、精簡指令集和RISC技術(shù),使單片機(jī)發(fā)展成為嵌入式的處理器,深入到數(shù)字信號處理、圖象處理、人工智能、機(jī)器人等領(lǐng)域。 以上單片機(jī)各種發(fā)展系列并非一代淘汰一代,用戶根據(jù)產(chǎn)品

9、要求、性價比等情況選擇。 目前市面上較有影響的單片機(jī)廠家有:INTEL:MCS-51、MCS-96系列。MOTOROLA:68HCXX系列。MICROCHIP:16C5X/6X/7X/8X系列。ZILOG:Z86EXXXPSC系列。TEXAS:MSP430FXX系列。 各廠家單片機(jī)的指令系統(tǒng)各不相同,功能各有所長,其中市場占有最高的是MCS-51系列,因?yàn)槭澜缟虾芏嘀腎C生產(chǎn)廠家都生產(chǎn)51兼容的芯片。目前為止,MCS-51單片機(jī)已有數(shù)百個品種,還在不斷推出功能更強(qiáng)的新產(chǎn)品。近年來PHILIPS公司又推出了指令和MCS-51兼容的16位單片機(jī),這樣保證了MCS-51單片機(jī)的先進(jìn)性,同時,很多

10、專用芯片以它作為控制核心,可以預(yù)言,幾十年內(nèi)不會淘汰。因此,MCS-51單片機(jī)成為教學(xué)的首選機(jī)型。3.MCS-51系列單片機(jī)類型 MCS-51系列單片機(jī)品種很多,如果按照存儲器ROM配置狀態(tài),可劃分為:片內(nèi)無EPROM型,如80(C)3X;片內(nèi)EPROM,如87(C)5X;片內(nèi)FLASH EEPROM型,如89C5X;片內(nèi)EEPROM ISP型(可在系統(tǒng)編程)如89S5X。 如果按照其功能,則可劃分以下一些類型:(1)基本型 基本型有8031、8051、8751、89C51/S51等。 基本型的代表產(chǎn)品是8051,其基本特性如下: 一個8位CPU和指令系統(tǒng)。 128字節(jié)的片內(nèi)RAM。 21個特

11、殊功能寄存器。 32線并行I/O口。 2個16位定時/計(jì)數(shù)器。 一個全雙工串行口。 5個中斷源、2個中斷優(yōu)先級的中斷結(jié)構(gòu). 4KB片內(nèi)ROM。 一個片內(nèi)時鐘振蕩器和時鐘電路. 片外可擴(kuò)展64KBROM和64KBRAM. 由此可見,它本身就是一個功能相當(dāng)強(qiáng)的8位微型機(jī). (2)增強(qiáng)型 有8052AH、8032AH、8752BH,此類型單片機(jī)的內(nèi)ROM和RAM容量比基本型的增大一倍,同時把16位計(jì)數(shù)增為3個.87C54內(nèi)部ROM增加到16KB,87C58增加到32KB. (3)低功耗型 有80C5XBH、80C31XBH、87C5X.這類型號帶有“C”字的單片機(jī)采用CHMOS工藝,其特點(diǎn)是功耗低,

12、另外, 87C51還有兩級程序存儲器保密系統(tǒng),可防止非法拷貝程序. 此外還有內(nèi)含DMA、PCA (可編程計(jì)數(shù)陣列)、A/D、多并行口、及內(nèi)含BASIC高級語言型等多類產(chǎn)品,詳見教材續(xù)表。 0.2.1 微機(jī)的系統(tǒng)結(jié)構(gòu) 微機(jī)系統(tǒng)軟件硬件主機(jī)外圍設(shè)備微處理器(CPU)運(yùn)算器控制器寄存器存儲器(內(nèi)存)RAMROM輸入/輸出接口(I/O接口)并行、串行接口定時器、A/D、D/A總線系統(tǒng)軟件應(yīng)用軟件程序設(shè)計(jì)語言外部設(shè)備輔助設(shè)備輸入設(shè)備輸出設(shè)備輔助存儲器電源電路時鐘電路CPU是計(jì)算機(jī)的控制核心,它的功能是執(zhí)行指令,完成算數(shù)運(yùn)算、邏輯運(yùn)算,并對整機(jī)進(jìn)行控制。存儲器用于存儲程序和數(shù)據(jù)。輸入/輸出接口(又稱I/O

13、接口)是CPU和外設(shè)之間相連的邏輯電路,外設(shè)必須通過接口才能和CPU相連。不同的外設(shè)所用接口不同。每個I/O接口也有一個地址,CPU通過對不同的I/O接口進(jìn)行操作來完成對外設(shè)的操作。總線 CPU 、存儲器、I/O接口和之間相連的一組線。用于傳送程序或數(shù)據(jù)的總線稱為數(shù)據(jù)總線;地址總線用于傳送地址,以識別不同的存儲單元或I/O接口;控制總線用于控制數(shù)據(jù)總線上數(shù)據(jù)流送的方向、對象等。0.2.2 微機(jī)的基本工作原理存儲程序、執(zhí)行程序是微機(jī)的工作原理,取指令,譯碼,執(zhí)行是微機(jī)的基本工作過程。單片機(jī)是微型計(jì)算機(jī)的一種,是將計(jì)算機(jī)主機(jī)(CPU、存儲器和I/O接口)集成在一小塊硅片上的微機(jī),又稱微控制器。它專

14、為工業(yè)測量與設(shè)計(jì)而設(shè)計(jì),具有三高優(yōu)勢(集成度高、可靠性高、性價比高). 單片機(jī)的特點(diǎn)是小而全(體積小,功能全),主要應(yīng)用于工業(yè)檢測與控制、計(jì)算機(jī)外設(shè)、智能儀器、儀表、通信設(shè)備、家用電器等,特別適合于嵌入式微型機(jī)應(yīng)用系統(tǒng)。 0.2.3 微機(jī)的主要技術(shù)指標(biāo)微型計(jì)算機(jī)主要有如下一些技術(shù)指標(biāo):字長:CPU并行處理數(shù)據(jù)位,由此定為8位機(jī)、16位機(jī)、32位機(jī)等。存儲容量:存儲器單元數(shù),例如256B、8KB、1MB等(1B即一個字節(jié),也就是一個8位二進(jìn)制數(shù),是計(jì)算機(jī)數(shù)據(jù)的基本單位)。運(yùn)算速度:CPU處理速度,它和內(nèi)部的工藝結(jié)構(gòu)以及外接的時鐘頻率有關(guān)。時鐘頻率:在CPU極限頻率以下,時鐘頻率越高,執(zhí)行指令速度

15、越快,對單片機(jī)而言,有6MHz、12MHz、24MHz等。0.3.1 計(jì)算機(jī)中的數(shù) 計(jì)算機(jī)中的數(shù)字電路具有兩種不同的穩(wěn)定狀態(tài)且能相互轉(zhuǎn)換,即“0”和“1”兩種狀態(tài)。計(jì)算機(jī)處理的一切信息均用二進(jìn)制數(shù)表示,但是二進(jìn)制數(shù)書寫起來太長,所以微型計(jì)算機(jī)中的二進(jìn)制數(shù)都采用十六進(jìn)制來縮寫。十六進(jìn)制數(shù)用09、AF等16個數(shù)碼表示十進(jìn)制數(shù)015。 為了區(qū)別十進(jìn)制數(shù)、二進(jìn)制數(shù)及十六進(jìn)制數(shù)3種數(shù)制,在數(shù)的后面加一個字母以進(jìn)行區(qū)別。用 B(binary)表示二進(jìn)制數(shù)制; D(decimal)或不帶字母表示十進(jìn)制數(shù)制; H(hexadecimal)表示十六進(jìn)制數(shù)制。表0-1 不同進(jìn)位記數(shù)制對照表二進(jìn)制數(shù)和十六進(jìn)制數(shù)間的

16、相互轉(zhuǎn)換 將二進(jìn)制數(shù)從右(最低位)向左每4位為1組分組,若最后一組不足4位,則在其左邊添加0,以湊成4位,每組用1位十六進(jìn)制數(shù)表示。如:1111111000111B1 1111 1100 0111B0001 1111 1100 0111B1FC7H 十六進(jìn)制數(shù)轉(zhuǎn)換位二進(jìn)制數(shù),只需用4位二進(jìn)制數(shù)代替1位十六進(jìn)制數(shù)即可。 如:3AB9H=0011 1010 1011 1001B十六進(jìn)制數(shù)和十進(jìn)制數(shù)間的相互轉(zhuǎn)換 將十六進(jìn)制數(shù)按權(quán)展開相加,如:1F3DH=163116215161316013 =4096125615163113 =409638404813=7997 十進(jìn)制整數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)可用出16

17、取余法,即用16不斷地去除待轉(zhuǎn)換的十進(jìn)制數(shù),直至商等于0為止。將所得的各次余數(shù),依倒敘排列,即可得到所轉(zhuǎn)換的十六進(jìn)制數(shù)。如將38947轉(zhuǎn)換為十六進(jìn)制數(shù),其方法及算式如下: 即38947=9823H0.3.2 計(jì)算機(jī)中數(shù)的幾個概念1.機(jī)器數(shù)與真值機(jī)器數(shù):機(jī)器中數(shù)的表示形式,它將數(shù)的正、負(fù)符號和數(shù)值部分一起進(jìn)行二進(jìn)制編碼,其位數(shù)通常為8的整數(shù)倍。真值:機(jī)器數(shù)所代表的實(shí)際數(shù)值的正負(fù)和大小,是人們習(xí)慣表示的數(shù)。2。數(shù)的單位位(bit):一個二進(jìn)制數(shù)中的1位,其值不是1便0。字節(jié)(Byte):一個字節(jié),就是一個8位的二進(jìn)制數(shù)。字(Word):兩個字節(jié),就是一個16位的二進(jìn)制數(shù)。雙字:兩個字,即四個字節(jié),

18、一個32位二進(jìn)制數(shù)。 只有8位、16位或32位機(jī)器數(shù)的最高位才是符號位。0.3.3 計(jì)算機(jī)中的有符號數(shù)的表示有符號數(shù)有原碼、反碼和補(bǔ)碼三種表示法。1.原碼 數(shù)值部分用其絕對值,正數(shù)的符號位用“0”表示,負(fù)數(shù)的符號位用“1”表示。如:X1=5=+00000101B X1原=00000101B X2=-5=-00000101B X2原=10000101B 符號位 8位原碼數(shù)的范圍為FFH7FH(-127127)。原碼數(shù)00H和80H的數(shù)值部分相同、符號位相反,它們分別為+0和-0。16位原碼數(shù)的數(shù)值范圍為FFFFH7FFFH(-3276732767)。原碼數(shù)0000H和8000H的數(shù)值部分相同、符

19、號位相反,它們分別為+0和-0。 原碼表示簡單易懂,而且與真值的轉(zhuǎn)換方便。但若是兩個異號數(shù)相加,或兩個同號數(shù)相減,就要做減法。為了把減運(yùn)算轉(zhuǎn)換為加運(yùn)算,從而簡化計(jì)算機(jī)的結(jié)構(gòu),就引進(jìn)了反碼和補(bǔ)碼。(2)反碼 正數(shù)的反碼與原碼相同; 負(fù)數(shù)反碼:符號位不 變,數(shù)值部分按位取反。 例 求8位反碼機(jī)器數(shù):x1=+4 x1原=00000100B x1反=00000100B=04Hx2=-4 x2原=10000100B x2反=11111011B= FBH 取反(3)補(bǔ)碼正數(shù)的補(bǔ)碼與原碼相同;負(fù)數(shù)補(bǔ)碼為其反碼加1。例:求 8位補(bǔ)碼機(jī)器數(shù):x1=+4: x1原=x1反=x1補(bǔ)= 00000100=04Hx2=

20、 - 4:x2原 =10000100 x2反 = 11111011 x2補(bǔ) = x2 反+1= 1111100=FCH 8位補(bǔ)碼數(shù)的數(shù)值范圍為-128127(80H7FH)。16位補(bǔ)碼數(shù)的數(shù)值范圍為8000H7FFFH(-3276832767)。字節(jié)80H和字8000H的真值分別是-128(-80H)和-32768(-8000H)。補(bǔ)碼數(shù)80H和8000H的最高位既代 表了符號為負(fù),又代表了數(shù)值為1。 快速求法:將負(fù)數(shù)原碼的最前面的1和最后一個1之間的每一位取反。例如x=-4: x原 = 10000100 x補(bǔ) = 11111100=FCH取反 用 模-X求 兩數(shù)互補(bǔ)是針對一定的“?!倍?,“

21、?!奔从?jì)數(shù)系統(tǒng)的過量程回零值,例如時鐘以12為模(12點(diǎn)也稱0點(diǎn)),4和8互補(bǔ),一位十進(jìn)制數(shù)3和7互補(bǔ)(因?yàn)?710,個位回零,模為10110),兩位十進(jìn)制數(shù)35和65互補(bǔ)(因?yàn)?567100,十進(jìn)制數(shù)兩位回零,模為102100),而對于8位二進(jìn)制數(shù),模為28100000000B=100H,同理16位二進(jìn)制數(shù),模為21610000H取反設(shè)有原碼機(jī)器數(shù)X, X0 則 X補(bǔ)=X原 ; X0 則 X補(bǔ)= 模-例如對八位二進(jìn)制數(shù): X1=+4:X1補(bǔ)=00000100=04H; X2=-4:X2補(bǔ) = 100H-4=FCH對于16二進(jìn)制位數(shù): X2=+4: X2補(bǔ)= 0004H; X2=-4: X2補(bǔ)

22、 = 10000H-4=FFFCH由此得出求補(bǔ)的通用方法:一個數(shù)的補(bǔ)數(shù)模該數(shù),這里補(bǔ)數(shù)是對任意的數(shù)而言,包括正、負(fù)數(shù)。而補(bǔ)碼是針對符號機(jī)器數(shù)而言。幾點(diǎn)說明: 根據(jù)兩數(shù)互為補(bǔ)的原理,對補(bǔ)碼求補(bǔ)碼就可以得到其原碼,將原碼的符號位變?yōu)檎?、?fù)號,即是它的真值 例如求補(bǔ)碼數(shù)FAH的真值 。因?yàn)镕AH為負(fù)數(shù),求補(bǔ)碼 FAH補(bǔ)86H=-6, 所以補(bǔ)碼數(shù)FAH的真值為-6. 例如求補(bǔ)碼數(shù)78H的真值 。因?yàn)?8H為正數(shù)求補(bǔ)碼 78H補(bǔ)78H=+120 78H的真值為120 一個用補(bǔ)碼表示的機(jī)器數(shù),若最高位為0,則其余幾位即為此數(shù)的絕對值;若最高位為1,其余幾位不是此數(shù)的絕對值,必須把該數(shù)求補(bǔ)(按位取反(包括符

23、號位)加1),才得到它的絕對值。如:X=-15 -15補(bǔ)F1H11110001B 求補(bǔ)得00001110100001111B=15 當(dāng)數(shù)采用補(bǔ)碼表示時,就可以把減法轉(zhuǎn)換為加法。例1:64-10=64+(-10)=5464補(bǔ)=40H=0100 0000B10補(bǔ)=0AH=0000 1010B -10補(bǔ)=1111 0110B做減法運(yùn)算過程: 用補(bǔ)碼相加過程 結(jié)果相同,其真值為36H(=54)。由于數(shù)的八位限制,最高位的進(jìn)位是自然丟失的(再計(jì)算機(jī)中。進(jìn)位被存放在進(jìn)位標(biāo)志CY中的。)用補(bǔ)碼表示后,減法均可以用補(bǔ)碼相加完成。因此,在微機(jī)中,凡是符號數(shù)一律是用補(bǔ)碼表示的。用加法器完成加、減運(yùn)算,用加法器和移

24、位寄存器完成乘、除運(yùn)算,簡化計(jì)算機(jī)硬件結(jié)構(gòu)。例2: 34-68=34+(-68)-3434=22H=0010 0010B68=44H=0100 0100B -68補(bǔ)=1011 1100B做減運(yùn)算過程: 用補(bǔ)碼相加過程: 結(jié)果相同。因?yàn)榉栁粸?,對其求補(bǔ),得其真值:-00100010B, 即為-34=-22H。由上面兩個例子還可以看出,1)用補(bǔ)碼相加完成兩數(shù)相減,相減若無借位,化為補(bǔ)碼相加就會有進(jìn)位;相減若有借位,化作補(bǔ)碼相加就不會有進(jìn)位。2)補(bǔ)碼運(yùn)算后的結(jié)果為補(bǔ)碼,需再次求補(bǔ)才能得到運(yùn)算結(jié)果的 真值。 0.3.4 進(jìn)位和溢出例3 10550155 10569H 5032H 若把結(jié)果視為無符號

25、數(shù),為155,結(jié)果是正確的。若將此結(jié)果視為符號數(shù),其符號位為1,結(jié)果為-101,這顯然是錯誤的。其原因是和數(shù)155大于8位符號數(shù)所能表示的補(bǔ)碼數(shù)的最大值127,使數(shù)值部分占據(jù)了符號位的位置,產(chǎn)生了溢出,從而導(dǎo)致結(jié)果錯誤。又如: -105-50=-155 CY=1 兩個負(fù)數(shù)相加,和應(yīng)為負(fù)數(shù),而結(jié)果01100101B卻為正數(shù),這顯然是錯誤的。其原因是和數(shù)-155小于8位符號數(shù)所能表示的補(bǔ)碼數(shù)的最小值-128,也產(chǎn)生了溢出。結(jié)論:當(dāng)兩個補(bǔ)碼數(shù)相加結(jié)果超出補(bǔ)碼表示范圍,就會產(chǎn)生溢出,導(dǎo)致結(jié)果錯誤。計(jì)算機(jī)中設(shè)立了溢出標(biāo)志位OV,通過最高位的進(jìn)位(符號位的進(jìn)位)CY和次高位進(jìn)位(低位向符號位的進(jìn)位)CY-

26、1異或產(chǎn)生。例4 74744AH+4AH 0 1 0 0 1 0 1 0 0 01 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 CY CY-1=0 1=1.有溢出 OV1 CY CY-1 無進(jìn)位 CY=0 由上兩例中,例3的 OV=1、CY=1,例4中OV=1、CY=0,可見溢出和進(jìn)位并非有必然的聯(lián)系,這是由于兩者產(chǎn)生的原因是不同的,兩者判斷的方法也是是不同的。重述如下: 溢出OV:兩個補(bǔ)碼數(shù)相加結(jié)果超出補(bǔ)碼表示范圍而產(chǎn)生,OV= CY CY-1 進(jìn)位CY: 當(dāng)運(yùn)算結(jié)果超出計(jì)算機(jī)位數(shù)的限制(8位、16位),會產(chǎn)生進(jìn)位,它是由最高位計(jì)算產(chǎn)生的,在加法中表現(xiàn)為進(jìn)位,在減法中表現(xiàn)為借

27、位。0.3.5 BCD碼生活中人們習(xí)慣于十進(jìn)制數(shù),計(jì)算機(jī)只能識別二進(jìn)制數(shù),為了將十進(jìn)制數(shù)變?yōu)槎M(jìn)制數(shù),出現(xiàn)了BCD碼,即二進(jìn)制代碼表示的十進(jìn)制數(shù)。故名思意,它即是逢十進(jìn)一,又是一組二進(jìn)制代碼。用4位二進(jìn)制數(shù)編碼表示1位十進(jìn)制數(shù)稱為壓縮的BCD碼,8位二進(jìn)制數(shù)可以放2個十進(jìn)制數(shù)位。也可以用8位二進(jìn)制數(shù)表示1個十進(jìn)制數(shù)位,這種BCD碼稱為非壓縮的BCD碼。十進(jìn)制數(shù)和BCD碼的對照表見表0-2 表0-2 BCD編碼表例:求十進(jìn)制數(shù)876的BCD碼 壓縮的BCD碼 :876BCD = 1000 0111 0110B=876H 非壓縮的BCD碼:876BCD=00001000 00000111 00000110B080706H 又如,十進(jìn)制數(shù)1994的壓縮的BCD碼1944H 1994的非壓縮的BCD碼01090404H0.3.6 BCD碼的運(yùn)算 BCD碼運(yùn)算應(yīng)該得到BCD碼結(jié)果,由于計(jì)算機(jī)是按二進(jìn)制運(yùn)算,結(jié)果不為BCD碼,因此要進(jìn)行十進(jìn)制調(diào)整。調(diào)整方法為:當(dāng)計(jì)算結(jié)果有非BCD碼或產(chǎn)生進(jìn)位/借位時,加法進(jìn)行 +6、減法進(jìn)行 -6 調(diào)整運(yùn)算。例:計(jì)算BCD碼 78+69=? 0111 1000 78H+ 0110 1001 + 69H 1110 0001 E1H不調(diào)整,結(jié)果為二進(jìn)制+ 0110 0110 + 66H調(diào)

溫馨提示

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

最新文檔

評論

0/150

提交評論