版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)創(chuàng)新在情緒管理中的應(yīng)用
- 科技團(tuán)隊(duì)的創(chuàng)新力培養(yǎng)與策略分析
- 二零二五年度高新技術(shù)產(chǎn)業(yè)園區(qū)場(chǎng)地使用權(quán)轉(zhuǎn)讓合同3篇
- 湘西2025年湖南湘西州保靖縣事業(yè)單位引進(jìn)急需緊缺人才16人筆試歷年參考題庫(kù)附帶答案詳解
- 湖北2025年湖北省水利水電科學(xué)研究院招聘14人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度頁(yè)巖磚綠色建筑材料采購(gòu)與供應(yīng)鏈管理合同4篇
- 二零二五年度成立體育產(chǎn)業(yè)公司出資合同標(biāo)準(zhǔn)4篇
- 【語(yǔ)文】《鄧稼先》課件++2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 2025年牛津譯林版九年級(jí)地理下冊(cè)月考試卷
- 2025合同模板建筑安裝工程拆遷房屋合同范本
- 2024-2025學(xué)年北京石景山區(qū)九年級(jí)初三(上)期末語(yǔ)文試卷(含答案)
- 第一章 整式的乘除 單元測(cè)試(含答案) 2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)下冊(cè)
- 春節(jié)聯(lián)歡晚會(huì)節(jié)目單課件模板
- 中國(guó)高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 抖音音樂(lè)推廣代運(yùn)營(yíng)合同樣本
- 《春酒》琦君完整版
- 教育促進(jìn)會(huì)會(huì)長(zhǎng)總結(jié)發(fā)言稿
- 北師大版(2024新版)七年級(jí)上冊(cè)數(shù)學(xué)第四章《基本平面圖形》測(cè)試卷(含答案解析)
- 心理調(diào)適教案調(diào)整心態(tài)積極應(yīng)對(duì)挑戰(zhàn)
- 小學(xué)數(shù)學(xué)6年級(jí)應(yīng)用題100道附答案(完整版)
評(píng)論
0/150
提交評(píng)論