單片機(jī)原理與應(yīng)用_第1頁(yè)
單片機(jī)原理與應(yīng)用_第2頁(yè)
單片機(jī)原理與應(yīng)用_第3頁(yè)
單片機(jī)原理與應(yīng)用_第4頁(yè)
單片機(jī)原理與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩250頁(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)介

課程目標(biāo)掌握:?jiǎn)纹⑿蜋C(jī)的基本工作原理匯編語(yǔ)言程序設(shè)計(jì)方法單片微型計(jì)算機(jī)應(yīng)用單片微型計(jì)算機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)方法《單片機(jī)原理與應(yīng)用》

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第1頁(yè)。第一章---------1wyx第一章

緒論

本講重點(diǎn):

微處理器、微機(jī)和單片機(jī)的基本概念、單片機(jī)的發(fā)展、常用系列簡(jiǎn)介、應(yīng)用。

講授內(nèi)容:本章主要介紹單片機(jī)的結(jié)構(gòu)特點(diǎn)、單片機(jī)的發(fā)展及常用系列和單片機(jī)的應(yīng)用領(lǐng)域等。重點(diǎn)介紹單片機(jī)的特點(diǎn)以及在各領(lǐng)域中的應(yīng)用。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第2頁(yè)。第一章---------2wyx回

顧:有關(guān)微型計(jì)算機(jī)的基礎(chǔ)知識(shí)

硬件:微處理器,存儲(chǔ)器,總線,I/O接口軟件:系統(tǒng)軟件,應(yīng)用軟件單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第3頁(yè)。第一章---------3wyx第一節(jié)單片機(jī)的特點(diǎn)與發(fā)展概述

一、微處理器、微機(jī)和單片機(jī)的概念微處理器(Microprocessor)——微型計(jì)算機(jī)的控制和運(yùn)算器部分;微型計(jì)算機(jī)(Microcomputer)——有完整運(yùn)算及控制功能的計(jì)算機(jī),包括微處理器、存儲(chǔ)器、輸入/輸出(I/O)接口電路以及輸入/輸出設(shè)備等;

單片機(jī)(singlechipmicrocomputer)——直譯為單片微型計(jì)算機(jī),它將CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器、輸入/輸出(I/O)接口電路、中斷、串行通信接口等主要計(jì)算機(jī)部件集成在一塊大規(guī)模集成電路芯片上,組成單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī)。

單片機(jī)的形態(tài)只是一塊芯片,但是它已具有了微型計(jì)算機(jī)的組成結(jié)構(gòu)和功能。由于單片機(jī)的結(jié)構(gòu)特點(diǎn),在實(shí)際應(yīng)用中常常將它完全融入應(yīng)用系統(tǒng)之中,故而也有將單片機(jī)稱為嵌入式微控制器(embeddedmicrocon-troller)。

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第4頁(yè)。第一章---------4wyx

單片機(jī)有2種基本結(jié)構(gòu)形式:一種是在通用微型計(jì)算機(jī)中廣泛采用的將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合用一個(gè)存儲(chǔ)空間的結(jié)構(gòu),稱為普林斯頓(Princeton)結(jié)構(gòu)或稱馮·諾依曼結(jié)構(gòu);另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi),分別尋址的結(jié)構(gòu),稱為哈佛(Har-vard)結(jié)構(gòu)。Intel公司的MCS-51和80C51系列單片機(jī)采用的是哈佛結(jié)構(gòu)。目前的單片機(jī)以采用程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi)的結(jié)構(gòu)較多。

單片機(jī)的中央處理器(CPU)和通用微處理器基本相同,只是增設(shè)了“面向控制”的處理功能。例如:位處理、查表、多種跳轉(zhuǎn)、乘除法運(yùn)算、狀態(tài)檢測(cè)、中斷處理功能等,增強(qiáng)了控制的實(shí)用性和靈活性。二、

單片機(jī)的一般結(jié)構(gòu)及特點(diǎn)單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第5頁(yè)。1)存儲(chǔ)結(jié)構(gòu)為哈佛結(jié)構(gòu),將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi);單片機(jī)結(jié)構(gòu)特點(diǎn)小結(jié):4)面向控制,位處理功能強(qiáng)。3)芯片引腳具有復(fù)用功能;2)片內(nèi)接口電路豐富,由特殊功能寄存器管理;第一章---------5wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第6頁(yè)。第一章---------6wyx三、單片機(jī)的發(fā)展過(guò)程概述

單片機(jī)作為嵌入式微控制器在工業(yè)測(cè)控系統(tǒng)、智能儀器和家用電器中得到廣泛應(yīng)用。雖然單片機(jī)的品種很多,但其中最具有代表性的是Intel公司的MCS-51系列單片機(jī),以及其與之兼容的派生系列芯片。Intel8位單片機(jī)的發(fā)展經(jīng)歷了以下3代:

第一代:以1976年推出的MCS-48系列為代表。

第二代:以MCS-51的8051為代表的單片機(jī),

第三代:以80C51系列為代表。一般根據(jù)控制應(yīng)用需要:

又可設(shè)計(jì)成通用單片機(jī)、專用單片機(jī)按內(nèi)部數(shù)據(jù)總線的寬度:

單片機(jī)分為4位、8位、16位及32位等。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第7頁(yè)。第一章---------7wyx第二節(jié)常用單片機(jī)系列簡(jiǎn)介

一、ATMEL單片機(jī)

ATMEL公司所生產(chǎn)的ATMEL89系列單片機(jī)(簡(jiǎn)稱89系列單片機(jī)),就是基于Intel公司的MCS-5l系列而研制的,該公司的技術(shù)優(yōu)勢(shì)在于Flash存儲(chǔ)器技術(shù)。標(biāo)準(zhǔn)型單片機(jī)有:AT89C51,AT89LV51,AT89C52,AT89LV52;低檔型單片機(jī)有:AT89C1051和AT89C2051兩種型號(hào)。它們的CPU內(nèi)核和AT89C51是相同的,但并行I/O較少;高檔型單片機(jī)有:AT89S8252,這是一種可下載的Flash單片機(jī)。它和IBM微機(jī)通信進(jìn)行下載程序十分方便。

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第8頁(yè)。第一章---------8wyx

二、Philips單片機(jī)

Philips公司的的單片機(jī)都屬于MCS-51系列兼容的單片機(jī)。從內(nèi)部結(jié)構(gòu)看可以劃分為兩大類,8位機(jī)與80C51兼容系列和16位機(jī)XA系列。Philips公司的的單片機(jī)8位機(jī)的主要產(chǎn)品型號(hào)有P80CXX、P87CXX和P89CXX系列,16位機(jī)的主要產(chǎn)品型號(hào)有PXACXX、PXAGXX和PXASXX等。三、Maxim-Dallas單片機(jī)四、WinBond單片機(jī)五、Motorola單片機(jī)六、其他公司的單片機(jī)

1)NEC單片機(jī);

2)東芝單片機(jī);

3)Epson單片機(jī);

4)PIC單片機(jī)——Microchip公司單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第9頁(yè)。第一章---------9wyx第三節(jié)單片機(jī)的應(yīng)用領(lǐng)域及發(fā)展

一、單片機(jī)在智能儀器中的應(yīng)用智能化儀器內(nèi)部基本上都是用單片機(jī)進(jìn)行信息控制與處理。特別是近年來(lái)出現(xiàn)的數(shù)字信號(hào)處理器DSP是一種速度極高的單片機(jī),它在通信和高速信息處理中起了極大的作用,從而擴(kuò)展了單片機(jī)在智能儀器中的應(yīng)用。二、單片機(jī)在過(guò)程控制中的應(yīng)用單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第10頁(yè)。第一章-------10wyx三、單片機(jī)與e-Home

在家用網(wǎng)絡(luò)系統(tǒng)HNS(homenetworkedsystem)

中,對(duì)家用電器提出了“個(gè)性化”和“社會(huì)化”的要求。家用電器的嵌入式結(jié)構(gòu)有單核嵌入和雙核嵌入2種。例如:一般電腦電飯煲,內(nèi)部只有一個(gè)單片機(jī),這種控制系統(tǒng)是單核嵌入;對(duì)于分體式空調(diào),室內(nèi)機(jī)與室外機(jī)中分別有1個(gè)單片機(jī),為雙核嵌入結(jié)構(gòu)。

四、單片機(jī)與InternetInternet技術(shù)已經(jīng)深入到日常生活和工作中。各類家用電器和智能裝置,它們的“心臟”多是單片機(jī),由于單片機(jī)芯片品種達(dá)數(shù)百種,其硬件結(jié)構(gòu)和指令系統(tǒng)各不相同,不能像PC機(jī)那樣通過(guò)標(biāo)準(zhǔn)的硬件接口和接口軟件直接接入Internet網(wǎng)絡(luò)。

五、單片機(jī)的發(fā)展

1)強(qiáng)化指令功能2)增加各種接口部件3)提高專用程度單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第11頁(yè)。第一章-------11wyx補(bǔ)充內(nèi)容:計(jì)算機(jī)系統(tǒng)中的數(shù)制、碼制復(fù)習(xí)2、帶符號(hào)數(shù)的表示法3、原碼、反碼、補(bǔ)碼特點(diǎn):⑴8位二進(jìn)制數(shù)表示原碼、反碼、補(bǔ)碼的范圍

(-127~+127、-127~+127、-128~+127)⑵補(bǔ)碼的運(yùn)算

在微型計(jì)算機(jī)中,帶符號(hào)數(shù)用補(bǔ)碼表示,減法可用補(bǔ)碼相加來(lái)實(shí)現(xiàn),運(yùn)算結(jié)果為補(bǔ)碼。1、數(shù)制及其互換

數(shù)制基數(shù)字符二進(jìn)制201(B)十進(jìn)制100123456789(D)十六進(jìn)制160123456789ABCDEF(H)單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第12頁(yè)。第二章1----1wyx第二章MCS-51單片機(jī)的硬件結(jié)構(gòu)與工作原理主要內(nèi)容:

1.MCS-51單片機(jī)組成(結(jié)構(gòu)、引腳功能)

2.并行I/O端口結(jié)構(gòu)

3.儲(chǔ)器組織與操作

4.MCS-51單片機(jī)的中斷系統(tǒng)

1)中斷系統(tǒng)概述

2)中斷的處理過(guò)程重點(diǎn)理解:1.MCS-51系列單片機(jī)存儲(chǔ)器結(jié)構(gòu)特點(diǎn)2.單片機(jī)特殊功能寄存器的作用3.不同場(chǎng)合下單片機(jī)引腳的復(fù)用功能4

.單片機(jī)的位處理功能及其作用單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第13頁(yè)。第二章1-----2wyx一、MCS—51單片微機(jī)的硬件組成

1、MCS—51系列單片機(jī)的主要特性

1)

8位字長(zhǎng)CPU和指令系統(tǒng)。

2)1個(gè)片內(nèi)時(shí)鐘振蕩器和時(shí)鐘電路。

3)64K外部數(shù)據(jù)存儲(chǔ)器的地址空間。

4)64K外部程序存儲(chǔ)器的地址空間。

5)32條雙向且分別可位尋址的I/O口線。

6)128字節(jié)的片內(nèi)RAM(52子系列為256字節(jié))。

7)2個(gè)16位定時(shí)器/計(jì)數(shù)器(52子系列為3個(gè))。

8)具有2個(gè)優(yōu)先級(jí)的5個(gè)中斷源結(jié)構(gòu)(52子系列有6個(gè))。

9)1個(gè)全雙工串行口。

10)1個(gè)布爾處理器。

第一節(jié)MCS-51單片機(jī)的基本組成

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第14頁(yè)。第二章1-----3wyx2.MCS—51單片機(jī)的內(nèi)部結(jié)構(gòu)

時(shí)鐘源T0T1P0

P1

P2

P3TXDRXDINT0INT1時(shí)鐘電路SFR和RAMROM定時(shí)/計(jì)數(shù)器CPU串行I/O口中斷系統(tǒng)并行I/O口系統(tǒng)總線圖2—1MCS—51單片機(jī)的功能模塊框圖MCS—51單片機(jī)的功能模塊框圖如圖所示。MCS-51單片機(jī)由8位CPU、只讀存儲(chǔ)器EPROM/ROM、讀寫(xiě)存儲(chǔ)器RAM、并行I/O口、串行I/O口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、振蕩器和時(shí)鐘電路等部分組成。各部分之間通過(guò)內(nèi)部總線相連。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第15頁(yè)。第二章1-----4wyxMCS—51的內(nèi)部結(jié)構(gòu)框圖單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第16頁(yè)。第二章1-----5wyx二、MCS—51單片機(jī)的引腳功能

40腳分三類:1、電源線和時(shí)鐘信號(hào)線共4根

VCC,GND——電源和地+5V電源供電,

X1——時(shí)鐘振蕩器輸入端,內(nèi)部振蕩器輸入端;

X2——時(shí)鐘振蕩器輸出端,內(nèi)部振蕩器輸出端;2、控制線4根RST——復(fù)位信號(hào),晶振工作后2個(gè)機(jī)器周期的高電平復(fù)位CPU.

ALE——地址鎖存信號(hào)訪問(wèn)外部存儲(chǔ)器時(shí)該信號(hào)鎖存低8位地址;無(wú)RAM時(shí),ALE為晶振6分頻;PSEN——外部程序存儲(chǔ)器讀從程序存儲(chǔ)器中取指令或讀取數(shù)據(jù)時(shí),該信號(hào)有效。EA——程序存儲(chǔ)器有效地址,EA=1從內(nèi)部開(kāi)始執(zhí)行程序;EA=0從外部開(kāi)始執(zhí)行程序;3、I/O口線32根----MCS-51系列單片機(jī)P0、P1、P2、P3共32位,對(duì)應(yīng)著芯片的32根引腳。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第17頁(yè)。第二章

1-----6wyx三、振蕩器、時(shí)鐘電路及時(shí)序

1.時(shí)鐘電路

MCS—5l單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTALl和XTAL2分別是反相放大器的輸入端和輸出端,由這個(gè)放大器與作為反饋元件的片外晶體或陶瓷諧振器一起構(gòu)成了一個(gè)自激振蕩器,如圖2—4所示。這種方式形成的時(shí)鐘信號(hào)稱為內(nèi)部時(shí)鐘方式。圖2—5所示,為外部時(shí)鐘方式。

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第18頁(yè)。第二章1-----7wyx

2.有關(guān)單片機(jī)CPU的時(shí)序1)振蕩周期

——

指為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期,若為內(nèi)部產(chǎn)生方式時(shí),為石英晶體的振蕩周期。2)時(shí)鐘周期

——也稱為狀態(tài)周期,用S表示。時(shí)鐘周期是計(jì)算機(jī)中最基本的時(shí)間單位,在一個(gè)時(shí)鐘周期內(nèi),CPU完成一個(gè)最基本的動(dòng)作。MCS—51單片機(jī)中一個(gè)時(shí)鐘周期為振蕩周期的2倍。3)機(jī)器周期

——完成一個(gè)基本操作(例如,取指令、存儲(chǔ)器讀、存儲(chǔ)器寫(xiě)等)所需要的時(shí)間稱為機(jī)器周期。MCS—51的一個(gè)機(jī)器周期含有6個(gè)時(shí)鐘周期。4)指令周期

——完成一條指令所需要的時(shí)間稱為指令周期。MCS—5l的指令周期含1~4個(gè)機(jī)器周期不等,其中多數(shù)為單周期指令,還有2周期和4周期指令。4周期指令只有乘、除兩條指令。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第19頁(yè)。第二章1-----8wyxP1P2S1振蕩周期時(shí)鐘周期機(jī)器周期機(jī)器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2MCS-51單片機(jī)各種周期的相互關(guān)系單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第20頁(yè)。

第二節(jié)并行I/O接口

MCS-5l單片機(jī)內(nèi)有四個(gè)8位并行I/O端口,為P0、P1、P2和P3。每個(gè)端口都是8位準(zhǔn)雙向I/O口,共占32根引腳。每個(gè)端口都包含一個(gè)鎖存器、一個(gè)輸出驅(qū)動(dòng)器和一個(gè)輸入緩沖器。

一、并行I/O接口的內(nèi)部結(jié)構(gòu)

I/O口的每位鎖存器均由D觸發(fā)器組成,用來(lái)鎖存輸出的信息。在CPU的“寫(xiě)鎖存器”信號(hào)驅(qū)動(dòng)下,將內(nèi)部總線上的數(shù)據(jù)寫(xiě)入鎖存器中。

P0口某位的結(jié)構(gòu)圖

第二章2-----1wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第21頁(yè)。

當(dāng)由P0口輸入數(shù)據(jù)時(shí),由于外部輸入信號(hào)既加在緩沖輸入端上,又加在驅(qū)動(dòng)電路的漏極上。如果這時(shí)T2是導(dǎo)通的,則引腳上的電位始終被鉗位在0電平上,輸人數(shù)據(jù)不可能正確地讀人。因此,在輸入數(shù)據(jù)時(shí),應(yīng)先把P0口置1,使兩個(gè)輸出FET均關(guān)斷,使引腳“浮置”,成為高阻狀態(tài),這樣才能正確地插人數(shù)據(jù)。這就是所謂的準(zhǔn)雙向口。

P1口也是—個(gè)準(zhǔn)雙向I/O口,與P0口不同的是,沒(méi)有多路開(kāi)關(guān)MUX和控制電路部分。輸出驅(qū)動(dòng)電路只有一個(gè)FET場(chǎng)效應(yīng)管,同時(shí)內(nèi)部帶上拉電阻,此電阻與電源相連。P1口可作通用雙向I/O口用,而不必再外接上拉電阻。

P2口在結(jié)構(gòu)上比P0口少了一個(gè)輸出轉(zhuǎn)換控制部分,多路開(kāi)關(guān)MUX的倒向由CPU命令控制,且P2口內(nèi)部接有固定的上拉電阻。

P3口與Pl口的輸出驅(qū)動(dòng)部分及內(nèi)部上拉電阻相同,但比P1口多了一個(gè)第二功能控制部分的邏輯電路〔由一個(gè)與非門和一個(gè)輸入緩沖器組成〕第二章2----2wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第22頁(yè)。P3.0(RXD):串行輸入端。P3.1(TXD):串行輸出端。P3.2(INTO):外部中斷0輸入端,低電平有效。P3.3(INT1):外部中斷1輸入端,低電平有效。P3.4(T0):定時(shí)/計(jì)數(shù)器0外部事件計(jì)數(shù)輸入端。P3.5(T1):定時(shí)/計(jì)數(shù)器1外部事件計(jì)數(shù)輸入端。P3.6(WR):外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào),低電平有效。P3.7(RD):外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào),低電平有效。

P3口每位的第二功能:第二章2----3wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第23頁(yè)。P0~P3的功能及使用時(shí)的注意事項(xiàng)

1.在無(wú)片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這四個(gè)端口的每一位都可以作為準(zhǔn)雙向通用I/O端口使用。在具有片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,P2口作為高8位地址線,P0口作為雙向總線,分時(shí)作為低8位地址和數(shù)據(jù)的輸入/輸出線。

2.P0口作為通用雙向I/O口用時(shí),必須外接上拉電阻。

3.P3口除了作通用I/O使用外,它的各位還具有第二功能。當(dāng)P3口某一位用于第二功能作輸出時(shí),則不能再作通用I/O使用。

4.當(dāng)P0~P4端口用作輸入時(shí),為了避免誤讀,都必須先向?qū)?yīng)的輸出鎖存器寫(xiě)入“l(fā)”,使FET截止。然后再讀端口引腳。

如:MOVP1,#0FFHMOVA,P1第二章2----4wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第24頁(yè)。單片機(jī)的片外三總線結(jié)構(gòu)第二章2----5wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第25頁(yè)。

第三節(jié)MCS-51單片機(jī)的復(fù)位

MCS—5l的RST/VPD引腳是復(fù)位輸入端,其內(nèi)的施密特觸發(fā)器用來(lái)抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2由復(fù)位電路采樣一次。在振蕩器運(yùn)行時(shí),RST端至少要保持2個(gè)機(jī)器周期(24個(gè)振蕩周期)為高電平,才完成一次復(fù)位。復(fù)位后片內(nèi)各專用寄存器的狀態(tài)如表2—1。寄存器內(nèi)容寄存器內(nèi)容PC00HTMOD00HA00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P30FFHSCON00HIP(XXX00000)BSBUF不變IE(0XX00000)BPCON(0XXXXXXX)B第二章3----1wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第26頁(yè)。幾種實(shí)用的復(fù)位電路

第二章3----2wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第27頁(yè)。第二章4------1wyx第四節(jié)MCS-51存儲(chǔ)器組織與操作

MCS—51系列單片機(jī)其存儲(chǔ)結(jié)構(gòu)特點(diǎn)是:

將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi),并有各自的尋址機(jī)構(gòu)和尋址方式,這種結(jié)構(gòu)的單片微機(jī)稱為哈佛型結(jié)構(gòu)單片微機(jī)。在物理上有4個(gè)相互獨(dú)立的存儲(chǔ)空間:片內(nèi)和片外程序存儲(chǔ)器;片內(nèi)和片外數(shù)據(jù)存儲(chǔ)器。

在邏輯上有三個(gè)彼此獨(dú)立的地址空間:

1、片內(nèi)外統(tǒng)一編地址的64KB程序存儲(chǔ)器地址間;

2、256字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間;

3、64KB片外數(shù)據(jù)存儲(chǔ)器地址空間單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第28頁(yè)。外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0FFFH1000HFFFFH外部RAM(I/O口)0000H0FFFFH程序存儲(chǔ)器(c)特殊功能寄存器區(qū)00H

30H2FH

0FFH工作寄存器區(qū)位尋址區(qū)20H1FH80H7FH0000H0FFFH內(nèi)部數(shù)據(jù)存儲(chǔ)器(a)外部數(shù)據(jù)存儲(chǔ)器(b)一般RAM區(qū)

MCS—5l系列存儲(chǔ)器地址空間分配圖

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第29頁(yè)。第二章4-----2wyx一、MCS—51程序存儲(chǔ)器地址空間

7個(gè)特殊單元:

0000H復(fù)位后,PC=0000H.開(kāi)始執(zhí)行程序

0003H外部中斷0(INT0)入口

000BH定時(shí)器0中斷(TF0)入口

0013H外部中斷1(INT1)入口

001BH定時(shí)器1中斷(TF1)入口

0023H串行口中斷TI/RI入口

002BH定時(shí)計(jì)數(shù)器2溢出或T2EX輸入負(fù)跳變(52系列)

程序存儲(chǔ)器用于存放調(diào)試好的應(yīng)用程序和表格常數(shù)。MCS—5l采用16位的程序計(jì)數(shù)器PC和l6位的地址總線,64KB片內(nèi)、外的程序存儲(chǔ)器空間連續(xù)、統(tǒng)一。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第30頁(yè)。第二章4-----3wyx二、MCS—51數(shù)據(jù)存儲(chǔ)器地址空間

數(shù)據(jù)存儲(chǔ)器地址空間由內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器空間組成。內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器空間存在重疊。通過(guò)不同指令來(lái)區(qū)別

內(nèi)部數(shù)據(jù)傳送指令:MOV外部數(shù)據(jù)傳送指令:MOVX單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第31頁(yè)。1、工作寄存器區(qū)(00H~1FH)分成4組,每組8個(gè)寄存器R0-R72、位尋址區(qū)(20H~2FH)既可進(jìn)行字節(jié)尋址,又可進(jìn)行位尋址。這16個(gè)單元共有16×8=128位,對(duì)應(yīng)位地址00H-7FH。3、通用存儲(chǔ)區(qū)(30H~7FH)4、外部數(shù)據(jù)存儲(chǔ)器

0000H-FFFFH范圍為64K字節(jié),采用R0、R1或DPTR寄存器間址方式訪問(wèn)。

內(nèi)部數(shù)據(jù)存儲(chǔ)器在物理上又可分成三部分:低128字節(jié)RAM、高128字節(jié)RAM(僅8032/0852才有)和專用寄存器(SFR)。

低128字節(jié)RAM由工作寄存器區(qū)、位尋址區(qū)和通用RAM區(qū)組成。內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間8032/0852的高128字節(jié)RAM和專用寄存器(SFR)空間重合,通過(guò)不同尋址方式區(qū)別單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第32頁(yè)。第二章4-----4wyx三、特殊功能寄存器地址空間

共有26個(gè)專用寄存器SFR,離散地分布在片內(nèi)RAM的高128字節(jié)地址80H~0FFH中。程序計(jì)數(shù)器PC不占據(jù)RAM單元,在除PC外的專用寄存器SFR中,有12個(gè)專用寄存器既可字節(jié)尋址,又可位尋址(字節(jié)地址為8的整倍數(shù))。標(biāo)識(shí)符名稱字節(jié)地址*Acc累加器E0H*BB寄存器F0H*PSW程序狀態(tài)字D0HSP堆棧指針81HDPTR數(shù)據(jù)指針(DPH和DPL)82H,83H*P0口080H*P1口190H*P2口2A0H*P3口3B0H*IP中斷優(yōu)先級(jí)寄存器B8H*IE中斷控制寄存器A8HTMOD定時(shí)器方式寄存器89H*TCON定時(shí)器控制寄存器88H標(biāo)識(shí)符名稱字節(jié)地址TH0計(jì)數(shù)器0高位8CHTL0計(jì)數(shù)器0低位8AHTH1計(jì)數(shù)器1高位8DHTL1計(jì)數(shù)器1低位8BH*SCON串行口控制98HSBUF串行數(shù)據(jù)緩沖器99HPCON電源控制97H位地址的表示法例:位名稱CY、RS0

寄存器名加序號(hào)PSW.7ACC.1

字節(jié)地址加序號(hào)20H.3

直接位地址 00H單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第33頁(yè)。第二章1-------19wyx1.累加器ACC—累加器A在大部分的算術(shù)運(yùn)算中存放某個(gè)操作數(shù)和運(yùn)算結(jié)果。2.寄存器B—寄存器B主要用于與累加器A配合執(zhí)行乘法和除法指令的操作。3.程序狀態(tài)字PSW——8位寄存器,用來(lái)存放程序狀態(tài)信息。某些指令的執(zhí)行結(jié)果會(huì)自動(dòng)影響PSW的有關(guān)狀態(tài)標(biāo)志位,有些狀態(tài)位可用指令來(lái)設(shè)置。

特殊功能寄存器D7D6D5D4D3D2D1D0CyACF0RS1RS0OV-PCY:進(jìn)位標(biāo)志位AC:半進(jìn)位標(biāo)FO:用戶標(biāo)志位RS1.RS0:工作寄存器組選擇OV:溢出標(biāo)志

P:奇偶標(biāo)志RS1RS0寄存器組內(nèi)部RAM地址

00工作寄存器組000H~07H01工作寄存器組108H~0FH10工作寄存器組210H~17H11工作寄存器組318H~1FH單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第34頁(yè)。第二章1------20wyx4.堆棧指針SP

棧指針SP為一個(gè)8位專用寄存器,每存入(或取出)一個(gè)字節(jié)數(shù)據(jù),SP就自動(dòng)加1(或減1),SP始終指向新的棧頂。系統(tǒng)復(fù)位后錢指針初始化為07H。5.數(shù)據(jù)指針DPTR16位的專用寄存器,由高位字節(jié)DPH和低位字節(jié)DPL組成??勺鳛橐粋€(gè)16位寄存器使用,也可以作為2個(gè)獨(dú)立的8位寄存器DPH和DPL使用。6.I/O端口P0~P3

專用寄存器P0~P3分別是I/O端口P0~P3的鎖存器??梢园袸/O口當(dāng)作—般的專用寄存器來(lái)使用,沒(méi)有專門設(shè)置的口操作指令,全部采用統(tǒng)一的MOV指令。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第35頁(yè)。wyx關(guān)于數(shù)據(jù)存儲(chǔ)器第二章1----21wyx

1)根據(jù)地址總線寬度,在片外可擴(kuò)展的存儲(chǔ)器最大容量為64KB,地址范圍為0000H~FFFFH。2)片外數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器的操作使用不同的指令和控制信號(hào),允許兩者的地址重復(fù)。因此,片外要擴(kuò)展的數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器各為64KB。3)片外數(shù)據(jù)存儲(chǔ)器與片內(nèi)數(shù)據(jù)存儲(chǔ)器的操作指令亦不同(對(duì)片外RAM用MOVX指令),所以也允許兩者的地址重復(fù),內(nèi)部數(shù)據(jù)存儲(chǔ)器的地址00~FFH,外部擴(kuò)展數(shù)據(jù)存儲(chǔ)器的地址可以從0000H~FFFFH。

注意:采用R0、R1或DPTR寄存器間址方式訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器。當(dāng)采用R0、R1間址時(shí)只能訪問(wèn)低256字節(jié),采用DPTR間址可訪問(wèn)整個(gè)64K字節(jié)空間。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第36頁(yè)。

MCS-51及其5l子系列的其它成員都具有相同的中斷結(jié)構(gòu)。

8051有5個(gè)中斷源——2個(gè)外部中斷源INT0和INT1,2個(gè)片內(nèi)定時(shí)器/計(jì)數(shù)器溢出中斷源,1個(gè)片內(nèi)串行口中斷源。分為兩級(jí)——高級(jí)中斷和低級(jí)中斷。其中任何一個(gè)中斷源的優(yōu)先級(jí)均可由軟件設(shè)定為高級(jí)或低級(jí),能實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套。

都是可屏蔽的,由軟件設(shè)定。

第五節(jié)MCS-51的中斷系統(tǒng)

中斷允許寄存器IE控制中斷優(yōu)先級(jí)寄存器IP控制中斷觸發(fā)方式位IT控制單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第37頁(yè)。第二章3--------2wyx一、MCS—51的中斷源

1.中斷源

1)外部中斷0請(qǐng)求,由P3.2引腳輸入??捎捎脩粼O(shè)定為兩種觸發(fā)方式,(電平觸發(fā)方式還是邊沿觸發(fā)方式)。一旦輸入信號(hào)有效,則向CPU申請(qǐng)中斷,并且將中斷標(biāo)志IE0置1。

2)外部中斷1請(qǐng)求,由P3.3引腳輸入。亦可由用戶設(shè)定為電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸人信號(hào)有效,則向CPU申請(qǐng)中斷,并將中斷標(biāo)志IE1置1。

3)片內(nèi)定時(shí)器T0溢出中斷請(qǐng)求。當(dāng)定時(shí)器T0產(chǎn)生溢出時(shí),T0中斷請(qǐng)求標(biāo)志TF0置1,請(qǐng)求中斷處理。

4)片內(nèi)定時(shí)器T1溢出中斷請(qǐng)求。當(dāng)定時(shí)器T1產(chǎn)生溢出時(shí),T1中斷請(qǐng)求標(biāo)志TF1置l,請(qǐng)求中斷處理。

5)片內(nèi)串行口發(fā)送/接收中斷請(qǐng)求。當(dāng)通過(guò)串行口發(fā)送或接收完一幀串行數(shù)據(jù)時(shí),串行口中斷請(qǐng)求標(biāo)志TI或RI置1,請(qǐng)求中斷處理。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第38頁(yè)。第二章3------3wyx2.中斷請(qǐng)求標(biāo)志

(1)TCON的中斷標(biāo)志

TCON是專用寄存器,字節(jié)地址為88H,它鎖存了外部和的中斷請(qǐng)求標(biāo)志及T0和T1的溢出中斷請(qǐng)求標(biāo)志TCON88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT01)IT0:選擇外部中斷0(INT0)觸發(fā)方式控制位。IT0=0INT0為電平觸發(fā)方式。

2)IE0:外部中斷0請(qǐng)求標(biāo)志位。IE0=1,外部中斷0向CPU申請(qǐng)中斷。

3)IT1:選擇外部中斷1(INT1)觸發(fā)方式控制位。

4)1E1:外部中斷1請(qǐng)求標(biāo)志位。IE1=1時(shí),外部中斷1向CPU申請(qǐng)中斷。

5)TF0:片內(nèi)定時(shí)器T0溢出中斷請(qǐng)求標(biāo)志。T0被啟動(dòng)后,從初始值開(kāi)始進(jìn)行加1計(jì)數(shù),當(dāng)最高位產(chǎn)生溢出時(shí)置TF0=1,向CPU申請(qǐng)中斷,直到CPU響應(yīng)該中斷時(shí),才由硬件自動(dòng)將TF0清0,也可由軟件查詢?cè)摌?biāo)志,并用軟件清0。

6)TF1:片內(nèi)定時(shí)器T1溢出中斷請(qǐng)求標(biāo)志,其操作功能與TF0類同。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第39頁(yè)。第二章3--------4wyxSCON是串行口控制寄存器,與中斷有關(guān)的是它的低兩位TI和RI。1)TI(SCON.1):串行口發(fā)送中斷標(biāo)志位。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能清除TI,TI必須由軟件清除。

2)RI(SCON.0):串行口接收中斷標(biāo)志位,當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。同樣,RI必須由軟件清除。TIRISCON2)SCON的中斷標(biāo)志單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第40頁(yè)。第二章3--------5wyx二、MCS—51的中斷控制

1、中斷允許寄存器IE——中斷的允許與開(kāi)放

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第41頁(yè)。第二章3-------6wyx2.中斷優(yōu)先級(jí)寄存器IP——中斷優(yōu)先級(jí)控制

內(nèi)部自然優(yōu)先級(jí):入口地址

INT0高0003HT0000BHINT10013HT1001BHTI/RI底0023H單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第42頁(yè)。第二章3-------8wyx中斷處理過(guò)程一般分為三個(gè)階段,即中斷響應(yīng)、中斷處理和中斷返回。三、響應(yīng)中斷的條件及過(guò)程

1.中斷響應(yīng)(1)中斷響應(yīng)的條件

1)有中斷源發(fā)出請(qǐng)求信號(hào)

2)中斷是開(kāi)放的(總允許、源允許)

3)沒(méi)有封鎖(受阻),受阻情況是:①CPU正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序;②現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,即現(xiàn)行指令完成前.不響應(yīng)任何中斷請(qǐng)求;③當(dāng)前正在執(zhí)行的是中斷返回指令RETI或訪問(wèn)專用寄存器IE或IP的指令。也就是說(shuō),在執(zhí)行RETI或是訪問(wèn)IE、IP的指令后,至少需要再執(zhí)行—條其他指令,才會(huì)響應(yīng)中斷請(qǐng)求。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第43頁(yè)。第二章3-----9wyx

2)中斷響應(yīng)過(guò)程

進(jìn)入中斷響應(yīng)周期。CPU在中斷響應(yīng)周期要完成下列操作:

1)根據(jù)中斷請(qǐng)求源的優(yōu)先級(jí)高低,使相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1。

2)清相應(yīng)中斷請(qǐng)求標(biāo)志位IE0、IE1、TF0或TF13)保留斷點(diǎn),把PC內(nèi)容壓入堆保存。

4)把被響應(yīng)的中斷源服務(wù)程序入口地址送入PC,輸入相應(yīng)中斷服務(wù)程序。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第44頁(yè)。第二章3------10wyx2.中斷服務(wù)與返回

在編寫(xiě)中斷服務(wù)程序時(shí)加注意的幾點(diǎn):

1)因各入口地址之間只相隔8個(gè)字節(jié),一般的中斷服務(wù)程序是存放不下的。所以通常在中斷入口地址單元處存放—條無(wú)條件轉(zhuǎn)移指令,這樣就可使中斷服務(wù)程序靈活地安排在64KB程序存儲(chǔ)器的任何空間。2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可先用軟件關(guān)閉CPU中斷,或禁止某中斷源中斷,在中斷返回前再開(kāi)放中斷。

3)注意在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。

4)中斷服務(wù)程序的最后一條是返回指令RETI,該指令將清除響應(yīng)中斷時(shí)被置位的優(yōu)先級(jí)狀態(tài)觸發(fā)器,然后自動(dòng)將斷點(diǎn)地址從棧頂彈出,裝入程序計(jì)數(shù)器PC,使程序返回到被中斷的程序斷點(diǎn)處,繼續(xù)向下執(zhí)行。

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第45頁(yè)。第二章3-----11wyx3.中斷請(qǐng)求的撤除CPU響應(yīng)中斷請(qǐng)求后,在中斷返回(RETI)前,該中斷請(qǐng)求信號(hào)必須撤除,否則會(huì)引起另外一次中斷。注意:采用邊沿觸發(fā)的外部中斷標(biāo)志IE0或IEl和定時(shí)器中斷標(biāo)志TF0或TFl,CPU響應(yīng)中斷后能用硬件自動(dòng)情除。但在電平觸發(fā)時(shí),IE0或IEl受外部引腳中斷信號(hào)(或)的直接控制,CPU無(wú)法控制IE0或IEl,需要另外考慮撤除中斷請(qǐng)求信號(hào)的措施,如通過(guò)外加硬件電路,并配合軟件來(lái)解決;串行口中斷請(qǐng)求標(biāo)志TI和RI也不能由硬件自動(dòng)清除,需要在中斷服務(wù)程序中,用軟件來(lái)清除相應(yīng)的中斷請(qǐng)求標(biāo)志

。

小結(jié):1、硬件構(gòu)成

2、存儲(chǔ)器組織

3、中斷系統(tǒng)單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第46頁(yè)。第三章6----24wyx三、分支程序與循環(huán)程序設(shè)計(jì)

課間休息單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第47頁(yè)。第三章1------1wyx

本章重點(diǎn):指令的尋址方式、功能、使用方法程序設(shè)計(jì)的一般方法和技巧

講授內(nèi)容:MCS-51單片機(jī)的尋址方式

MCS-51單片機(jī)指令分類

程序設(shè)計(jì)方法和算法分析應(yīng)用程序設(shè)計(jì)舉例

第三章

MCS-51單片機(jī)的指令系統(tǒng)與程序設(shè)計(jì)單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第48頁(yè)。第一節(jié)MCS—51單片機(jī)的尋址方式

MCS-51單片機(jī)的指令系統(tǒng)共有111條指令,7種尋址方式,共分為五大類

MCS-51指令系統(tǒng)簡(jiǎn)介:1、指令所包含的內(nèi)容操作碼:規(guī)定指令的操作功能操作數(shù):指令操作的具體對(duì)象(地址、數(shù)據(jù))2、指令格式單字節(jié)指令:雙字節(jié)指令:三字節(jié)指令第三章1------2wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第49頁(yè)。在MCS-51系列單片機(jī)的指令中,常用的符號(hào):

#data8、#data16:分別表示8位、16位立即數(shù)。

direct:片內(nèi)RAM單元地址(8位),也可以指特殊功能寄存器的地址或符號(hào)名稱。

addr11、addr16:分別表示11位、16位地址碼。

rel:相對(duì)轉(zhuǎn)移指令中的偏移量,為8位帶符號(hào)數(shù)(補(bǔ)碼形式)。

bit:片內(nèi)RAM中(可位尋址)的位地址。

A:累加器A;ACC則表示累加器A的地址。

Rn:當(dāng)前寄存器組的8個(gè)工作寄存器R0~R7。

Ri:可用作間接尋址的工作寄存器,只能是R0、R1。@:間接尋址的前綴標(biāo)志。第三章1------3wyx第一節(jié)MCS—51單片機(jī)的尋址方式單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第50頁(yè)。一、立即尋址立即尋址是指在指令中直接給出其操作數(shù),該操作數(shù)稱為立即數(shù)。為了與直接尋址指令中的直接地址相區(qū)別,在立即數(shù)前面必需加上前綴“#”。例如:MOV R0,#30H尋址方式二、直接尋址直接尋址是指在指令中直接給出存放數(shù)據(jù)的地址(注意:不是立即數(shù),并且只限于片內(nèi)RAM范圍)。直接尋址只能訪問(wèn)特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲(chǔ)器和位地址空間。例如:MOV A,30H

比較以上兩指令的區(qū)別第三章1------4wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第51頁(yè)。

三、寄存器尋址寄存器尋址是指指令中的操作數(shù)為寄存器中的內(nèi)容。例如:MOV A,R1第三章1-----5wyx四、寄存器間接尋址寄存器間接尋址是指指令中的操作數(shù)在寄存器的內(nèi)容所指的地址單元中。例如:MOV R1,#30H ;把立即數(shù)30H送R1寄存器

MOV A,@R1 ;把30H單元中的數(shù)送到A中五、變址尋址變址尋址用于訪問(wèn)程序存儲(chǔ)器中的一個(gè)字節(jié),該字節(jié)的地址是:基址寄存器(DPTR或PC)的內(nèi)容與變址寄存器A中的內(nèi)容之和。例如:

MOVDPTR,#3000H;立即數(shù)3000H送DPTRMOVA,#02H ;立即數(shù)02H送AMOVC A,@A+DPTR;取ROM中3002H單元中的數(shù)送A單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第52頁(yè)。六、相對(duì)尋址

以PC當(dāng)前值為基準(zhǔn),加上相對(duì)偏移量rel形成轉(zhuǎn)移地址轉(zhuǎn)移范圍:以PC當(dāng)前值起始地址,相對(duì)偏移在-128~+127字節(jié)單元之間。相對(duì)尋址方式為相對(duì)轉(zhuǎn)移指令所采用。轉(zhuǎn)移的目的地址為:目的地址=轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel第三章1------6wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第53頁(yè)。七、位尋址位尋址是指對(duì)片內(nèi)RAM的位尋址區(qū)(20H~2FH)、可以位尋址的專用寄存器的各位,并進(jìn)行位操作的尋址方式。例如:MOV C,00H ;把20H單元中D0位的值送C位

MOV P1.0,C ;把C位中的值送P1口的D0位

SETB 20H.0 ;把00H位置1位地址的表示方法位名稱例:CY、RS0寄存器名加序號(hào)例:ACC.1、P0.1字節(jié)地址加序號(hào)例:20H.3直接位地址例:00H、07H第三章1------7wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第54頁(yè)。操作數(shù)的7種尋址方式和尋址的空間尋址方式相關(guān)寄存器尋址的空間

立即尋址

程序存儲(chǔ)器ROM直接尋址

片內(nèi)RAM和SFR寄存器尋址R0~R7,A,B,DPTRR0~R7,A,B,DPTR寄存器間接尋址@R0,@R1片內(nèi)RAM@R0,@R1,@DPTR片外RAM變址尋址@A+PC,@A+DPTRROM區(qū)相對(duì)尋址PCROM區(qū)位尋址可位尋址的SFR片內(nèi)RAM20H~2FH,SFR可尋址位第三章1------8wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第55頁(yè)。MCS—51匯編語(yǔ)言指令格式如下:標(biāo)號(hào):操作碼

操作數(shù)1,操作數(shù)2,操作數(shù)3;注釋其中標(biāo)號(hào)實(shí)際上為符號(hào)地址,表示這條指令在程序存儲(chǔ)器中的存放首地址,以字母開(kāi)始,后可跟1~8個(gè)字母或數(shù)字,但標(biāo)號(hào)不能用操作碼或?qū)S梅?hào)。

操作碼規(guī)定了指令的具體操作。指令中的操作數(shù)為指令的具體操作對(duì)象,有些指令中有3個(gè)操作數(shù),有些只有一個(gè),有些無(wú)操作數(shù),僅有操作碼。第三章2------1wyx第二節(jié)MCS—51單片機(jī)的指令分類單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第56頁(yè)。第三章2-----2wyx指令分類:一、數(shù)據(jù)傳送與交換類指令特點(diǎn):除第一操作數(shù)為A的指令影響P位外,其它并不影響標(biāo)志位有三種傳送指令

MOV片內(nèi)RAM和特殊功能寄存器之間的傳送

MOVX片外RAM與ACC之間的傳送

MOVC程序存儲(chǔ)器的數(shù)據(jù)送ACC

1.用于片內(nèi)RAM傳送的指令(16條)

1)以累加器ACC

為目的操作數(shù)

.MOVA,Rn;

.MOVA,direct;MOVA,@Ri(R1,R0)MOVA,#data單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第57頁(yè)。第三章2-----3wyx2)以Rn

為目的操作數(shù)MOVRn,A

MOVRn,direct

MOVRn,#data3)以直接地址為目的操作數(shù)MOVdirect,AMOVdirect,Rn

MOVdirect,#data

MOVdirect,@Ri(R1,R0)MOVdirect,direct;4)以寄存器間址

為目的操作數(shù)MOV@Ri,direct;MOV@Ri,A;MOV@Ri,#data5)16位數(shù)據(jù)送數(shù)據(jù)指針DPTR

MOVDPTR,#Ddata16例如:MOV 30H,#7AH;將立即數(shù)7AH送片內(nèi)RAM30H單元中

MOV R0,#30H;將立即數(shù)30H送R0寄存器

MOV A,@R0;將R0指定的30H中的數(shù)7AH送A中

MOVDPTR,#1000H;將1000H送DPTR寄存器

MOVX@DPTR,A練習(xí):將R1中的內(nèi)容送R2單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第58頁(yè)。第三章2----4wyx2.用于片外RAM傳送的指令(共4條)片外RAM單元的地址為16位,一般用DPTR間接尋址;也可使用Ri來(lái)間接尋址(低8位編址時(shí))。1)外部RAM低256字節(jié)單元與A之間的傳送

MOVX

A,@Ri

MOVX

@Ri,A2)64KB外部RAM單元與A之間的傳送

MOVX

A,@DPTR

MOVX

@DPTR,A

例:

MOVDPTR,#2000HMOVXA,@DPTR

;將外部RAM中2000H單元內(nèi)容→A思考:將片內(nèi)RAM50H單元內(nèi)容→片外RAM5000H單元單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第59頁(yè)。第三章2-----5wyx3.用于ROM傳送的指令(共2條)MOVCA,@A+DPTR ;(A)←((A)+DPTR))MOVCA,@A+PC ;(A)←((A)+(PC))

以PC的當(dāng)前值為基址,A為變址

例3-1:在ROM1000H開(kāi)始存有5個(gè)字節(jié)數(shù),編程將第二個(gè)字節(jié)數(shù)取出送片內(nèi)RAM30H單元中。程序段如下:

MOVDPTR,#1000H;置ROM地址指針(基址)DPTRMOVA,#01H;表內(nèi)序號(hào)送A(變址)

MOVCA,@A+DPTR;從ROM1000H單元中取數(shù)送到AMOV30H,A;再存入內(nèi)RAM30H中

ORG1000H;偽指令,定義數(shù)表起始地址TAB:DB55H,67H,9AH,…;在ROM1000H開(kāi)始的空間中定義5個(gè);字節(jié)

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第60頁(yè)。第三章2-6wyx

例3-2:設(shè)某數(shù)N已存于20H單元(N≤10),查表求N平方值,存入21H單元。

程序段如下:

MOV A,20H ;取數(shù)NADD A,#01 ;加查表偏移量

MOVC A,@A+PC ;查表

NOP

TAB:DB00H,01H,04H,09……

;定義數(shù)表

由于PC為程序計(jì)數(shù)器,總是指向下一條指令的地址在執(zhí)行第二條指令“MOVCA,@A+PC”時(shí),在查表前應(yīng)在A累加器中加上該指令與表之間的偏移量。

用DPTR查表時(shí),表格可放在ROM的64K范圍(不用考慮偏移量),用MOVCA,@A+PC指令時(shí)則必須把表格就放在該條指令下面開(kāi)始的255個(gè)字節(jié)的空間中。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第61頁(yè)。第三章2-7wyx4.交換指令(共5條)其中3條為整個(gè)字節(jié)相互交換,XCHD指令為低4位相互交換,SWAP為ACC中的高、低4位互換。1)字節(jié)交換

XCHA,Rn;(A)←→(Rn)

XCHA,directXCHA,@Ri2)半字節(jié)交換

XCHDA,@Ri;

SWAPA例:已知(A)=34H,(R6)=29H,執(zhí)行以下指令后,(A)=?

XCHA,R6SWAPA思考:用不同的方法實(shí)現(xiàn)片內(nèi)RAM

(20H)→R1單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第62頁(yè)。第三章2-----7-2wyx5.堆棧操作指令(共2條)堆棧是在內(nèi)RAM開(kāi)辟的一個(gè)數(shù)據(jù)的暫存空間,遵守“后進(jìn)先出”原則操作,其地址指針為SP,它指出棧頂?shù)奈恢?,?fù)位時(shí)SP=07H。入棧:PUSHdirect;SP先增1,再將數(shù)據(jù)壓棧。出棧;POPdirect;數(shù)據(jù)先出棧,再SP減1。例如,已知(A)=44H,(30H)=55H,執(zhí)行

MOV SP,#5FH;棧起點(diǎn)設(shè)置為5FHPUSHACC ;A中的44H壓到60H中保存

PUSH30H ;30H中的55H壓到61H中保存

POP 30H ;把61H中的55H彈出到30HPOP ACC ;把60H中的44H彈出到A中單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第63頁(yè)?!纠繉⑵瑑?nèi)RAM30H單元與40H單元中的內(nèi)容互換。方法1(直接地址傳送法):

MOV 31H,30HMOV 30H,40HMOV 40H,31HSJMP $方法2(間接地址傳送法):

MOV R0,#40HMOV R1,#30HMOV A,@R0MOV B,@R1MOV @R1,AMOV @R0,BSJMP $方法4(字節(jié)交換傳送法):

MOV A,30HXCH A,40HMOV 30H,ASJMP $方法3(堆棧傳送法):

PUSH 30HPUSH 40HPOP 30HPOP 40HSJMP $單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第64頁(yè)。第三章2----8wyx二、算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令有加、減、乘、除法指令,增1和減1指令,十進(jìn)制調(diào)整指令,共24條,使用時(shí)應(yīng)注意判斷各種結(jié)果對(duì)哪些標(biāo)志位(CY、OV、AC、P)產(chǎn)生影響。

1.不帶進(jìn)位的加法指令A(yù)DD(4條)ADD A,Rn;A←(A)+(Rn)

ADD A,direct;A←(A)+(direct)

ADD A,@Ri;A←(A)+((Ri))

ADD A,#data;A←(A)+data

練習(xí)3-398H+75H分析各標(biāo)志位的置位情況加法和減法指令的第一操作數(shù)都是A,并將運(yùn)算結(jié)果放在A中2.

帶進(jìn)位的加法指令A(yù)DDC

(4條)

ADDCA,Rn;A←(A)+(Rn)+(CY)

ADDCA,direct;A←(A)+(direct)+(CY)

ADDCA,@Ri;A←(A)+((Ri))+(CY)

ADDCA,#data;A←(A)+data

+(CY)

例如求5688H+2396H低字節(jié)用ADD指令,高字節(jié)用ADDC指令單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第65頁(yè)。第三章2-----9wyx3.帶借位減法指令SUBB(4條)SUBBA,Rn;A←(A)-(Rn)-(CY)SUBBA,direct;A←(A)-(direct)-(CY)

SUBBA,@Ri;A←(A)-((Ri))-(CY)

SUBBA,#data;A←(A)-data-(CY)——減法只有帶借位減法指令,在不須減借位時(shí)可先清CY。4.乘法指令MUL(1條)

MULAB

;BA←(A)×(B)

5.除法指令DIV(1條)

DIVAB

;A←A/B(商)B←余數(shù)

說(shuō)明:無(wú)符號(hào)數(shù)相除,當(dāng)除數(shù)(B)=0時(shí),結(jié)果為無(wú)意義,并置OV=1;CY位總是0。說(shuō)明:當(dāng)積大于255(0FFH)時(shí),即積的高字節(jié)B不為0時(shí),置OV=1,否則OV=0;CY位總是0。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第66頁(yè)。第三章2----10wyx6.加1指令I(lǐng)NC

(5條)INCAINCRnINCdirectINC@RiINCDPTR7.減1指令(4條)

注意:沒(méi)有對(duì)DPTR

的減1操作指令

DECADECRnDECdirectDEC@Ri

只有INCA和DECA這兩條指令影響影響P,其他不影響任何標(biāo)志。

8.十進(jìn)制調(diào)整指令DAA(1條)

ADD、ADDC指令都是對(duì)8位二進(jìn)制數(shù)進(jìn)行加法運(yùn)算,當(dāng)兩個(gè)BCD碼數(shù)進(jìn)行加法時(shí),必須增加一條DAA指令(對(duì)其結(jié)果進(jìn)行調(diào)整),否則結(jié)果就會(huì)出錯(cuò)。

注意:DAA指令只能用于加法指令后單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第67頁(yè)。第三章2------11wyx

三.邏輯運(yùn)算與循環(huán)類指令特點(diǎn):是當(dāng)A作目的操作數(shù)(第一操作數(shù))時(shí),影響P位;帶進(jìn)位的移位指令影響Cy位,其余都不影響PSW。第二節(jié)MCS-51單片機(jī)的指令分類1.邏輯“或”運(yùn)算指令ORL(6條)2.邏輯“與”運(yùn)算指令A(yù)NL(6條)3.邏輯“異或”運(yùn)算指令XRL(6條)

此類指令都是按位操作,其中有4條指令的第一操作數(shù)都為A。另外兩條指令的第一操作數(shù)為direct,第二操作數(shù)為A和#data。邏輯運(yùn)算類指令:如:邏輯或指令格式:ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第68頁(yè)。用AND指令可對(duì)指定位或指定的一些位進(jìn)行屏蔽(清零)。

例如:ANLA,#0FH;將A中的高4位清零

#0FH稱為屏蔽字,屏蔽字中的0對(duì)應(yīng)于需要清0的位。用ORL指令可對(duì)一些指定位置1。例如:ORLA,#80H可將A中的最高位置1,其他位保持不變。通過(guò)XRL指令用“1”與某數(shù)的對(duì)應(yīng)位異或,可將該位取反,用“0”與某數(shù)的對(duì)應(yīng)位異或,可將指定位不變;

邏輯運(yùn)算類指令的常用功能:?jiǎn)纹瑱C(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第69頁(yè)。

求反指令(1條)

CPLA;對(duì)累加器A的內(nèi)容各位求反,結(jié)果送回A中,影響P位。

清0指令(1條)

CLR A;將累加器A的內(nèi)容清0。

第三章2-----12wyx注意:兩條指令僅對(duì)A有效單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第70頁(yè)。⒍

循環(huán)移位指令(4條,僅對(duì)A有效)其中有兩條不帶CY位的逐位循環(huán)移位一次指令,不影響PSW。兩條帶CY位的逐位循環(huán)移位一次指令,僅影響CY位。第三章2------13wyx

RLA;左移RRA;右移

RLCA;帶進(jìn)位CY的左移RRCA;帶進(jìn)位CY的右移

CYRLD7D0D7D0CYRLCCYD7D0RRD7D0CYRRC單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第71頁(yè)。例:將雙字節(jié)數(shù)(R2)(R3)右移一位

CLRCMOVA,R2RRCAMOVR2,AMOVA,R3RRCAMOVR3,A分析執(zhí)行過(guò)程第三章2------14wyx單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第72頁(yè)。四、控制程序轉(zhuǎn)移類指令第三章2------15wyx

控制程序轉(zhuǎn)移類指令主要功能是控制程序轉(zhuǎn)移到新的PC所指地址去執(zhí)行程序。1.無(wú)條件轉(zhuǎn)移指令(4條)(1)長(zhǎng)轉(zhuǎn)移指令LJMPaddr16;PC←addr16范圍64K(2)絕對(duì)轉(zhuǎn)移指令

AJMPaddr11;PC10~0←addr11

指令中包含有11位的目的地址(a10a9……a0),PC高5位不變

*轉(zhuǎn)移范圍2K字節(jié)——目的地址必須和PC+2在同一頁(yè)內(nèi)*機(jī)器碼為兩字節(jié)

a10a9a800001a7---------------a0

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第73頁(yè)。第三章2-----16wyx(3)短(相對(duì))轉(zhuǎn)移指令

SJMPrel;PC←PC+2+rel

其目的地址是由PC中的當(dāng)前值和指令的第二字節(jié)中帶符號(hào)的相對(duì)地址相加而成的。因此本指令轉(zhuǎn)移的范圍為:下一條指令的(-128~+127)字節(jié)內(nèi),即本指令的(-126~+129)字節(jié)內(nèi)。

實(shí)際應(yīng)用時(shí),addr16、addr11、rel一般用符號(hào)地址形式。(4)間接轉(zhuǎn)移指令(又稱散轉(zhuǎn)指令)

JMP@A+DPTR;PC←(A)+(DPTR

目的地址由指針DPTR和變址A的內(nèi)容之和形成,范圍達(dá)64K

。單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第74頁(yè)。第三章2----16wyx2.條件轉(zhuǎn)移指令(8條)此類指令均為相對(duì)尋址指令。(1)累加器判零轉(zhuǎn)

JZrel;A=0轉(zhuǎn),PC=PC+2+relJNZrel;A<>0轉(zhuǎn)(2)CY位條件判轉(zhuǎn)

JCrel;CY=1轉(zhuǎn)PC=PC+2+rel

JNCrel;CY=0轉(zhuǎn)單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第75頁(yè)。第三章2-----13wyx(3)數(shù)值比較轉(zhuǎn)均為三字節(jié)

CJNEA,#data,relCJNEA,direct,relCJNERn,#data,relCJNE@Ri,#data,rel指令功能為兩數(shù)比較不相等轉(zhuǎn)移,操作過(guò)程為第一數(shù)減第二數(shù)狀態(tài)標(biāo)志送PSW,但不改變?cè)瓉?lái)的操作數(shù)注意:參與比較的數(shù)為無(wú)符號(hào)數(shù)單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第76頁(yè)。第三章2-----14wyx(4)可尋址位條件判轉(zhuǎn)(三字節(jié))JBbit,rel;(bit)=1轉(zhuǎn)JNBbit,rel;(bit)=0轉(zhuǎn)JBCbit,rel;(bit)=1轉(zhuǎn),并將該位清零(5)循環(huán)控制指令DJNZ

DJNZRn,relDJNZdirect,rel;指令功能是把源操作數(shù)減1,結(jié)果送回原操作數(shù)中,再判結(jié)果不為0就轉(zhuǎn)到目的地去,否則繼續(xù)下面一條指令執(zhí)行。主要應(yīng)用在循環(huán)結(jié)構(gòu)的編程中,作循環(huán)結(jié)束控制用。

單片機(jī)原理與應(yīng)用全文共255頁(yè),當(dāng)前為第77頁(yè)。第三章2-----15wyx

例2:比較兩無(wú)符號(hào)數(shù)的大小求R1、R2中較大的數(shù),結(jié)果存R3中。解:

溫馨提示

  • 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)論