配套課件-單片機(jī)原理與C51語言程序設(shè)計(jì)基礎(chǔ)教程_第1頁
配套課件-單片機(jī)原理與C51語言程序設(shè)計(jì)基礎(chǔ)教程_第2頁
配套課件-單片機(jī)原理與C51語言程序設(shè)計(jì)基礎(chǔ)教程_第3頁
配套課件-單片機(jī)原理與C51語言程序設(shè)計(jì)基礎(chǔ)教程_第4頁
配套課件-單片機(jī)原理與C51語言程序設(shè)計(jì)基礎(chǔ)教程_第5頁
已閱讀5頁,還剩518頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、重點(diǎn)內(nèi)容: 單片機(jī)簡(jiǎn)介 單片機(jī)的應(yīng)用領(lǐng)域及趨勢(shì)常用51單片機(jī)介紹 本章小結(jié)第1章 緒 論 一、單片機(jī)簡(jiǎn)介 微處理器:如果把運(yùn)算器和控制器封裝在一塊芯片上,則稱該芯片為微處理器(MPU,Micro Processing Unit)或者是中央處理器(CPU,Central Processing Unit)。 微型計(jì)算機(jī):將微處理器與大規(guī)模集成電路制成的存儲(chǔ)器,輸入輸出接口電路在印制電路板上用總線連接起來,就夠成了微型計(jì)算機(jī)。 彈片機(jī):如果在一塊芯片上,集成了一臺(tái)微型計(jì)算機(jī)的四個(gè)組成部分,則稱為單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。 換句話而言,單片機(jī)是一塊芯片上的微型計(jì)算機(jī)。以單片機(jī)為核心的硬件電路稱為單片

2、機(jī)系統(tǒng),它屬于嵌入式系統(tǒng)地應(yīng)用范疇。1、微處理器、微型計(jì)算機(jī)與單片機(jī)一、單片機(jī)簡(jiǎn)介 1、微處理器、微型計(jì)算機(jī)與單片機(jī) 右圖是雙列直插以及PLCC封裝的51單片機(jī)芯片AT89S52。 它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。一、單片機(jī)簡(jiǎn)介 1、微處理器、微型計(jì)算機(jī)與單片機(jī) 單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心,配以輸入、輸出、顯示、控制等外圍電路和軟件,能實(shí)現(xiàn)一種或多種功能的實(shí)用系統(tǒng)。所以說,單片機(jī)應(yīng)用系統(tǒng)是由硬件和軟件組成的,硬件是應(yīng)用系統(tǒng)的基礎(chǔ),軟件則在硬件的基礎(chǔ)上對(duì)其資源進(jìn)行合理調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要求的任務(wù)

3、,二者相互依賴,缺一不可。一、單片機(jī)簡(jiǎn)介 2、單片機(jī)的分類和指標(biāo)單片機(jī)從用途上可分成專用型單片機(jī)和通用型單片機(jī)兩大類。專用型單片機(jī)是為某種專門用途而設(shè)計(jì)的,如DVD控制器和數(shù)碼攝像機(jī)控制器芯片等。在用量不大的情況下,設(shè)計(jì)和制造這樣的專用芯片成本很高,而且設(shè)計(jì)和制造的周期也很長。我們通常所用的都是通用型單片機(jī),通用型單片機(jī)把所有資源(如ROM、I/O等)全部提供給用戶使用。一、單片機(jī)簡(jiǎn)介 2、單片機(jī)的分類和指標(biāo)位數(shù):即單片機(jī)能夠一次處理的數(shù)據(jù)的寬度存儲(chǔ)器:包括程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,程序存儲(chǔ)器空間較大,數(shù)據(jù)存儲(chǔ)器的字節(jié)數(shù)則通常為幾十字節(jié)到幾百字節(jié)之間。I/O口:即輸入輸出口,用戶可以根據(jù)自己的需

4、要進(jìn)行選擇。速度:指的是CPU的處理速度,以每秒執(zhí)行多少條指令衡量,常用單位是MIPS(百萬條指令每秒),工作電壓:通常工作電壓是5V功耗:低功耗是現(xiàn)代單片機(jī)所追求的一個(gè)目標(biāo)溫度:?jiǎn)纹瑱C(jī)根據(jù)工作溫度可分為民用級(jí)(商業(yè)級(jí))、工業(yè)級(jí)和軍用級(jí)三種。附加功能:有的單片機(jī)有更多的功能,用戶可根據(jù)自己的需要選擇最適合自己的產(chǎn)品。一、單片機(jī)簡(jiǎn)介 3、單片機(jī)的特點(diǎn)單片機(jī)作為微機(jī)的一種,它具有如下特點(diǎn):1)具有優(yōu)異的性能價(jià)格比。2)集成度高、體積小、可靠性高。3)控制功能強(qiáng),開發(fā)應(yīng)用方便。4)低電壓、低功耗。一、單片機(jī)簡(jiǎn)介 4、如何學(xué)習(xí)單片機(jī)這門技術(shù)首先,大概了解單片機(jī)的結(jié)構(gòu)其次,要有大量的實(shí)例練習(xí)第三,要多結(jié)

5、合外圍電路,如流水燈、數(shù)碼管、獨(dú)立鍵盤、矩陣鍵盤、AD或DA(原理一樣)、液晶、蜂鳴器進(jìn)行練習(xí)最后,就是結(jié)合自己的實(shí)際情況,開發(fā)一個(gè)完全具有個(gè)人風(fēng)格,功能完善的電子產(chǎn)品,盡情享受單片機(jī)帶來的歡樂和成就感二、單片機(jī)的應(yīng)用領(lǐng)域及趨勢(shì) 1、應(yīng)用領(lǐng)域單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:(1)在智能儀器儀表上的應(yīng)用(2)在工業(yè)控制中的應(yīng)用(3)在家用電器中的應(yīng)用(4)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用(5)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用二、單片機(jī)的應(yīng)用領(lǐng)域及趨勢(shì) 2、發(fā)展趨勢(shì)隨著科學(xué)技術(shù)的發(fā)展,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是

6、進(jìn)一步向著CMOS 化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。三、常用51單片機(jī)介紹 1、Intel公司系列單片機(jī)三、常用51單片機(jī)介紹 2、Atmel 公司系列單片機(jī)三、常用51單片機(jī)介紹 3、Philips公司單片機(jī) Philips公司生產(chǎn)與MCS-51兼容的80C51系列單片機(jī),片內(nèi)具有I2C總線、A/D轉(zhuǎn)換器、定時(shí)監(jiān)視器、CRT控制器(OSD)等豐富的外圍部件。其主要產(chǎn)品有LPC900系列,LPC76x系列,P8xC5x系列,增強(qiáng)型80C51系列。以P87C552為例,它具有8K ROM,256B RAM,48個(gè)I/O口,3個(gè)16位定時(shí)/計(jì)數(shù)器,15個(gè)中

7、斷源,16MHz的工作頻率,UART, I2C通道,8路10位A/D轉(zhuǎn)換器,工作電壓為2.7-5.5V。 Philips單片機(jī)獨(dú)特的創(chuàng)造是具有I2C總線,這是一種集成電路和集成電路之間的串行通信總線??梢酝ㄟ^總線對(duì)系統(tǒng)進(jìn)行擴(kuò)展,使單片機(jī)系統(tǒng)結(jié)構(gòu)更簡(jiǎn)單,體積更小。I2C總線也可以用于多機(jī)通信。三、常用51單片機(jī)介紹 4、STC公司單片機(jī)STC(宏晶科技)是大陸本土的51單片機(jī)生產(chǎn)企業(yè),其在51單片機(jī)內(nèi)核上集成了大量各種諸如I2C總線接口、ADC轉(zhuǎn)換模塊、PWM控制模塊之類的外圍器件,提供了大量擁有不同擴(kuò)展功能的型號(hào)以供用戶選擇,并且這些單片機(jī)都支持串口下載,可以很方便的修改內(nèi)部軟件,非常適合制作

8、開發(fā)板和系統(tǒng)原型。 。四、本章小結(jié) 單片機(jī)即單片微型計(jì)算機(jī),它把一臺(tái)計(jì)算機(jī)所需要的部件集成在一個(gè)芯片上,單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心,配以外圍電路和軟件,能實(shí)現(xiàn)一種或多種功能的實(shí)用系統(tǒng)。單片機(jī)具有體積小、質(zhì)量輕、價(jià)格便宜等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。四、本章小結(jié) 目前常用的8位單片機(jī)有AVR,PIC,51這三個(gè)系列,51單片機(jī)指的是以Intel 8051為內(nèi)核的一系列單片機(jī),它因?yàn)榧夹g(shù)成熟,學(xué)習(xí)資料豐富而得到廣泛應(yīng)用。51系列單片機(jī)又分為標(biāo)準(zhǔn)型和增強(qiáng)型,增加型51系列與標(biāo)準(zhǔn)型完全兼容,并且一些功能有所增強(qiáng)。Intel、Atme

9、l、Philips、STC等公司是51單片機(jī)的主要廠商。51單片機(jī)型號(hào)繁多,選型時(shí)應(yīng)從芯片的通用性和系統(tǒng)的需求等方面考慮。重點(diǎn)內(nèi)容: 單片機(jī)的內(nèi)部結(jié)構(gòu) 單片機(jī)引腳功能單片機(jī)的工作時(shí)序 單片機(jī)的工作方式單片機(jī)的最小系統(tǒng)本章小結(jié)第2章 單片機(jī)的硬件基礎(chǔ) 一、單片機(jī)的內(nèi)部結(jié)構(gòu) 51單片機(jī)內(nèi)部有一個(gè)8位的面向控制、功能強(qiáng)大的微處理器,其主要功能是運(yùn)算和控制整個(gè)系統(tǒng)協(xié)調(diào)工作。它由運(yùn)算器和控制器兩部分組成。 1 運(yùn)算器運(yùn)算器主要實(shí)現(xiàn)對(duì)操作數(shù)的算術(shù)運(yùn)算、邏輯運(yùn)算和位操作。主要包括算術(shù)邏輯運(yùn)算部件(ALU)、累加器A、寄存器B、程序狀態(tài)字PSW、暫存器、布爾外理器以及十進(jìn)制調(diào)整電路等部件。1、中央處理器一、單

10、片機(jī)的內(nèi)部結(jié)構(gòu)算術(shù)與邏輯部件ALU(Arithmetical Logic Unit)算術(shù)邏輯單元ALU是計(jì)算機(jī)中必不可少的數(shù)據(jù)處理單元之一,主要對(duì)數(shù)據(jù)進(jìn)行算術(shù)邏輯運(yùn)算。從結(jié)構(gòu)上看,該單元實(shí)質(zhì)是一個(gè)全加器,它的運(yùn)算結(jié)果將對(duì)程序狀態(tài)字PSW產(chǎn)生影響。該單元主要完成以下操作:加、減、乘、除運(yùn)算;增量(加1)減量(減1)運(yùn)算;十進(jìn)制數(shù)調(diào)整;位操作中的置位、復(fù)位和取反操作;與、或、異或等運(yùn)算操作;數(shù)據(jù)傳送操作。1、中央處理器一、單片機(jī)的內(nèi)部結(jié)構(gòu)累加器A累加器A是CPU中最繁忙、使用頻度最高的一個(gè)特殊功能寄存器,簡(jiǎn)稱為ACC或A寄存器,其作用為:累加器A作為ALU的輸入數(shù)據(jù)源之一,也是ALU的輸出;CPU

11、中的數(shù)據(jù)傳送大多數(shù)都通過累加器,累加器A是一個(gè)非常重要的數(shù)據(jù)中轉(zhuǎn)站。1、中央處理器一、單片機(jī)的內(nèi)部結(jié)構(gòu) 寄存器B寄存器B是一個(gè)8位寄存器,是為ALU進(jìn)行乘、除運(yùn)算而設(shè)置的。在執(zhí)行乘法運(yùn)算指令的時(shí)候,寄存器B用于存放其中的一個(gè)乘數(shù)和乘積的高8位數(shù)。在執(zhí)行出發(fā)運(yùn)算的時(shí)候,寄存器B用于存放除數(shù)和余數(shù)。在其他情況下,B寄存器可以作為一個(gè)普通的寄存器使用。1、中央處理器一、單片機(jī)的內(nèi)部結(jié)構(gòu)程序狀態(tài)字程序狀態(tài)字PSW(Program Status Words)是一個(gè)8位的專用寄存器,用于存儲(chǔ)程序運(yùn)行中的各種狀態(tài)信息。它被逐位定義,可以位尋址,1、中央處理器一、單片機(jī)的內(nèi)部結(jié)構(gòu) 暫存器 用以暫存進(jìn)入運(yùn)算器之

12、前的數(shù)據(jù)。 布爾處理器布爾處理器(位處理器)是51單片機(jī)ALU所具有的一種功能。單片機(jī)指令系統(tǒng)的位處理指令集(17條位操作指令),存儲(chǔ)器中的位地址空間,以及借用程序狀態(tài)寄存器PSW中的進(jìn)位標(biāo)志CY做為位操作“累加器”,構(gòu)成了51單片機(jī)內(nèi)的布爾處理器。它可對(duì)直接尋址的位(bit)變量進(jìn)行位處理,如置位、清零、取反、測(cè)試轉(zhuǎn)移以及邏輯“與”、“或”等位操作,使用戶在編程時(shí)可以利用指令完成原來單憑復(fù)雜的硬件邏輯鎖完成的功能,并可方便地設(shè)置標(biāo)志等。十進(jìn)制調(diào)整電路顧名思義,用來進(jìn)行十進(jìn)制調(diào)整的電路。1、中央處理器一、單片機(jī)的內(nèi)部結(jié)構(gòu) 2 控制器控制器是控制計(jì)算機(jī)系統(tǒng)各種操作的部件,其功能是控制指令的讀取、

13、譯碼和執(zhí)行,對(duì)指令的執(zhí)行過程進(jìn)行定時(shí)控制,并根據(jù)執(zhí)行結(jié)果決定其后的操作。它包括時(shí)鐘發(fā)生器、定時(shí)控制邏輯、復(fù)位電路、指令寄存器IR、指令譯碼器ID、程序計(jì)數(shù)器PC、程序地址寄存器、數(shù)據(jù)指針DPTR、堆棧指針SP等。1、中央處理器一、單片機(jī)的內(nèi)部結(jié)構(gòu)51系列單片機(jī)的存儲(chǔ)組織采用的是哈佛(Harvard)結(jié)構(gòu),即將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開,程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器具有各自獨(dú)立的尋址方式、尋址空間和控制系統(tǒng)。這種結(jié)構(gòu)對(duì)于單片機(jī)“面向控制”的實(shí)際應(yīng)用極為方便。在物理結(jié)構(gòu)上,51系統(tǒng)單片機(jī)有4個(gè)存儲(chǔ)器空間:程序存儲(chǔ)器:片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器;數(shù)據(jù)存儲(chǔ)器:片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。2、存儲(chǔ)

14、器結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu) 51單片機(jī)內(nèi)部有一個(gè)8位的面向控制、功能強(qiáng)大的微處理器,其主要功能是運(yùn)算和控制整個(gè)系統(tǒng)協(xié)調(diào)工作。它由運(yùn)算器和控制器兩部分組成。 1 運(yùn)算器運(yùn)算器主要實(shí)現(xiàn)對(duì)操作數(shù)的算術(shù)運(yùn)算、邏輯運(yùn)算和位操作。主要包括算術(shù)邏輯運(yùn)算部件(ALU)、累加器A、寄存器B、程序狀態(tài)字PSW、暫存器、布爾外理器以及十進(jìn)制調(diào)整電路等部件。2、存儲(chǔ)器結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu) 1存儲(chǔ)原理為了探討計(jì)算機(jī)的存儲(chǔ)原理,先讓我們做一個(gè)實(shí)驗(yàn):這里有兩盞燈,我們知道燈只有亮和滅兩種狀態(tài),我們能用0和1來代替這兩種狀態(tài),規(guī)定亮為1,滅為0?,F(xiàn)在這兩盞燈總共有幾種狀態(tài)呢?我們列表來看一下,如圖所示:存儲(chǔ)器是利用電平的

15、高低來存放數(shù)據(jù)的。它是由大量寄存器組成的,其中每一個(gè)寄存器就稱為一個(gè)存儲(chǔ)單元。它可存放一個(gè)有獨(dú)立意義的二進(jìn)制代碼。一個(gè)代碼由若干位(bit)組成,代碼的位數(shù)稱為位長,習(xí)慣上也稱為字長。2、存儲(chǔ)器結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)2內(nèi)部程序存儲(chǔ)器51單片機(jī)程序存儲(chǔ)器是用來存放經(jīng)過調(diào)試正確的應(yīng)用程序和表格之類的固定數(shù)據(jù)的。3內(nèi)部數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器由隨機(jī)存儲(chǔ)器RAM組成,這種存儲(chǔ)器又叫讀寫存儲(chǔ)器。它不僅能讀取存放在存儲(chǔ)單元中的數(shù)據(jù),還能隨時(shí)寫入新的數(shù)據(jù),寫入后原來的數(shù)據(jù)就丟失了。斷電后RAM中的信息全部丟失。因此,RAM用來存放運(yùn)算中的數(shù)據(jù)、中間結(jié)果及最終結(jié)果。4特殊功能寄存器在51單片機(jī)內(nèi)部有一個(gè)CPU用

16、來運(yùn)算、控制,有四個(gè)并行I/O口,有程序存儲(chǔ)器,有數(shù)據(jù)存儲(chǔ)器,此外還有定時(shí)/計(jì)數(shù)器,串行I/O口,中斷系統(tǒng),以及一個(gè)內(nèi)部的時(shí)鐘電路。對(duì)并行I/O口的讀寫只要將數(shù)據(jù)送入到相應(yīng)I/O口的鎖存器就可以了,那么對(duì)于定時(shí)/計(jì)數(shù)器,串行I/O口等怎么用呢?在單片機(jī)中有一些獨(dú)立的存儲(chǔ)單元是用來控制這些器件的,被稱之為特殊功能寄存器(SFR)。2、存儲(chǔ)器結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)5存儲(chǔ)器結(jié)構(gòu)特點(diǎn)單片機(jī)的存儲(chǔ)器結(jié)構(gòu)與微型計(jì)算機(jī)有很大的不同。它的兩個(gè)重要的特點(diǎn)是:一是把數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器截然分開,二是存儲(chǔ)器有內(nèi)外之分。對(duì)于面向控制應(yīng)用且又不可能具有磁盤的單片機(jī)系統(tǒng)來說,程序存儲(chǔ)器是至關(guān)重要的,但數(shù)據(jù)存儲(chǔ)器也不可

17、少。為此單片機(jī)的存儲(chǔ)器分為數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,其地址空間、存取指令和控制信號(hào)各有一套。2、存儲(chǔ)器結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)51系列單片機(jī)有1個(gè)8位雙向并行I/O端口P0和3個(gè)8位準(zhǔn)雙向并行I/O端口P1P3。每一位端口都由口鎖存器、輸出鎖存器和輸入緩沖器組成。它們已被歸入專用寄存器之列,并且具有字節(jié)尋址和位尋址功能。3、I/O端口結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)1P0端口圖表示了P0端口中某一位的電路結(jié)構(gòu)。由圖可見,電路中包含有一個(gè)數(shù)據(jù)輸出鎖存器、兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器、一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)電路和一個(gè)輸出控制電路。當(dāng)對(duì)P0口進(jìn)行寫操作時(shí),由鎖存器和驅(qū)動(dòng)電路構(gòu)成數(shù)據(jù)輸出通路。由于通路中已有輸出鎖存器,因

18、此數(shù)據(jù)輸出時(shí)可以與外設(shè)直接連接,而不需再加數(shù)據(jù)鎖存電路。3、I/O端口結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)P1端口某一位的電路結(jié)構(gòu)如圖2.7所示。因?yàn)镻1口通常是作為通用I/O口使用的,所以在電路結(jié)構(gòu)上與P0口有一些不同之處,主要表現(xiàn)為2點(diǎn):首先它不再需要多路轉(zhuǎn)接電路MUX;其次是電路的內(nèi)部有上拉電阻,與場(chǎng)效應(yīng)管共4同組成輸出驅(qū)動(dòng)電路。為此,P1口作為輸出口使用時(shí),已經(jīng)能向外提供推拉電流負(fù)載,無需再外接上拉電阻。當(dāng)P1口作為輸入口使用時(shí),同樣也需先向其鎖存器寫“1”,使輸出驅(qū)動(dòng)電路的FET截止。3、I/O端口結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)P2端口的電路如圖2.8所示。P2口電路比P1口電路多了一個(gè)多路轉(zhuǎn)接電路M

19、UX,這又正好與P0口一樣。P2口可以作為通用I/O口使用,這時(shí)多路轉(zhuǎn)接電路開關(guān)倒向鎖存器Q端。通常情況下,P2口是作為高位地址線使用而不作為數(shù)據(jù)線使用,此時(shí)多路轉(zhuǎn)接電路開關(guān)應(yīng)倒向相反方向。3、I/O端口結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)P3端口某一位的電路如圖2.9所示。P3口的特點(diǎn)在于,為適應(yīng)引腳信號(hào)第二功能的需要,增加了第二功能控制邏輯。對(duì)于于第二功能信號(hào)有輸入和輸出兩類。 3、I/O端口結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)8051有兩個(gè)16位定時(shí)器/計(jì)數(shù)器T0和T1,分別與2個(gè)8位寄存器T0L、T0H及T1L、T1H對(duì)應(yīng)。8051的定時(shí)器/計(jì)數(shù)器可以工作在定時(shí)方式或計(jì)數(shù)方式。1定時(shí)方式定時(shí)方式實(shí)現(xiàn)對(duì)單片機(jī)內(nèi)

20、部的時(shí)鐘脈沖或分頻后的脈沖進(jìn)行計(jì)數(shù)。2計(jì)數(shù)方式實(shí)現(xiàn)對(duì)外部脈沖的計(jì)數(shù),讀者將對(duì)定時(shí)器/計(jì)數(shù)器將在后續(xù)章節(jié)中進(jìn)行具體學(xué)習(xí)。4、定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)一、單片機(jī)的內(nèi)部結(jié)構(gòu)在單片機(jī)系統(tǒng)設(shè)計(jì)設(shè)計(jì)中,中斷是一個(gè)必不可少的概念。在程序的執(zhí)行過程中,有時(shí)候需要停下手頭的工作轉(zhuǎn)而執(zhí)行其他的一些重要工作,并在執(zhí)行完后返回到原來的執(zhí)行的程序中,然后繼續(xù)執(zhí)行未完成的任務(wù)。這就是中斷的一般過程。8051有5個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)控制,可以實(shí)現(xiàn)兩個(gè)中斷服務(wù)嵌套。兩個(gè)外部中斷INT0、INT1,兩個(gè)定時(shí)器中斷T0、T1,還有一個(gè)串行口中斷。中斷的控制由中斷允許寄存器IE和中斷優(yōu)先級(jí)寄存器IP實(shí)現(xiàn)。關(guān)于中斷的設(shè)置和實(shí)現(xiàn)將在后續(xù)

21、章節(jié)進(jìn)行具體講解學(xué)習(xí)。5、中斷系統(tǒng)二、單片機(jī)引腳功能1供電引腳供電引腳接入AT89S51的工作電源。VCC:電源正級(jí),一般為+5V。GND:電源地。2、引腳及功能二、單片機(jī)引腳功能2I/O引腳顧名思義,就是輸入/輸出引腳。P0 :P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1:P1 口是一個(gè)具有內(nèi)部上拉電阻的8

22、 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器T2的觸發(fā)輸入(P1.1/T2EX),具體功能見表2.7。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。2、引腳及功能二、單片機(jī)引腳功能P2:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高

23、,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用

24、時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,見表2.8。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。2、引腳及功能二、單片機(jī)引腳功能3控制引腳控制引腳包括RST、ALE、 、 ,此類引腳提供控制信號(hào),有些引腳具有復(fù)用功能。RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。2、引腳及功能二、單片機(jī)引腳功能ALE/PROG :地址

25、鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。PSEN :外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)

26、器執(zhí)行外部代碼時(shí),PSEN 在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN 將不被激活。EA /VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA 應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。2、引腳及功能二、單片機(jī)引腳功能外接晶振引腳外接晶振引腳與片內(nèi)的反相放大器構(gòu)成一個(gè)振蕩器,他提供了單片機(jī)的時(shí)鐘控制信號(hào),也可采用外部晶體振蕩器。XTAL1:接外部晶體的一個(gè)引腳,在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端。若采用外部振蕩器,該引腳接收振蕩器的信號(hào),即把此信號(hào)直接接到內(nèi)部時(shí)

27、鐘發(fā)生器的輸入端。XTAL2:借外部晶體的另一端,在單片機(jī)內(nèi)部接到反相放大器的輸出端,當(dāng)采用外接晶體振蕩器時(shí),此引腳可以不接。2、引腳及功能三、單片機(jī)工作時(shí)序時(shí)鐘信號(hào)可以由兩種方式產(chǎn)生:一種是內(nèi)部方式,利用芯片內(nèi)部的振蕩電路產(chǎn)生時(shí)鐘信號(hào);另一種為外部方式,時(shí)鐘信號(hào)由外部引入。51單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反相放大器,引腳XTAL1 和XTAL2 分別是放大器的輸入、輸出端。外接石英晶體和陶瓷電容構(gòu)成自激振蕩器。這種方式稱為內(nèi)部時(shí)鐘方式。如果振蕩器已起振,則在XTAL2引腳上輸出3V左右的正弦波。振蕩器的頻率取決于晶振的頻率。電容C1和C2主要作用是幫助起振(諧振),其值的大小對(duì)振蕩頻率也

28、有影響。因此常用調(diào)節(jié)C1或C2的容量大小對(duì)頻率進(jìn)行微調(diào),電容容量在通常在20pF100pF之間選擇,當(dāng)時(shí)鐘頻率為12MHz時(shí)典型值為30Pf。1、時(shí)鐘電路三、單片機(jī)工作時(shí)序2、時(shí)序定時(shí)單位(1)拍節(jié)與狀態(tài)把振蕩脈沖的周期定義為拍節(jié)(用P表示)。振蕩脈沖經(jīng)過二分頻后,就是單片機(jī)的時(shí)鐘信號(hào)的周期,其定義為狀態(tài)(用S表示)。這樣,一個(gè)狀態(tài)就包含兩個(gè)拍節(jié),具前半周期對(duì)應(yīng)的拍節(jié)叫拍節(jié)1(P1),后半周期對(duì)應(yīng)的拍節(jié)叫拍節(jié)2(P2)。(2) 機(jī)器周期51單片機(jī)采用定時(shí)控制方式, 因此它有固定的機(jī)器周期。規(guī)定一個(gè)機(jī)器周期的寬度為6個(gè)狀態(tài),并依次表示為S1S6。由于一個(gè)狀態(tài)又包括兩個(gè)拍節(jié),因此一個(gè)機(jī)器周期總共有

29、12個(gè)拍節(jié),分別記作S1P1、S1P2、S6P2。由于一個(gè)機(jī)器周期共有12個(gè)振蕩脈沖周期, 因此機(jī)器周期就是振蕩脈沖的十二分頻。當(dāng)振蕩脈沖頻率為12MHz時(shí),一個(gè)機(jī)器周期為1s;當(dāng)振蕩脈沖頻率為6MHz時(shí),一個(gè)機(jī)器周期為2s。三、單片機(jī)工作時(shí)序2、時(shí)序定時(shí)單位(3) 指令周期指令周期是最大的時(shí)序定時(shí)單位, 執(zhí)行一條指令所需要的時(shí)間稱為指令周期。它一般由若干個(gè)機(jī)器周期組成。不同的指令,所需要的機(jī)器周期數(shù)也不相同。通常,包含一個(gè)機(jī)器周期的指令稱為單周期指令,包含兩個(gè)機(jī)器周期的指令稱為雙周期指令,等等指令的運(yùn)算速度與指令所包含的機(jī)器周期有關(guān),機(jī)器周期數(shù)越少的指令執(zhí)行速度越快。MCS-51單片機(jī)通???/p>

30、以分為單周期指令、雙周期指令和四周期指令等三種。四周期指令只有乘法和除法指令兩條,其余均為單周期和雙周期指令。單片機(jī)執(zhí)行任何一條指令時(shí)都可以分為取指令階段和執(zhí)行指令階段,時(shí)序如圖2.13所示,(a)為單字節(jié)單周期指令;(b)為雙字節(jié)單周期指令;(c)為單字節(jié)雙周期指令。三、單片機(jī)工作時(shí)序3、指令的執(zhí)行時(shí)序圖(a),(b)所示分別給出了單字節(jié)單周期和雙字節(jié)單周期指令的時(shí)序。單周期指令的執(zhí)行始于S1P2,這時(shí)操作碼被鎖存到指令寄存器內(nèi)。若是雙字節(jié),則在同一機(jī)器周期的S4讀第二字節(jié)。若是單字節(jié)指令,則在S4仍有讀操作,但被讀入的字節(jié)無效,且程序計(jì)數(shù)器PC并不增量。圖(c)給出了單字節(jié)雙周期指令的時(shí)序

31、,兩個(gè)機(jī)器周期內(nèi)進(jìn)行4次讀操作碼操作。因?yàn)槭菃巫止?jié)指令,所以,后三次讀操作都是無效的。四、單片機(jī)工作方式1、復(fù)位方式1上電自動(dòng)復(fù)位上電復(fù)位電路只需在RST端接一個(gè)電容至VCC和一個(gè)電阻至VSS即可,加電瞬間,RST端出現(xiàn)一段時(shí)間的高電平,只要高電平保持至少2個(gè)機(jī)器周期,51單片機(jī)就會(huì)執(zhí)行復(fù)位操作,然后把RST恢復(fù)為低電平。電路中,時(shí)間常數(shù)RC越大,上電時(shí)保持高電平的時(shí)間越長,當(dāng)振蕩頻率為12MHz時(shí),典型值C=10F,R=8.2 k,當(dāng)時(shí)鐘頻率選用6MHz時(shí),C=22F,R=1 k。上述參數(shù)比實(shí)際要求的值大很多,但通常設(shè)計(jì)人員并不關(guān)心多出的復(fù)位時(shí)間。四、單片機(jī)工作方式1、復(fù)位方式2人工復(fù)位除了

32、上電復(fù)位外,有時(shí)還需要人工復(fù)位。將一個(gè)按鈕開關(guān)并聯(lián)于上電自動(dòng)復(fù)位電路,就是人工復(fù)位電路。四、單片機(jī)工作方式2、程序執(zhí)行方式程序的執(zhí)行方式是單片機(jī)的基本工作方式。由于復(fù)位后PC=0000H,因此程序執(zhí)行總是從地址0000H開始。1連續(xù)執(zhí)行方式連續(xù)執(zhí)行方式是單片機(jī)執(zhí)行的基本工作方式,所要執(zhí)行的代碼放在程序存儲(chǔ)器ROM中(可以是片內(nèi)或片外),CPU不斷地從程序存儲(chǔ)器中取指令、分析并執(zhí)行。2單步執(zhí)行方式程序的執(zhí)行處于外加脈沖(通常用一個(gè)按鍵產(chǎn)生)的控制下,一般利用中斷來實(shí)現(xiàn)程序的單步執(zhí)行。四、單片機(jī)工作方式3、低功耗方式對(duì)于51單片機(jī)來說,有待機(jī)方式和掉電保護(hù)方式兩種低功耗方式。通過設(shè)置電源控制寄存器

33、PCON的相關(guān)位,可以指定當(dāng)前的工作方式為低功耗方式。PCON寄存器格式如表2.10所示。四、單片機(jī)工作方式3、低功耗方式1待機(jī)方式如果使用指令使PCON寄存器IDL位置“1”,則進(jìn)入待機(jī)方式。這時(shí)振蕩器仍然工作,并向邏輯中斷、串行口和定時(shí)器/計(jì)數(shù)器電路提供時(shí)鐘,但向CPU提供時(shí)鐘的電路被阻,因此CPU不能工作,與CPU相關(guān)的如SP、PC、PWS、ACC以及全部通用寄存器也被“凍結(jié)”在原狀態(tài)。在待機(jī)方式下,中斷功能應(yīng)繼續(xù)保留,一便采用中斷方法退出待機(jī)方式。為此,應(yīng)該引入一個(gè)外中斷請(qǐng)求信號(hào),在單片機(jī)響應(yīng)中斷的同時(shí),IDL位被硬件自動(dòng)清“0”,單片機(jī)就退出待機(jī)模式而進(jìn)入正常工作方式。2掉電保護(hù)方式

34、PCON寄存器的PD位控制單片機(jī)進(jìn)入掉電保護(hù)方式。因此對(duì)于51單片機(jī),在檢測(cè)到電源故障時(shí),除進(jìn)行信息保護(hù)外,還應(yīng)把PD位置“1”,使之進(jìn)入掉電保護(hù)方式。此時(shí)單片機(jī)一切工作都停止,只有內(nèi)部RAM單元的內(nèi)容被保存。五、單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)包括單片機(jī)及其所需的必要的電源、時(shí)鐘、復(fù)位等部件,能使單片機(jī) 處于正常的運(yùn)行狀態(tài)。電源、時(shí)鐘等電路是使單片機(jī)能運(yùn)行的必備條件,可以將最小系統(tǒng)作為應(yīng)用系統(tǒng)的核心部分,通過對(duì)其進(jìn)行存儲(chǔ)器擴(kuò)展、A/D擴(kuò)展等,因此51單片機(jī)最小系統(tǒng)的功能主要如下:能夠運(yùn)行用戶程序。用戶可以復(fù)位單片機(jī)。具有相對(duì)強(qiáng)大的外部擴(kuò)展功能。最小系統(tǒng)的結(jié)構(gòu)如圖2.16所示。六、本章小結(jié)本章主要

35、介紹了單片機(jī)的內(nèi)部結(jié)構(gòu)和基本組成,詳細(xì)介紹了MCS-51單片機(jī)的中央處理器、存儲(chǔ)器結(jié)構(gòu)、輸入輸出接口、引腳、中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器以及單片機(jī)工作方式和最小系統(tǒng)等內(nèi)容,為以后的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。通過本章的學(xué)習(xí),讀者應(yīng)該掌握以下幾個(gè)知識(shí)點(diǎn):1.了解單片機(jī)單片機(jī)的基本結(jié)構(gòu)和組成。2.理解單片機(jī)的運(yùn)行基本原理。3.知道單片機(jī)最小系統(tǒng)的組成。重點(diǎn)內(nèi)容:?jiǎn)纹瑱C(jī)的指令系統(tǒng)概述單片機(jī)的尋址方式單片機(jī)的指令說明本章小結(jié)第3章 單片機(jī)指令系統(tǒng) 一、單片機(jī)的指令系統(tǒng)概述匯編語言是我們后面所講的指令系統(tǒng)的一個(gè)子集,只要指令按格式書寫就構(gòu)成了程序的基本格式。在程序中,指令格式由以下幾部分組成:操作碼 目的操作數(shù),源

36、操作數(shù) ;注釋對(duì)各部分的解釋如下:操作碼:操作碼用助記符表示,它代表了指令的操作功能。操作碼是指令的必需部分,是指令的核心,不可缺少。操作數(shù)(目的操作數(shù)和源操作數(shù)):是指參加操作的數(shù)據(jù)或數(shù)據(jù)的地址。操作數(shù)的個(gè)數(shù)可以是03個(gè)。操作數(shù)與操作碼之間用空格分隔,操作數(shù)與操作數(shù)之間用逗號(hào)“,”分隔。注釋:注釋屬于非必需項(xiàng),是為便于閱讀,對(duì)指令功能作的說明和注解。注釋必須以“;”開始。注釋的長度不限,當(dāng)一行不夠時(shí),可以換行后接著書寫,但是換行時(shí)應(yīng)以分號(hào)“;”開始。1、指令格式一、單片機(jī)的指令系統(tǒng)概述為了方便后面指令系統(tǒng)的學(xué)習(xí)和記憶,我們需要對(duì)51單片機(jī)指令系統(tǒng)中的一些常用符號(hào)進(jìn)行了解。常用符號(hào)的說明如下:

37、(1)#data:8位立即數(shù);(2)#data16:16位立即數(shù);(3)Rn:工作寄存器,R0R7,n為07;(4)Ri:工作寄存器,0或1,i=0或1;(5)Ri:寄存器Ri間接尋址8位存儲(chǔ)單元00HFFH;(6)direct:8位直接尋址,可以是特殊功能寄存器SFR的80HFFH或內(nèi)部存儲(chǔ)單元00H7FH;(7)addr11:11位目的地址。用于AJMP和ACALL指令,均在2KB地址內(nèi)轉(zhuǎn)移或調(diào)用;2、符號(hào)說明一、單片機(jī)的指令系統(tǒng)概述(8)addr16:16位目的地址。用于LJMP和LCALL指令,可在64KB地址內(nèi)轉(zhuǎn)移或調(diào)用;(9)rel:帶符號(hào)的8位偏移地址,主要應(yīng)用于所有的條件轉(zhuǎn)移指

38、令和SJMP。其范圍是相對(duì)于下一條指令的第一字節(jié)地址128 +127字節(jié);(10)bit:位地址。片內(nèi)RAM中的可尋址位和專用寄存器中的可尋址位;(11)DPTR:數(shù)據(jù)指針,可用于16位的地址寄存器;(12):間接寄存器或者是基址寄存器的前綴。如:DPTR,Ri,A+PC,A+DPTR;(13)A:累加器ACC;(14)B:通用寄存器,常用于乘法MUL和除法DIV的指令;(15)Cy:進(jìn)位標(biāo)志位或者布爾處理器中的累加器。(16) /:位操作數(shù)前綴,表示對(duì)該位操作數(shù)進(jìn)行取反操作。(17)(x):寄存器或存儲(chǔ)單元x的內(nèi)容。(18)(x):以寄存器或存儲(chǔ)單元x的內(nèi)容作為地址的存儲(chǔ)單元的內(nèi)容。:數(shù)據(jù)傳

39、送方式。2、符號(hào)說明二、單片機(jī)的尋址方式立即尋址就是直接將需要訪問的數(shù)據(jù)在指令中給出,這樣的尋址方式就是立即尋址。立即尋址的方式為: MOV A dataH就是一條立即尋址方式的傳送指令,通常我們把出現(xiàn)在指令中的操作數(shù)data稱之為立即數(shù)。假如立即數(shù)是0F4H,則指令為:MOV A 4BH 指令功能是把數(shù)據(jù)4BH傳送到累加器A中。值得注意的一點(diǎn)是:在立即數(shù)尋址中立即數(shù)前面必須要加上一個(gè)“”號(hào)。1、立即尋址二、單片機(jī)的尋址方式直接尋址就是直接在指令中指定操作數(shù)的地址,-比如:MOV A,3AH 其功能就是將地址為3AH的存儲(chǔ)單元中數(shù)據(jù)取出來傳送給累加器A。這里的操作數(shù)就是直接通過數(shù)據(jù)存儲(chǔ)器的地址

40、3AH來指定的。直接尋址方式的尋址范圍僅限于內(nèi)部數(shù)據(jù)存儲(chǔ)器。對(duì)于內(nèi)部數(shù)據(jù)存儲(chǔ)器的低128個(gè)字節(jié)可以直接通過地址的方式來指定,而對(duì)于高128個(gè)字節(jié)除了可以通過地址的方式來指定外還可以通過特殊功能寄存器的寄存器符號(hào)給出。2、直接尋址二、單片機(jī)的尋址方式寄存器尋址方式就是操作數(shù)存儲(chǔ)在寄存器中,指定寄存器就得到了操作數(shù),例如:MOV A,R0其功能是將寄存器R0中的數(shù)據(jù)傳送到累加器A中,這樣通過直接指定寄存器的方式進(jìn)行尋址即為寄存器尋址。可以采用這種方式進(jìn)行尋址分寄存器包括通用寄存器和部分專用寄存器,比如工作寄存器R0-R7、累加器ACC、通用寄存器B 、數(shù)據(jù)指針DPTR、位累加器Cy。3、寄存器尋址

41、二、單片機(jī)的尋址方式寄存器間接尋址就是通過寄存器指定數(shù)據(jù)存儲(chǔ)單元的地址,寄存器中存儲(chǔ)的是地址。采用用寄存器間接尋址方式時(shí)應(yīng)在寄存器前加上符號(hào)。比如:MOVE A,R0它的功能就是將R0中所存儲(chǔ)的地址所指向的存儲(chǔ)單元中的數(shù)據(jù)取出來傳送到累加器中去。對(duì)于這種寄存器間接尋址,用來存儲(chǔ)地址的寄存器只能為R0或R1或DPTR。其中R0和R1用來訪問片內(nèi)數(shù)據(jù)存儲(chǔ)器的低128字節(jié)和片外數(shù)據(jù)存儲(chǔ)器的低256字節(jié),DPTR用來訪問片外數(shù)據(jù)存儲(chǔ)器。比如:MOVX A ,DPTR它的功能是將外RAM DPTR所指存儲(chǔ)單元中的數(shù)據(jù)傳送至累加器A中。4、間接尋址二、單片機(jī)的尋址方式變址尋址是以某個(gè)寄存器的內(nèi)容為基礎(chǔ),然

42、后在這個(gè)基礎(chǔ)上再加上地址偏移量,形成真正的操作數(shù)地址,需要特別指出的是用來作為基礎(chǔ)的寄存器可以是PC或是DPTR,地址偏移量存儲(chǔ)在累加器A中比如:MOV A,A+DPTRMOV A,A+PCJMP A+DPTR前2條意思就是分別將DPTR、PC內(nèi)存儲(chǔ)的地址和累加器A里面的偏移量相加最后根據(jù)得到的地址來查找相應(yīng)的存儲(chǔ)單元。最后一條是無條件轉(zhuǎn)移指令。5、變址尋址二、單片機(jī)的尋址方式相對(duì)尋址主要是針對(duì)跳轉(zhuǎn)指令而言的。對(duì)于跳轉(zhuǎn)指令,跳轉(zhuǎn)去的目標(biāo)指令的地址是通過正在執(zhí)行的指令地址來確定的,一般是采用正在執(zhí)行的指令地址加上偏移量的方式。即:轉(zhuǎn)移目的地址當(dāng)前PC值轉(zhuǎn)移指令字節(jié)數(shù)+相對(duì)偏移量rel我們后面所講

43、的條件轉(zhuǎn)移指令都是相對(duì)尋址方式,如:JZ rel;若(A)= 0,則PC(PC)+ 2 + rel ;若(A)0,則PC(PC)+ 2 JNZ rel;若(A)0,則PC(PC)+ 2 + rel ;若(A)= 0,則PC(PC)+ 2由于這2條指令都是二字節(jié)指令,所以轉(zhuǎn)移指令字節(jié)數(shù)為2。偏移量可以是正也可以是負(fù),偏移量是采用有符號(hào)數(shù)的存儲(chǔ)形式即補(bǔ)碼的形式來存儲(chǔ)的,所能表示的范圍是-128+128。6、相對(duì)尋址二、單片機(jī)的尋址方式位尋址方式是指將要訪問的數(shù)據(jù)是一個(gè)單獨(dú)的位,指定位數(shù)據(jù)的方式有:通過位地址、通過字節(jié)地址加點(diǎn)及位數(shù)、通過寄存器名加點(diǎn)及位數(shù)以及通過位的名稱等方式。例如:MOV C,0

44、7H 這條指令的功能是把07H位的狀態(tài)送進(jìn)進(jìn)位位C。位尋址的范圍是有限制的,下面將講述位尋址的尋址范圍7、位尋址二、單片機(jī)的尋址方式1.內(nèi)部RAM中的位尋址區(qū)單元地址為20H2FH,共16個(gè)單元128位,位地址是00H7FH。對(duì)這個(gè)128個(gè)位的尋址使用直接位地址表示。位尋址區(qū)中的位有兩種表示方法,一種是位地址;另一種是單元地址加位。2.專用寄存器的可尋址位可供位尋址的專用寄存器共有11個(gè),實(shí)有尋址位83位。對(duì)這些尋址位在指令中有如下4中表示方法:直接使用位地址。例如PSW寄存器位5地址為0D5H。位名稱表示方法。例如PSW寄存器位5是F0標(biāo)志位,則可使用F0表示該位。單元地址加位數(shù)的表示方法。

45、例如0D0H單元(即PSW寄存器)位5,表示為0D0H.5。專用寄存器符號(hào)加位數(shù)的表示方法。例如PSW寄存器的位5,表示為PSW.5。7、位尋址二、單片機(jī)的尋址方式尋址方式可以做如下小結(jié)。對(duì)于片內(nèi)程序存儲(chǔ)器只能使用變址尋址方式,或者反過來說,變址尋址是一種專門用于程序存儲(chǔ)器的尋址方式。8、尋址方式總匯三、單片機(jī)的指令說明1內(nèi)部RAM中數(shù)據(jù)傳送指令單片機(jī)內(nèi)部的數(shù)據(jù)傳送指令運(yùn)用頻率最高。寄存器、累加器、RAM單元及專用寄存器之間的數(shù)據(jù)可相互傳送。這類指令使用助記符MOV。(1)以累加器A為目的字節(jié)的傳送指令(4條)MOV A,Ri;(Ri)A,i=0、1MOV A,Rn;RnA,n=07 MOV

46、A,#data;dataA MOV A,direct;(direct)A這組指令的功能是將源操作數(shù)所指定的內(nèi)容送入累加器A。源操作數(shù)可以采用寄存器尋址、直接尋址、寄存器間接尋址和立即尋址4種方式。1、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明(2)以工作寄存器Rn為目的字節(jié)的傳送指令(3條)MOV R,A;ARn,n=07MOV Rn,direct;(direct)Rn,n=07MOV Rn,#data ;dataRn,n=07這組指令的功能是把源操作數(shù)所指定的內(nèi)容送到當(dāng)前工作寄存器組R0R7中的某個(gè)寄存器中。源操作數(shù)有寄存器尋址、直接尋址、立即尋址3種方式。例如下面三條指令:MOV R0,A ;把

47、累加器A的內(nèi)容傳送給R0MOV R2,80H ;把80H單元的內(nèi)容傳給R2MOV R6,#60H ;把立即數(shù)60H傳給R61、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明(3)以直接地址為目的字節(jié)的傳送指令MOV direct,A ;A(direct)MOV direct,Rn ;Rn(direct),n=07MOV direct,Ri ;(Ri)(direct),i=0、1MOV direct1,direct2;(direct2)(direct1)MOV direct,#data;data(direct)這組指令的功能是把源操作數(shù)所指定的內(nèi)容送入由直接地址direct所指出的片內(nèi)存儲(chǔ)單元中。源操作數(shù)

48、有寄存器尋址、直接尋址、寄存器間接尋址、立即尋址等方式。例如下面五條指令:MOV 3FH,#3FH ;把立即數(shù)3FH傳送給內(nèi)部RAM的3FH單元MOV 3FH,A ;把累加器A中的內(nèi)容傳送給內(nèi)部RAM的3FH單元MOV 3FH,R0 ;把寄存器R0中的內(nèi)容傳送給內(nèi)部RAM的3FH單元1、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明(4)以寄存器間址為目的字節(jié)的傳送指令(3條)MOV Ri,A ;A(Ri),i=0、1MOV Ri,direct;(direct)(Ri),i=0、1MOV Ri,#data;data(Ri),i=0、1這組指令的功能是把源操作數(shù)所指定的內(nèi)容送入以R0或R1為地址指針的片內(nèi)

49、存儲(chǔ)單元中。源操作數(shù)有寄存器尋址、直接尋址和立即尋址3種方式。與上一組指令功能類似,不再舉例。(5)16位數(shù)據(jù)傳送指令(1條)MOV DPTR,#data16;data16DPTR這是唯一的16位立即數(shù)傳送指令。其功能是把16位常數(shù)送入DPTR中。1、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明2外部RAM數(shù)據(jù)傳送指令累加器A與片外數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)傳送是通過P0口和P2口進(jìn)行的。片外數(shù)據(jù)存儲(chǔ)器的地址總線低8位和高8位分別由P0口和P2口送出,數(shù)據(jù)總線也是通過P0口與低8位地址總線分時(shí)傳送。外部RAM中數(shù)據(jù)傳送均是通過間接尋址的方式來實(shí)現(xiàn)的,使用操作碼助記符MOVX,共有四條指令:MOVX A,DP

50、TR; A(DPTR)MOVX A,Ri; A(Ri)MOVX DPTR,A; (DPTR)AMOVX Ri,A; (Ri)A前兩條指令為外部數(shù)據(jù)存儲(chǔ)器讀指令,后兩條指令為外部數(shù)據(jù)存儲(chǔ)器寫指令。這四條指令共同特點(diǎn)都要經(jīng)過累加器A,外RAM的低8位地址均由P0傳送,高8位地址均由P2傳送,其中8位數(shù)據(jù)也需P0傳送。1、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明3查表指令51系列單片機(jī)的程序存儲(chǔ)器除了存放程序外,還可存放一些常數(shù),被稱為表格。在單片機(jī)指令系統(tǒng)提供了兩條訪問程序存儲(chǔ)器的指令,稱為查表指令,該指令使用助記符MOVC,只能通過累加器A來實(shí)現(xiàn)。共兩條指令:MOVC A,A+PC;PC(PC)+1

51、,A(A)+PCMOVC A,A+DPTR;A(A+DPTR)前一條指令由PC作為基址寄存器,它雖然提供16位地址,但其基址值是固定的,A+PC中的PC是程序計(jì)數(shù)器的當(dāng)前內(nèi)容(查表指令的地址加1),所以它的查表范圍是查表指令后256B的地址空間。后一條指令采用DPTR作為基址寄存器,它的尋址范圍為整個(gè)程序存儲(chǔ)器的64KB空間,所以表格可以放在程序存儲(chǔ)器的任何位置。缺點(diǎn)是若DPTR已有它用,在上式表首地址之前必須保護(hù)現(xiàn)場(chǎng),執(zhí)行完查表后再執(zhí)行恢復(fù)。1、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明數(shù)據(jù)交換指令數(shù)據(jù)交換主要用在累加器和其它內(nèi)部RAM中的數(shù)據(jù)交換,數(shù)據(jù)交換指令分為三類: (1)整字節(jié)交換指令 X

52、CH A,Rn;ARn XCH A,Ri;A(Ri) XCH A,direct;A(direct) (2)半字節(jié)交換指令:XCHD A,Ri ;A30(Ri)30。SWAP A;A74A301、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明堆棧操作指令堆棧操作通常用于臨時(shí)保護(hù)數(shù)據(jù)及子程序調(diào)用時(shí)保護(hù)現(xiàn)場(chǎng)/恢復(fù)現(xiàn)場(chǎng)。共有兩條指令。PUSH direct;SPSP+1,(SP)(direct)POP direct ;(direct)(SP),SPSP1PUSH為壓棧指令,將指定的直接尋址單元的內(nèi)容壓入堆棧。先將堆棧指針SP的內(nèi)容+1,指向棧頂?shù)囊粋€(gè)單元,然后把指令指定的直接尋址單元內(nèi)容送入該單元。POP為出棧

53、指令,它是將當(dāng)前棧指針SP所指示的單元內(nèi)容彈出到指定的內(nèi)RAM單元中,然后再將SP減1。以上指令結(jié)果不影響程序狀態(tài)字寄存器PSW標(biāo)志。1、數(shù)據(jù)傳送類指令 三、單片機(jī)的指令說明1加法指令加法指令使用助記符ADD,運(yùn)算時(shí)不帶進(jìn)位位。共有4條:ADD ,data ;dataADD ,direct ;(direct)ADD,Ri ;A(Ri)ADD ,Rn ;Rn這組指令的功能是把源操作數(shù)所指出的內(nèi)容與累加器A的內(nèi)容相加,執(zhí)行結(jié)果存入A中。該運(yùn)算會(huì)影響程序狀態(tài)字PSW中的CY、AC、OV。如果位7有進(jìn)位,則進(jìn)位位CY置“1”,否則清“0”;如果位3有進(jìn)位,則半進(jìn)位位AC置“1”,否則清“0”。若看做兩

54、個(gè)帶符號(hào)數(shù)相加,還要判斷溢出位OV。若OV為“1”,表示和數(shù)溢出。例如,執(zhí)行A=0C3H,執(zhí)行指令A(yù)DD ,#0AAH,則結(jié)果A=6DH,CY=1,OV=1,AC=0,P=1。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明2帶進(jìn)位加法指令A(yù)DDC帶進(jìn)位的加法指令使用助記符ADDC,共有4條:ADDC ,data;dataCYADDC ,direct ;(direct)CYADDC ,Ri ;A(Ri)CYADDC ,Rn ;RnCY這組指令的功能與上一組加法指令A(yù)DD相似,唯一不同的是計(jì)算加法時(shí)同時(shí)還要加上CY中的值。運(yùn)算結(jié)果對(duì)PSW各位的影響同上述加法指令。帶進(jìn)位加法指令多用于多字節(jié)數(shù)的加法運(yùn)算,

55、低位字節(jié)相加時(shí)可能產(chǎn)生進(jìn)位。因此,高位字節(jié)運(yùn)算時(shí),必須使用帶進(jìn)位的加法運(yùn)算。例如,設(shè)R0=55H,A=OAAH,Cy=1,執(zhí)行指令A(yù)DDC A ,R0后,結(jié)果為A=00H,Cy=0,AC=0,OV=0, P=0。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明3帶借位減法指令帶借位減法指令使用助記符SUBB,共有4條:SUBB A ,#data;AAdataCYSUBB A ,Rn;AARnCYSUBB A ,direct;AA(direct)CYSUBB A ,Ri;AA(Ri)CY這組指令的功能是將累加器中的數(shù)減去源操作數(shù)所指出的數(shù)和進(jìn)位位CY,其差值存放在累加器中。減法運(yùn)算結(jié)果對(duì)程序狀態(tài)標(biāo)志寄存

56、器PSW中的影響如下:減法運(yùn)算的最高位有借位時(shí),進(jìn)位位Cy置位為1,否則Cy為0。減法運(yùn)算時(shí)低4位向高4位有借位時(shí),輔助進(jìn)位位AC置位為1,否則AC為0。減法運(yùn)算過程中,位6和位7同時(shí)借位時(shí)溢出標(biāo)志位OV為1,否則OV為0。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明運(yùn)算結(jié)果中“1”的個(gè)數(shù)為奇數(shù)時(shí)(注意:不計(jì)借CY中的1),奇偶校驗(yàn)位P置1,否則P為0。由于減法只有帶借位減法一條指令,所以在單字節(jié)相減時(shí),須先清進(jìn)位位CY。減法指令執(zhí)行過程與加法類似,需強(qiáng)調(diào)的一點(diǎn)是,減法運(yùn)算在計(jì)算機(jī)中實(shí)際上是變成補(bǔ)碼相加。例 設(shè)A=D9H,R0=87H,執(zhí)行指令:SUBB A,R0則結(jié)果為:A=52H,CY=0,A

57、C=0,P=1,OV=0。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明加1指令加1指令使用助記符INC,共有5條指令:INC A ;AA+1INC Rn ;RnRn+1INC Ri ;(Ri)(Ri)+1INC direct ;(direct)+1INC DPTR ; DPTRDPTR+1這組指令的功能是將操作數(shù)所指定單元的內(nèi)容加1。其操作除第一條指令影響奇偶標(biāo)志位外,其余指令均不影響PSW。第4條指令,若直接地址是I/O端口,則其功能是修改輸出口的內(nèi)容。指令執(zhí)行過程中,首先讀入端口的內(nèi)容,然后在CPU中加1,繼而輸出到端口。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明5減1指令減1指令使用助記符DE

58、C,對(duì)于DPTR只能使用加1指令,不能使用減1指令。因此減1指令比加1指令少一條,即4條:DEC A ;AA1DEC Rn ;RnRn1DEC direct ;(direct)(direct)1DEC Ri ;(Ri)(Ri)1該指令是將指定變量減1,結(jié)果仍存在原指定單元。這類指令操作除第一條影響奇偶標(biāo)志值外,其余操作均不影響PSW標(biāo)志。其他情況與加1指令類似。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明6乘法指令乘法指令使用助記符MUL,操作數(shù)只能是累加器A和寄存器B,格式如下:MUL AB;ABA*B這條指令的功能是把累加器A和寄存器B中的8位無符號(hào)整數(shù)相乘,乘積為16位,積低8位存于A中,積

59、高位存于B中。如果積大于255(0FFH),則OV 置1,否則清0,運(yùn)算結(jié)果總使進(jìn)位位CY清0。例如,設(shè)A=5BH,B=0ABH,執(zhí)行指令MUL AB 后,結(jié)果為:乘積3CC9H,A=0C9H,B=3CH,OV=1,CY=0。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明7.除法指令除法指令使用助記符DIV,操作數(shù)只能是累加器A和寄存器B,格式如下:DIV AB;AA/B的商,B余數(shù)這條指令的功能是把累加器A中的8位無符號(hào)整數(shù)除以寄存器B中8位無符號(hào)整數(shù),商放在A中,余數(shù)放在B中,標(biāo)志位CY和OV均清0。若除數(shù)(B)為00H,則執(zhí)行后果為不確定值,OV置1,在任何情況下,進(jìn)位位Cy清0。例如,設(shè)A=

60、87H,B=0CH,執(zhí)行指令DIV AB后,結(jié)果為:A=0BH,B=03H,OV=0,CY=0。2、算術(shù)運(yùn)算類指令 三、單片機(jī)的指令說明8十進(jìn)制調(diào)整指令BCD碼是十位二進(jìn)制碼, 也就是將十進(jìn)制的數(shù)字轉(zhuǎn)化為二進(jìn)制。十進(jìn)制數(shù)09之間的數(shù)字可以用BCD碼來表示,然而,單片機(jī)在進(jìn)行運(yùn)算時(shí),是按照二進(jìn)制規(guī)則進(jìn)行的,對(duì)于4位二進(jìn)制數(shù)是按逢16進(jìn)位的,不符合十進(jìn)制的要求,可能導(dǎo)致錯(cuò)誤的結(jié)果,因此需要用十進(jìn)制調(diào)整指令。十進(jìn)制調(diào)整指令使用助記符DA,操作數(shù)只能是累加器A。其格式如下: DA A這條指令是在進(jìn)行BCD碼加法運(yùn)算時(shí),跟在ADD或ADDC指令之后,用于對(duì)BCD碼的加法運(yùn)算結(jié)果自動(dòng)進(jìn)行修正,使其仍為BC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論