單片機技術及應用_第1頁
單片機技術及應用_第2頁
單片機技術及應用_第3頁
單片機技術及應用_第4頁
單片機技術及應用_第5頁
已閱讀5頁,還剩179頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機技術及應用電氣工程學院彭世林目 錄第1章微型計算機基礎知識31.1 微型計算機的組成及工作原理31.2 典型單片機產(chǎn)品簡介51.3 單片機的應用模式81.4 單片機的應用81.5 數(shù)制與編碼91.6 計算機數(shù)值數(shù)據(jù)表示與運算14第2章 MCS-51系列單片機芯片結構192.1 MCS51系列單片機的結構原理192.2 MCS51單片機的存儲器242.3 MCS51單片機輸入/輸出(I/O)口282.4 單片機的工作方式31第3章 MCS-51單片機指令系統(tǒng)363.1 MCS-51單片機指令格式363.2 尋址方式373.3 指令系統(tǒng)41第4章 匯編語言程序設計604.1 匯編語言程序設計

2、概述604.2 順序程序設計644.3 分支程序設計664.4 循環(huán)程序設計704.5 子程序設計72第5章 單片機存儲器擴展技術775.1 存儲器系統(tǒng)基本知識775.3 訪問外部程序、數(shù)據(jù)存儲器的時序805.4 存儲器擴展的編址技術825.5 程序存儲器(EPROM)的擴展875.6 數(shù)據(jù)存儲器的擴展90第 6 章 單片機的中斷與定時系統(tǒng)966.1 中斷的基本概念966.2 MCS-51單片機的中斷系統(tǒng)966.3 MCS-51單片機的定時器/計數(shù)器996.3 MCS-51單片機的定時器/計數(shù)器1036.4 中斷系統(tǒng)的應用舉例112第7章 單片機I/O口擴展及應用1167.1 I/O口擴展概述

3、1167.2 簡單I/O口擴展1177.3 8255可編程通用并行接口芯片1197.4 8155可編程通用并行接口芯片128第8章 單片機串行數(shù)據(jù)通信1398.1 串行通信的基礎知識1398.2 MCS-51單片機串行通信的控制寄存器1418.3 MCS-51單片機串行通信工作方式1429.1 MCS-51單片機與D/A轉換器的接口和應用151第9章 單片機應用系統(tǒng)設計166第1章微型計算機基礎知識難點 · 微型計算機的組成 · 8051與80C51的區(qū)別 · 計算機中數(shù)據(jù)的表示方法及其運算過程 要求 掌握 · 微處理器、微機、微機系統(tǒng)的概念 ·

4、; 典型的單片機產(chǎn)品系列及各系列之間的區(qū)別 · 單片機系統(tǒng)的一般開發(fā)過程 · 計算機中數(shù)據(jù)的表示方法及其運算過程 了解 ·  微型計算機的基本工作過程 · ATMEL公司單片機系列 · 單片機系統(tǒng)的應用方向 1.1 微型計算機的組成及工作原理1.1.1 微型計算機中的基本概念 1.         微處理器(Microprocessor) 微處理器通常指中央處理器,簡寫為CPU。它由算術邏輯運算部件(ALU)、寄存器、程序計數(shù)器、控制器、內部總線等組成。它

5、采用大規(guī)模集成電路(LSI)和超大規(guī)模集成電路(VLSI)制作,具有體積小、功能強等特點。 典型的微處理器有Intel公司的80X86和Pentium系列,Zilog公司的Z系列,Motorola公司的M6800系列,IBM公司的PowerPC604和PC620,以及NEC公司的UPD78系列等。不同類型的CPU其特性不盡相同,如指令系統(tǒng)、運算速度、內部寄存器、存儲尋址能力等,這些特性在微機應用系統(tǒng)設計選型中常常涉及。 2.         微型計算機 微型計算機又簡稱微機,從結構上分析,以CPU為中心,再配置上R

6、AM、ROM、輸入輸出接口和總線便構成了微機。微型計算機具有運算、存儲和與外部設備進行數(shù)據(jù)交換等功能,還可配有適當?shù)耐獠吭O備,如鍵盤、顯示器等。微型計算機的這一靈活的應用特點,是目前應用最廣泛的。概括地說,微型計算機可分為單片微處理機和通用微型計算機兩大類。 (1)單片微處理機 單片微處理機就是把CPU、存儲器、定時器/計數(shù)器和輸入輸出接口等部件都集成在一個電路芯片上,并具備一套功能完善的指令系統(tǒng),有的型號的單片微處理機同時還具備數(shù)/模和模/數(shù)轉換等功能部件。通常這些高性能的芯片都能應用在不同場合獨立地處理程序,故簡稱單片機或單片處理機。 典型的單片處理機有Intel公司的MCS-51、MCS

7、-96系列,Motorola公司的MC68HC11,Rockwell公司的65系列等。有些高性能的單片機還支持高級語言,它們廣泛應用在家用電器、智能化儀器和工業(yè)控制等領域。 (2)通用微型計算機 將不同用途的外設接口設計為獨立的適配卡作為微機的接口配件,在微機內則采取總線插槽的形式,為外部設備提供總線接口。這樣,在一臺基本主機上就可以根據(jù)應用的要求,配置不同用途的外部設備。這種微機被稱為通用微型計算機。 3.         微型計算機系統(tǒng) 在通用微型計算機上配上相應的軟件系統(tǒng),就構成了能適應不同應用要求的微型計算

8、機系統(tǒng)。因此,在科學計算、企業(yè)管理、家庭和娛樂等方面得到了廣泛應用。 1.1.2  微機基本結構 微型計算機的基本組成如圖1-1所示,它由中央處理器(CPU)、存儲器(Memory)、輸入輸出接口(I/O接口)和系統(tǒng)總線(BUS)構成。  圖1-1 微型計算機的基本組成1.1.3  微型計算機的基本工作過程 每種型號的CPU都有自己的指令系統(tǒng),每條指令一般由指令操作碼(規(guī)定指令的操作類型)和操作數(shù)(規(guī)定指令的操作對象)兩部分組成。用戶根據(jù)要完成的任務預先編好程序,再通過輸入設備(如鍵盤)將程序送入存儲器中。微型計算機開始工作后,首先將該程序在存儲器中的起始地址送入

9、微處理器中的程序計數(shù)器(PC)中,微處理器根據(jù)PC中的地址值找到對應的存儲單元,并取出存放在其中的指令操作碼送入微處理器中的指令寄存器(IR)中,由指令譯碼器(ID)對操作碼進行譯碼,并由微操作控制電路發(fā)出相應的微操作控制脈沖序列去取出指令的剩余部分(如果指令不止1個字節(jié)的長度),同時執(zhí)行指令賦予的操作功能。在取指過程中,每取出1個單元的指令,PC自動加1,形成下一個存儲單元的地址。以上為一條指令的執(zhí)行過程,如此不斷重復上述過程,直至執(zhí)行完最后一條指令為止。 綜上所述,微型計算機的基本工作過程是執(zhí)行程序的過程,也就是CPU自動從程序存放的第1個存儲單元起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定

10、的操作類型和操作對象,執(zhí)行指令規(guī)定的相關操作。如此重復,周而復始,直至執(zhí)行完程序的所有指令,從而實現(xiàn)程序的基本功能,這就是微型計算機的基本工作原理。   1.2 典型單片機產(chǎn)品簡介 1.2.1 MCS-51單片機系列 MCS-51系列單片機是Intel公司在1980年推出的高性能8位單片機,在目前單片機市場中,8位單片機仍占主導地位。MCS-51系列單片機以其良好的性能價格比,仍是目前單片機開發(fā)和應用的主流機型。 MCS-51可分為兩個子系列和4種類型,如表1-1所示。按資源的配置數(shù)量,MCS-51系列分為51和52兩個子系列,其中51子系列是基本型,而52子系列屬于增強型。 表1-

11、1 MCS-51系列單片機分類    80C51單片機系列是在MCS-51系列的基礎上發(fā)展起來的。早期的80C51只是MCS-51系列眾多芯片中的一類,但是隨著后來的發(fā)展,80C51已經(jīng)形成獨立的系列,并且成為當前8位單片機的典型代表。 l         80C51與8051的比較 (1)MCS-51系列芯片采用HMOS工藝,而80C51芯片則采用CHMOS工藝。CHMOS工藝是COMS和HMOS的結合,(2)80C51芯片具有COMS低功耗的特點。例如8051芯片的功耗為630mW

12、,而80C51的功耗只有120mW,這樣低的功耗,用一粒紐扣電池就可以工作。低功耗對單片機在便攜式、手提式或野外作業(yè)的儀器儀表設備上使用十分有利。 (3)從80C51在功能增強方面分析,主要在以下幾個方面做了增強。首先,為進一步降低功耗,80C51芯片增加了待機和掉電保護兩種工作方式,以保證單片機在掉電情況下能以最低的消耗電流維持。 (4)此外,在80C51系列芯片中,內部程序存儲器除了ROM型和EPROM型外,還有E2PROM型,例如89C51就有4KB E2PROM。并且隨著集成技術的提高,80C51系列片內程序存儲器的容量也越來越大,目前已有64KB的芯片了。另外,許多80C51芯片還具

13、有程序存儲器保密機制,以防止應用程序泄密或被復制。 1.2.2  MCS-96系列單片機 MCS-96系列單片機是Intel公司在1983年推出的16位單片機,它與8位機相比,具有集成度高、運算速度快等特點。它的內部除了有常規(guī)的I/O接口、定時器計數(shù)器、全雙工串行口外,還有高速I/O部件、多路AD轉換和脈寬調制輸出(PWM)等電路,其指令系統(tǒng)比MCS-51更加豐富。 MCS-96系列單片機的主要性能如表1-2所示。 表1-2 MCS-96系列單片機主要性能   1.2.3  ATMEL公司單片機 表1-3 AT89C51系列單片機主要性能   ATMEL

14、公司于1992年推出了全球第一個3V超低壓F1ash存儲器,并于1994年以E2PROM技術與Intel公司的80C31內核進行技術交換,從此擁有了80C31內核的使用權,并將ATMEL特有的Flash技術與80C31內核結合在一起,生產(chǎn)出AT89C51系列單片機。 ATMEL公司的AT89C51系列單片機均以MCS-51系列單片機作為內核,同時,該系列的各種型號的產(chǎn)品又具有十分突出的個體特色,已經(jīng)成為廣大MCS-51系列單片機用戶進行電子設計與開發(fā)的優(yōu)選單片機品種,表1-3列出了AT89C51系列單片機的主要性能。 AT89C51系列單片機是一種低功耗高性能CMOS型8位單片機,它除了具有與

15、MCS-51系列單片機完全兼容的若干特性外,最為突出的優(yōu)點就是其片內集成了4KB的F1ashPEROM(Programmable Erasable Read Only Memory)用來存放應用程序,這個Flash程序存儲器除允許用一般的編程器離線編程外,還允許在應用系統(tǒng)中實現(xiàn)在線編程,并且還提供了對程序進行三級加密保護的功能。AT89C51系列單片機的另一個特點是工作速度更高,晶振頻率可高達24MHz,1個機器周期僅500ns,比MCS-51系列單片機快了1倍。AT89C51系列單片機除了40腳DIP封裝品種外,還提供了TQFP、SOIC和PQFP等多種封裝形式的產(chǎn)品,它同時提供商業(yè)級、工業(yè)

16、級、汽車用產(chǎn)品和軍用級等四類產(chǎn)品。1.3 單片機的應用模式1.3.1 單片機應用系統(tǒng)的結構單片機應用系統(tǒng)的結構通常分為以下三個層次。(1)單片機:通常指應用系統(tǒng)主處理機,即所選擇的單片機器件。(2)單片機系統(tǒng):指按照單片機的技術要求和嵌入對象的資源要求而構成的基本系統(tǒng)。時鐘電路、復位電路和擴展存儲器等與單片機共同構成了單片機系統(tǒng)。(3)單片機應用系統(tǒng):指能滿足嵌入對象要求的全部電路系統(tǒng)。在單片機系統(tǒng)的基礎上加上面向對象的接口電路,如前向通道、后向通道、人機交互通道(鍵盤、顯示器、打印機等)和串行通信口(RS232)以及應用程序等。單片機應用系統(tǒng)三個層次的關系如圖1.2所示。 圖1.2

17、 單片機應用系統(tǒng)三個層次的關系1.3.2  單片機系統(tǒng)的開發(fā)過程通常開發(fā)一個單片機系統(tǒng)可按以下6個步驟進行。(1)    明確系統(tǒng)設計任務,完成單片機及其外圍電路的選型工作。(2)    設計系統(tǒng)原理圖和PCB板,經(jīng)仔細檢查PCB板后送工廠制作。(3)    完成器件的安裝焊接。(4)    根據(jù)硬件設計和系統(tǒng)要求編寫應用程序。(5)    在線調試軟硬件。(6)使用編程器燒寫單片機應用程序,獨立運行單片機系統(tǒng)。 1.4 單片機的應用單

18、片機具有體積小、重量輕、價格便宜、功耗低、控制功能強、運算速度快、控制靈活、抗干擾能力強、電源電壓范圍寬等特點,故在國民經(jīng)濟建設、軍事及家用電器、自動測控系統(tǒng)、智能儀表、機器人等領域均得到了廣泛的應用。 根據(jù)目前的情況,單片機的應用大致可分成以下幾類:1.單片機在機、電、儀一體化等智能產(chǎn)品中的應用 單片機具有小巧、低功耗、控制功能強的優(yōu)點。把它做到產(chǎn)品的內部,取代部分電子元器件,可使產(chǎn)品體積縮小,功能增強,實現(xiàn)不同程度的智能化,這是其它任何計算機無法比擬的。=日常生活中含單片機的電器產(chǎn)品電子秤、便攜式心率監(jiān)護儀、中頻電療儀、高級玩具、電視機、洗衣機、電冰箱、電磁爐、微波爐、空調、家用防盜報警器

19、等產(chǎn)品中都有單片機的用武之地。=智能化的儀器儀表這是國內目前應用單片機最多、最活躍的領域。在各類儀器儀表中(包括溫度、濕度、流量、流速、電壓、頻率、功率、厚度、角度、長度、硬度、元素測定等),引入單片機,使儀器儀表數(shù)字化、智能化、微型化,功能大大提高。如:精密數(shù)字溫度計、濕度控制儀、智能流量監(jiān)測控制儀、便攜式流速儀、頻率計、智能電度表、智能示波器、智能轉速數(shù)字顯示、黑匣子等。2.單片機在工業(yè)測控中的應用 單片機I/O線多,位指令豐富,邏輯操作能力強,特別適用于實時控制,既可作單機控制,又可作多級控制的前沿處理機,應用領域相當廣泛。如:汽車工業(yè)中的應用(點火控制、反鎖、牽引、轉向、防盜等方面控制

20、)、液壓機的控制、報警系統(tǒng)中的應用、煙葉水份測量儀、水電廠單元微機監(jiān)控系統(tǒng)、啤酒生產(chǎn)線、汽車生產(chǎn)線、集體供暖鍋爐自動控制、數(shù)控機床等方面。3.單片機在通信技術中的應用 比較高檔的單片機都具有通信接口,為單片機在計算機網(wǎng)絡與通信設備中的應用創(chuàng)造了很好的條件。如:在通信中完成頻率合成、系統(tǒng)監(jiān)控、信道搜索及自動調諧等任務、無線遙控、調制解調器、移動電話、程控交換技術、電話自動分路器等方面。 1.5 數(shù)制與編碼1.5.1 數(shù)制的表示1.常用數(shù)制 在日常生活中人們最熟悉的是十進制數(shù),但在計算機中,采用二進制數(shù)“0”和“1”可以很方便的表示機內的數(shù)據(jù)與信息。(1)十進制數(shù) 我們熟悉的十進制數(shù)有兩個主要特點

21、:· 有十個不同的數(shù)字符號:0、1、2、9;· 低位向高位進、借位的規(guī)律是“逢十進一”“借一當十”的計數(shù)原則進行計數(shù)。    例如:1234.45=1×1032×1023×1014×1004×10-15×10-2式中的10稱為十進制數(shù)的基數(shù), 103、102、101、100、10-1稱為各數(shù)位的權。十進制數(shù)用D結尾表示。 (2)二進制數(shù) 在二進制中只有兩個不同數(shù)碼:0和1,進位規(guī)律是“逢二進一”“借一當二”的計數(shù)原則進行計數(shù)。二進制數(shù)用B結尾表示。例如,二進制數(shù)11011011.01可

22、表示為(11011011.01)2=1×271×260×251×241×230×221×211×200×2-11×2-2(3)八進制數(shù) 在八進制中有0、1、2、7八個不同數(shù)碼,采用“逢八進一”“借一當八”的計數(shù)原則進行計數(shù)。八進制數(shù)用Q結尾表示。 例如,八進制數(shù)(503.04)Q可表示為(503.04)Q=5×82+0×81+3×80+0×8-1+4×8-2(4)十六進制數(shù) 在十六進制中有0、1、2、9、A、B、C、D、E、F共十六個不同的數(shù)碼,

23、采用“逢十六進一”“借一當十六”的計數(shù)原則進行計數(shù)。十六進制數(shù)用H結尾表示。 例如十六進制數(shù)(4E9.27)H可表示為(4E9.27)H=4×16214×1619×1602×16-17×16-2 2不同進制數(shù)之間的相互轉換 表1-4列出了二、八、十、十六進制數(shù)之間的對應關系,熟記這些對應關系對后續(xù)內容的學習會有較大的幫助。 表1-4 各種進位制的對應關系 十進制 二進制 八進制 十六進制 十進制 二進制 八進制 十六進制 0 0 0 0 9 1001 11 9 1 1 1 1 10 1010 12 A 2 10 2 2 11 1011 13 B

24、 3 11 3 3 12 1100 14 C 4 100 4 4 13 1101 15 D 5 101 5 5 14 1110 16 E 6 110 6 6 15 1111 17 F 7 111 7 7 16 10000 20 10 8 1000 10 8 17 10001 21 11 (1)二、八、十六進制數(shù)轉換成為十進制數(shù) 根據(jù)各進制的定義表示方式,按權展開相加,即可轉換為十進制數(shù)。 【例1-1】將(10101)B,(72)Q,(49)H轉換為十進制數(shù)。(10101)B=1×240×231×220×211×20=37(72)Q=7×

25、;81+2×80=58(49)H=4×1619×160=73 (2)十進制數(shù)轉換為二進制數(shù) 十進制數(shù)轉換二進制數(shù),需要將整數(shù)部分和小數(shù)部分分開,采用不同方法進行轉換,然后用小數(shù)點將這兩部分連接起來。 整數(shù)部分:除2取余法。 具體方法是:將要轉換的十進制數(shù)除以2,取余數(shù);再用商除以2,再取余數(shù),直到商等于0為止,將每次得到的余數(shù)按倒序的方法排列起來作為結果。 【例1-2】將十進制數(shù)25轉換成二進制數(shù)                  &#

26、160;          小數(shù)部分:乘2取整法。 具體方法是:將十進制小數(shù)不斷地乘以2,直到積的小數(shù)部分為零(或直到所要求的位數(shù))為止,每次乘得的整數(shù)依次排列即為相應進制的數(shù)碼。最初得到的為最高有效數(shù)位,最后得到的為最低有效數(shù)字。 【例1-3】將十進制數(shù)0.625轉換成二進制數(shù)。 【例1-4】將十進制數(shù)25.625轉換成二進制數(shù),只要將上例整數(shù)和小數(shù)部分組合在一起即可,即(25.625)D=(11001.101)B例如:將十進制193.12轉換成八進制數(shù)。        &

27、#160;   (3) 二進制與八進制之間的相互轉換 由于23=8,故可采用“合三為一”的原則,即從小數(shù)點開始向左、右兩邊各以3位為一組進行二-八轉換:若不足3位的以0補足,便可以將二進制數(shù)轉換為八進制數(shù)。反之,每位八進制數(shù)用三位二進制數(shù)表示,就可將八進制數(shù)轉換為二進制數(shù)。 【例1-5】將(10100101.01011101)2轉換為八進制數(shù)。        即 (10100101.01011101)B =(245.272)Q  【例1-6】將(756.34)Q轉換為二進制數(shù)。 7 5 6 . 3 4 111 10

28、1 110 . 011 100即 (756.34)Q=(111101110.0111)B      (4) 二進制與十六進制之間的相互轉換 由于24=16,故可采用“合四為一”的原則,即從小數(shù)點開始向左、右兩邊各以4位為一組進行二十六轉換,若不足4位的以0補足,便可以將二進制數(shù)轉換為十六進制數(shù)。反之,每位十六進制數(shù)用四位二進制數(shù)表示,就可將十六進制數(shù)轉換為二進制數(shù)。 【例1-7】將(1111111000111.100101011)B轉換為十六進制數(shù)。 0001 1111 1100 0111 . 1001 0101 1000 1 F C 7 . 9 5 8

29、即 (111111000111.100101011)B =(1FC7.958)H 【例1-8】將(79BD.6C)H轉換為二進制數(shù)。7 9 B D . 6 C 0111 1001 1011 1101 . 0110 1100即 (79BD.6C)H=(1111.011011)B 1.5.2  常用的信息編碼 1. 二十進制BCD碼(Binary-Coded Decimal) 二十進制BCD碼是指每位十進制數(shù)用4位二進制數(shù)編碼表示。由于4位二進制數(shù)可以表示16種狀態(tài),可丟棄最后6種狀態(tài),而選用00001001來表示09十個數(shù)符。這種編碼又叫做8421碼。見表1-5所示。 表1-

30、5 十進制數(shù)與BCD碼的對應關系 十進制數(shù) BCD碼 十進制數(shù) BCD碼 0 0000 10 1 0001 11 2 0010 12 3 0011 13 4 0100 14 5 0101 15 6 0110 16 7 0111 17 8 1000 18 9 1001 19 【例1-9】將69.25轉換成BCD碼。 6 9 . 2 5 0110 1001 . 0010 0101 結果為69.25=(01101001.00100101)BCD    【例1-10】將BCD碼1.01010110轉換成十進制數(shù)。 1001 0111 1000 . 0101 01109 7

31、 8 . 5 6 結果為(1.01010110)BCD=978.56 2.字符編碼(ASCII碼) 計算機使用最多、最普遍的是ASCII(American Standard Code For Information Interchange)字符編碼,即美國信息交換標準代碼,如表1.6所示。 ASCII碼的每個字符用7位二進制數(shù)表示,其排列次序為d6d5d4d3d2d1d0, d6為高位,d0為低位。而一個字符在計算機內實際是用8位表示。正常情況下,最高一位d7為“0”。7位二進制數(shù)共有128種編碼組合,可表示128個字符,其中數(shù)字10個、大小寫英文字母52個、其他字符32個和控制字符34個。

32、表1-6 七位ASCII代碼表 d3 d2 d1d0位 0 d6 d5d4位 000 001 010 011 100 101 110 111 0000 NUL DEL SP 0 P p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 2 B R b r 0011 ETX DC3 3 C S c s 0100 EOT DC4 4 D T d t 0101 ENQ NAK 5 E U e u 0110 ACK SYN 6 F V f v 0111 BEL ETB 7 G W g w 1000 BS CAN 8 H X h x 1001 HT EM 9 I Y i y 1

33、010 LF SUB : J Z j z 1011 VT ESC K k 1100 FF FS , L l 1101 CR GS M m 1110 SO RS · N n 1111 SI HS O o DEL 要確定某個字符的ASCII碼,在表中可先查到它的位置,然后確定它所在位置的相應列和行,最后根據(jù)列確定高位碼(d6d5d4),根據(jù)行確定低位碼(d3d2d1d0),把高位碼與低位碼合在一起就是該字符的ASCII碼。例如數(shù)字9的ASCII碼為00111001B,即十六進制為39H;字符A的ASCII碼為,即十六進制為41H等等。 數(shù)字09的ASCII碼為30H39H。 大寫英文字母

34、AZ的ASCII碼為41H5AH。 小寫英文字母az的ASCII碼為61H7AH。 對于ASCII碼表中的0、A、a的ASCII碼30H、41H、61H應盡量記住,其余的數(shù)字和字母的ASCII碼可按數(shù)字和字母的順序以十六進制的規(guī)律寫出。 ASC碼主要用于微機與外設的通信。當微機接收鍵盤信息、微機輸出到打印機、顯示器等信息都是以ASCII碼形式進行數(shù)據(jù)傳輸。  3.奇偶校驗碼 奇偶校驗是一種常用的簡單校驗方法,如在計算機內作存儲器讀寫校驗、ASCII字符傳送中的校驗等。 奇偶校驗碼是在傳送的代碼上附加一個校驗位,作為代碼的比較校驗。這樣在接收方,先對信息代碼按雙方的校驗規(guī)定求奇偶校驗碼

35、,然后再與收到的附加校驗位作比較,若相等則認為接收的代碼是正確的,否則為錯。 奇偶校驗就是鑒別代碼中有奇數(shù)個“1,還是有偶數(shù)個“1。例如,有效信息為,若采用偶校驗碼記為“0”的話,則有效代碼為1011001 0;采用奇校驗碼記為“1”的話,有效代碼則為1011001 1。有效代碼的最后的那個數(shù)位,就是奇偶校驗位。當接受方收到這組代碼后,便根據(jù)奇、偶校驗的約定和有效代碼中“1”的個數(shù)形成校驗碼,然后再與接收的校驗位作比較。比較相等的話,說明接受的信息正確;反之,則認為出現(xiàn)了錯誤。 奇偶校驗只能發(fā)現(xiàn)一位錯,但不能確定出錯的位置,對偶數(shù)個錯位便無能為力了。但在實際應用中,一位出錯的概率比多位出錯的概

36、率高,因此,奇偶校驗碼還是很實用的。   1.6 計算機數(shù)值數(shù)據(jù)表示與運算1.6.1 二進制數(shù)在計算機內的表示 1.         機器數(shù)     在計算機中,因為只有“0”和“1”兩種形式,所以數(shù)的正、負號,也必須以“0”和“1”表示。通常把一個數(shù)的最高位定義為符號位,用0表示正,1表示負,稱為數(shù)符:其余位仍表示數(shù)值。把在機器內存放的正、負號數(shù)碼化的數(shù)稱為機器數(shù),把機器外部由正、負號表示的數(shù)稱為真值數(shù)。 【例1-11】真值為(-0101100)B的機器數(shù)為,存放在機器中,

37、如圖1.3所示。 圖1.3 機器數(shù)     要注意的是,機器數(shù)表示的范圍受到字長和數(shù)據(jù)的類型的限制。字長和數(shù)據(jù)類型定了,機器數(shù)能表示的數(shù)值范圍也就定了。     例如,若表示一個整數(shù),字長為8位,則最大的正數(shù)為,最高位為符號位,即最大值為127。若數(shù)值超出127,就要“溢出”。最小負數(shù)為,最高位為符號位,即最小值為-128。 2.    數(shù)的定點和浮點表示 計算機內表示的數(shù),主要分成定點小數(shù)、定點整數(shù)與浮點數(shù)三種類型。 (1)定點小數(shù)是指小數(shù)點準確固定在數(shù)據(jù)某一個位置上的小數(shù)。一般把小數(shù)點固定在

38、最高數(shù)據(jù)位的左邊,小數(shù)點前邊再設一位符號位。按此規(guī)則,任何一個小數(shù)都可以寫成: N=NSN1N2···NM, NS為符號位即在計算機中用M+1個二進制位表示一個小數(shù),最高(最左)一個二進制位表示符號(如用0表示正號,則1就表示負號),后面的m個二進制位表示該小數(shù)的數(shù)值。小數(shù)點不用明確表示出來,因為它總是定在符號位與最高數(shù)值位之間。對用m+1個二進制位表示的小數(shù)來說,其值的范圍|N|12M。定點小數(shù)表示法主要用在早期的計算機中。(2)整數(shù)的表示法 整數(shù)所表示的數(shù)據(jù)的最小單位為1,可以認為它是小數(shù)點定在數(shù)值最低位右面的一種表示法。整數(shù)分為帶符號和不帶符號兩類。對帶符號

39、的整數(shù),符號位放在最高位??梢詫懗桑?N=NSNnNn1···N2 N1 N0, NS為符號位對于用n+l位二進制位表示的帶符號整數(shù),其值的范圍為: |N|2n-1。 對于不帶符號的整數(shù),所有的n+1個二進制位均看成數(shù)值,此時數(shù)值表示范圍為, 0N2n+1-1。在計算機中,一般用8位、16位和32位等表示數(shù)據(jù)。一般定點數(shù)表示的范圍和精度都較小,在數(shù)值計算時,大多數(shù)采用浮點數(shù)。 (3)浮點數(shù)的表示方法 浮點表示法對應于科學(指數(shù))計數(shù)法,如數(shù)110.011可表示為 N=110.011=1.10011×2+10=11001.1×210=0.1100

40、11×2+11在計算機機中一個浮點數(shù)由兩部分構成:階碼和尾數(shù),階碼是指數(shù),尾數(shù)是純小數(shù)。其存儲格式如圖1.4所示。 階符 階碼 數(shù)符 尾數(shù) 圖1.4 浮點數(shù)存儲格式     階碼只能是一個帶符號的整數(shù),它用來指示尾數(shù)中的小數(shù)點應當向左或向右移動的位數(shù),階碼本身的小數(shù)點約定在階碼最右面。尾數(shù)表示數(shù)值的有效數(shù)字,其本身的小數(shù)點約定在數(shù)符和尾數(shù)之間。在浮點數(shù)表示中,數(shù)符和階符都各占一位,階碼的位數(shù)隨數(shù)值表示的范圍而定,尾數(shù)的位數(shù)則依數(shù)的精度要求而定。 【例1-12】設尾數(shù)為4位,階碼為2位,則二進制數(shù)N=211×l011的浮點數(shù)表示形式為: 

41、0;   應當注意:浮點數(shù)的正、負是由尾數(shù)的數(shù)符確定,而階碼的正、負只決定小數(shù)點的位置,即決定浮點數(shù)的絕對值大小。 3.    帶符號數(shù)的表示 在計算機中,帶符號數(shù)可以用不同方法表示,常用的有原碼、反碼和補碼。 (1)原碼 【例1-13】當機器字長n=8時: +1原0 0000001, -1原1 0000001 +127原0 1111111, -127原1 111111l 由此可以看出,在原碼表示法中: l     最高位為符號位,正數(shù)為0,負數(shù)為1,其余n-1位表示數(shù)的絕對值。 l 

42、    在原碼表示中,零有兩種表示形式,即:+0,-0。 (2)反碼 【例1-14】當機器字長n=8時: +1反, -1反11111110 +127反, -127反10000000 由此看出,在反碼表示中: l     正數(shù)的反碼與原碼相同,負數(shù)的反碼只需將其對應的正數(shù)按位求反即可得到。 l     機器數(shù)最高位為符號位,0代表正號,1代表負號。 l     反碼表示方式中,零有兩種表示方法: +0反, -0反。 (3)補碼 【例1-15】當機器

43、字長n8時, +1補, -1補 +127補, -127補 由此看出,在補碼表示中: l     正數(shù)的補碼與原碼、反碼相同,負數(shù)的補碼等于它的反碼加l。 l     機器數(shù)的最高位是符號位,0代表正號,1代表負號。 l     在補碼表示中,0有唯一的編碼: 0補0補。 補碼的運算方便,二進制的減法可用補碼的加法實現(xiàn),使用較廣泛。 【例1-16】假定計算機字長為8位,試寫出122的原碼、反碼和補碼。 122原122反122補01111010B 【例1-17】假定計算機字長為8

44、位,試寫出45的原碼、反碼和補碼。 45原10101101B 45反11010010B 45補11010011B     對于用補碼表示的負數(shù),首先認定它是負數(shù),而后用求它的補碼的方法可得到它的絕對值,即可求得該負數(shù)的值。例如,補碼數(shù)(11110011)B是一個負數(shù),求該數(shù)的補碼為(00001101)B,該數(shù)相應的十進制數(shù)為13,故求出(11110011)B為(13)D?!纠?-18】試寫出原碼的真值。 (原碼)補(原碼)反110100111B39 1.6.2  補碼的運算     在微處理機中,使用補碼進行運算是十分方便的

45、,它使同一個微處理機中既能運算帶符號數(shù)又能運算不帶符號的數(shù)。而且,在采用補碼表示帶符號數(shù)的情況下,兩個數(shù)的減法可以用加法來實現(xiàn)。下面我們將會看到這一點。    一個數(shù),是帶符號的數(shù)還是不帶符號的數(shù)是人為規(guī)定的。而對微處理機來說,它對輸入的二進制數(shù)進行運算時,并不知道輸入的二進制數(shù)是帶符號的數(shù)還是不帶符號的數(shù)。但是,當用不帶符號的數(shù)或用補碼數(shù)來解釋帶符號的數(shù)時,微處理機運算的結果都是正確的?!纠?-19】有兩個二進制數(shù)和,當規(guī)定它們是不帶符號的數(shù)時,則它們分別表示(132)10和(14)10。將這兩個二進制數(shù)相加:    得到一個無符號

46、的二進制數(shù),該數(shù)為十進制數(shù)146。也就是說,按照無符號數(shù)去解釋,運算的結果是正確的。    同樣上述兩個數(shù),如果規(guī)定它們是帶符號的數(shù),其十進制值分別為(124)10和(+14)10。兩個帶符號的數(shù)(10000100)2和(00001110)2相加,得到帶符號的數(shù)(10010010)2,此結果用符號數(shù)進行解釋,剛好為(110)10,其結果也是正確的。    在微處理器中,一般都不設置專門的減法電路。遇到兩個數(shù)相減時,處理器就自動地將減數(shù)取補,而后將被減數(shù)和減數(shù)的補碼相加來完成減法運算。例如,(69)10(26)10?可以寫成(69)10

47、+(26)10。利用(69)10的原碼和(26)10的補碼相加,即可以得到正確的結果。    在進行帶符號數(shù)的加減運算時,應把參與運算的數(shù)據(jù)轉換成補碼形式進行運算。當使用8位二進制數(shù)表示帶符號的數(shù)時,它所能表示的數(shù)值范圍在(-128)10(+127)10之間,如果相加結果超出了這個范圍,就會導致錯誤發(fā)生。X+Y補=X補+Y補 X-Y補=X補+-Y補    由上述可以看到,采用補碼法進行運算時,在微處理器中只用加法電路就可以實現(xiàn)加法或減法運算。但是,必須強調指出,在進行兩個同符號的數(shù)(即兩數(shù)同為正數(shù)或同為負數(shù))相加時,一定要特別注意其結

48、果不能超出所規(guī)定的數(shù)值范圍,否則將產(chǎn)生溢出?!纠?-20】兩個帶符號的數(shù)(01000001)2(十進制數(shù)+65)與(01000011)2(十進制數(shù)+67)    例中是兩個正數(shù)相加,但結果卻是一個負數(shù)符號位為1。顯然,這個結果是錯誤的,出現(xiàn)這種錯誤的原因就在于這兩個數(shù)相加的結果超過了8位二進制帶符號數(shù)所能表示的數(shù)值范圍。【例1-21】兩個負數(shù)(10001000)2和(11101110)2的相加情況。    由于規(guī)定用8位二進制數(shù)來表示帶符號的數(shù),故忽略作為進位位的第九位。按8位二進制數(shù)來解釋這兩個符號數(shù)的相加,其結果為一個正數(shù)。很明顯

49、,結果是錯誤的。     以上兩種情況叫做補碼運算的溢出。當兩個同符號的數(shù)相加時,如果相加的結果超過了微處理機所能表示的數(shù)值范圍,就將發(fā)生溢出,其結果就是錯誤的。因此,在微處理機中設有專門的電路 用以判斷運算結果是否產(chǎn)生溢出,并以某種標志告訴人們這次運算的結果是否存在溢出。只要溢出沒有發(fā)生,運算的結果總是正確的。    此外,在微處理機中還會遇到不帶符號數(shù)的運算。【例1-22】兩個無符號數(shù)(11111101)2和(00000011)2相加:    從相加計算的結果來看,如果微處理機只有8位,也就是用8位二

50、進制數(shù)來解釋運算的結果,則將出現(xiàn)錯誤。因此,在微處理機中設有專門的一位,稱為進位位,它將用于保存第九位以防丟失信息。當考慮了這一位以后,用9位二進制數(shù)來解釋相加的結果,則計算的結果仍然是正確的??傊捎谖⑻幚頇C中有專門的進位位,無符號數(shù)的加法運算總可以得到正確的結果。1.6.3  邏輯運算(1)“與”運算?!芭c”運算的運算規(guī)則是: 0Ù0=0 0Ù1=0 1Ù0=0 1Ù1=1【例1-23】 二進制數(shù)01011101B和11010101B相與。 (2)“或”運算?!盎颉边\算的運算規(guī)則是: 0Ú 0=0 0Ú1=1 1

51、18;0=1  1Ú1=1【例1-24】二進制數(shù)和相或。 (3)“異或”運算。“異或”運算的運算規(guī)則是: 0Å0=0 0Å1=1 1Å0=1 1Å1=0【例1-25】二進制數(shù)和相異或。 第2章 MCS-51系列單片機芯片結構· 單片機的內部結構 · 程序狀態(tài)字PSW · 單片機P3口的第二功能 · 單片機的指令時序 要求掌握:· 單片機的引腳信號功能定義 · 單片機的工作寄存器、PSW及程序存儲器中的中斷入口地址 · 單片機各I/O口的特點 · 單片機的復

52、位電路、時鐘電路及指令時序 了解: · MCS-51系列單片機的主要型號 · 單片機的系統(tǒng)結構和內部結構 · 單片機的低功耗方式 2.1 MCS51系列單片機的結構原理 2.1.1 MCS-51單片機邏輯結構 MCS-51單片機采用的是馮.諾伊曼提出的經(jīng)典計算機體系結構框架,即一臺計算機是由運算器、控制器、存儲器、輸入設備和輸出設備共五個基本部分組成。MCS-51單片機在一塊芯片上集成了CPU、RAM、ROM、定時器/計數(shù)器和多功能I/O口等。MCS-51單片機的系統(tǒng)結構框圖如圖2.1所示。由圖2.1可以看出,單片機內部主要包含下列幾個部件:u 

53、0;     一個8位CPU; u       一個時鐘電路; u       4Kbyte程序存儲器; u       128byte數(shù)據(jù)存儲器; u       兩個16位定時/計數(shù)器; u       64Kbyte擴展總線控制電路; u &#

54、160;     四個8-bit并行I/O端口; u       一個可編程串行接口; u       五個中斷源,其中包括兩個優(yōu)先級嵌套中斷。2.1.2  MCS51單片機內部結構 圖2.1 MCS-51單片機系統(tǒng)結構框圖 MCS51單片機芯片內部結構框圖如圖2.2所示。圖2.2 MCS51單片機芯片內部結構1. CPU CPU即中央處理器的簡稱,是單片機的核心部件,它完成各種運算和控制操作,CPU由運算器和控制器兩部分電路

55、組成。 (1)運算器電路 運算器電路包括ALU(算術邏輯單元)、ACC(累加器)、B寄存器、狀態(tài)寄存器、暫存器1和暫存器2等部件,運算器的功能是進行算術運算和邏輯運算。運算電路以ALU為核心單元,可以完成半字節(jié)、單字節(jié)以及多字節(jié)數(shù)據(jù)的運算操作,其中包括加、減、乘、除、十進制調整等算術運算以及與、或、異或、求補和循環(huán)等邏輯操作,運算結果的狀態(tài)由狀態(tài)寄存器保存。 (2)控制器電路 控制器電路包括程序計數(shù)器PC、PC加1寄存器、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、堆棧指針SP、緩沖器以及定時與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)調單片機各部分正常工作。程序計數(shù)器PC用來存放即將要執(zhí)行的指令

56、地址,它可以完成64K的外部存儲器尋址,執(zhí)行指令時,PC內容的高8位經(jīng)P2口輸出,低8位經(jīng)P0口輸出。數(shù)據(jù)指針DPTR為16位數(shù)據(jù)指針,它可以對64K的外部數(shù)據(jù)存儲器和I/O口進行尋址,它的低8位為DPL(地址82H),高8位為DPH(地址為83H)。堆棧指針SP在片內RAM(128字節(jié))中開辟棧區(qū),并隨時跟蹤棧頂?shù)刂?,它按先進后出的原則存取數(shù)據(jù),上電復位后,SP指向07H。 2. 定時器/計數(shù)器 MCS51單片機片內有兩個16位的定時/計數(shù)器,即定時器0和定時器1。它們可以用于定時控制、延時以及對外部事件的計數(shù)和檢測等。 3. 存儲器 MCS51系列單片機的存儲器包括數(shù)據(jù)存儲器和程序存儲器,

57、其主要特點是程序存儲器和數(shù)據(jù)存儲器的尋址空間是相互獨立的,物理結構也不相同。對MCS51系列(8031除外)而言,有4個物理上相互獨立的存儲器空間:即內、外程序存儲器和內、外數(shù)據(jù)存儲器。對于8051其芯片中共有256個RAM單元,其中后128個單元被專用寄存器占用,只有前128個單元供用戶使用。 4. 并行I/O口 MCS51單片機共有4個8位的I/O口(P0、P1、P2和P3),每一條I/O線都能獨立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個TTL門電路,P1、P2和P3口為準雙向口,負載能力為4個TTL門電路。 5. 串行I/O口 MCS51單片機具有一個采用通用異步工作方式的全雙工串

58、行通信接口,可以同時發(fā)送和接收數(shù)據(jù)。它具有兩個相互獨立的接收、發(fā)送數(shù)據(jù)緩沖器,兩個緩沖器共用一個地址(99H),發(fā)送緩沖器只能寫入,不能讀出,接收緩沖器只能讀出,不能寫入。 6. 中斷控制系統(tǒng) MCS51單片機的中斷功能較強,以滿足控制應用的需要。8051共有5個中斷源,即外中斷2個,定時/計數(shù)中斷2個,串行中斷1個。所有中斷分為高級和低級兩個中斷優(yōu)先級。 7. 時鐘電路 MCS51芯片內部有時鐘電路,但晶體振蕩器和微調電容必須外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列,振蕩器的頻率范圍為1.2MHz12MHz,典型取值為6MHz。 8. 總線 以上所有組成部分都是通過總線連接起來,從而構成一個完整的單片機。系統(tǒng)的地址信號、數(shù)據(jù)信號和控制信號都是通過總線傳送的,總線結構減少了單片機的連線和引腳,提高了集成度和可靠性。 2.1.3  引腳信號 圖2.3為MCS51系列單片機引腳圖及邏輯符號,它們?yōu)闃藴实?0腳DIP封裝。這些引腳的功能描述如下:(a)引腳圖 (b)邏

溫馨提示

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

評論

0/150

提交評論