




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第1講 單片機基礎知識第1講 單片機基礎知識從1946年2月賓夕法尼亞大學研制出第一臺數字計算機ENIAC(Electronic Numerical Integrator And Calculator,電子數字積分器與計算機)至今,計算機的發展已經經歷了電子管計算機、晶體管計算機、集成電路計算機以及大規模集成電路計算機4個時代。如今計算機已經不再是當年少數科研人員使用的“龐然大物”,而是以微機(Microcomputer)的形式進入到了我們日常工作、生活的各個角落。單片機作為微型計算機的一種,在工業控制以及日常生活中都有十分廣泛的應用。本講將介紹單片機的概念和預備知識,為后面系統詳細
2、學習單片機做好 鋪墊。本講內容î 單片機概述î 單片機中的預備知識1.1 單片機概述從儀器儀表到工業控制,從家用電器到航空航天,單片機在我們的日常生活和工作中有著十分廣泛的應用。而在平時的學習過程中,除了單片機我們還常常聽到微處理器、微型計算機、嵌入式系統等名詞,這些名詞與單片機有著密切的聯系,同時也有著一定的區別。本節將從這幾個概念開始繼而詳細闡述單片機的相關概念、發展歷史、基本組成、應用以及發展趨勢。1.1.1 有關單片機的幾個概念微處理器、微型計算機、微型計算機系統、嵌入式系統、單片機這幾個概念之間有著一定的聯系也存在一定的區別,弄清楚這幾個概念有利于我們更好地理解什
3、么是單片機。(1)微處理器(Micro Processor Unit)微處理器即MPU,是由一塊或者幾塊大規模集成電路組成的中央處理器(CPU),具有控制運算功能。1971年,計算機發展進入到大規模集成電路時代,微處理器得以誕生并開始高速發展。從第一代4位處理器開始,歷經8位處理器、16位處理器、32位處理器,現在64位處理器也已經得到廣泛的使用。由于是將CPU集成在一個半導體芯片上,所以相較傳統的CPU,其具有體積小、重量輕以及容易模塊化的特點。微處理器是構成微型計算機的核心部件。(2)微型計算機(Micro Computer)微型計算機簡稱微機,是以微處理器為核心單元,配以存儲器、輸入/輸
4、出設備接口電路以及相應輔助電路構成的裸機。依據組成微型計算機電路板數量類型的不同,可以將微型計算機分為多板微型計算機、單板微型計算機以及單片微型計算機。其中,單片微型計算機即通常所說的單片機,也就是說單片機是微型計算機中的一種。(3)微型計算機系統(Micro Computer System)以微型計算機為核心,再配以相應的外圍設備、電源、輔助電路和控制微型計算機工作的軟件就構成了完整的微型計算機系統。因此,所說的單獨的微型計算機并不是一個微型計算機系統,一般而言,微型計算機系統包含硬件和軟件兩個部分。通過上面的介紹可以看出,從微處理器到微型計算機再到微型計算機系統,這3個概念包含的范圍依次遞
5、增,微處理器是微型計算機的核心單元,微型計算機又是微型計算機系統的核心單元。(4)嵌入式系統(Embedded System)嵌入式系統是一種完全嵌入受控器件內部且為特定應用而設計的專用計算機系統。相較于平常使用的個人計算機(Personal Computer)系統,嵌入式系統通常執行的是有特定要求預先設置的任務。嵌入式系統是面向具體應用的,它能夠與應用緊密結合,并適應具體應用在功能、可靠性、成本、體積、功耗等方面的嚴格要求。嵌入式系統的核心單元最初是基于單片機的,但是隨著嵌入式系統的發展,其核心單元也有了許多變化。除了單片機之外,出現了基于DSP、ARM等多種處理器的嵌入式系統。(5)單片機
6、(Single Chip Micro Computer)單片微型計算機即單片機,是將CPU、RAM、ROM、定時器、中斷系統、輸入/輸出接口電路等集成到一塊芯片上的計算機。由于單片機在控制領域得到廣泛的使用,所以逐漸被稱之為微控制器(Micro Controller Unit,MCU)。單片機屬于微型計算機中的一種,具有普通微型計算機的基本組成和功能。1.1.2 單片機的發展歷史單片機從誕生至今已經有30多年的歷史,從最初的低性能8位單片機到如今的單片機,經歷了如下幾個階段。(1)第一階段(19741976年)這個階段是單片機的探索階段。1971年,Intel首次宣布了4004的4位微處理器,
7、各大公司就開始醞釀生產單片機。1974年12月,Fair Child公司推出8位單片機F8,但是實際上只包含8位CPU、64B的RAM和兩個并行口,還需加一塊3851(由1KB ROM、定時/計數器和兩個并行I/O口構成)才能組成一臺完整的微型計算機。(2)第二階段(19761978年)這個階段是低性能單片機階段。在這個階段出現一些具有單片機結構功能的單片機型號,并在工業控制領域得到了廣泛的應用。但是這個階段的單片機仍處于初級階段,規模較小,功能也比較簡單。以Intel 公司推出的MCS-48為例,一塊芯片內只含有8位CPU、并行I/O口、8位定時/計數器、RAM和ROM等,無串行I
8、/O口。中斷處理也比較簡單,片內RAM和ROM容量較小,且尋址范圍有限,一般都不大于4KB。(3)第三階段(19781982年)這個階段是高性能單片機階段。這一類單片機帶有串行I/O口,有多級中斷處理,定時/計數器為16位,片內的RAM和ROM相對增大,且尋址范圍可達64KB,有的片內還帶有A/D轉換接口。這個階段單片機的典型代表是Intel推出的MCS-51單片機,同時各大公司也爭相研制開發出了自己的單片機,如Zilog公司的Z8系列等。由于這類單片機的性價比高,所以被廣泛應用,目前仍是應用數量最多的單片機。(4)第四階段(19821990年)這是16位單片機階段。16位單片機除了CPU為1
9、6位外,RAM和ROM容量進一步增大,實時處理的能力更強。如Intel 公司的MCS-96,其集成度為120000管子/片,主振幅為12MHz,片內RAM為232字節,ROM為8KB,中斷處理為8級,而且片內帶有多通道10位A/D轉換和高速輸入/輸出部件(HSIO),實時處理的能力很強。(5)第五階段(1990年至今)這是微控制器的全面發展階段。各個公司的產品在盡量兼容的同時向更高速度、更強運算能力、更大尋址范圍方面發展。典型的有美國Microchip公司推出的完全不兼容MCS-51的新一代PIC單片機和Intel公司推出的80960超級32位計算機等。許多高速、強運算能力、大尋址范圍的8位/
10、16位/32位通用型單片機,以及小而廉價的專用型單片機得到了廣泛的發展和使用。1.1.3 單片機的基本組成與特點圖1-1 單片機的硬件結構體系單片機是微型計算機的一種,如同絕大部分微機一樣,其基本結構由控制器、運算器、存儲器、輸入設備和輸出設備5部分組成。單片機的硬件結構體系如圖1-1所示,主要由存儲器、微處理器(MPU)、輸入/輸出(I/O)接口組成,三者通過數據總線(Data Bus)、地址總線(Address Bus)、控制總線(Control Bus)相連接。下面將分別介紹存儲器、MPU、I/O接口和總線的概念。1存儲器(Memory)存儲器是計算機用以存放程序以及數據的單元
11、。存儲器的容量單位包括Byte、KB、MB、GB、TB等。其中,1Byte簡稱1B,容量為8個二進制數,即1Byte=8bit。1KB=1024Byte,1MB=1024KB,1GB=1024MB,1TB=1024GB。在存儲器中又將兩個字節(Byte)稱作一個字(Word),把兩個字稱作雙字(Double Word)。存儲器的讀寫速度指的是讀或者寫一條指令的時間,它是影響計算機速度的主要因素之一。在微型計算機中,存儲器分為內部存儲器和外部存儲器兩種。內部存儲器為半導體存儲器,具有造價高、速度快、容量小的特征,主要用于存放當前正在運行的程序或者待處理的數據。外部存儲器包括軟盤、光盤、硬盤、U盤
12、等存儲器件,它們一般具有造價低、容量大、速度慢的特征,一般用以存放暫時不運行的程序或者數據。單片機中的存儲器單元指的是半導體內部存儲器。(1)只讀存儲器(Read Only Memory)內部存儲器又分為只讀存儲器(ROM)和隨機存取存儲器(RAM)兩種。只讀存儲器通常情況下只允許讀操作,不允許寫操作。在開始階段通過特殊手段向ROM中寫入固定的程序或者數據,寫入的數據則可以長期保存,斷電也不會丟失,需要時從中讀出使用即可。ROM分為掩膜ROM、可編程只讀存儲器(PROM)、可擦除可編程只讀存儲器(EPROM)、電擦除可編程只讀存儲器(E2PROM)和Flash存儲器(閃存)等。隨著ROM技術的
13、發展,ROM與RAM的界限逐漸模糊,一些ROM具有了RAM那樣可讀可寫的功能,同時保持了斷電不丟失的功能。下面簡單介紹幾種常見的ROM。u 掩膜ROM掩膜ROM是由廠家寫入數據供用戶使用的ROM,用戶不能更改其中的內容。在批量很大的情況下,掩膜ROM價格最便宜。u 可編程只讀存儲器(Programmable ROM,PROM)相對于掩膜ROM中的程序完全不能更改,在制造完成后,可編程只讀存儲器中的內容可以根據用戶的需求進行一次更改。這種更改操作有且只有一次,一旦更改之后無法再次更改,PROM成本與掩膜ROM相比較高。現在有一種被稱為One Time Programmable
14、(OTP)的存儲器,它也屬于PROM的范疇,只是在實現方式上和原來普通的PROM有所區別。u 可擦除可編程只讀存儲器(Erasable PROM,EPROM)EPROM是一種可以改寫內部程序或者數據的ROM,但是EPROM的數據改寫并不像RAM那么簡單方便。想要改寫EPROM中的數據首先需要將EPROM拔下并放于紫外線中照射1030分鐘清除原數據,因此稱EPROM為電寫入紫外線擦除存儲器。u 電擦除可編程只讀存儲器(Electrically Erasable PROM,E2PROM或者EEPROM)如上所述EPROM是一種電寫入紫外線擦除的存儲器,而E2PROM是一種電寫入電擦除的可編程ROM
15、。E2PROM與RAM一樣讀寫操作簡單,同時又有數據不會掉電消失的優點,因此使用極為方便。一般E2PROM保存的數據至少可達10年以上,每塊芯片可擦寫1000次以上。u Flash存儲器(Flash Memory)Flash存儲器又稱為閃存,是一種快速編程的E2PROM。它既擁有E2PROM讀寫數據的方便性,又簡化了結構,進一步提高了集成度和可靠性,降低了成本。一般PC機上的BIOS采用的就是Flash存儲器。許多新型單片機內部都有片內閃速存儲器,如89S52有8KB的Flash存儲器。(2)隨機存取存儲器(Random Access Memory)隨機存取存儲器中存儲的信息可以隨意讀出與寫入
16、,并且讀寫速度與存儲的位置無關。一旦斷電,則RAM中原來的信息就會消失。按照存儲信息方式的不同,RAM又可分為靜態隨機存儲器和動態隨機存儲器。u 靜態隨機存儲器(Static RAM,SRAM)SRAM的特點是只要有電源加在存儲器上面,則存儲器中的內容一直存在不會消失。SRAM具有速度快、控制電路簡單的特征,但其集成度低、功耗大,一般相同存儲容量下SRAM體積較大,價格較貴。一般單片機中RAM多采用SRAM,容量一般在128B64KB之間。u 動態隨機存儲器(Dynamic RAM,DRAM)與SRAM不同,在供電的情況下,DRAM中寫入的信息只能保存若干毫秒的時間,因此每隔一段時間需要將數據
17、重新寫入以保證原來的數據不丟失,這種重寫的操作稱為刷新(Refresh)。相較于SRAM而言,DRAM容量較大,價格便宜但是速度較慢,控制電路復雜。一般PC機上的內存條多采用DRAM,容量一般在64MB2GB之間。2微處理器(MPU)微處理器是微機的核心單元,是微機的運算和指揮控制中心。一般而言,微處理器的組成包括運算器、控制器以及內部總線。微處理器MPU的基本結構如圖1-2所示。下面簡單介紹微處理器的運算器與控制器。圖1-2 MCU結構框圖(1)運算器一般而言,運算器包括算術邏輯單元ALU、累加器A、暫存器TMP、程序狀態字PSW以及通用寄存器幾個部分。u 算術邏輯單元ALU(Arithme
18、tic-Logic Unit)算術邏輯單元是運算器的核心部件,它以全加器為基礎,配合移位和控制邏輯進行加減乘除以及各種邏輯運算。u 累加器A(Accumulator)累加器是一個移位寄存器,用于運算前存放操作數以及運算后存放運算結果。在MPU中,單操作數運算多從累加器中獲取操作數,多操作數運算也常常從累加器中獲取一個操作數。u 暫存器TMP(Temporary)暫存器也是一個移位寄存器,用來存放ALU運算中所需的操作數或者操作結果。從本質上說,暫存器的作用在于解決MPU處理速度與內存速度不匹配的問題。通過將少量需要重復使用的數據存放于暫存器中可以避免MPU頻繁向內存索取數據,從而提高計算機數據
19、處理速度。u 程序狀態字PSW(Program Status Word)程序狀態字PSW包含8個觸發器,用來存放ALU運算過程中產生的狀態。運算過程中最高位是否有進位或者借位,低4位是否向高4位進位等都通過程序狀態字中的狀態位表示。u 通用寄存器(General Purpose Register)通用寄存器是相對專用寄存器而言的,上面所說的以及后面提及的程序計數器PC等都是專用計數器,它們的功能固定。在MPU中還有部分寄存器,它們可以被指定用來存放操作數或者運算結果,這部分寄存器被稱為通用寄存器。(2)控制器如果說運算器是計算機的運算中心,那么控制器就是計算機的指揮中心,其作用在于控制MPU中
20、各個部分協調工作,共同完成整個程序的自動執行。計算機中的典型工作過程為取指令、分析指令、執行指令。計算機中要執行的指令放在內存中,MPU想要執行一條指令,首先要從內存中找到將要執行的指令并將其取出。在單片機MPU中,有一個程序計數器PC用來存放將要執行程序的內存地址。計算機根據PC中的內存地址取得想要執行的指令,取出指令后,PC自動加1指向下一條指令。分析指令的過程是一個譯碼的過程。在MPU中存在一個指令寄存器IR,用來暫時存放從內存中獲取的指令碼。MPU從IR中獲取指令碼后,通過指令譯碼器ID對指令碼進行譯碼。在與時序系統的配合下,MPU譯碼后將按時序產生控制信號,對響應部分進行控制。執行指
21、令的過程就是一個將控制信號發送到I/O接口執行的過程。執行指令的過程也包括對計算結果的處理以及MPU中轉移地址的形成。為了實現上述所說的典型工作過程,CPU控制器需要包括以下幾個部分的控制功能。u 指令控制指令控制指的是控制計算機按照取指令、分析指令、執行指令步驟對指令進行操作的過程。指令控制是控制器的基本功能。如上所述,控制器中包含了程序計數器PC、指令寄存器IR以及指令譯碼器ID來實現指令控制功能。u 時間控制時間控制指的是MPU控制器對指令執行過程中操作時間的控制過程。如上所述,MPU譯碼后會按照時序產生控制信號,這個時序信號就是用來完成MPU的時間控制的。u 操作控制操作控制指的是MP
22、U控制器按照譯碼后的控制信號完成控制的過程。通過操作控制,MPU可以完成指令操作。3輸入/輸出(I/O)接口及設備微機通過輸入/輸出設備來實現具體信號的輸入和輸出。常見的輸入設備包括鼠標、鍵盤、攝像頭等。常見的輸出設備包括CRT屏幕、液晶顯示屏、打印機等。輸入/輸出接口是MPU與外部設備進行信息交互的連接電路。微機通過I/O接口來實現MPU與輸入/輸出設備之間的數據、信息通信以及操作控制。在微機系統中,一般較為復雜的I/O接口都在一個電路插板上,電路插板與系統總線相連。當使用外部設備時,只要將外部設備插在電路插板上,即可實現外部設備與微機系統的連接。4系統總線MPU通過系統總線與存儲器、I/O
23、接口以及外部設備進行信息交換。根據功能的不同,微機中的系統總線分為地址總線、數據總線和控制總線3種。(1)地址總線AB(Address Bus)MPU通過地址總線向外傳送地址信息。地址總線是單向總線,只能由MPU向外發出。在MPU要對存儲器或者外部設備進行讀/寫操作時,首先要將存儲器或者外設的地址碼送到地址總線上進行選中,進而進行讀/寫操作。地址總線的數量由MPU型號決定,其大小決定了一次尋址的寄存器數目。假如有n條地址總線,那么一次的最大尋址數量為個單元。在多數8位機中地址總線的數量為16。(2)數據總線DB(Data Bus)MPU通過數據總線與存儲器和外設進行數據交換。數據總線為雙向總線
24、,數據即可以通過DB從MPU流出,也可以通過DB向MPU流入。數據總線的數量代表了MPU進行數據處理的位數。一般MPU位數與數據總線數量相同,即8位機數據總線數量為8,16位機數據總線數量為16。但是也有MPU為16位但是外部數據總線仍然為8的情況。(3)控制總線CB(Control Bus)MPU通過控制總線對外傳送控制信號,同時存儲器或者外部設備也通過控制總線向MPU發送狀態或者請求信號。在微機中,單個控制總線的數據傳輸方向是固定的,而所有控制總線呈現的總體情況是雙線的:有的控制總線負責從MPU傳出信號,有的控制總線向MPU傳入信號。1.1.4 單片機的應用單片機具有集成度高、結構簡單、可
25、靠性強、價格低廉等特點,如今已被廣泛應用于國民經濟的各個領域。1日常生活中的應用單片機自誕生以后就開始進入人們的日常生活。現在,在空調、洗衣機、錄音機、微波爐、電飯煲、飲水機等各種日常電器中都可以找到單片機的影子。單片機不僅提高了這些日常電器的智能化程度,還方便了普通百姓的日常生活。2智能儀器儀表中的應用單片機的應用大大降低了傳統儀器儀表的電路復雜程度,不僅使儀器儀表的數字化、智能化程度得到提高,而且減小了儀表的體積、降低了價格。目前,溫度、濕度、壓力、流量、流速、電壓、電流、角度等量的測量與控制都可以加入單片機來實現。3工業控制中的應用單片機廣泛應用于工業控制現場。這既包括工業機器手、機器人
26、、工業測控、航空軍工中的實時控制,又包括機械、造紙、去污、紡織生產線中的分布式控制。單片機的實時數據處理能力以及I/O口擴展通信能力為工業控制中的快速、穩定性提供了保障。4機電一體化產品中的應用集合機械、電子以及計算機技術于一體的機電一體化技術是當今機械工業的發展方向。數控車床、鉆床、電梯、電腦縫紉機等都是機電一體化的典型產品。單片機作為一種微機產品,由于其體積小、可靠性高、功能性強的特點能夠方便地融入到機械產品中去,提高機械產品的自動化和智能化程度。1.1.5 單片機的發展趨勢從大的角度來看單片機的發展方向有兩個:一是朝著高性能、大容量的方向發展,通過新技術或者高集成提高單片機的性能,使其擁
27、有更加強大的功能;另一方面與上述相反,單片機朝著小容量、低價格的方向發展,強調在滿足一定功能條件下盡可能減小體積,降低價格。站在新技術、新功能的角度上看,單片機的發展趨勢有以下幾個方面。1CMOS化CHMOS(互補高性能MOS)技術的出現大大促進了單片機的CMOS化。CMOS芯片具有低功耗、高密度、低價格的特點,通過單片機的CMOS化可以減小單片機的體積以及功耗。CMOS同時有低速度的特點。HMOS工藝芯片的出現解決了低速度的問題但同時提高了芯片的體積以及功耗。CHMOS技術是CMOS工藝與HMOS工藝的結合,通過CHMOS技術能夠在提高速度的同時保持低功耗、高密度的特點,是單片機發展的方向。
28、2低電壓、低功耗降低單片機工作電壓以及電流,使單片機能夠在低電壓、低功耗條件下運行是單片機的發展方向。3高性能化通過提高單片機中MPU的性能進一步提高單片機處理速度和可靠性是單片機發展方向之一。32位處理器以及精簡指令RISC(Reduced Instruction Set Computer)結構可以大幅提高單片機運行速度。4大容量化以往單片機內部ROM的大小為14KB,RAM大小為64128B。在復雜場合下,需要通過內存擴展的方法來提高單片機的內存容量。現在通過閃存技術和其他方法擴大存儲器容量可以減少單片機內存擴展需求,使單片機系統更加簡單。5系統單片化通常所說的單片機包含了MPU、存儲器以
29、及I/O接口幾部分主要結構,系統需要的其他一些結構,如DMA(Direct Memory Access)控制器、D/A轉換、A/D轉換器等并沒有集成在單片機內部。如果在系統中需要用到上述功能則需要通過外部擴展實現。根據系統要求將一些外圍功能集成到單片機內部也是單片機的一個發展趨勢。1.2 單片機中的預備知識計算機中的數據是以二進制數進行存儲和運算的。要弄清單片機的工作原理和工作方式,首先要具備一定的計算機數據操作基本知識。下面從數制、編碼、運算幾個方面簡單介紹計算機中的數據知識。1.2.1 數制及其轉換13種基本數制數制指的是數據的表現形式。在計算機中常用的數制有二進制數、十進制數和十六進制數
30、。無論是什么數制,將這個數制所包含的數碼個數稱為基,將各個數字所具有的數值稱為權。(1)十進制數(Decimal)十進制數是日常生活中最為常用的數制形式。十進制數的基為10,其包含10個數碼,即0、1、2、3、4、5、6、7、8、9。十進制數的權是以10為底的冪,每個數所處位置不同,則其代表值不同。前一個數的權值為其相鄰后一個數權值的10倍。例如,一個十進制數為2345.678D,則其代表的數值為:2345.678D=2×+3×+4×+5×+6×+7×+8×從左到右各位代表的權值為:也就是平常所說的千、百、十、個、0.1、0
31、.01、0.001。(2)二進制數(Binary)二進制數是計算機中的基本數據形式,所有數據在計算機中都以二進制數形式進行存儲和運算。二進制數的基為2,在二進制數中只包含0和1兩個數碼。二進制數的權是以2為底的冪,每個數所處位置不同,則其代表值不同。前一個數的權值為其相鄰后一個數權值的2倍。例如,一個二進制數為1011.1001B,則其代表的十進制數值為:1001.1011B=1×+0×+0×+1×+1×+0×+1×+1× =8+0+0+1+0.5+0.25+0.125+0.0625 =9.
32、9375從左到右各位代表的權值為:二進制數之所以能夠成為計算機工作基本數據形式,這是由計算機中的電路工作原理決定的。計算機中的電路通常只有兩種狀態,在二進制數中可以用1代表電路中的高電平,用0代表電路中的低電平;或者用1代表電路中的導通,用0代表電路中的截止。采用二進制數可以方便地對電路進行計數工作。(3)十六進制數(Hexadecimal)十六進制數的基為16,在十六進制數中包含了16個數碼,各個數碼表示如下:0123456789ABCDEF十六進制數的權是以16為底的冪,與二進制數相同,每個數所處位置不同,則其代表值不同。前一個數的權值為其相鄰后一個數權值的16倍。例如,一個十六進制數為F
33、72.C4H,則其代表的十進制數值為:F72.C4H=15×7×2×12×4× =3954.765625從左到右各位代表的權值為:相對于二進制數而言,十六進制數能夠用較少的位數表現較大的數值,便于書寫和記憶。由于二進制數與十六進制數的轉換非常簡單,所以在計算機中的數值常常采用十六進制數來表示。在匯編語言中,為了將十六進制數中的A、B、C、D、E、F與字母區分開來,書寫時常常會在其前面加一個0。例如F7H寫作0F7H。2數制間的轉換由于不同數制的特性不同,常常需要將一個數轉換為十進制數來理解數值大小,將一個數轉換為十六進制數來編寫程序,將一個數轉
34、換為二進制數來理解對應數據在計算機中的含義。下面介紹計算機中不同數制的轉換方法。(1)轉換為十進制數在前面介紹數制的過程中已經介紹了二進制數和十六進制數轉換為十進制數的方法。將一個二進制數或十六進制數轉換為十進制數只需將該數各個數位的基與權相乘累加即可。例如:10110101B=1×+0×+1×+1×+0×+1×+0×+1×10110101B=181B5H=11×+5×=181(2)十六進制數與二進制數的轉換由于十六進制數的基16是二進制數基2的4次方,所以二進制數與十六進制數的轉換十分簡單。十
35、六進制數轉換為二進制數時,只需從右至左將各個位上的數以二進制數表示出來即可。二進制數轉換為十六進制數時,需要從右至左依次將4個二進制數表示成一個十六進制數,左側不滿4個時在前面補0到4個即可。如表1-1所示為015的十進制數、二進制數、十六進制數的轉換關系表。表1-1 不同數制的數據轉換表十進制數D二進制數B十六進制數H十進制數D二進制數B十六進制數H000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F例如,一個二進制數10010110101B
36、要轉換為十六進制數,其過程如下:10010110101B=0100 1011 0101=4B5H一個十六進制數A3FBH轉換為二進制數的過程如下:A3FBH=1010 0011 1111 1011B(3)十進制數轉換為二進制數或者十六進制數將一個十進制數轉換為二進制數時,對于十進制數整數部分采用“除2取整”的方法,小數部分采用“乘2取整”的方法。十進制數轉換為十六進制數時可以采用類似的“除16取整”以及“乘16取整”的方法。由于十六進制數與二進制數之間的轉換十分簡單,在十進制數轉換為十六進制數時,也可以先轉換為二進制數繼而轉換為十六進制數。下面以一個十進制數78.8125D為例來介紹“除2取整
37、”以及“乘2取整”方法的使用。78.8125D整數部分為78,轉換為二進制數時將此數不停除2直到商為0為止,然后將所有余數逆向整合即可得到想要的二進制數。2 78余數為0 低位2 39余數為1219余數為12 9余數為12 4余數為02 2余數為021余數為1 高位如上所示將余數逆向整合得到78D=1001110B。小數部分0.8125轉換為二進制數時將該數的純小數部分不停乘以2直至乘積為1為止,將所有結果整數部分一次組合即可得到想要的二進制數。0.8125×2=1.625 整數部分為1 高位 0.625×2=1.25 整數部分為1 0.25×2=0.5整數部分為
38、0 0.5×2=1整數部分為1 低位如上所示將整數順次整合得到0.8125D=0.1101B。將小數部分以及整數部分整合得到78.8125D=1001110.1101B。1.2.2 計算機中的常用編碼計算機中的數據都是以二進制數形式進行存儲和運算的。計算機只能識別用二進制數表示的信息,所以計算機中需要進行處理的數字、符號都必須進行二進制編碼。下面介紹有符號數、ACSII碼以及BCD碼編碼方法。1有符號數編碼計算機中數據的存儲都以字節(即8位)作為存儲單位,一個數據占據的位數代表了其可以表示的數據范圍。對于一個無符號數,8位數據對應二進制存儲范圍為0000 00001111
39、1111B,對應十六進制存儲范圍為000FFH,對應十進制存儲范圍為028-1(即0255)。而對于一個16位數據,其對應二進制存儲范圍為0000 0000 0000 00001111 1111 1111 1111B,對應十六進制存儲范圍為00000FFFFH,對應十進制存儲范圍為0216-1(即065535)。對于一個有符號數,計算機中將對應數據的最高位作為符號位來表示數據的正負。最高位為0代表為正數,最高位為1代表為負數。最高位后面的位數用以表示數據的絕對值大小。計算機中有符號數的編碼方式有3種,即原碼、反碼和補碼。(1)原碼(True Form)設一個8位二進制數最高位為b7,最低位為b
40、0。當原碼表示一個有符號數時,對于一個正數而言,b7位為0,對于一個負數而言,b7位為1。其余7位b6b0用來表示數值的大小。由于7位數表示的大小范圍為027-1(即0127),故8位原碼數表示的數值范圍為-127+127。例如:+58原=+011 1010原=0011 1010 -58原=-011 1010原=1011 1010對于0的表示,則+0原=0000 0000原,-0原=1000 0000原。采用原碼表示一個有符號數簡單易懂,轉換方便。但是在原碼中0分為+0以及-0兩種表示方法,給運算帶來了不便。同時,對于兩個異符號數相加或者同符號數相減,原碼在運算中需要做減法運算。由于計算機中一
41、般只有加法器而無減法器,這就會給計算帶來不便,為了解決這個問題,在計算機中引入了反碼以及補碼的概念。(2)反碼(Ones Complement)如果一個數是正數,那么其反碼與原碼相同。如果一個數是負數,那么保持原碼符號位不變,將數值位按位依次取反可以得到它的反碼。例如: +58反=0011 1010 -58反=1100 0101對于0的表示,則+0反=0000 0000,-0反=1111 1111可見對于反碼而言,+0與-0的表示仍然不同。對于一個反碼如果要得到它的真值,那么首先要轉換為其原碼,繼而轉換為真值。8位反碼能夠表示的數值范圍為-127+127。(3)補碼(Twos Compleme
42、nt)對于補碼而言,如果一個數是正數,那么其補碼與其原碼以及反碼相同。如果一個數是負數,那么它的補碼為其反碼加1,即X補=X反+1。例如:+58補= 0011 1010 -58補=1100 0101+1=1100 0110對于0而言,+0補=0000 0000,-0補=1111 1111+1=1 0000 0000=0000 0000(最高位丟失)。可以看出對于補碼而言,0的表示是唯一的,都是0000 0000。一個補碼轉換為真值時,對于正數,真值與補碼相同。對于負數,保持最高位1不變,將數值位取反加1即可。對于一個補碼數1000 0
43、000B而言,保持負數位1不變,將數字位000 0000取反后為111 1111,加1后為1000 0000,代表真值-128。所以-128補=1000 0000B。8位補碼能夠表示的數值范圍為-128+127。為了幫助理解補碼中出現第9位丟失的現象,我們用日常生活中撥動時鐘的概念來幫助理解。現在時鐘指向9點整,那么要使時鐘時間變為4點,有兩種方法:一種是逆時針撥動5格使其回到4;另一種是順時針撥動7格,使其經過12后變為4。第一種方法相當于9-5等于4,做的減法運算。第二種相當于9+7=16,但是由于過了12,12自動丟失,變為4。這里第二種方法中12
44、丟失的現象與補碼中第9位丟失的現象一致,都是超過了一定的范疇產生了數據的丟失,時鐘中超過了一周的最大數值12,補碼中超過了最大位數8。通過這種數據丟失,我們發現此時9-5與9+7的計算結果相同,可以將減法運算轉換為加法運算。補碼引入的最大功能就是可以通過補碼將減法運算變為加法運算,方便計算機的數據運算的處理。2ASCII碼(字符編碼)要將字符字母以二進制方式在計算機中表現出來,則需要對可能涉及的字符以一定的方式進行二進制編碼。ASCII(American Standard Coded for Information Interchange)是“美國信息交換標準”的簡稱,是目前最為流行的字符編碼
45、方式。ASCII碼是一種8位碼,其中后7位用以編碼代表字符信息。7個bit共可表示27=128個字符。在這些字符當中32個為控制字符,不能用于顯示打印,包括回車符、換行符、退格符、設備控制符等。另外96個為圖形字符,可以用于顯示以及打印,包括10個十進制數、52個大小寫英文字母以及34個其他字符。ACSII碼表如表1-2所示。表1-2 ASCII碼表高位低位000000010010001101000101011001110000NULSLESP0Pp0001SOHDC1(XON)!1AQaq0010STXDC2"2BRbr0011ETXDC3(XOFF)#3CScs0100EOTDC
46、4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB'7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,<Ll|1101CRGS-=Mm1110SORS.>Nn1111SIUS/?O_o第8位b7為奇偶校驗位,用以判斷數據傳送中信息是否出錯。奇偶校驗分為奇校驗以及偶校驗。奇校驗是指在發送端通過加入第8位使得整個字節中包含“1”的個數為奇數個,偶校驗是指發送端通過加入第8位使得整個字節中包含“1”的個數為偶數個。例如ACSII中A、
47、B、C、D幾個數采用奇校驗,則ASCII碼為:A 100 0001 奇校驗則為 1100 0001B 100 0010 奇校驗則為 1100 0010C 100 0011 奇校驗則為 0100 0011D 100 0100 奇校驗則為 1100 0100通過第8位的加入使得ASCII碼發送端中“1”的個數保持為奇數個。接收端接收到數據后,通過判斷數據中1的數量是否為奇數個,即可判斷通信過程中是否出現錯誤。3BCD碼(十進制數的二進制表示)BCD(Binary Coded Decimal)碼是一種以二進制代碼表示十進制數的方法。在BCD碼中最為常用的是8421BCD碼。在84
48、21BCD碼中以4位二進制數00001010為09這10個數字進行編碼。8421分別代表二進制中4個數字的權值。BCD碼與十進制數之間的轉換非常方便,只需要將十進制數各位數字依次轉換為8421BCD碼表示即可。用8421BCD碼表示015這幾個數字的轉換表如表1-3所示。表1-3 十進制與BCD碼轉換表十進制數D8421BCD碼十進制數D8421BCD碼十進制數D8421BCD碼十進制數D8421BCD碼000004010081000120001001010001501019100113000100112001060110100001000014000101003001170111110001
49、00011500010101BCD碼與其他數制之間的轉換不是直接的,要轉換為二進制數或者十六進制數,首先要轉換為十進制數繼而進行轉換。1.2.3 計算機中的運算計算機中的數據是以二進制的方式存儲與運算的。二進制的運算包括了算術運算和邏輯運算兩個方面。1算術運算二進制數的加減乘除與十進制數的加減乘除相似。在加法以及乘法中如果超過了原來的范圍則需要進位,在減法或者除法中如果原來的數不夠用則需要借位。從本質上說,乘法可以轉換為加法進行運算,而除法可以轉換為減法進行運算。如上所述,通過補碼的引入,可以將減法運算轉換為加法運算,因此在計算機中只需要有累加器就可以完成加減乘除四則運算。下面主要介紹補碼的運
50、算以及溢出判斷。對于一個n位的機器數,只要X、Y以及X+Y都在-2n-1+(2n-1)范圍內,則兩數和的補碼與兩數補碼之和相同。即:X+Y補=X補+Y補在補碼的運算過程中,無論是做加法運算或者減法運算,都可以將其視為有符號數的加法來進行運算。如果在運算過程中出現了進位現象,那么進位的位數自然丟失不計入計算結果。下面以幾個例子來進行說明。【實例1-1】用補碼運算求56-24。用補碼表示56補=0011 1000用補碼表示-24補=1110 1000用補碼運算為:最高位自然丟失后計算機結果為0010 0000=32【實例1-2】用補碼運算求-18-13。用補碼表示-18補=1110 1110用補碼
51、表示-13補=1111 0011用補碼運算為:最高位自然丟失后結果為 1110 0001= -31當X+Y結果不在 -2n-1+(2n-1)范圍內時,計算結果超出了n位機器數補碼能夠表示的數據范圍,此時上面的公式不再成立。如下例所示。【實例1-3】用補碼運算求67+68。用補碼表示67補=0100 0011用補碼表示68補=0100 0100用補碼運算為:如果將最高進位省去,那么此時結果為1000 0111=-121。兩個正數相加得到一個負數,結果產生了錯誤。上面的這種現象稱為溢出,這種錯誤稱為溢出錯誤。所謂溢出就是指計算機在運行過程中產生的數超過了計算機所能表示的數的范圍。如上面實際運算結果應該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘少版三年級英語上冊學習資源整合計劃
- 四年級下冊音樂教學計劃的資源整合
- 教育變革中的領導者角色與責任
- 幼兒園衛生保健培訓計劃
- 企業員工急救能力提升計劃
- 九年級道德與法治復習策略與計劃
- 2025年度幼兒園游戲活動計劃
- 高三化學家長指導計劃
- 九年級英語跨學科融合教學計劃
- 部編版三年級語文下冊教學計劃跨學科整合
- 2023-2024年外賣騎手行業現狀及發展趨勢研究報告
- 染料敏化太陽能電池材料課件
- 建工集團全資子公司負責人年度經營業績考核辦法
- 融匯畫方網絡準入設備技術白皮書
- 道口抓拍系統施工方案
- 三星堆-巴蜀與青銅文化的見證
- 人工智能導論(天津大學)知到智慧樹章節答案
- 詳盡的施工方案
- DB3305T 323-2024政府儲備糧綠色倉儲技術規范
- 工業4.0新篇章介紹
- 中華人民共和國統計法
評論
0/150
提交評論