《單片機(jī)原理與應(yīng)用技術(shù)》課件第1章_第1頁(yè)
《單片機(jī)原理與應(yīng)用技術(shù)》課件第1章_第2頁(yè)
《單片機(jī)原理與應(yīng)用技術(shù)》課件第1章_第3頁(yè)
《單片機(jī)原理與應(yīng)用技術(shù)》課件第1章_第4頁(yè)
《單片機(jī)原理與應(yīng)用技術(shù)》課件第1章_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章微型計(jì)算機(jī)系統(tǒng)基本知識(shí)1.1概述

1.2單片機(jī)系統(tǒng)的組成

1.3單片機(jī)中數(shù)的表示方法及運(yùn)算

1.4常用編碼

1.5習(xí)題

實(shí)訓(xùn)一單片機(jī)開發(fā)系統(tǒng)及其KeilCx51軟件應(yīng)用

1.1概述

微型計(jì)算機(jī)的問(wèn)世徹底改變了人類的生活,并開創(chuàng)了信息時(shí)代。它是人類一項(xiàng)偉大的創(chuàng)舉,也是最偉大的發(fā)明之一。

自1946年美國(guó)賓夕法尼亞大學(xué)??颂氐热搜兄瞥晒Φ谝慌_(tái)電子計(jì)算機(jī)之后,經(jīng)歷了半個(gè)多世紀(jì)的發(fā)展,計(jì)算機(jī)已經(jīng)廣泛應(yīng)用到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、航空航天技術(shù)、商業(yè)文化藝術(shù)、娛樂(lè)業(yè)和家用電器等方面。

1946年,為了滿足快速運(yùn)算的要求,第一臺(tái)電子計(jì)算機(jī)“ENIAC(埃尼阿克)”問(wèn)世了。它長(zhǎng)30.48?m,寬1?m,有30個(gè)操作臺(tái),占地面積170?m2,相當(dāng)于10間普通房間的大小,

重達(dá)30?t,耗電量150?kW,造價(jià)48萬(wàn)美元。它包含了17468個(gè)真空管、7200個(gè)二極管、70?000個(gè)電阻器、10?000個(gè)電容器、1500個(gè)繼電器、6000多個(gè)開關(guān),每秒執(zhí)行5000次加法或400次乘法,運(yùn)算速度是繼電器計(jì)算機(jī)的1000倍,手工計(jì)算的20萬(wàn)倍。它第一次用電子線路實(shí)現(xiàn)運(yùn)算。如果用當(dāng)時(shí)最快的機(jī)電式計(jì)算機(jī)做40點(diǎn)彈道計(jì)算,需要2?h,而用“ENIAC”只要3?s,這在當(dāng)時(shí)的確已是很了不起的成績(jī)。然而“ENIAC”還不完善,實(shí)際上它沒(méi)有存儲(chǔ)器,只有用電子管做的寄存器,僅僅能寄存10個(gè)數(shù)碼。當(dāng)需要換算別的題目時(shí),需要重新焊接連線,很費(fèi)時(shí)間。1.1.1微型計(jì)算機(jī)

隨著半導(dǎo)體技術(shù)的不斷發(fā)展和成熟,集成電路的集成度越來(lái)越高。正是因?yàn)檫@種技術(shù)的成熟,Intel公司在1971年11月成功地把計(jì)算機(jī)的運(yùn)算器、控制器等核心部件集成在一個(gè)集成電路芯片上,制成了世界上第一片中央處理芯片——微處理器Intel4004。1974年,羅伯茨用8080微處理器裝配了一種專供業(yè)余愛(ài)好者試驗(yàn)用的計(jì)算機(jī)“牛郎星”(Altair)。1976年,喬布斯和沃茲尼克成功設(shè)計(jì)了第一臺(tái)真正意義上的微型計(jì)算機(jī)。它裝在一個(gè)木盒子里,有一塊較大的電路板,8?KB的存儲(chǔ)器,能發(fā)聲,且可以顯示高分辨率圖形。1977年,沃茲尼克設(shè)計(jì)了世界上第一臺(tái)真正的個(gè)人計(jì)算機(jī)——AppleⅡ。利用同樣的集成電路技術(shù)也可將存儲(chǔ)程序和數(shù)據(jù)的存儲(chǔ)器進(jìn)行高度集成,制造出微型存儲(chǔ)器,這樣,存儲(chǔ)器、輸入/輸出接口電路和CPU就構(gòu)成了微型計(jì)算機(jī)(MicroComputer,MC)。圖1-1是微型計(jì)算機(jī)的基本組成框圖。圖1-1微型計(jì)算機(jī)的基本組成框圖1.1.2計(jì)算機(jī)發(fā)展概況

1)第一代計(jì)算機(jī)(1946—1958年)

世界上第一臺(tái)計(jì)算機(jī)是美國(guó)賓夕法尼亞大學(xué)于1946年研制成功的ENIAC(電子數(shù)字積分計(jì)算機(jī))。第一代計(jì)算機(jī)的主要特點(diǎn)是:硬件方面,采用電子管為基本邏輯電路元件,主存儲(chǔ)器采用延線或磁鼓(后期采用了磁芯),外存儲(chǔ)器采用磁帶存儲(chǔ)器,計(jì)算機(jī)體積龐大、功耗大、可靠性差、價(jià)格昂貴;軟件方面,最初只能使用機(jī)器語(yǔ)言,編寫程序、修改程序都很不方便,20世紀(jì)50年代中期以后才出現(xiàn)了匯編語(yǔ)言,但仍未從根本上解決編制程序的困難,僅能用于科學(xué)計(jì)算,因而計(jì)算機(jī)應(yīng)用很不普遍。但是,第一代計(jì)算機(jī)所采用的基本技術(shù)(采用二進(jìn)制、存儲(chǔ)程序控制的方法)卻為現(xiàn)代計(jì)算機(jī)技術(shù)的發(fā)展奠定了堅(jiān)實(shí)的理論基礎(chǔ)。

2)第二代計(jì)算機(jī)(1958—1964年)

第二代計(jì)算機(jī)也稱為晶體管計(jì)算機(jī),其主要特點(diǎn)是:硬件方面,采用晶體管為基本邏輯電路元件,主存儲(chǔ)器全部采用磁芯存儲(chǔ)器,外存儲(chǔ)器采用磁鼓和磁帶,計(jì)算機(jī)的系統(tǒng)結(jié)構(gòu)也從第一代的以運(yùn)算器為中心改為以存儲(chǔ)器為中心,從而使得計(jì)算機(jī)的運(yùn)算速度提高、體積減小、功耗降低、可靠性增強(qiáng);軟件方面,創(chuàng)立了一系列高級(jí)程序設(shè)計(jì)語(yǔ)言,并且提出了多道程序設(shè)計(jì)、并行處理和可變的微程序設(shè)計(jì)思想。從此,計(jì)算機(jī)的應(yīng)用也從單一的科學(xué)計(jì)算發(fā)展到了數(shù)據(jù)、事務(wù)管理和過(guò)程控制。

3)第三代計(jì)算機(jī)(1964—1971年)

第三代計(jì)算機(jī)也稱為集成電路計(jì)算機(jī),其主要特點(diǎn)是:硬件方面,計(jì)算機(jī)主要邏輯部件采用中、小規(guī)模集成電路,主存儲(chǔ)器從磁芯存儲(chǔ)器逐步過(guò)渡到了半導(dǎo)體存儲(chǔ)器,使得計(jì)算機(jī)的體積進(jìn)一步縮小,運(yùn)算速度、運(yùn)算精度、存儲(chǔ)容量以及可靠性等主要性能指標(biāo)大為改善;軟件方面,對(duì)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言進(jìn)行了標(biāo)準(zhǔn)化,并提出了計(jì)算機(jī)結(jié)構(gòu)化程序設(shè)計(jì)思想。此外,第三代計(jì)算機(jī)在產(chǎn)品的系列化、計(jì)算機(jī)系統(tǒng)之間的通信方面都得到了較大發(fā)展,計(jì)算機(jī)的應(yīng)用領(lǐng)域和普及程度有了飛速的發(fā)展。

4)第四代計(jì)算機(jī)(1971年至今)

第四代計(jì)算機(jī)進(jìn)入了超大規(guī)模集成電路計(jì)算機(jī)時(shí)代。其主要特點(diǎn)是:硬件方面,計(jì)算機(jī)邏輯部件由大規(guī)模和超大規(guī)模集成電路組成,主存儲(chǔ)器采用半導(dǎo)體存儲(chǔ)器,提供虛擬能力,計(jì)算機(jī)外圍設(shè)備多樣化、系列化;軟件方面,實(shí)現(xiàn)了軟件固化技術(shù),出現(xiàn)了面向?qū)ο蟮挠?jì)算機(jī)程序設(shè)計(jì)思想,并廣泛采用了數(shù)據(jù)庫(kù)技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。其發(fā)展過(guò)程中最重要的成就之一表現(xiàn)在微處理器(MicroProcessor)技術(shù)上。微處理器是一種超小型化的電子器件,它把計(jì)算機(jī)的運(yùn)算器、控制器等核心部件集成在一個(gè)集成電路芯片上。微處理器的出現(xiàn)為微型計(jì)算機(jī)的誕生奠定了基礎(chǔ)。

5)計(jì)算機(jī)的發(fā)展趨勢(shì)

隨著大規(guī)模、超大規(guī)模集成電路的廣泛應(yīng)用,計(jì)算機(jī)在存儲(chǔ)容量、運(yùn)算速度和可靠性等方面都得到了很大的提高。在科學(xué)技術(shù)日新月異的今天,各種新的器件不斷出現(xiàn),人們正試圖用光電子元件、超導(dǎo)電子元件、生物電子元件等來(lái)代替?zhèn)鹘y(tǒng)的電子元件,制造出在某種程度上具有模仿人的學(xué)習(xí)、記憶、聯(lián)想和推理等功能的新一代計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)正朝著巨型化、微型化、網(wǎng)絡(luò)化和智能化等方向深入發(fā)展。1.1.3單片機(jī)發(fā)展概述

從20世紀(jì)70年代起,微處理器的發(fā)展開始形成兩大分支。一類是個(gè)人計(jì)算機(jī)(簡(jiǎn)稱PC機(jī)),以Intel公司生產(chǎn)的8086、80286、80386、80486、80586、奔騰Ⅱ~奔騰Ⅳ為代表,可滿足海量數(shù)據(jù)的高速運(yùn)算,其數(shù)據(jù)寬度不斷提高,從8位、16位到32位、64位。另一類是嵌入式微處理器或嵌入式微控制器,也稱為單片機(jī)。目前,單片機(jī)內(nèi)部一般都以某種微處理器內(nèi)核為核心,集成ROM/EPROM、E2PROM、Flash、RAM、總線、總線邏輯、定時(shí)器/計(jì)數(shù)器、WatchDog、I/O口、脈寬調(diào)制輸出、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器等各種必要功能和外設(shè),廣泛應(yīng)用于工業(yè)控制系統(tǒng)、智能儀表、智能通信產(chǎn)品、智能家用電器、智能終端設(shè)備等許多領(lǐng)域內(nèi),比較具有代表性的通用系列有MCS-51系列、TMS320系列、ARM系列等。單片機(jī)的發(fā)展大致可分為以下四個(gè)階段:

(1)單片機(jī)的初級(jí)階段。這個(gè)階段的單片機(jī)主要以Intel公司的MCS-48為代表,屬于無(wú)串行口的低檔8位單片機(jī)。

(2)單片機(jī)的完善階段。以Intel公司的MCS-51、Motorola公司的68HC05為代表,屬于8位單片機(jī)的高性能發(fā)展階段,這時(shí)的單片機(jī)片內(nèi)帶有串行通信口、中斷處理系統(tǒng)、定時(shí)器/計(jì)數(shù)器,片內(nèi)的ROM、RAM容量增大,增加了A/D轉(zhuǎn)換功能。由于其功能強(qiáng)大,因而得到了廣泛的應(yīng)用。

(3)?8位單片機(jī)向16位單片機(jī)的過(guò)渡。此時(shí)雖然Intel公司推出了16位的MCS-96系列單片機(jī),但因其價(jià)格較高,使得具有更高性價(jià)比的MCS-51系列8位單片機(jī)得到了更加廣泛的應(yīng)用,廣大科技開發(fā)者競(jìng)相使用它來(lái)開發(fā)工業(yè)控制系統(tǒng),使8位單片機(jī)得到了進(jìn)一步的鞏固和發(fā)展,也使8位單片機(jī)占據(jù)了大部分的市場(chǎng)。

(4)全面發(fā)展階段。隨著單片機(jī)在各個(gè)領(lǐng)域的深入發(fā)展和人們對(duì)自動(dòng)控制系統(tǒng)的要求不斷提高,具有高速、大尋址范圍、更強(qiáng)的運(yùn)算能力的8位/16位/32位通用型單片機(jī)以及小型廉價(jià)的專用型單片機(jī)層出不窮,各大電器、半導(dǎo)體制造商紛紛推出自己開發(fā)的產(chǎn)品,出現(xiàn)了單片機(jī)全面發(fā)展的階段。單片機(jī)在我國(guó)的應(yīng)用也非常廣泛,從最初的MCS-51系列的8031芯片到MCS-96系列的8098芯片,還有各大半導(dǎo)體廠商推出的各種類型和性能的單片機(jī),如DSP微處理器、ARM系列單片機(jī)及PIC系列單片機(jī)。用戶根據(jù)不同的測(cè)控對(duì)象、不同的環(huán)境可選擇使用不同型號(hào)和功能的單片機(jī)。美國(guó)Microchip公司的PIC系列CMOS8位單片機(jī)就是一種能夠代表單片機(jī)發(fā)展方向的新型單片機(jī)。PIC系列單片機(jī)采用精簡(jiǎn)指令集RISC、CMOS工藝制造,它所具有的低功耗、較強(qiáng)負(fù)載能力的I/O口、看門狗、程序保密位及低價(jià)格等特點(diǎn),使其市場(chǎng)份額逐年提高。

1991年,ARM公司在英國(guó)劍橋大學(xué)成立,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即我們通常所說(shuō)的ARM微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無(wú)線系統(tǒng)等各類產(chǎn)品市場(chǎng),基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場(chǎng)份額,ARM技術(shù)正在逐步滲入到我們生活的各個(gè)方面。

從開發(fā)及用戶應(yīng)用的不同角度來(lái)看,單片機(jī)大致可分為以下幾類。

(1)按用途可以分為通用型和專用型。所謂通用和專用,是指單片機(jī)的應(yīng)用范圍。如MCS-51系列的80C51單片機(jī)就屬于通用型,它不是專門給某個(gè)產(chǎn)品設(shè)計(jì)的,它可以應(yīng)用到任何自動(dòng)控制的系統(tǒng)中去。通用型單片機(jī)的用途很廣泛,使用不同的接口電路及編制不同的應(yīng)用程序就可完成不同的功能。小到家用電器、儀器儀表,大到機(jī)器設(shè)備和整套生產(chǎn)線都可用單片機(jī)來(lái)實(shí)現(xiàn)自動(dòng)化控制。

專用型單片機(jī)是指用途比較專一,出廠時(shí)程序已經(jīng)一次性固化好,不能再修改的單片機(jī)。例如電子表里的單片機(jī)就是其中的一種,其生產(chǎn)成本很低。

(2)按總線結(jié)構(gòu)可以分為總線型和非總線型??偩€型單片機(jī)是指單片機(jī)設(shè)有并行總線,例如89C51單片機(jī)就是總線結(jié)構(gòu),在其內(nèi)部設(shè)有數(shù)據(jù)總線、地址總線、控制總線。通過(guò)這些總線可擴(kuò)展并行外圍器件。而非總線型單片機(jī)是指單片機(jī)通過(guò)串行口與外圍器件連接,或直接把外圍器件、外設(shè)接口集成在片內(nèi)。例如20引腳的89C2051單片機(jī)就是一種非總線型單片機(jī),其外部引腳與89C51相比減少了一半,這樣可以降低成本。

(3)按指令結(jié)構(gòu)可以分為CISC單片機(jī)和RISC單片機(jī)。我們所熟悉的Intel系列CPU就是CISC型CPU的典型代表。CISC就是“復(fù)雜指令集計(jì)算機(jī)”的意思。隨著大規(guī)模集成電路技術(shù)的發(fā)展,計(jì)算機(jī)的硬件成本不斷下降,軟件成本不斷提高,使得指令系統(tǒng)增加了更多更復(fù)雜的指令,以提高操作系統(tǒng)的效率。另外,同一系列的新型機(jī)對(duì)其指令系統(tǒng)只能擴(kuò)充而不能減去舊型機(jī)的任意一條,以達(dá)到程序兼容。這樣一來(lái),指令系統(tǒng)越來(lái)越復(fù)雜,有的計(jì)算機(jī)指令甚至達(dá)到數(shù)百條。人們就稱這種計(jì)算機(jī)為CISC(ComplexInstructionSetComputer)。如IBM公司的大、中型計(jì)算機(jī),Intel公司的8086、80286、80386微處理器等都屬于CISC單片機(jī)。日益龐大的指令系統(tǒng)不僅使計(jì)算機(jī)的研制周期變長(zhǎng),而且還有難以調(diào)試、難以維護(hù)等一些自身無(wú)法克服的缺點(diǎn)。

RISC是英文ReducedInstructionSetComputer的縮寫,漢語(yǔ)意思為“精簡(jiǎn)指令集計(jì)算機(jī)”。精簡(jiǎn)指令集計(jì)算機(jī)(RISC)指令全部使用單字節(jié)指令,除了涉及PC值改變的指令(如跳轉(zhuǎn)指令等)外,其余都是單周期指令,這樣可以提高軟件的運(yùn)行速度。例如PIC系列單片機(jī)都采用的是RISC指令。

(4)按單片機(jī)內(nèi)部的程序存儲(chǔ)器的類型可以分為OTPROM型、EPROM型、E2PROM型和FlashROM型。單片機(jī)內(nèi)部設(shè)有一定容量的程序存儲(chǔ)器來(lái)存放軟件指令,如容量不夠可以進(jìn)行外部擴(kuò)展。片內(nèi)的程序存儲(chǔ)器的種類有以下幾種:MaskROM、OTPROM、EPROM、E2PROM和FlashROM。其中,MaskROM和OTPROM只適用于成熟產(chǎn)品的大批量生產(chǎn);而帶可擦寫的EPROM或FlashROM的單片機(jī)適用于在開發(fā)階段的初期產(chǎn)品或中小批量產(chǎn)品的生產(chǎn)。EPROM由于需要紫外線擦除,給用戶帶來(lái)了不便,采用電改寫的E2PROM后,不需要紫外線擦除,只需重新寫入。特別是在常壓5?V下讀寫的E2PROM,既有靜態(tài)RAM讀寫操作簡(jiǎn)便,又有數(shù)據(jù)不會(huì)丟失的優(yōu)點(diǎn)。因此,有的單片機(jī)將它作為片內(nèi)RAM使用,甚至有的單片機(jī)將E2PROM用作片內(nèi)通用寄存器。1.1.4單片機(jī)的特點(diǎn)和應(yīng)用

單片機(jī)具有以下特點(diǎn)。

(1)品種多樣,型號(hào)繁多。

(2)有較高的性能價(jià)格比。

(3)可擴(kuò)展性強(qiáng),可以構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),控制能力強(qiáng)。

(4)小巧靈活、成本低、易于產(chǎn)品化,能夠適用于各種智能型自動(dòng)控制系統(tǒng)中。

(5)低功耗。

(6)可靠性好,適應(yīng)溫度范圍寬。

(7)應(yīng)用軟件配套。1.1.5單片機(jī)技術(shù)的發(fā)展趨勢(shì)

1.低功耗、CMOS化

MCS-51系列的8031單片機(jī),其推出時(shí)的功耗達(dá)630mW,而現(xiàn)在的單片機(jī)的功耗普遍都在100?mW左右,隨著對(duì)單片機(jī)功耗要求越來(lái)越低,現(xiàn)在的各個(gè)單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗較低,但其物理特征決定其工作速度較慢;而CHMOS則具備了高速和低功耗的特點(diǎn),這些特征更適合于在要求低功耗(如電池供電)的應(yīng)用場(chǎng)合。所以采用這種工藝將是今后一段時(shí)期單片機(jī)的主要發(fā)展方向。

2.微型單片化

現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)、只讀程序存儲(chǔ)器(ROM)、并行和串行通信接口、中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)還集成了A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)等,有些單片機(jī)將LCD(液晶)驅(qū)動(dòng)電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就更強(qiáng)大。單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。

此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就使得單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積小?,F(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中SMD(表面封裝)越來(lái)越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。

3.主流與多品種共存

現(xiàn)在雖然單片機(jī)的品種繁多、各具特色,但以80C51為核心的單片機(jī)仍占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品、ATMEL公司的產(chǎn)品和中國(guó)臺(tái)灣的Winbond系列單片機(jī)。而Microchip公司的PIC系列單片機(jī)也有著強(qiáng)勁的發(fā)展勢(shì)頭。中國(guó)臺(tái)灣的HOLTEK公司近年的單片機(jī)產(chǎn)量與日俱增,以其價(jià)低質(zhì)優(yōu)的優(yōu)勢(shì),占據(jù)了一定的市場(chǎng)分額。此外,還有Motorola公司的產(chǎn)品、日本幾大公司的專用單片機(jī)。在一定的時(shí)期內(nèi),這種情形將得以延續(xù),將不存在某個(gè)單片機(jī)壟斷的局面,走的是依存互補(bǔ)、相輔相成、共同發(fā)展的道路。

ARM公司是專門從事基于RISC技術(shù)芯片設(shè)計(jì)開發(fā)的公司,作為知識(shí)產(chǎn)權(quán)供應(yīng)商,它本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計(jì)許可由合作公司生產(chǎn)各類芯片。目前,全世界有幾十家大的半導(dǎo)體公司(包括Intel、IBM、LG、NEC、SONY、PHILIPS等)都使用ARM公司的授權(quán),軟件系統(tǒng)的合伙人則包括微軟、升陽(yáng)和MRI等一系列知名公司。這不僅使得ARM技術(shù)獲得更多的第三方工具以及軟件的支持,還使整個(gè)系統(tǒng)成本降低,從而使產(chǎn)品更容易進(jìn)入市場(chǎng)被消費(fèi)者所接受,更具有競(jìng)爭(zhēng)力。

ARM處理器的特點(diǎn)是:耗電少、功能強(qiáng)、16位/32位雙指令集和眾多合作伙伴。采用RISC架構(gòu)的ARM微處理器具有如下特點(diǎn):

(1)體積小、低功耗、低成本、高性能;

(2)支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件;

(3)大量使用寄存器,指令執(zhí)行速度更快;

(4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成;

(5)尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;

(6)指令長(zhǎng)度固定。

1.2單片機(jī)系統(tǒng)的組成

1.2.1微處理器CPU

微處理器是單片機(jī)的核心。它主要由三部分組成:運(yùn)算器、控制器和各種寄存器。

1.運(yùn)算器

運(yùn)算器是在控制器的指揮下完成二進(jìn)制算術(shù)運(yùn)算和邏輯運(yùn)算操作的裝置。它由算術(shù)/邏輯運(yùn)算單元ALU、累加器A、暫存寄存器、標(biāo)志寄存器F等組成。

2.控制器

控制器是指揮單片機(jī)執(zhí)行命令的核心,它按一定的順序從程序存儲(chǔ)器中取出指令并進(jìn)行正確的譯碼后確定要執(zhí)行的操作,發(fā)出相應(yīng)的控制信號(hào),從而完成該指令所規(guī)定的任務(wù)。控制器主要由程序計(jì)數(shù)器PC、定時(shí)及控制邏輯電路、指令寄存器IR及指令譯碼器ID組成。1.2.2存儲(chǔ)器

存儲(chǔ)器是用來(lái)存放程序和數(shù)據(jù)的器件,它由若干存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元都有一個(gè)唯一的編號(hào),稱為存儲(chǔ)地址。

存儲(chǔ)器從不同的角度可以劃分為不同的種類。

按照位置的不同,存儲(chǔ)器可以分為內(nèi)存儲(chǔ)器和外存儲(chǔ)器。內(nèi)存儲(chǔ)器在單片機(jī)的芯片內(nèi)部,用于存放當(dāng)前運(yùn)行的程序和所需的數(shù)據(jù)。一般情況下,內(nèi)存儲(chǔ)器的容量較小,但存取速度快。外存儲(chǔ)器設(shè)在單片機(jī)的外部,用于存放大量暫時(shí)不能直接參與運(yùn)算的程序和數(shù)據(jù),需要時(shí)可以將這些程序和數(shù)據(jù)及時(shí)地傳送到內(nèi)存儲(chǔ)器。外存儲(chǔ)器的容量大,但存取速度較慢。

按照存取方式的不同,存儲(chǔ)器可以分為隨機(jī)存取存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)兩大類。

1.RAM

RAM主要用來(lái)存放各種數(shù)據(jù)。它的主要優(yōu)點(diǎn)是可以隨機(jī)寫入或讀出,讀寫速度快,讀寫方便;缺點(diǎn)是電源斷電后存儲(chǔ)的信息就會(huì)丟失,而且也不能恢復(fù)。

2.ROM

按照寫入方式的不同,ROM又可以分為MaskROM、OTPROM、EPROM、EEPROM(E2PROM)和FlashROM。1.2.3輸入/輸出設(shè)備及其接口電路

輸入/輸出接口電路是單片機(jī)與輸入/輸出設(shè)備交換數(shù)據(jù)的通道和橋梁。單片機(jī)執(zhí)行一條指令的時(shí)間約為1~2?ms,而輸入/輸出設(shè)備的種類繁多,數(shù)據(jù)傳輸速度有快有慢,信號(hào)形式及電平也不一樣,這時(shí)必須由輸入/輸出接口電路進(jìn)行速度的匹配和轉(zhuǎn)換。

輸入/輸出接口電路的基本功能是對(duì)輸出數(shù)據(jù)的鎖存和對(duì)輸入數(shù)據(jù)的緩沖。常用的單片機(jī)輸入/輸出接口電路芯片有8255、8155、8279、0809、0832等。1.2.4單片機(jī)系統(tǒng)的軟件

單片機(jī)應(yīng)用系統(tǒng)要完成一定的測(cè)控功能,除了要具備完整的硬件系統(tǒng)以外,還要具備完善的軟件。軟件就是各種指令按照某種特定的規(guī)律組合形成的程序。軟件設(shè)計(jì)和程序設(shè)計(jì)的任務(wù)就是利用計(jì)算機(jī)語(yǔ)言對(duì)系統(tǒng)預(yù)期達(dá)到的功能進(jìn)行描述和規(guī)定。

目前,單片機(jī)程序設(shè)計(jì)語(yǔ)言可分為三類:機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。 1.3單片機(jī)中數(shù)的表示方法及運(yùn)算

1.3.1二進(jìn)制數(shù)、十進(jìn)制數(shù)和十六進(jìn)制數(shù)

人們?cè)陂L(zhǎng)期的社會(huì)生產(chǎn)活動(dòng)和日常生活中,形成了各種數(shù)制。按照進(jìn)位的方法進(jìn)行計(jì)數(shù)的數(shù)制稱為進(jìn)位計(jì)數(shù)制,簡(jiǎn)稱進(jìn)位制。基數(shù)是計(jì)數(shù)制中允許選用的基本數(shù)碼的個(gè)數(shù),用R表示。在進(jìn)位計(jì)數(shù)制中,一個(gè)數(shù)碼處在數(shù)的不同位置時(shí),它所代表的數(shù)值是不同的。每一個(gè)數(shù)位賦予的數(shù)值稱為位權(quán),簡(jiǎn)稱權(quán)。權(quán)的大小是以基數(shù)為底,數(shù)位的序號(hào)為指數(shù)的整數(shù)次冪,用i表示數(shù)位的序號(hào),用Ri表示數(shù)位的權(quán)。

1.十進(jìn)制數(shù)

十進(jìn)制數(shù)的基數(shù)為10,由10個(gè)數(shù)碼構(gòu)成:0、1、2、3、4、5、6、7、8、9。以小數(shù)點(diǎn)為基準(zhǔn),權(quán)值向左為100、101、102?…依次遞增,小數(shù)點(diǎn)右側(cè)的權(quán)值為10-1、10-2、10-3…依次遞減。

2.二進(jìn)制數(shù)

二進(jìn)制數(shù)的基數(shù)為2,由2個(gè)數(shù)碼構(gòu)成:0、1。權(quán)值展開式的規(guī)則是以小數(shù)點(diǎn)為基準(zhǔn),權(quán)值向左為20、21、22?…依次遞增,小數(shù)點(diǎn)右側(cè)的權(quán)值為2-1、2-2、2-3?…依次遞減等。二進(jìn)制數(shù)的進(jìn)位規(guī)則是逢二進(jìn)一,數(shù)據(jù)每左移一位,數(shù)值增大一倍;每右移一位,數(shù)值減小一半。上式中的23、22、21、20、2-1、2-2稱為二進(jìn)制數(shù)的“權(quán)”,如圖1-2所示。圖1-2二進(jìn)制數(shù)1110.11B

3.十六進(jìn)制數(shù)

十六進(jìn)制數(shù)的基數(shù)為16,由10個(gè)數(shù)碼和6個(gè)字母構(gòu)成:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)。以小數(shù)點(diǎn)為基準(zhǔn),權(quán)值向左為160、161、162

…依次遞增,小數(shù)點(diǎn)右側(cè)的權(quán)值為16-1、16-2、16-3?…依次遞減。十六進(jìn)制數(shù)的進(jìn)位規(guī)則是逢十六進(jìn)一,與其他數(shù)制的數(shù)一樣,同一數(shù)符在不同數(shù)位所代表的數(shù)值是不相同的。十六進(jìn)制數(shù)和二進(jìn)制數(shù)具有相同的特點(diǎn),數(shù)據(jù)每左移一位,數(shù)值增大16倍;右移一位,數(shù)值縮小到1/16。上式中的163、162、161、160、16-1、16-2稱為十六進(jìn)制數(shù)的“權(quán)”,如圖1-3所示。圖1-3十六進(jìn)制數(shù)D2A3.86我們將十進(jìn)制數(shù)、十六進(jìn)制數(shù)和二進(jìn)制數(shù)進(jìn)行比較,可以看出十六進(jìn)制數(shù)比較簡(jiǎn)潔,數(shù)據(jù)位數(shù)少,縮短了字長(zhǎng)。一個(gè)4位二進(jìn)制數(shù)只需要用1位十六進(jìn)制數(shù)表示,一個(gè)8位二進(jìn)制數(shù)只需要2位十六進(jìn)制數(shù)表示。因此目前單片機(jī)程序中普遍采用十六進(jìn)制數(shù)表示。十六進(jìn)制數(shù)與十進(jìn)制數(shù)、二進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系如表1-1所示。表1-1十六進(jìn)制數(shù)、二進(jìn)制數(shù)和十進(jìn)制數(shù)對(duì)應(yīng)關(guān)系表1.3.2數(shù)制轉(zhuǎn)換

1.二進(jìn)制數(shù)與十六進(jìn)制數(shù)相互轉(zhuǎn)換

1)二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)

要轉(zhuǎn)換的二進(jìn)制數(shù)以小數(shù)點(diǎn)為基準(zhǔn),將二進(jìn)制數(shù)的整數(shù)部分自右向左分成每四位一組,不足四位的在左面加0填充;而小數(shù)部分自左向右四位組成一組,如果不足四位就在右面加0填充。最后每組二進(jìn)制數(shù)用相應(yīng)的十六進(jìn)制數(shù)代替即可。

【例1-1】1100110100111010011B?=?0110

0110

1001

1101

0011B?=?669D3H

【例1-2】10011.1001001B?=?0001

0011.1001

0010B?=?13.92H

2)十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)

將要轉(zhuǎn)換的十六進(jìn)制數(shù)以小數(shù)點(diǎn)為基準(zhǔn),將每一位十六進(jìn)制數(shù)都轉(zhuǎn)換成四位二進(jìn)制數(shù)表示即可。

【例1-3】4DFEH?=?0100

1101

11111110B

【例1-4】76.3CH?=?0111

0110

0011

1100B

2.二進(jìn)制數(shù)、十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)

將二進(jìn)制數(shù)、十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)時(shí),只要將二進(jìn)制數(shù)或十六進(jìn)制數(shù)按權(quán)展開后,再相加即可得到轉(zhuǎn)換后的十進(jìn)制數(shù)。如果要將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),也可以先轉(zhuǎn)換為十六進(jìn)制數(shù),然后再轉(zhuǎn)換為十進(jìn)制數(shù)。

【例1-5】1001.01B=1×23+0×22+0×21+1×20+0×2-1

+1×2-2=?9.25

或者 1001.01B=1001.0100B=9.4H=9×160+4×16-1

=9.25

【例1-6】E3DH=14×162+3×161+13×160=14×256+3

×16+13×1=3584+48+13=3645

【例1-7】11.0101B=0011.0101B=3.5H=3×160+5×16-1

=3+0.3125

=

3.3125

3.十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)、十六進(jìn)制數(shù)

將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)或者十六進(jìn)制數(shù)時(shí),需將整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,然后將轉(zhuǎn)換后的結(jié)果合并在一起。

1)整數(shù)部分的轉(zhuǎn)換

(1)十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的方法。通常采用“除2取余法”,即用2去除該整數(shù),然后再用2逐次去除剛剛除得的商,直到商為0為止。依次記下得到的各個(gè)余數(shù),第一個(gè)得到的余數(shù)是轉(zhuǎn)換后的二進(jìn)制數(shù)的最低位,最后一個(gè)余數(shù)是最高位。

【例1-8】

將十進(jìn)制數(shù)56轉(zhuǎn)換為二進(jìn)制數(shù)。

(2)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)的方法。轉(zhuǎn)換方法基本與上述的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的方法類似。通常也是采用“除16取余法”,即用基數(shù)16去除被轉(zhuǎn)換的十進(jìn)制數(shù),直到商為0為止。依次記下得到的各個(gè)余數(shù),第一個(gè)取得的余數(shù)就是轉(zhuǎn)換后的十六進(jìn)制數(shù)的最低位,最后一個(gè)余數(shù)是最高位。

【例1-9】

將十進(jìn)制數(shù)5652轉(zhuǎn)換為十六進(jìn)制數(shù)。

2)小數(shù)部分的轉(zhuǎn)換

(1)十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)的方法。通常采用“乘2取整法”。逐次用2乘以小數(shù)部分,依次記下所得到的整數(shù)部分,直到積的小數(shù)部分為0為止。第一個(gè)整數(shù)是二進(jìn)制小數(shù)的最高位,最后一個(gè)整數(shù)是二進(jìn)制小數(shù)的最低位。

【例1-10】

將十進(jìn)制數(shù)0.6875轉(zhuǎn)換為二進(jìn)制數(shù)。

(2)十進(jìn)制小數(shù)轉(zhuǎn)換為十六進(jìn)制小數(shù)的方法。通常采用“乘16取整法”,即逐次用16乘以要轉(zhuǎn)換的小數(shù)部分,依次記下所得到的整數(shù)部分,直到積的小數(shù)部分為0為止。第一個(gè)整數(shù)是十六進(jìn)制小數(shù)的最高位,最后一個(gè)整數(shù)是十六進(jìn)制小數(shù)的最低位。

【例1-11】

將十進(jìn)制數(shù)0.71875轉(zhuǎn)換為十六進(jìn)制數(shù)。1.3.3二進(jìn)制數(shù)和十六進(jìn)制數(shù)的運(yùn)算

1.二進(jìn)制數(shù)的算術(shù)運(yùn)算

1)二進(jìn)制數(shù)加減法運(yùn)算

運(yùn)算規(guī)則:

(1)?0?+?0?=?0;

(2)?0?+?1?=?1?+?0?=?1;

(3)?1?+?1?=?10,1為向高位的進(jìn)位位;

(4)?0-0?=?0;

(5)?1-0?=?1;

(6)?1-1?=?0;

(7)?0-1?=?1,向高位借1。

3)二進(jìn)制數(shù)除法運(yùn)算

除法運(yùn)算是乘法的逆運(yùn)算。與十進(jìn)制相類似,可從被除數(shù)的最高位數(shù)開始取出與除數(shù)相同的位數(shù),減去除數(shù),夠減商記1,不夠減商記0。然后將被除數(shù)的下一位移到余數(shù)上,繼續(xù)夠減商記1,不夠減商記0,直至被除數(shù)的位數(shù)下移完為止。

2.二進(jìn)制數(shù)的邏輯運(yùn)算

1)二進(jìn)制數(shù)“與”運(yùn)算

當(dāng)兩個(gè)二進(jìn)制數(shù)進(jìn)行相與運(yùn)算時(shí),首先應(yīng)將兩個(gè)二進(jìn)制數(shù)位對(duì)齊,然后逐位相與。相與運(yùn)算的規(guī)則如下:

(1)?0∧0=0;

(2)?0∧1=1∧0=0;

(3)?1∧1=1。

2)二進(jìn)制數(shù)“或”運(yùn)算

當(dāng)兩個(gè)二進(jìn)制數(shù)進(jìn)行相或運(yùn)算時(shí),首先應(yīng)將兩個(gè)二進(jìn)制數(shù)位對(duì)齊,然后逐位相或。相或運(yùn)算的規(guī)則如下:

(1)?0∨0?=?0;

(2)?0∨1?=?1∨0?=?1;

(3)?1∨1?=?1。

3.十六進(jìn)制數(shù)的加法運(yùn)算

十六進(jìn)制數(shù)的加法運(yùn)算遵守逢十六進(jìn)位的規(guī)則,按位進(jìn)行計(jì)算。

4.十六進(jìn)制數(shù)的減法運(yùn)算

十六進(jìn)制數(shù)的減法運(yùn)算與十進(jìn)制數(shù)的減法運(yùn)算基本一致,如果不夠減,低位就向高位借位,借一代表十六。

5.十六進(jìn)制數(shù)的“與”、“或”運(yùn)算

十六進(jìn)制數(shù)進(jìn)行“與”、“或”運(yùn)算時(shí),首先應(yīng)先化成二進(jìn)制數(shù),然后按二進(jìn)制數(shù)的“與”、“或”運(yùn)算的方法進(jìn)行。1.3.4原碼、反碼和補(bǔ)碼

1.機(jī)器數(shù)的特點(diǎn)

數(shù)在計(jì)算機(jī)中的表示形式稱為機(jī)器數(shù),而這個(gè)數(shù)的本身稱為真值。機(jī)器數(shù)有兩個(gè)基本特點(diǎn):

(1)數(shù)的符號(hào)數(shù)值化。

數(shù)有正數(shù)和負(fù)數(shù)之分,在單片機(jī)內(nèi)符號(hào)用0和1來(lái)表示,0代表正數(shù),1代表負(fù)數(shù)。這樣,有符號(hào)數(shù)的符號(hào)就被數(shù)值化了。通常把符號(hào)放在最高位,該位稱為符號(hào)位。一個(gè)機(jī)器數(shù)是由符號(hào)位和數(shù)值位兩部分組成的。

(2)數(shù)的位數(shù)固定。

單片機(jī)內(nèi)一次能直接處理的二進(jìn)制數(shù)的位數(shù)叫做單片機(jī)的字長(zhǎng)。

2.機(jī)器數(shù)的表示方法

最常用的機(jī)器數(shù)的表示方法有三種:原碼、反碼和補(bǔ)碼。

8位有符號(hào)數(shù)表示方法如下:

1)原碼表示法

正數(shù)在符號(hào)位用0表示,負(fù)數(shù)在符號(hào)位用1表示。數(shù)值位保持原樣不變的機(jī)器數(shù)稱為原碼。

(1)正數(shù)。正數(shù)的原碼與該正數(shù)的數(shù)值位相同。

1.4常用編碼

1.4.18421BCD碼

1.編碼方法

BCD碼有多種表示方法,最常用的編碼為8421碼,8421代表了每一位的權(quán)。8421BCD碼的4個(gè)二進(jìn)制位自左向右每位的權(quán)分別是8、4、2、1,用二進(jìn)制數(shù)0000~1001十個(gè)編碼分別表示十進(jìn)制數(shù)的0~9,而1010、1011、1100、1101、1110和1111這6個(gè)編碼舍去不用,它們被認(rèn)為是8421BCD碼的非法編碼。8421BCD碼和十進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系如表1-2所示。表1-2BCD碼與十進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系1.4.2校驗(yàn)碼

由于單片機(jī)內(nèi)部結(jié)構(gòu)、工藝及電氣性能等方面因素的影響,常常使數(shù)據(jù)在存取、傳輸?shù)倪^(guò)程中發(fā)生錯(cuò)誤,為了及時(shí)糾正錯(cuò)誤,單片機(jī)采用校驗(yàn)碼對(duì)傳輸?shù)臄?shù)據(jù)和信息進(jìn)行校驗(yàn)和修正。

目前,計(jì)算機(jī)內(nèi)部常常采用奇偶校驗(yàn)碼來(lái)保證數(shù)據(jù)的正確性。奇偶校驗(yàn)碼是在每個(gè)信息的代碼上擴(kuò)展一個(gè)二進(jìn)制位作為校驗(yàn)位。校驗(yàn)位的取值原則是:①奇校驗(yàn):在編碼中含有“1”的個(gè)數(shù)連同校驗(yàn)位的取值共有奇數(shù)個(gè)。②偶校驗(yàn):在編碼中含有“1”的個(gè)數(shù)連同校驗(yàn)位的取值共有偶數(shù)個(gè)。在單片機(jī)內(nèi)部進(jìn)行代碼校驗(yàn),當(dāng)檢測(cè)信息編碼中“1”的個(gè)數(shù)與預(yù)先設(shè)定的奇/偶校驗(yàn)不符時(shí),表明被檢測(cè)的信息有錯(cuò)。奇偶校驗(yàn)的方法是有一定的局限性的,只能校驗(yàn)奇數(shù)個(gè)二進(jìn)制位的錯(cuò)誤,但一位出錯(cuò)比兩位或多位出錯(cuò)的概率高,所以它仍不失是一種有效的校驗(yàn)方法。1.4.3ASCII碼

數(shù)字、字母、通用符號(hào)和控制符號(hào)等統(tǒng)稱為字符。用來(lái)表示字符的二進(jìn)制代碼稱為字符編碼,字符編碼有多種方式。在計(jì)算機(jī)系統(tǒng)中,國(guó)際上普遍采用的一種字符編碼是美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)碼,即ASCII(AmericanStandardCodeforInformationInterchange)碼。

通常用7位二進(jìn)制數(shù)來(lái)表示ASCII碼,共可以表示27=128個(gè)字符。隨著計(jì)算機(jī)信息技術(shù)的進(jìn)一步發(fā)展,為擴(kuò)大計(jì)算機(jī)信息處理范圍,在原來(lái)的ASCII碼的基礎(chǔ)上又?jǐn)U充了128種字符。ASCII字符表一般以二維表形式列出,共16列16行。通過(guò)查表的方式可以找到相關(guān)字符的二進(jìn)制碼。表1-3是未擴(kuò)充前的ASCII碼編碼表。表1-3未擴(kuò)充前的ASCII碼編碼表 1.5習(xí)題

1.微型計(jì)算機(jī)的發(fā)展經(jīng)歷了幾個(gè)時(shí)期的變革?

2.PC機(jī)和單片機(jī)都是微型機(jī),兩者有什么區(qū)別?

3.單片機(jī)的發(fā)展經(jīng)歷了幾個(gè)階段?各有什么特點(diǎn)?

4.從開發(fā)用戶應(yīng)用的不同角度來(lái)看,單片機(jī)可以分為幾類?

5.單片機(jī)有什么特點(diǎn),分別應(yīng)用在哪些領(lǐng)域?

6.16位單片機(jī)性能優(yōu)于8位單片機(jī),為什么現(xiàn)階段16位單片機(jī)不如8位單片機(jī)應(yīng)用廣泛?

7.單片機(jī)技術(shù)的發(fā)展趨勢(shì)如何?

8.單片機(jī)系統(tǒng)的硬件主要由哪些功能部件組成?

9.什么是存儲(chǔ)器?如何分類?

10.什么叫RAM?什么叫ROM?它們主要的功能分別是什么?

11.按照燒寫的方式,ROM可以分為哪幾種?各有什么優(yōu)缺點(diǎn)?

12.ARM處理器有什么特點(diǎn)?

13.單片機(jī)的程序設(shè)計(jì)語(yǔ)言分為幾種?各有什么特點(diǎn)?

14.單片機(jī)中數(shù)的表示方法有幾種?

15.二進(jìn)制數(shù)、十進(jìn)制數(shù)、十六進(jìn)制數(shù)各用什么字母尾綴作為標(biāo)識(shí)符?無(wú)標(biāo)識(shí)符時(shí)表示什么進(jìn)制數(shù)?

16.寫出0~15的二進(jìn)制數(shù)和十六進(jìn)制數(shù)。

17.將下列十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)(小數(shù)取8位)和十六進(jìn)制數(shù):

(1)?124; (2)?87;

(3)?0.124; (4)?1.345;

(5)?3.125; (6)?32.123;

(7)?102.64; (8)?69。

18.將下列二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)和十六進(jìn)制數(shù):

(1)?10110111B; (2)?01101101B;

(3)?0.10110110B; (4)?0.11010110B;

(5)?11011111.01101101B; (6)?11010110.001101101B。

19.將下列十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)和二進(jìn)制數(shù):

(1)?3AH; (2)?383H;

(3)?0.735H; (4)?0.EAH;

(5)?52.35H; (6)?B7.76H。

20.已知下列二進(jìn)制數(shù)X、Y,試求X?+?Y和X?-?Y。

(1)?X?=?10010010B,Y?=?10010010B;

(2)?X?=?10101010B,Y?=?11011110B;

(3)?X?=?10110110B,Y?=?11100101B;

(4)?X?=?10010100B,Y?=?11100001B。

21.已知下列二進(jìn)制數(shù)X、Y,試求X?×?Y和X?÷?Y。

(1)?X?=?10010010B,Y?=?1010B;

(2)?X?=?11010010B,Y?=?1001B。

22.已知下列二進(jìn)制數(shù)X、Y,試求X∧Y和X∨Y。

(1)?X?=?10010010B,Y?=?10010010B;

(2)?X?=?10101010B,Y?=?11011110B;

(3)?X?=?10110110B,Y?=?11100101B;

(4)?X?=?10010100B,Y?=?11100001B。

23.已知下列十六進(jìn)制數(shù)X、Y,試求X?+?Y、X?-?Y、X∧Y和X∨Y。

(1)?X?=?BCH,Y?=?A8H; (2)?X?=?45H,Y?=?CDH;

(3)?X?=?38H,Y?=?69H; (4)?X?=?F1H,Y?=?0EH。

24.分別求下列各數(shù)的原碼、反碼和補(bǔ)碼:

(1)?+46; (2)?-124;

(3)?+?68; (4)?-96。

25.原碼、反碼和補(bǔ)碼之間的換算關(guān)系是什么?

26.什么叫BCD碼?為什么要采用BCD碼?BCD碼與二進(jìn)制數(shù)有何區(qū)別?

27.將下列十進(jìn)制數(shù)轉(zhuǎn)換為BCD碼:

(1)?85; (2)?128;

(3)?24; (4)?210。

28.將下列二進(jìn)制數(shù)轉(zhuǎn)換為BCD碼:

(1)?10010101B; (2)?11000111B;

(3)?01111101B; (4)?11110000B。

29.已知BCD碼X、Y,求X?+?Y,X?-?Y:

(1)?X?=?[00010101]BCD,Y?=?[11001010]BCD;

(2)?X?=?[11010111]BCD,Y?=?[01010110]BCD;

(3)?X?=?[10010001]BCD,Y?=?[11110010]BCD;

(4)?X?=?[10111001]BCD,Y?=?[11101110]BCD。

30.ASCII碼的含義是什么?

31.查表寫出下列字符的ASCII碼:

(1)?A;(2)?9;(3)?*;(4)??;

(5)?N;(6)?a;(7)?空格符SP。實(shí)訓(xùn)一單片機(jī)開發(fā)系統(tǒng)及其KeilCx51軟件應(yīng)用

一、實(shí)驗(yàn)?zāi)康?/p>

(1)熟悉KeilCx51開發(fā)環(huán)境。

(2)了解如何利用KeilCx51軟件進(jìn)行編輯、編譯、連接和運(yùn)行匯編源程序。

二、實(shí)驗(yàn)設(shè)備與元器件

(1)至少20?MB硬盤、16MB內(nèi)存的Pentium、PentiumⅡ或帶有相應(yīng)兼容處理器的PC機(jī)。

(2)?KeilCV8.08版本的uVision2/3軟件。

(3)面包板、萬(wàn)用表等。

(4)按照電路圖1-4進(jìn)行硬件連接。圖1-4流水指示燈控制電路

2.軟件設(shè)計(jì)

讓8個(gè)指示燈依次點(diǎn)亮,并在Keil軟件上運(yùn)行該程序。

3.KeilCx51軟件的使用

1)源文件的建立

選擇菜單File→New或者單擊工具欄中的新建文件按鈕,即可在項(xiàng)目窗口的右側(cè)打開一個(gè)新的文本編輯窗口,在該窗口中輸入程序一的匯編語(yǔ)言源程序,保存該文件,注意必須加上擴(kuò)展名(匯編語(yǔ)言源程序一般用ASM或A51為擴(kuò)展名)。這里我們將程序一保存為L(zhǎng)ED.asm,如圖1-5所示。圖1-5流水燈控制源程序文件的建立與保存

2)工程文件的建立

在項(xiàng)目開發(fā)過(guò)程中,并不是僅有一個(gè)源程序就行了,還要為這個(gè)項(xiàng)目選擇CPU。Keil軟件支持?jǐn)?shù)百種CPU,可根據(jù)具體系統(tǒng)的要求確定編譯、匯編和連接的參數(shù),制定調(diào)試的方式,有一些項(xiàng)目還會(huì)由多個(gè)文件組成。為管理和使用方便,Keil使用工程這一概念,將這些參數(shù)設(shè)置和需要的所有文件都加在一個(gè)工程中,只能對(duì)工程而不能對(duì)單一的源程序進(jìn)行編譯和連接等操作。選擇Project→NewProject菜單命令,將出現(xiàn)圖1-6所示的對(duì)話框,要求給將要建立的工程命名。可以在編輯框中輸入一個(gè)名字LED,不需要擴(kuò)展名,單擊“保存”按鈕。然后又出現(xiàn)一個(gè)對(duì)話框,如圖1-7所示。在這個(gè)對(duì)話框中要求選擇目標(biāo)單片機(jī)芯片的型號(hào)。我們這里選擇ATMEL公司的AT89C51芯片。單擊ATMEL前面的“+”號(hào),展開該層,單擊其中的AT89C51,然后再單擊“確定”按鈕,會(huì)回到主界面。此時(shí),在工程窗口的文件頁(yè)中便出現(xiàn)了Target1。圖1-6新建工程窗口圖1-7單片機(jī)芯片類型選擇窗口如圖1-8所示,在項(xiàng)目窗口的前面有“+”號(hào),單擊“+”號(hào)展開,可以看到下一層的SourceGroup1,這時(shí)的工程還是一個(gè)空的工程,里面什么文件也沒(méi)有,需要手動(dòng)把剛才編寫好的源程序載入。右擊SourceGroup1出現(xiàn)一個(gè)下拉菜單,如圖1-9所示。選中其中的AddFilestoGroup‘SourceGroup1’,將出現(xiàn)一個(gè)對(duì)話框,要求尋找源文件。應(yīng)該注意的是:該對(duì)話框下面的“文件類型”默認(rèn)為CSourceFile(*.c),也就是以C為擴(kuò)展名的文件,而我們輸入的文件是以asm為擴(kuò)展名的,所以找不到LED.asm,需要把文件類型改掉。單擊對(duì)話框中“文件類型”后的下拉列表,找到并選中AsmSourceFile(*.a51或*.asm),這樣,在文件的列表框中就可以找到LED.asm文件了。雙擊LED.asm文件,將文件加入項(xiàng)目。注意在文件加入項(xiàng)目后,該對(duì)話框并不會(huì)馬上消失,而是等待繼續(xù)加入其它文件。但有時(shí)會(huì)誤以為添加文件沒(méi)有成功而再次雙擊同一文件,這時(shí)會(huì)出現(xiàn)如圖1-10所示的對(duì)話框,提示該文件已在列表中。此時(shí)應(yīng)單擊“確定”按鈕,返回前一對(duì)話框,然后單擊Close按鈕即可返回主界面。圖1-8選擇添加源程序窗口圖1-9選擇匯編源程序窗口圖1-10添加源程序雙擊統(tǒng)一文件時(shí)的提示返回后,單擊SourceGroup1前面的“+”號(hào),會(huì)發(fā)現(xiàn)LED.asm文件已在其中,雙擊文件名,即可打開該源程序,如圖1-11所示。圖1-11LED.asm已經(jīng)添加到項(xiàng)目窗口

3)工程的詳細(xì)設(shè)置

工程建立以后,還要對(duì)工程進(jìn)行進(jìn)一步設(shè)置,以滿足編譯源程序的要求。單擊主菜單中的Project→OptionFortarget'target1'或右擊Project窗口的Target1選擇OptionFortarget'target1',即出現(xiàn)對(duì)工程進(jìn)行設(shè)置的對(duì)話框,如圖1-11所示。這個(gè)對(duì)話框中共有8個(gè)頁(yè)面,絕大部分設(shè)置項(xiàng)取默認(rèn)值即可。

(1)?Device選項(xiàng)的設(shè)置(如圖1-12所示)。Keil軟件中提供了各大公司生產(chǎn)的一百多種CPU,可滿足各種工業(yè)控制系統(tǒng)的需求。圖1-12工程設(shè)置窗口中的Device窗口

(2)設(shè)置對(duì)話框中的Target頁(yè)面。如圖1-13所示,XTAL后面的數(shù)值是晶振頻率值,默認(rèn)值是所選目標(biāo)CPU的最高可用頻率值,對(duì)于我們所選的AT89C51而言是24?MHz。該數(shù)值與最終產(chǎn)生的目標(biāo)代碼無(wú)關(guān),僅用于軟件模擬調(diào)試時(shí)顯示程序執(zhí)行的時(shí)間。正確設(shè)置該數(shù)值可使顯示時(shí)間與實(shí)際所用的時(shí)間一致,一般將其設(shè)置成與硬件所用晶振頻率相同。如果沒(méi)必要了解程序執(zhí)行的時(shí)間,也可以不設(shè)置,這里設(shè)置為12.0。圖1-13工程設(shè)置窗口中的Target頁(yè)面

(3)?MemoryModel頁(yè)面設(shè)置(如圖1-13所示)。MemoryModel用于設(shè)置RAM使用情況,有3個(gè)選擇項(xiàng):Small是所有變量都在單片機(jī)的內(nèi)部RAM中;Compact是可以使用一頁(yè)外部擴(kuò)展RAM;而Large則是可以使用全部外部的擴(kuò)展RAM。CodeRomSize用于設(shè)置ROM空間,同樣也有3個(gè)選擇項(xiàng):即Small模式,只用于小于2?KB的程序空間;Compact模式,表示單個(gè)函數(shù)的代碼量不能超過(guò)2KB,整個(gè)程序可以使用64?KB程序空間;Large模式,可用全部64KB空間。UseOn-chipROM選擇項(xiàng)確認(rèn)是否僅使用片內(nèi)ROM。Operating項(xiàng)是操作系統(tǒng)選擇,RTX51是Keil公司開發(fā)的用于8051系列單片機(jī)的多任務(wù)實(shí)時(shí)操作系統(tǒng)。Keil提供了兩種操作系統(tǒng),RTX51TINY和RTX51FULL。RTX51TINY是RTX51FULL的子集,僅支持按時(shí)間片循環(huán)任務(wù)調(diào)度,支持任務(wù)間信號(hào)傳遞,最大16個(gè)任務(wù),可以并行地利用中斷。它具有以下等待操作:超時(shí)、另一個(gè)任務(wù)或中斷的信號(hào)。它不能進(jìn)行信息處理,不支持存儲(chǔ)區(qū)的分配和釋放,不支持占先式調(diào)度。RTX51TINY是一個(gè)很小的內(nèi)核,完全集成在KeilCx51編譯器中。更重要的是,它僅占用800字節(jié)左右的程序存儲(chǔ)空間,可以在沒(méi)有外部數(shù)據(jù)存儲(chǔ)器的8051系統(tǒng)中運(yùn)行,但

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論