單片機原理及應(yīng)用_第1頁
單片機原理及應(yīng)用_第2頁
單片機原理及應(yīng)用_第3頁
單片機原理及應(yīng)用_第4頁
單片機原理及應(yīng)用_第5頁
已閱讀5頁,還剩271頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1單片機原理及應(yīng)用單片機原理及應(yīng)用全文共276頁,當(dāng)前為第1頁。2目錄

單片機概述

單片機芯片的硬件結(jié)構(gòu)

MCS-51單片機指令系統(tǒng)

MCS-51匯編語言程序設(shè)計

單片機存儲器擴展

單片機的中斷與定時系統(tǒng)

單片機I/O擴展與應(yīng)用

單片機串行數(shù)據(jù)通信

MCS-51單片機應(yīng)用與開發(fā)技術(shù)單片機原理及應(yīng)用全文共276頁,當(dāng)前為第2頁。3第一章單片機概述單片機的概念單片機的發(fā)展單片機的應(yīng)用單片機原理及應(yīng)用全文共276頁,當(dāng)前為第3頁。4什么是單片機?

單片機--將計算機的五大部件集中在同一塊集成電路硅片上的計算機。第一節(jié)單片機的概念單片機的名稱:

單片微型計算機(SCMC)微控制器(MCU)嵌入式控制器(EMCU)單片機與一般微機最根本的不同之處:單片機的五大部件集成在一塊集成電路硅片上。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第4頁。5什么是通用單片機和專用單片機?

通用單片機是一種基本芯片。

專用單片機是針對一種產(chǎn)品或一種控制應(yīng)用專門設(shè)計的單片機與單片機系統(tǒng):

單片機系統(tǒng)是在單片機芯片的基礎(chǔ)上擴展其它電路或芯片構(gòu)成的具有一定應(yīng)用功能的計算機系統(tǒng)。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第5頁。6單片機應(yīng)用系統(tǒng)與單片機開發(fā)系統(tǒng):

單片機開發(fā)系統(tǒng)即是單片機系統(tǒng)開發(fā)調(diào)試的工具。仿真器、編程器等

機器語言:基本的的語言形式,多出現(xiàn)在應(yīng)用系統(tǒng)中

匯編語言:單片機開發(fā)中最常用的程序設(shè)計語言

高級語言:很具發(fā)展?jié)摿?。單片機的程序設(shè)計語言和軟件常用單片機語言:匯編語言、高級語言c51。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第6頁。7單片機的分類:

4位單片機特點:一次處理4位二進(jìn)制數(shù)代表產(chǎn)品:COP4XX系列(NS公司)

TMP47XXX系列(Toshiba公司)用途:計算器、家用電器等

8位單片機特點:一次處理8位二進(jìn)制數(shù)代表產(chǎn)品:MCS-51系列(Intel公司)

M6805系列(Motorola公司)用途:工業(yè)控制、智能儀表、家用電器和辦公自動化系統(tǒng)單片機原理及應(yīng)用全文共276頁,當(dāng)前為第7頁。8

16位單片機特點:一次處理16位二進(jìn)制數(shù)代表產(chǎn)品:MCS-96系列(Intel公司)

M68HC16系列(Motorola公司)用途:過程控制、智能儀表、家用電器和計算機外設(shè)等

32位單片機特點:一次處理32位二進(jìn)制數(shù)代表產(chǎn)品:M68300系列(Motorola公司)

SH系列(日立公司)用途:多媒體、蜂窩電話、光驅(qū)等計算機外設(shè)單片機原理及應(yīng)用全文共276頁,當(dāng)前為第8頁。9第二節(jié)單片機的發(fā)展單片機的發(fā)展歷史

第一階段:4位單片機階段。主要特點是:價格便宜,具有一定的控制功能。主要代表系列有:日本NEC公司的uMOS40系列、松下公司的MN1400系列,夏普公司的SM系列,富士通的MB88系列等等。第二階段:(1976-1978年)低、中檔8位單片機階段。以Intel公司的MCS-48為代表。這個系列的單片機片內(nèi)集成有8位CPU。并行I/O口,8位定時器/計數(shù)器,尋址范圍不大于4K,無串行口。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第9頁。10

第三階段:(1978至1982)高檔8位單片機階段。這階段推出的普遍帶有串行I/O口,有多種中斷處理系統(tǒng),多個16位定時器/計數(shù)器。片內(nèi)RAM、ROM容量較大,尋址范圍可達(dá)64K,有的片內(nèi)還帶有A/D轉(zhuǎn)換接口。主要代表系列有Intel公司的MCS-51,Motorola公司的6801,Zilog公司的Z8等。第四階段:(1982至今)8位單片機完善發(fā)展和16位、32位單片機推出階段。這階段的主要特征是一方面發(fā)展16位單片機及專用單片機,另一方面同時不斷完善高欄8位單片機,改善其結(jié)構(gòu),以滿足不同的用戶需要。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第10頁。118位單片機的市場前景8位單片機用途廣泛(美國)每家226個辦公室42個每汽車35個注意:基于Internet、無線數(shù)字傳輸?shù)那度胧綉?yīng)用將會是

32位機最廣泛的市場。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第11頁。128位單片機的新發(fā)展為了減小體積,增強功能,提高靈活性和可靠性,8位單片機的新發(fā)展體現(xiàn)在下面4個方面:

CPU功能增強

內(nèi)部資源增多

引腳的多功能化

低電壓和低功耗單片機原理及應(yīng)用全文共276頁,當(dāng)前為第12頁。138位單片機的新發(fā)展為了減小體積,增強功能,提高靈活性和可靠性,8位單片機的新發(fā)展體現(xiàn)在下面4個方面:

CPU功能增強采用亞微米的CMOS工藝提高運算速度,計劃把80C51設(shè)計成1/3時鐘周期執(zhí)行一條指令,并可在33MHZ時鐘下運行。

內(nèi)部資源增多

引腳的多功能化

低電壓和低功耗單片機原理及應(yīng)用全文共276頁,當(dāng)前為第13頁。148位單片機的新發(fā)展為了減小體積,增強功能,提高靈活性和可靠性,8位單片機的新發(fā)展體現(xiàn)在下面4個方面:

CPU功能增強

內(nèi)部資源增多增加了A/D和D/A轉(zhuǎn)換器、DMA通道、總線接口、晶振和LCD驅(qū)動電路。

引腳的多功能化

低電壓和低功耗單片機原理及應(yīng)用全文共276頁,當(dāng)前為第14頁。158位單片機的新發(fā)展為了減小體積,增強功能,提高靈活性和可靠性,8位單片機的新發(fā)展體現(xiàn)在下面4個方面:

CPU功能增強

內(nèi)部資源增多

引腳的多功能化采用一腳多用設(shè)計方案,減少引腳數(shù)量,提高應(yīng)用靈活性。

低電壓和低功耗單片機原理及應(yīng)用全文共276頁,當(dāng)前為第15頁。16

8位單片機的新發(fā)展為了減小體積,增強功能,提高靈活性和可靠性,8位單片機的新發(fā)展體現(xiàn)在下面4個方面:

CPU功能增強

內(nèi)部資源增多

引腳的多功能化

低電壓和低功耗制造成+3V電源的單片機;采用CMOS工藝,設(shè)立掉電和空閑兩種工作方式。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第16頁。17幾種8位單片機的性能概況

(1)Intel公司的MCS-51系列(2)Philips公司的80C51系列(3)Microchip公司的PIC系列(4)Atmel公司的AT89、AT90、AT91和智能IC卡四個系列(5)Motorola公司的M68HC05、M68HC11系列單片機原理及應(yīng)用全文共276頁,當(dāng)前為第17頁。18MCS-51系列單片機特性單片機原理及應(yīng)用全文共276頁,當(dāng)前為第18頁。19除了Intel公司外,Siemens、Philips和Fujitsu等公司都在80C51基礎(chǔ)上推出與Intel公司的80C51兼容的新型單片機,統(tǒng)稱為80C51系列。Philips公司的80C51系列單片機性能卓著,產(chǎn)品最齊全,最具有代表性。它以80C51為內(nèi)核,新增功能電路有:

A/D轉(zhuǎn)換器捕捉輸入/定時輸出

PWM(PulseWidthModulator)脈沖寬度調(diào)制器

I2C總線接口視頻顯示控制器監(jiān)視定時器

E2PROM單片機原理及應(yīng)用全文共276頁,當(dāng)前為第19頁。2080C51系列單片機主要性能特點單片機原理及應(yīng)用全文共276頁,當(dāng)前為第20頁。21PIC系列單片機分低檔、中檔和高檔三個層次。

1、產(chǎn)品特點:價格低:率先采用RISC(精簡指令系統(tǒng)計算機)技術(shù)速度高:兩級指令流水線結(jié)構(gòu)采用哈佛雙總線結(jié)構(gòu)可靠性好:采用OTP(一次性程序)技術(shù),比熔絲式

EPROM更為可靠

2、主要應(yīng)用:嵌入式單片機的主流產(chǎn)品之一。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第21頁。22PIC系列中檔單片機性能表單片機原理及應(yīng)用全文共276頁,當(dāng)前為第22頁。23Atmel公司是世界上著名的高性能、低功耗、非易失性存儲器和數(shù)字集成電路的一流半導(dǎo)體制造公司。單片機產(chǎn)品分為AT89、AT90、AT91和智能IC卡等四個系列。

1、產(chǎn)品特點:

E2PROM存儲器技術(shù)

FLASH閃速存儲器技術(shù)

2、主要應(yīng)用:計算機外部設(shè)備、通信設(shè)備、自動化工業(yè)控制航空航天儀表、雷達(dá)系統(tǒng)、導(dǎo)彈機器人、各類武器系統(tǒng)單片機原理及應(yīng)用全文共276頁,當(dāng)前為第23頁。24AT90系列單片機選型表單片機原理及應(yīng)用全文共276頁,當(dāng)前為第24頁。25

Motorola公司是世界最具影響力的單片機廠商,其8位機約占8位機市場的30%份額。該公司共分為M6805、M68HC05、M68HC08、M68HC11等幾個系列。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第25頁。26M6805系列單片機主要性能表單片機原理及應(yīng)用全文共276頁,當(dāng)前為第26頁。27M68HC05系列單片機主要性能表單片機原理及應(yīng)用全文共276頁,當(dāng)前為第27頁。28M68HC11系列單片機主要性能表單片機原理及應(yīng)用全文共276頁,當(dāng)前為第28頁。29第三節(jié)單片機的應(yīng)用單片機應(yīng)用的特點

1、控制系統(tǒng)的在線應(yīng)用2、軟硬件結(jié)合(1)計算機在控制系統(tǒng)中的離線應(yīng)用。由微型機或小型機實現(xiàn)(2)計算機在控制系統(tǒng)中的在線應(yīng)用。由單片機實現(xiàn)

要求:設(shè)計人員既要掌握匯編語句編程技術(shù),又要具備較扎實的硬件理論和實踐知識。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第29頁。30(1)廣泛性:微電子時代的必然發(fā)展趨勢意義:有利于產(chǎn)品的小型化、多功能化和智能化;改變了的傳統(tǒng)的控制系統(tǒng)設(shè)計思想傳統(tǒng):控制設(shè)計思想硬件電路實現(xiàn)控制現(xiàn)代:控制設(shè)計思想軟件程序輸入單片機實現(xiàn)控制

4、應(yīng)用的廣泛性及其重要意義3、應(yīng)用現(xiàn)場環(huán)境惡劣

注意:使用時,應(yīng)根據(jù)環(huán)境的溫度情況選擇合適的芯片。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第30頁。31單片機的應(yīng)用領(lǐng)域

1、工業(yè)自動化方面

2、儀器儀表方面

3、家用電器方面

4、信息和通信產(chǎn)品方面

5、軍事裝備方面單片機原理及應(yīng)用全文共276頁,當(dāng)前為第31頁。32參考書《單片機原理及實用技術(shù)》張振榮北京人民郵電出版社《MCS-51系列單片機系統(tǒng)原理與設(shè)計》蘇凱冶金工業(yè)出版社《單片機原理及其接口技術(shù)》胡漢才清華大學(xué)出版社單片機原理及應(yīng)用全文共276頁,當(dāng)前為第32頁。33第二章單片機芯片的硬件結(jié)構(gòu)MCS-51單片機的邏輯結(jié)構(gòu)及信號引腳MCS-51單片機的內(nèi)部存儲器MCS-51單片機并行輸入/輸出口電路MCS-51單片機時鐘電路與時序MCS-51單片機工作方式單片機原理及應(yīng)用全文共276頁,當(dāng)前為第33頁。34第一節(jié)邏輯結(jié)構(gòu)及信號引腳MCS-51單片機結(jié)構(gòu)框圖單片機原理及應(yīng)用全文共276頁,當(dāng)前為第34頁。35MCS-51單片機芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器內(nèi)部數(shù)據(jù)存儲器內(nèi)部程序存儲器定時器/計數(shù)器并行I/O口串行口中斷控制系統(tǒng)時鐘電路位處理器總線單片機原理及應(yīng)用全文共276頁,當(dāng)前為第35頁。361.中央處理器注意:控制器的時鐘脈沖由振蕩器OSC電路提供。

PC:存放將要執(zhí)行的指令地址。

IR:存放正在執(zhí)行的指令地址。

ID:存放指令碼。定時與控制電路:產(chǎn)生時序輸出信號和微操作控制信號

控制器:PC、PC加1寄存器、指令寄存器(IR)、指令譯碼器(ID)、定時與控制電路。

ALU:用于進(jìn)行算術(shù)、邏輯運算。

ACC:用于存放操作數(shù)或操作結(jié)果。

B:用于存放操作數(shù)。

PSW:用于存放指令執(zhí)行后的狀態(tài)信息。

TMP:用于存放中間操作數(shù)(對用戶不開放)。

運算器:ALU、ACC、B、PSW、TMP1、TMP2。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第36頁。372.內(nèi)部數(shù)據(jù)存儲器由RAM和RAM地址寄存器組成。用于存放可讀寫的數(shù)據(jù)。根據(jù)片內(nèi)ROM的結(jié)構(gòu),單片機可分為:無ROM型

ROM型

EPROM型

E2PROM型

FLASH型3.內(nèi)部程序存儲器由ROM和ROM地址寄存器組成。用于存放程序和原始數(shù)據(jù)。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第37頁。384.定時器/計數(shù)器

2個16位(80C51、8051)用于將其定時或計數(shù)的結(jié)果對單片機進(jìn)行控制。5.并行I/O口

4個8位(P0、P1、P2、P3)用于使單片機和存儲器或外設(shè)之間并行傳送8位數(shù)據(jù)。6.串行口

1個全雙工串行口用于單片機和其它數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳送。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第38頁。397.中斷控制系統(tǒng)

5個中斷源、2級中斷

10.總線9.位處理器即布爾處理器。特別適用于控制目的和解決邏輯問題8.時鐘電路典型的晶振頻率為12MHZ單片機原理及應(yīng)用全文共276頁,當(dāng)前為第39頁。40MCS-51單片機的信號引腳1.信號引腳介紹單片機原理及應(yīng)用全文共276頁,當(dāng)前為第40頁。41(1)主電源及時鐘引腳(2)控制引腳(3)輸入/輸出引腳

VCC(40腳)、VSS(20腳)

XTAL1(19腳)、XTAL2(18腳)

RST/VPD(9腳):復(fù)位信號/備用電源

ALE/PROG(30腳):地址鎖存控制信號/編程脈沖

PSEN(29腳):外部程序存儲器讀選通信號

EA/VPP(31腳):訪問程序存儲器控制信號/編程電源

P0:8位三態(tài)雙向I/O口,可驅(qū)動8個LSTTL負(fù)載

P1:8位準(zhǔn)雙向I/O口,可驅(qū)動4個LSTTL負(fù)載

P2:8位準(zhǔn)雙向I/O口,可驅(qū)動4個LSTTL負(fù)載

P3:8位準(zhǔn)雙向I/O口,可驅(qū)動4個LSTTL負(fù)載單片機原理及應(yīng)用全文共276頁,當(dāng)前為第41頁。422.信號引腳的第二功能-----引腳“復(fù)用”可概況為:“一組與三個”一組:P3口三個:9腳—RST/VPD30腳---ALE/PROG31腳----EA/VPP單片機原理及應(yīng)用全文共276頁,當(dāng)前為第42頁。43第二節(jié)內(nèi)部存儲器MCS-51單片機的存儲器結(jié)構(gòu)特點(1)數(shù)據(jù)存儲區(qū)與程序存儲區(qū)完全分開,且各有自己的一套系統(tǒng)(2)分為內(nèi)外存儲器單片機原理及應(yīng)用全文共276頁,當(dāng)前為第43頁。44存儲器的配置情況:物理上:片內(nèi)程序存儲器、片外程序存儲器片內(nèi)數(shù)據(jù)存儲器、片外數(shù)據(jù)存儲器邏輯上:片內(nèi)外統(tǒng)一的64KB的程序存儲器片內(nèi)數(shù)據(jù)存儲器

64KB片外數(shù)據(jù)存儲器單片機原理及應(yīng)用全文共276頁,當(dāng)前為第44頁。45

內(nèi)部數(shù)據(jù)存儲器物理上分為3塊:

00H-7FH(0-127)低128字節(jié)RAM;

80H-FFH(128-255)高128字節(jié)RAM同上128字節(jié)專用寄存器(SFR)塊SFRRAMRAM0FFH80H7FH00H0FFH80H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第45頁。46(1)寄存器區(qū)

內(nèi)部數(shù)據(jù)存儲器低128單元按用途可分為3個區(qū)域:(2)位尋址區(qū)(3)用戶RAM區(qū)單片機原理及應(yīng)用全文共276頁,當(dāng)前為第46頁。47(1)寄存器區(qū)

內(nèi)部數(shù)據(jù)存儲器低128單元按用途可分為3個區(qū)域:

4組寄存器組(R0-R7)由PSW中的RS1和RS0位確定當(dāng)前工作寄存器組兩種訪問通用寄存器的形式:

MOV

R0,#09H

MOV

08H,#09H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第47頁。48(3)用戶RAM區(qū)(2)位尋址區(qū)

16個RAM單元、128位既可進(jìn)行字節(jié)操作,也可進(jìn)行位操作兩種訪問位的形式:

SETB

0FH

SETB

21H.7用于存放用戶數(shù)據(jù)或作為堆棧區(qū)使用。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第48頁。49內(nèi)部數(shù)據(jù)存儲器高128單元(SFR)1.專用寄存器簡介(1)程序計數(shù)器PC

16位程序地址寄存器存放下一條要執(zhí)行的指令地址具有自動加1功能沒有地址,不可尋址(2)累加器A

8位寄存器存放操作數(shù)或結(jié)果數(shù)據(jù)傳送中轉(zhuǎn)站作為變址寄存器單片機原理及應(yīng)用全文共276頁,當(dāng)前為第49頁。50(3)B寄存器(4)程序狀態(tài)字PSW

8位寄存器主要用于乘除運算

A*B=BA

A/B=A…B

例如:MOV

A,#05H

MOV

B,#03H

MUL

AB

DIV

AB

AC、OV、P的狀態(tài)在指令執(zhí)行過程中自動形成;CY的狀態(tài)在執(zhí)行算術(shù)和邏輯指令時,可以被硬件或軟件置位或清除;F0、RS1、RS0由軟件設(shè)置。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/P單片機原理及應(yīng)用全文共276頁,當(dāng)前為第50頁。51

CY---進(jìn)位標(biāo)志位

AC---輔助進(jìn)位標(biāo)志位

F0---用戶標(biāo)志位由用戶根據(jù)程序執(zhí)行的需要通過傳送指令確定。在位操作中,充當(dāng)累加器。

如:RLC

A在某些邏輯運算中也會影響到進(jìn)位標(biāo)志位。

如:ANL

C,bit單片機原理及應(yīng)用全文共276頁,當(dāng)前為第51頁。52

OV---溢出標(biāo)志位帶符號數(shù)加減運算:超出(-128--+127)范圍,置位乘法運算:乘積超過255,置位除法運算:除數(shù)為0,置位

RS1、RS0---寄存器組選擇位用于選擇當(dāng)前工作通用寄存器組有利于程序中保護(hù)現(xiàn)場。

例如:MOV

PSW,#08H

MOV

R0,#43H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第52頁。53例:設(shè)程序執(zhí)行前F0=0,RS1RS0=00B,請問機器執(zhí)行如下程序后

MOV

A,#0FH

ADD

A,#F8HPSW中各位的狀態(tài)是什么?答:PSW=C1H

P---奇偶標(biāo)志位表明累加器中1的個數(shù)的奇偶性。=0

1的個數(shù)為偶數(shù);=1

1的個數(shù)為奇數(shù);單片機原理及應(yīng)用全文共276頁,當(dāng)前為第53頁。54(5)數(shù)據(jù)指針DPTR唯一供用戶使用的16位寄存器由DPH、DPL拼成可用來存放片內(nèi)ROM、片外ROM和片外RAM的地址訪問外部數(shù)據(jù)存儲器時作地址指針使用

MOVX

A,@DPTR訪問程序存儲器時作為基址寄存器使用

MOVC

A,@A+DPTR例如:將片外RAM2000H單元中的數(shù)據(jù)X,取入累加器。

MOV

DPTR,#2000H

MOVX

A,@DPTR單片機原理及應(yīng)用全文共276頁,當(dāng)前為第54頁。552、專用寄存器的字節(jié)尋址根據(jù)不同的型號,可字節(jié)尋址的專用寄存器個數(shù)不同。8051、80C51、8031等有21個;8052等有26個。分布不連續(xù)。

PC不可尋址。只能使用直接尋址方式。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第55頁。563、專用寄存器的位尋址80C51的位尋址空間:位尋址區(qū)(128位)+專用寄存器可位尋址區(qū)(83位)=211位單片機原理及應(yīng)用全文共276頁,當(dāng)前為第56頁。57MCS-51的堆棧操作

堆棧本身是數(shù)據(jù)結(jié)構(gòu)范疇內(nèi)的一種線性表結(jié)構(gòu)在物理上表現(xiàn)為一個特定的存儲區(qū)域采用LIFO(FILO)的存取規(guī)則(1)堆棧的功用

現(xiàn)場保護(hù)和斷點保護(hù)

數(shù)據(jù)的臨時存放,常用在編程過程中(2)堆棧的開辟堆棧只能開辟在內(nèi)部數(shù)據(jù)存儲器中的低128字節(jié)中。最好設(shè)置在用戶RAM區(qū)(30H-7FH)注意:在編程中盡量少的運用多級子程序嵌套和多重中斷單片機原理及應(yīng)用全文共276頁,當(dāng)前為第57頁。58(3)堆棧指示器(SP)功能:用于存放堆棧的棧頂?shù)刂贰?4)堆棧類型(5)堆棧使用方式自動方式指令方式單片機原理及應(yīng)用全文共276頁,當(dāng)前為第58頁。59內(nèi)部程序存儲器

80C51中含有4KB的ROM單元作為程序存儲器。地址為0000H-0FFFH

其中位于存儲區(qū)前部的43個單元為系統(tǒng)保留區(qū),分為6個特殊功能區(qū)。地址為0000H-002AH0000H-0002H為系統(tǒng)啟動單元

0003H-000AH為外部中斷0中斷地址區(qū)

000BH-0012H為定時器/計數(shù)器0中斷地址區(qū)

0013H-001AH為外部中斷1中斷地址區(qū)

001BH-0022H為定時器/計數(shù)器1中斷地址區(qū)

0023H-002AH為串行中斷地址區(qū)單片機原理及應(yīng)用全文共276頁,當(dāng)前為第59頁。60第三節(jié)并行輸入/輸出口電路

MCS-51系列共有4個8位并行雙向口。分別表示為P0、P1、P2、P3。每個I/O端口內(nèi)部都有一個8位數(shù)據(jù)輸出鎖存器和一個8位數(shù)據(jù)輸入緩沖器。其中四個數(shù)據(jù)輸出鎖存器和端口號同名,且為SFR中的一個。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第60頁。611、P0口字節(jié)地址80H,位地址80H-87H,可作為地址/數(shù)據(jù)線,也可作為通用I/O口。A1A2單片機原理及應(yīng)用全文共276頁,當(dāng)前為第61頁。622、P1口字節(jié)地址90H,位地址90H-97H,只可作為通用I/O口。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第62頁。633、P2口字節(jié)地址0A0H,位地址0A0H-0A7H,既可作為高8位地址線使用,又可作為通用I/O口使用。一般不作數(shù)據(jù)傳送工作。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第63頁。644、P3口

字節(jié)地址0B0H,位地址0B0H-0B7H,只可作為通用I/O口。主要用于第二功能控制邏輯。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第64頁。65第四節(jié)時鐘電路與時序(1)振蕩脈沖信號的產(chǎn)生什么是時鐘電路?

時鐘電路就是用來產(chǎn)生單片機工作所需要的時鐘信號的電路。1、時鐘信號的產(chǎn)生單片機原理及應(yīng)用全文共276頁,當(dāng)前為第65頁。66(2)MCS-51各時鐘信號的產(chǎn)生2、外部脈沖信號的引入注意:振蕩電路產(chǎn)生的振蕩脈沖并不是直接拿來使用的,而是經(jīng)分頻后再為系統(tǒng)所用的!原因:在多片單片機系統(tǒng)中,為了使單片機之間時鐘信號同步。注意:外時鐘信號電平持續(xù)時間應(yīng)大于20ns,且脈沖頻率應(yīng)低于12MHZ!單片機原理及應(yīng)用全文共276頁,當(dāng)前為第66頁。674個:節(jié)拍(P)、狀態(tài)(S)、機器周期、指令周期MCS-51共有111條指令。按長度分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。不同的指令可以在不同的機器周期內(nèi)完成。時序定時單位

典型指令時序

節(jié)拍(P)--振蕩脈沖的周期。狀態(tài)(S)--振蕩周期的2倍。機器周期--振蕩周期的12倍。指令周期--執(zhí)行一條指令需要的時間。時序關(guān)系:1個機器周期=6個狀態(tài)=12個振蕩周期(節(jié)拍)單片機原理及應(yīng)用全文共276頁,當(dāng)前為第67頁。68單片機原理及應(yīng)用全文共276頁,當(dāng)前為第68頁。69第五節(jié)工作方式1、復(fù)位方式和復(fù)位電路(1)復(fù)位操作功能:

初始化單片機,使其進(jìn)行工作狀態(tài)

系統(tǒng)重新啟動

程序計數(shù)器和特殊功能寄存器復(fù)位狀態(tài)注意:復(fù)位后,ALE變?yōu)榈碗娖?,PSEN變?yōu)楦唠娖?!單片機原理及應(yīng)用全文共276頁,當(dāng)前為第69頁。70(2)復(fù)位信號及其產(chǎn)生片內(nèi)復(fù)位電路在每個機器周期的S5P2時刻對施密特觸發(fā)器進(jìn)行采樣,以確定是否有復(fù)位操作發(fā)生。(3)復(fù)位方式

上電自動復(fù)位

手動復(fù)位單片機原理及應(yīng)用全文共276頁,當(dāng)前為第70頁。712、程序執(zhí)行方式2個方式:單步執(zhí)行工作方式

連續(xù)執(zhí)行工作方式(1)單步執(zhí)行工作方式單片機在控制面板上的單步執(zhí)行鍵控制下一條一條地執(zhí)行用戶程序中的指令。利用單片機外部中斷功能實現(xiàn)主要用于用戶程序調(diào)試(2)連續(xù)執(zhí)行工作方式所有單片機都需要的一種工作方式。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第71頁。723、低功耗方式(1)待機方式PCON.0-----IDL標(biāo)志位“1”有效

振蕩器保持工作,保證中斷邏輯、串行口和定時器/計數(shù)器電路時鐘

中斷方式退出(2)掉電保護(hù)方式PCON.1-----PD標(biāo)志位“1”有效

只保證內(nèi)部RAM數(shù)據(jù)不丟失數(shù)據(jù)轉(zhuǎn)存------“掉電中斷”接通備用電源------支持內(nèi)部RAM數(shù)據(jù)

現(xiàn)實方法:

硬件復(fù)位方式退出單片機原理及應(yīng)用全文共276頁,當(dāng)前為第72頁。734、EPROM的編程和校驗方式EPROM編程:利用特殊的手段將用戶程序?qū)懭雴纹瑱C內(nèi)部的EPROM。校驗:對寫入的程序代碼連續(xù)讀出校驗的過程。

8751H片內(nèi)含有4KB的EPROM,具有編程、校驗和保密編程等工作方式。方式RSTPSENEA/VPPALE/PROGP2.7P2.6P2.5P2.4編程10VPP01000禁止10X110XX校驗10110000保密位編程10VPP01100單片機原理及應(yīng)用全文共276頁,當(dāng)前為第73頁。74(1)編程方式(2)程序校驗方式(3)加密方式

8751一旦完成保密編程以后,用戶可以讓它自由執(zhí)行EPROM中的程序,但不能以任何形式讀出和對它進(jìn)行局部修改。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第74頁。75第三章MCS-51單片機指令系統(tǒng)MCS-51單片機指令格式和尋址方式MCS-51單片機指令分類介紹單片機原理及應(yīng)用全文共276頁,當(dāng)前為第75頁。76第一節(jié)指令格式和尋址方式1、指令系統(tǒng)概述

指令--計算機適用于控制各功能部件完成某一指定動作的指示和命令。

指令系統(tǒng)--指令的集合,因機器而異。如:Z80有150條基本指令

Intel8080有70條基本指令

MCS-51有111條基本指令指令的三種表示形式:二進(jìn)制形式--直接為CPU執(zhí)行

16進(jìn)制形式--閱讀和書寫匯編形式--編寫程序單片機原理及應(yīng)用全文共276頁,當(dāng)前為第76頁。772、MCS-51單片機指令格式操作碼操作數(shù)或操作數(shù)地址(1)一字節(jié)指令(49)

(2)二字節(jié)指令(45)(3)三字節(jié)指令(17)

如:INC

DPTR和MOV

A,Rn

如:MOV

A,#data

如:MOV

DPTR,#data16和MOVdirect,#data

[標(biāo)號:]操作碼[操作數(shù)1],[操作數(shù)2],[操作數(shù)3];[注釋]單片機原理及應(yīng)用全文共276頁,當(dāng)前為第77頁。78(1)寄存器尋址特點:指令碼中含有操作數(shù)所在的寄存器號。MCS-51根據(jù)該寄存器可找到操作數(shù)。范圍:

通用寄存器R0-R7

部分專用寄存器(A、B、DPTR等)(2)直接尋址范圍:只限于內(nèi)部RAM和專用寄存器3、MCS-51單片機尋址方式尋址方式:如何指定操作數(shù)的所在單元特點:指令碼中含有操作數(shù)地址。機器通過該地址尋找操作數(shù)。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第78頁。79(4)立即尋址特點:指令碼中含有操作數(shù)。(3)寄存器間接尋址特點:指令碼中含有操作數(shù)地址所在的寄存器號。機器通過寄存器可找到操作數(shù)地址,再根據(jù)該地址可找到操作數(shù)。范圍:

內(nèi)部RAM低128單元(只能使用R0和R1)

外部RAM(使用DPTR、R0或R1)例:MOV

A,@R0單片機原理及應(yīng)用全文共276頁,當(dāng)前為第79頁。80(5)變址尋址特點:操作數(shù)地址=基地址+地址偏移量;指令碼中隱含存放基地址的寄存器號(PC/DPTR);

DPTR/PC中的基地址常常是表格始地址,

A中存放偏移量rel。功能:主要用于訪問程序存儲器中的數(shù)據(jù)表格。例:MOV

A,@A+DPTR單片機原理及應(yīng)用全文共276頁,當(dāng)前為第80頁。81(6)位尋址特點:操作數(shù)是可尋址位,指令碼中含有位地址。范圍:

內(nèi)部RAM中的20H-2FH位尋址區(qū)

高128單元中的可位尋址專用寄存器表示方法:直接使用位地址位名稱表示方法單元地址加位數(shù)表示方法專用寄存器符號加位數(shù)的表示方法(7)相對尋址功能:主要用于解決程序中的轉(zhuǎn)移問題特點:目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字節(jié)數(shù)+REL注意:在程序中,相對地址偏移量常用符號表示。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第81頁。824、MCS-51單片機尋址方式小結(jié)

對片內(nèi)外程序存儲器只能使用變址尋址方式

內(nèi)部數(shù)據(jù)存儲器尋址方式靈活

外部數(shù)據(jù)存儲器只能使用寄存器間接尋址方式單片機原理及應(yīng)用全文共276頁,當(dāng)前為第82頁。83第二節(jié)指令分類介紹指令格式中符號意義說明通用格式:MOV<目的操作數(shù)>,<源操作數(shù)>;<注釋>特點:源操作數(shù)和目的操作數(shù)都在內(nèi)部RAM中。1、內(nèi)部RAM數(shù)據(jù)傳送指令組(16條)(1)立即數(shù)傳送指令(2)直接型數(shù)據(jù)傳送指令(3)寄存器尋址型數(shù)據(jù)傳送指令(4)寄存器間址型數(shù)據(jù)傳送指令數(shù)據(jù)傳送類指令單片機原理及應(yīng)用全文共276頁,當(dāng)前為第83頁。84指令通式:

MOVA,#dataMOVRn,#dataMOV@Ri,#dataMOVdirect,#dataMOVDPTR,#data16例如:請編程完成將數(shù)據(jù)X送到20H單元的操作1.MOVR0,#20HMOV@R0,#X2.MOV20H,#X單片機原理及應(yīng)用全文共276頁,當(dāng)前為第84頁。85指令通式:

MOV

A,directMOV

direct,AMOV

@Ri,directMOV

Rn,directMOV

direct2,direct1例如:已知(40H)=X,編程完成將X送到50H單元。1.MOVR0,#50HMOV@R0,40H2.MOV50H,40H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第85頁。86指令通式:

MOV

A,RnMOV

Rn,AMOV

direct,Rn特點:指令碼中含有Rn的寄存器號例如:已知R7=X,編程完成將X送到20H單元。1.MOVA,R7MOV20H,A2.MOV20H,R7單片機原理及應(yīng)用全文共276頁,當(dāng)前為第86頁。87指令通式:

MOV

A,@RiMOV

@Ri,AMOV

direct,@Ri特點:指令碼中含有Ri的寄存器號;

Ri中應(yīng)預(yù)先放有8位二進(jìn)制地址。例如:編程完成將20H單元中的數(shù)據(jù)與30H單元中的數(shù)據(jù)之間的交換。MOVA,20HMOV20H,30HMOV30H,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第87頁。882、外部RAM數(shù)據(jù)傳送指令組(4條)特點:只能使用間接尋址。助記符為MOVX,且須以累加器A為中介。

說明:第1、2條指令可在外部RAM的64K范圍內(nèi)尋址;第3、4條指令能對外部RAM0000H—00FFH范圍尋址。

指令通式:

MOVX

A,@DPTR

MOVX

@DPTR,A

MOVX

A,@Ri

MOVX

@Ri,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第88頁。89例如:已知外部RAM的88H單元中有一數(shù)據(jù)X,試編寫程序?qū)傳送到外部RAM的1818H單元。

MOVR0,#88HMOVDPTR,#1818HMOVXA,@R0MOVX@DPTR,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第89頁。903、程序存儲器數(shù)據(jù)傳送指令組(2條)特點:使用變址尋址。助記符MOVC,也須以累加器A為中介。單向傳送。

指令通式:

MOVC

A,@A+DPTR

MOVC

A,@A+PC

說明:兩條指令均為單字節(jié)查表指令;

DPTR/PC中存放被查表的初始地址,

A中存放被查表的項數(shù)。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第90頁。91[例3.1]以查表方法把累加器中的十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼,并送回累加器中。其查表程序如下:

2000H

HBA:INCA

2001HMOVCA,@A+PC2002HRET2003HDB30H2004HDB31H2005HDB32H

……200CHDB39H200DHDB41H200EHDB42H

……2012HDB46H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第91頁。92例:已知累加器A中有一個0-9范圍內(nèi)的數(shù),試用查表指令編出能查找出該數(shù)平方值表的程序。[方法一]以DPTR為基址寄存器查表。

MOVDPTR,#2000H

MOVCA,@A+DPTRORG2000HDB0DB1DB4DB9

……DB81END單片機原理及應(yīng)用全文共276頁,當(dāng)前為第92頁。93[方法二]以PC為基址寄存器查表。單元地址指令碼

ORG1FFBH

1FFBH2402HADDA,#data

1FFDH83HMOVCA,@A+PC

1FFEH80FEHSJMP

$

2000H00HDB0

01HDB1

DB4

DB9

……

DB81

END起始地址=PC當(dāng)前值+data單片機原理及應(yīng)用全文共276頁,當(dāng)前為第93頁。944、數(shù)據(jù)交換指令組(4條)

指令通式:

XCH

A,RnXCHA,directXCHA,@RiXCHDA,@Ri

說明:只有累加器A可作目的操作數(shù)。這幾條指令執(zhí)行后會影響PSW中的P標(biāo)志位。最后一條指令用作代碼轉(zhuǎn)換。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第94頁。95例二:已知50H中有一個0-9的數(shù),請編程把它變?yōu)橄鄳?yīng)的ASCII碼程序。MOV

R0,#50HMOV

A,#30HXCHD

A,@R0MOV@R0,A例一:已知外部RAM的20H單元中有一個數(shù)X,內(nèi)部RAM20H單元中有一個數(shù)Y,試編寫可以使它們互相交換的程序。MOV

R1,#20HMOVX

A,@R1XCH

A,@R1MOVX@R0,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第95頁。965、堆棧操作指令組

指令通式:

說明:均為雙字節(jié)指令;

A和Rn不可直接出現(xiàn)在指令中,

A必須用ACC或它的物理地址(E0H),

Rn必須用它的物理地址(00H-1FH)。PUSH

directPOPdirect例:利用堆棧作為轉(zhuǎn)存介質(zhì)編寫30H和40H單元中內(nèi)容的互換。MOVSP,#50HPUSH30HPUSH40HPOP30HPOP40H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第96頁。97算術(shù)運算類指令1、加法指令組(不帶CY位加法指令)ADDA,RnADDA,directADDA,@RiADDA,#data注意:(1)目的操作數(shù)只能是累加器A。(2)參加運算的兩個操作數(shù)必須是8位二進(jìn)制數(shù);操作結(jié)果也是一個8位二進(jìn)制數(shù),且會對PSW中標(biāo)志位產(chǎn)生影響。(3)若將兩個操作數(shù)看作帶符號數(shù),則根據(jù)OV位判斷結(jié)果是否溢出。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第97頁。98例一:(A)=0C2H,(R0)=0A9H,執(zhí)行ADDA,R0指令后,A和PSW中的值是多少?例二:執(zhí)行下列指令后,A和PSW中的值是多少?

MOVA,#5AHADDA,#6BH(A)=6BH,(PSW)=85H(A)=C5H,(PSW)=44H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第98頁。992、帶進(jìn)位加法指令組ADDCA,RnADDCA,directADDCA,@RiADDCA,#data注意:(1)目的操作數(shù)只能是累加器A。(2)主要用于多字節(jié)加法運算。(3)其中所加的CY中的值是指令執(zhí)行前的CY值,不是執(zhí)行中形成的CY值。例一:(A)=85H,(R0)=30H,(31H)=FFH,CY=1,試問CPU執(zhí)行如下指令后累加器A和CY中的值是多少?

(1)ADDCA,R0(2)ADDCA,31H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第99頁。100例二:兩個三字節(jié)無符號數(shù)相加,被加數(shù)放在內(nèi)部RAM20H-22H單元(低位在前),加數(shù)放在內(nèi)部RAM2AH-2CH單元(低位在前)。編程序?qū)崿F(xiàn),將它們計算的結(jié)果放在被加數(shù)單元中。MOVR0,#20HMOVR1,#2AHMOVR7,#03HCLRCLOOP:MOVA,@R0ADDCA,@R1MOV@R0,AINCR0INCR1DJNZR7,LOOPCLRAADDCA,#00HMOV@R0,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第100頁。1013、帶借位減法指令組SUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#data注意:

(1)在單片機內(nèi)部,減法操作是在控制器控制下采用補碼加法來實現(xiàn)的。在實際應(yīng)用中,可按二進(jìn)制減法法則進(jìn)行。

(2)MCS-51中沒有不帶借位的減法指令。

(3)進(jìn)行不帶借位減法運算時,可結(jié)合“CLRC”指令應(yīng)用。

(4)若將兩個操作數(shù)看作帶符號數(shù),則根據(jù)OV位判斷結(jié)果是否溢出。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第101頁。102例二:判斷執(zhí)行如下程序后累加器A和PSW中的值是多少?

CLRCMOVA,#52HSUBBA,#0B4H例一:(A)=0C9H,(R2)=54H,(CY)=1。試問CPU執(zhí)行指令SUBBA,R2后累加器A和PSW中的值是多少?(A)=74H,(PSW)=04H(A)=9EH,(PSW)=C5H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第102頁。1034、加1指令組INCAINCRnINCdirectINC@RiINCDPTR例一:(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。執(zhí)行下列指令后,各寄存器及單元中的結(jié)果是多少?是否改變了PSW的狀態(tài)?

INCAINCR3INC30HINC@R0注意:只有INCA指令可以影響PSW中的奇偶標(biāo)志位P,其它指令不會影響標(biāo)志位。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第103頁。1045、減1指令組DECADECRnDECdirectDEC@Ri注意:只有DECA指令可以影響PSW中的奇偶標(biāo)志位P,其它指令不會影響標(biāo)志位。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第104頁。1056、乘除指令組MULABDIVAB注意:執(zhí)行這兩條指令,進(jìn)位標(biāo)志CY總是被清“0”

例一:已知兩個8位無符號乘數(shù)分別放在30H和31H單元中,試編出令它們相乘并把積的低8位放入32H單元,高8位放入33H單元的程序。MOVR0,#30HMOVA,@R0INCR0MOVB,@R0MULABINCR0MOV@R0,AINCR0MOV@R0,B單片機原理及應(yīng)用全文共276頁,當(dāng)前為第105頁。1067、十進(jìn)制調(diào)整指令DAA功能:用于對BCD碼十進(jìn)制數(shù)加法運算的結(jié)果進(jìn)行修正。注意:(1)DA指令不影響溢出標(biāo)志。(2)使用中通常緊跟在加法指令之后,不能跟在減法指令之后。(3)借助進(jìn)位標(biāo)志可實現(xiàn)多位BCD數(shù)加法結(jié)果的調(diào)整。例一:試寫出能完成85+59的BCD加法程序,并對其工作過程進(jìn)行分析。MOVA,#85HADDA,#59HDAAEND單片機原理及應(yīng)用全文共276頁,當(dāng)前為第106頁。107例二:已知R0和R1中分別存有BCD被減數(shù)91和BCD減數(shù)36,試編程求它們的BCD差,并存入R3中。CLRCMOVA,#9AHSUBBA,R1ADDA,R0DAAMOVR3,ACLRCEND步驟:(1)求BCD減數(shù)的補數(shù);

(2)BCD被減數(shù)加減數(shù)的補數(shù);

(3)對和進(jìn)行十進(jìn)制加法調(diào)整。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第107頁。108例三:4位壓縮BCD數(shù)的相加程序。設(shè)一個加數(shù)存放在30H、31H單元,另一個加數(shù)存放在32H、33H單元,試編程序?qū)⒑痛娣诺?0H、31H單元。MOVR0,#30HMOVR1,#32HMOVA,@R0ADDA,@R1DAAMOV@R0,AINCR0INCR1MOVA,@R0ADDCA,@R1DAAMOV@R0,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第108頁。109邏輯運算及移位類指令1、邏輯與運算指令組ANLA,RnANLA,directANLA,@RiANLA,#dataANLdirect,AANLdirect,#data功能:主要用于將某存儲單元或累加器A中某幾位清“0”。例:已知R0中有一個ASCII碼,試通過編程把它變?yōu)锽CD碼。MOVA,R0ANLA,#0FHMOVR0,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第109頁。1102、邏輯或運算指令組ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data功能:主要用于將某存儲單元或累加器A中某幾位置“1”。例:設(shè)(A)=0AAH,P1=0FFH,試通過編程把累加器A中的低4位送入P1口低4位,而P1口高4位不變。MOVR0,AANLA,#0FHANLP1,#0F0HORLP1,AMOVA,R0單片機原理及應(yīng)用全文共276頁,當(dāng)前為第110頁。1113、邏輯異或運算指令組XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data功能:主要用于將某存儲單元或累加器A中某幾位置取反。例:已知外部RAM30H中有一數(shù)6EH,試編寫程序令其高4位不變,低4位取反。MOVR0,#30HMOVX

A,@R0XRLA,#0FHMOVX@P0,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第111頁。1124、累加器清零和取反指令組CLR

ACPL

A注意:其中CPL

A取反指令常用于對某個存儲單元或某個存儲區(qū)域中帶符號數(shù)的求補。例:已知30H單元中有一負(fù)數(shù)X,試寫出求X的補碼的程序。MOVA,#30HCPL

AINCAMOV30H,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第112頁。1135、移位指令組RL

ARR

ARLC

ARRCASWAPAA7A0A7A0A7A0CYA7A0CYA7-A4

A3-A0單片機原理及應(yīng)用全文共276頁,當(dāng)前為第113頁。114例一:已知30H、31單元中有一個16位的二進(jìn)制數(shù)(30H單元為低8位),請通過編程令其擴大二倍。CPL

CMOV

R1,#30HMOVA,@R1RLCAMOV@R1,AINCR1MOVA,@R1RLCAMOV@R1,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第114頁。115例二:在43H、44H單元中有兩個BCD數(shù),請通過編程將它們緊縮成一個字節(jié)并放入43H單元中(其中43H單元中的BCD數(shù)做為緊縮BCD數(shù)的高位)。MOV

R1,#43HMOVA,@R1SWAPAINCR1ORL

A,@R1MOV43H,A單片機原理及應(yīng)用全文共276頁,當(dāng)前為第115頁。116控制轉(zhuǎn)移類指令1、無條件轉(zhuǎn)移指令組2、條件轉(zhuǎn)移指令組3、子程序調(diào)用與返回指令組4、空操作指令單片機原理及應(yīng)用全文共276頁,當(dāng)前為第116頁。117控制轉(zhuǎn)移類指令LJMPaddr16AJMPaddr11SJMPrelJMP@A+DPTR1、無條件轉(zhuǎn)移指令組特點:(1)不會影響PSW中的標(biāo)志位。

(2)指令的操作對象是PC的地址。

(3)第2、3條指令是相對轉(zhuǎn)移指令,在子程序中很有用。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第117頁。118長轉(zhuǎn)移指令

LJMPaddr16;(PC)addr16例:已知某單片機監(jiān)控程序起始地址為A080H,試問用什么辦法可使單片機開機后自動執(zhí)行監(jiān)控程序。答:為使開機后能自動轉(zhuǎn)入A080H處執(zhí)行,應(yīng)在0000H處存放一條如下指令:LJMP

0A080H說明:

(1)把指令碼中的addr16送入PC,使機器執(zhí)行下條指令時無條件轉(zhuǎn)移到addr16處執(zhí)行程序。

(2)可以在64KB范圍內(nèi)轉(zhuǎn)移。

(3)一般情況,addr16可用符號地址表示。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第118頁。119絕對轉(zhuǎn)移指令

AJMPaddr11;(PC)(PC)+2,(PC10-0)addr11例:已知指令KWR:AJMPaddr11中,KWR=3100H,addr11=10110100101B,則轉(zhuǎn)移的目標(biāo)地址是多少?答:程序轉(zhuǎn)移到35A5H處執(zhí)行。注意:

AJMP指令的目標(biāo)轉(zhuǎn)移地址不是與AJMP指令地址在同一個2KB區(qū)域,而是應(yīng)與AJMP指令取出后的PC地址在同一個2KB區(qū)域。說明:(1)(PC)(PC)+2,確定程序轉(zhuǎn)移的頁面地址。

(2)(PC10-0)addr11,確定程序轉(zhuǎn)移的頁內(nèi)地址。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第119頁。120短轉(zhuǎn)移指令

SJMPrel;(PC)(PC)+2,(PC)(PC)+rel1、根據(jù)偏移量計算轉(zhuǎn)移的目標(biāo)地址:

例一:835AHSJMP35H

例二:835AHSJMP0E7H答:目標(biāo)地址=835AH+02H+35H=8391H答:目標(biāo)地址=835AH+02H-19H=8343H說明:(1)rel是一個8位的帶符號偏移字節(jié)。

(2)rel的取值范圍是-128到+127。

(3)目的地址=(PC)+2+rel。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第120頁。1212、根據(jù)目標(biāo)地址計算偏移量:

(向高地址轉(zhuǎn)移)rel=目標(biāo)地址-源地址-2(向低地址轉(zhuǎn)移)rel=(目標(biāo)地址-源地址-2)補

=FEH-(源地址-目標(biāo)地址)1000H7401HSTAR:MOVA,#01H1002HF8HMOVR0,A1003H90CF01HLOOP:MOVDPTR,#0CF01H

…1017H80relSJMPSTART

…END答:rel=E7H。目標(biāo)地址的轉(zhuǎn)移范圍是F99H-1098H例:有下列程序,請計算SJMPSTAR指令碼中的rel,并分析目標(biāo)地址的轉(zhuǎn)移范圍。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第121頁。122變址轉(zhuǎn)移指令

JMP@A+DPTR;(PC)((A)+(DPTR))說明:(1)DPTR中存放目標(biāo)轉(zhuǎn)移地址的基地址,常常是一張轉(zhuǎn)移指令表的起始地址。

(2)A中存放表的偏移量。

(3)主要用于程序的多分支轉(zhuǎn)移。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第122頁。123例:已知累加器A中放有待處理命令,編號0-4,程序存儲器中放有起始地址為PMTB的三字節(jié)長轉(zhuǎn)移指令表。試編一程序能使機器按照累加器A中的命令編號轉(zhuǎn)去執(zhí)行相應(yīng)的命令程序。CM:MOVR1,ARLAADDA,R1MOVDPTR,#PMTBJMP@A+DPTRPMTB:LJMPPM0LJMPPM1LJMPPM2LJMPPM3LJMPPM4

…PM0:…PM4:…單片機原理及應(yīng)用全文共276頁,當(dāng)前為第123頁。124控制轉(zhuǎn)移類指令2、條件轉(zhuǎn)移指令組累加器判零轉(zhuǎn)移指令數(shù)值比較轉(zhuǎn)移指令減1條件轉(zhuǎn)移指令單片機原理及應(yīng)用全文共276頁,當(dāng)前為第124頁。125應(yīng)用:(1)對于無符號數(shù)的比較,可直接根據(jù)執(zhí)行后CY位來判斷。(2)對于帶符號數(shù)的比較,先要確定符號,再判斷。指令操作情況:(1)若左操作數(shù)=右操作數(shù),則程序順序執(zhí)行(即:(PC)(PC)+3);進(jìn)位標(biāo)志清“0”。(2)若左操作數(shù)>右操作數(shù),則程序轉(zhuǎn)移(即:(PC)(PC)+3+rel);進(jìn)位標(biāo)志清“0”。(3)若左操作數(shù)<右操作數(shù),則程序轉(zhuǎn)移(即:(PC)(PC)+3+rel);進(jìn)位標(biāo)志置“1”。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第125頁。126控制轉(zhuǎn)移類指令3、子程序調(diào)用與返回指令組絕對調(diào)用指令長調(diào)用指令返回指令單片機原理及應(yīng)用全文共276頁,當(dāng)前為第126頁。127絕對調(diào)用指令

ACALLaddr11;(PC)(PC)+2(SP)(SP)+1,((SP))(PC7-0)(SP)(SP)+1,((SP))(PC15-8)(PC10-0)addr11說明:(1)與絕對轉(zhuǎn)移指令類似,要求該指令的下一條指令的第一個字節(jié)與子程序的入口地址必須在同一個2KB存儲區(qū)內(nèi)。

(2)指令操作過程可分為兩部分:斷點保護(hù)、構(gòu)造目的地址。

(3)addr11可用符號地址(標(biāo)號)表示。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第127頁。128例一:8100HACALL48FH

先將PC加2:(PC)=8100H+2=1000000100000010B再替換低11位地址:(PC)=1000010010001111B=848FH48FH先將PC加2:(PC)=8F00H+2=1000111100000010B再替換低11位地址:(PC)=1000110010001111B=8C8FH48FH例二:8F00HACALL48FH單片機原理及應(yīng)用全文共276頁,當(dāng)前為第128頁。129長調(diào)用指令

LCALLaddr16;(PC)(PC)+3(SP)(SP)+1,((SP))(PC7-0)(SP)(SP)+1,((SP))(PC15-8)(PC)addr16說明:(1)主程序和被調(diào)用的子程序可以任意地放在64KB

范圍內(nèi)。

(2)指令操作過程可分為兩部分:斷點保護(hù)、構(gòu)造目的地址。

(3)addr16可用符號地址(標(biāo)號)表示。單片機原理及應(yīng)用全文共276頁,當(dāng)前為第129頁。130例:已知:MA=0500H。試問執(zhí)行如下指令

MOVSP,#70HMA:LCALL8192HSP中數(shù)據(jù)為多少?堆棧中數(shù)據(jù)如何變化?PC中的內(nèi)容是什么?答:(SP)=72H,(71H)=03H,(72H)=05H,(PC)=8192H單片機原理及應(yīng)用全文共276頁,當(dāng)前為第130頁。131返回指令

RET;(PC15-8)((SP)),(SP)(SP)-1(PC7-0)((SP)),(SP)(SP)-1RETI

溫馨提示

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

最新文檔

評論

0/150

提交評論