單片計(jì)算機(jī)及其應(yīng)用課件_第1頁(yè)
單片計(jì)算機(jī)及其應(yīng)用課件_第2頁(yè)
單片計(jì)算機(jī)及其應(yīng)用課件_第3頁(yè)
單片計(jì)算機(jī)及其應(yīng)用課件_第4頁(yè)
單片計(jì)算機(jī)及其應(yīng)用課件_第5頁(yè)
已閱讀5頁(yè),還剩430頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片計(jì)算機(jī)及其應(yīng)用單片計(jì)算機(jī)及其應(yīng)用第一章緒論第二章MCS—51單片機(jī)的結(jié)構(gòu)和原理第三章MCS51指令系統(tǒng)第四章匯編語(yǔ)言程序設(shè)計(jì)第五章MCS-51單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器及其應(yīng)用第六章單片機(jī)系統(tǒng)擴(kuò)展第七章MCS-51系統(tǒng)的串行接口第八章MCS-51單片機(jī)的中斷系統(tǒng)第九章單片機(jī)應(yīng)用系統(tǒng)的組成第

本章內(nèi)容SingleChipMicrocomputer什么是單片機(jī)單片機(jī)特點(diǎn)及應(yīng)用單片機(jī)的結(jié)構(gòu)特點(diǎn)一、什么是單片機(jī)

1、微型計(jì)算機(jī)硬件結(jié)構(gòu)——常見(jiàn)的微機(jī)外形臺(tái)式微機(jī)便攜式微機(jī)立式微機(jī)微型計(jì)算機(jī)硬件結(jié)構(gòu)——微機(jī)硬件組成

顯示器主機(jī)鍵盤鼠標(biāo)微型計(jì)算機(jī)硬件結(jié)構(gòu)——運(yùn)算器控制器CPU存儲(chǔ)器輸入接口電路輸入設(shè)備輸出設(shè)備輸出接口電路硬件系統(tǒng)內(nèi)部結(jié)構(gòu)硬件系統(tǒng)——構(gòu)成微機(jī)的實(shí)體和裝置軟件系統(tǒng)——微機(jī)系統(tǒng)所使用的各種程序的總稱軟件系統(tǒng)與硬件系統(tǒng)共同構(gòu)成實(shí)用的微機(jī)系統(tǒng),兩者是相輔相成、缺一不可的。

軟件系統(tǒng)+微型計(jì)算機(jī)系統(tǒng)運(yùn)算器控制器CPU存儲(chǔ)器輸入接口電路輸入設(shè)備輸出設(shè)備輸出接口電路硬件系統(tǒng)微型計(jì)算機(jī)系統(tǒng)CPU輸入設(shè)備輸出設(shè)備軟件系統(tǒng)+微型計(jì)算機(jī)系統(tǒng)硬件系統(tǒng)輸入接口設(shè)備輸出接口設(shè)備運(yùn)算器控制器存儲(chǔ)器單片微型計(jì)算機(jī)是指集成在一個(gè)芯片上的微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)——單片機(jī)實(shí)質(zhì)上就是一個(gè)芯片2、單片微型計(jì)算機(jī)單片機(jī)內(nèi)部結(jié)構(gòu)示意圖

CPU

存儲(chǔ)器定時(shí)器/計(jì)數(shù)器

中斷系統(tǒng)P0-P3TxDRxD

TINT并行I/O口串行I/O口單片機(jī)應(yīng)用系統(tǒng)

單片機(jī)應(yīng)用系統(tǒng)單片機(jī)+接口電路及外設(shè)等+軟件硬件單片機(jī)應(yīng)用系統(tǒng)由硬件和軟件組成硬件是應(yīng)用系統(tǒng)的基礎(chǔ)軟件是在硬件的基礎(chǔ)上對(duì)其資源進(jìn)行合理調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要求的任務(wù),二者相互依賴,缺一不可注:本課程的重點(diǎn)1.掌握單片機(jī)應(yīng)用系統(tǒng)硬件原理的分析方法。2.掌握軟件設(shè)計(jì)與調(diào)試的基本技能。

二、單片機(jī)的結(jié)構(gòu)特點(diǎn)2、引腳采用分時(shí)復(fù)用技術(shù)。由于芯片集成度高,而引腳又不宜過(guò)多,因此將部分引腳設(shè)計(jì)為多功能的,例如,地址總線和數(shù)據(jù)總線采用分時(shí)復(fù)用等。1、存儲(chǔ)結(jié)構(gòu)。采用ROM和RAM嚴(yán)格分開(kāi)的哈佛結(jié)構(gòu),可分為:內(nèi)部ROM、RAM,外部ROM、RAM。3、特殊功能寄存器(21個(gè))采用特殊功能寄存器來(lái)控制單片機(jī)的功能狀態(tài),如定時(shí)/計(jì)數(shù)器、串行口和中斷邏輯等。4、全雙工串行接口內(nèi)部具有全雙工串行接口,可實(shí)現(xiàn)單機(jī)或多機(jī)通訊,為實(shí)現(xiàn)分布式控制系統(tǒng)提供了可能。5、布爾處理器內(nèi)部具有布爾處理器,可十分方便的進(jìn)行二進(jìn)制位邏輯運(yùn)算,進(jìn)行組合邏輯設(shè)計(jì)三、單片機(jī)的特點(diǎn)及應(yīng)用

1.單片機(jī)的特點(diǎn)體積小,重量輕電源單一,功耗低功能強(qiáng),價(jià)格低運(yùn)行速度快,抗干擾能力強(qiáng),可靠性高可以嵌入到電子產(chǎn)品中——嵌入式應(yīng)用系統(tǒng)2.單片機(jī)應(yīng)用

工業(yè)方面民用方面儀表方面電訊方面數(shù)據(jù)處理方面汽車方面A、單片機(jī)應(yīng)用模式1、單機(jī)應(yīng)用 即在一個(gè)應(yīng)用系統(tǒng)中僅使用了一個(gè)單片機(jī),其主要應(yīng)用領(lǐng)域有:智能產(chǎn)品、智能儀表、測(cè)控系統(tǒng)、數(shù)控控制機(jī)智能接口。2、多機(jī)應(yīng)用

多機(jī)應(yīng)用是單片機(jī)在高科技領(lǐng)域中應(yīng)用的主要模式,其高可靠性、高控制功能及高運(yùn)行速度的“三高”技術(shù),在未來(lái)的高科技工程系統(tǒng)中采用單片機(jī)多機(jī)系統(tǒng)作為主要的發(fā)展方向。其應(yīng)用模式可分為功能彌散系統(tǒng)、并行多機(jī)處理系統(tǒng)和局部網(wǎng)絡(luò)系統(tǒng)。B、單片機(jī)的供應(yīng)狀態(tài)

單片機(jī)通過(guò)執(zhí)行指令流來(lái)完成預(yù)先設(shè)定的功能,其指令的存放方式取決于片內(nèi)ROM的配置情況:

1、片內(nèi)ROM配置即單片機(jī)片內(nèi)帶有掩模ROM,其內(nèi)容由廠家出廠時(shí)設(shè)定,因而其生產(chǎn)周期長(zhǎng)、經(jīng)濟(jì)風(fēng)險(xiǎn)大但成本較低。征對(duì)以上特點(diǎn),已有廠家推出了一次性(即OTP型)用戶可編程的單片機(jī),因而兼具成本低、周期短、低風(fēng)險(xiǎn)等優(yōu)點(diǎn)。2、片內(nèi)EPROM配置

適用于樣機(jī)開(kāi)發(fā),可多次重寫(xiě)。3、片內(nèi)E2PROM配置適用于樣機(jī)開(kāi)發(fā),可多次重寫(xiě),其重寫(xiě)比EPROM更方便,目前使用最為廣泛。4、片內(nèi)無(wú)ROM配置由于片內(nèi)無(wú)ROM,因而需在片外擴(kuò)展ROM,其電路復(fù)雜,靈活性差,已逐漸被淘汰。C、單片機(jī)的等級(jí)集成電路依據(jù)其使用環(huán)境可分為三個(gè)等級(jí)1、商用級(jí)溫度范圍為0~70OC,限用于機(jī)房及辦公環(huán)境2、工業(yè)級(jí)溫度范圍為-45~85OC3、軍用級(jí)溫度范圍為-50~125OC

不同級(jí)別之間價(jià)格相差很大,如軍用級(jí)為商用級(jí)的10倍乃至上百倍。單片機(jī)為工業(yè)級(jí)產(chǎn)品。3.單片機(jī)種類

◆生產(chǎn)廠商:美國(guó)微芯片公司:PIC16C××系列、PIC17C××系列、PIC1400系列,美國(guó)英特爾公司的MCS-48和MCS-51系列,美國(guó)摩托羅拉公司的MC68HC05系列和MC68HC11系列,美國(guó)齊洛格公司的Z8系列,日本電氣公司的μPD78××系列,美國(guó)莫斯特克公司和仙童公司合作生產(chǎn)的F8(3870)系列等。

A、單片機(jī)的分類(按用途)(1)通用型單片機(jī)它可向開(kāi)發(fā)者提供較多資源,具有較強(qiáng)的通用性,適應(yīng)性較強(qiáng),應(yīng)用較為廣泛,便于普及和推廣,但有時(shí)會(huì)造成大量資源的浪費(fèi)。(2)專用型單片機(jī)專門征對(duì)特殊使用場(chǎng)合的具體要求而設(shè)計(jì),通常是微控制系統(tǒng)的集成產(chǎn)品,因而其抗干擾能力比通用型強(qiáng),適用于各種惡劣環(huán)境,但由于其專用性強(qiáng),其應(yīng)用范圍受到了很大的限制。B、按字長(zhǎng)分類(1)4位機(jī)主產(chǎn)于日本,如SM系列,UPD系列等,其特點(diǎn)是價(jià)格便宜,其數(shù)值運(yùn)算能力差。(2)8位機(jī)目前市面上的主導(dǎo)機(jī)型,如Intel,Motorola,Zilog等廠家的產(chǎn)品,由于其功能強(qiáng)大,價(jià)格低廉,品種繁多,數(shù)值處理能力一般,應(yīng)用范圍較廣。(3)16位機(jī)、32位機(jī)具有強(qiáng)大的數(shù)值處理能力,且具有并行功能,適用于有大量數(shù)據(jù)處理的應(yīng)用系統(tǒng),由于其字長(zhǎng)較長(zhǎng),運(yùn)行速度較高,因而數(shù)據(jù)處理速度高。它的發(fā)展壯大直接推動(dòng)了信息化時(shí)代的到來(lái)。如TMS320C50,進(jìn)行一次乘法運(yùn)算僅需60ns?!魡纹瑱C(jī)的發(fā)展經(jīng)歷了由4位機(jī)到8位機(jī),再到16位機(jī)的發(fā)展過(guò)程◆目前8位單片機(jī)仍是單片機(jī)的主流機(jī)型;2-1關(guān)于MCS-51系列2-2MCS-51系列單片機(jī)的結(jié)構(gòu)原理2-3 MCS-51單片機(jī)的引腳及其片外總線結(jié)構(gòu)2-4MCS-51單片機(jī)的工作方式2-5MCS-51單片機(jī)的時(shí)序第二章MCS—51單片機(jī)的結(jié)構(gòu)和原理一、MCS-51系列型號(hào)型號(hào)片內(nèi)程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器8031NO128Bytes80514KROM128Bytes87514KEPROM128Bytes8032NO256Bytes89C514KE2PROM128Bytes89C528KE2PROM256Bytes89C20512KE2PROM128Bytes2-1關(guān)于MCS-51系列二、MCS-51的主要特點(diǎn)1、單+5V供電,40引腳封裝2、8位字長(zhǎng)CPU3、片內(nèi)有振蕩電路和時(shí)鐘電路4、32根I/O線5、64K外部RAM(不含內(nèi)部RAM)6、64K外部ROM(含內(nèi)部ROM)7、2個(gè)16位定時(shí)/計(jì)數(shù)器(8X52有3個(gè))8、具有2個(gè)優(yōu)先級(jí)別的5個(gè)中斷源(8X52有6個(gè))9、可編程的全雙工串行口,如工作方式、波特率等10、布爾處理器11、128個(gè)用戶可尋址位單元12、128字節(jié)內(nèi)部RAM(8X52有256個(gè)字節(jié))時(shí)鐘電路CPUROMRAMT0T1中斷系統(tǒng)串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時(shí)計(jì)數(shù)器結(jié)構(gòu)框圖中央處理器CPU:8位,運(yùn)算和控制功能內(nèi)部RAM:共256個(gè)RAM單元,用戶使用前128個(gè)單元,用于存放可讀寫(xiě)數(shù)據(jù),后128個(gè)單元被專用寄存器占用。內(nèi)部ROM:4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)和表格。定時(shí)/計(jì)數(shù)器:兩個(gè)16位的定時(shí)/計(jì)數(shù)器,實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。并行I/O口:4個(gè)8位的I/O口P0、P1、P2、P3。串行口:一個(gè)全雙工串行口。中斷控制系統(tǒng):5個(gè)中斷源(外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè))時(shí)鐘電路:可產(chǎn)生時(shí)鐘脈沖序列,允許晶振頻率6MHZ和12MHZ2-2MCS-51系列單片機(jī)的結(jié)構(gòu)原理一、基本組成1、8051單片機(jī)的基本組成中央處理器CPU:8位,運(yùn)算和控制功能內(nèi)部RAM:共256個(gè)RAM單元,用戶使用前128個(gè)單元,用于存放可讀寫(xiě)數(shù)據(jù),后128個(gè)單元被專用寄存器占用。內(nèi)部ROM:4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)和表格。定時(shí)/計(jì)數(shù)器:兩個(gè)16位的定時(shí)/計(jì)數(shù)器,實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。并行I/O口:4個(gè)8位的I/O口P0、P1、P2、P3。串行口:一個(gè)全雙工串行口。中斷控制系統(tǒng):5個(gè)中斷源(外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè))時(shí)鐘電路:可產(chǎn)生時(shí)鐘脈沖序列,允許晶振頻率6MHZ和12MHZ1

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

2.

儲(chǔ)

器80318751805189C51片內(nèi)RAM片內(nèi)ROM256B(字節(jié))4K64K64K(1)程序存儲(chǔ)器程序存儲(chǔ)器內(nèi)部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序執(zhí)行的起始單元,

在這三個(gè)單元存放一條

無(wú)條件轉(zhuǎn)移指令

中斷5中斷4中斷3中斷2中斷10003H000BH0013H001BH0023H002BH外部中斷0定時(shí)器0中斷外部中斷1定時(shí)器1中斷串行口中斷8位...0FFFH0FFEHEA=1EA=0程序存儲(chǔ)器資源分布中斷入口地址org 0000h ljmp main org 002bhMain: mov sp,#60h ……..0000HFFFFH(64K)內(nèi)部外部(2)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器00HFFH7FH80H(高128B)(低128B)RAM專用

寄存器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可作一般RAM讀寫(xiě)也可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲(chǔ)器

11第3區(qū)18H~1FH

01第1區(qū)08H~0FHRS1RS0寄存器區(qū)片內(nèi)RAM地址

00第0區(qū)00H~07H10第2區(qū)10H~17H工作寄存器區(qū)選擇位RS0、RS1注意:一個(gè)單元地址對(duì)應(yīng)有8個(gè)位地址

MSB——MostSignificantBit(最高有效位)

LSB——LeastSignificantBit(最低有效位)單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地址表(P11)(3)特殊功能寄存器(高128個(gè)單元)

MCS-51內(nèi)部安排有21個(gè)特殊功能寄存器各特殊功能寄存器的符號(hào)及地址見(jiàn)表2-2。分別由于以下各個(gè)功能單元:CPU:ACC、B、PSW、SP、DPTR(由兩個(gè)8位寄存器DPL、DPH組成)并行口:P0、P1、P2、P3中斷系統(tǒng):IE、IP定時(shí)/計(jì)數(shù)器:TMOD、TCON、TH1、TL1、TH0、TL0串行口:SCON,SBUF,PCON高128個(gè)單元☆離散分布有21個(gè)特殊功能寄存器SFR?!?/p>

11個(gè)可以進(jìn)行位尋址:ACC、B、PSW、IE、IP、P0、P1、P2、P3、SCON、TCON☆特別提示:對(duì)SFR只能使用直接尋址方式,書(shū)寫(xiě)時(shí)可使用寄存器符號(hào),也可用寄存器單元地址。3、CPU由運(yùn)算器、控制器和若干SFR(ACC,B,PSW,SP,DPTR)構(gòu)成。(1)運(yùn)算器:實(shí)現(xiàn)數(shù)據(jù)的算術(shù)運(yùn)算和邏輯運(yùn)算。(2)累加器ACC:提供一個(gè)操作數(shù)并存放運(yùn)算結(jié)果,其進(jìn)位標(biāo)志CY同時(shí)也是布爾處理器的累加器。(3)寄存器B:用于乘法和除法操作,也用作暫存器。(4)CPU標(biāo)志寄存器CY:進(jìn)位標(biāo)志,有進(jìn)位或借位時(shí)為1,否則為0

AC:輔助進(jìn)位標(biāo)志當(dāng)D3向D4有進(jìn)位或借位時(shí)為1,否則為0

F0:用戶標(biāo)志RS1、RS0:工作寄存器組OV:溢出標(biāo)志,結(jié)果超過(guò)-128~+127時(shí),OV=1,否則為0CYACF0RS1RS0OV—PPSW

11第3區(qū)18H~1FH

01第1區(qū)08H~0FHRS1RS0寄存器區(qū)片內(nèi)RAM地址

00第0區(qū)00H~07H10第2區(qū)10H~17H(4)CPU標(biāo)志寄存器P:奇偶校驗(yàn)標(biāo)志,當(dāng)ACC中“1”的個(gè)數(shù)為奇數(shù)個(gè)時(shí),P=1PSW.1:保留位,用戶可使用。椎棧指針SP:先入后出的特殊存儲(chǔ)器指針。數(shù)據(jù)指針DPTR:用于存放16位地址,可分為DPH和DPL。MOV SP,#60HMOV DPL,#0FFHMOV DPH,#0FH4、并行I/O口P0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.74個(gè)8位并行I/O口:P0,P1,P2,P3;均可作為雙向I/O端口使用。輸入時(shí)可以緩沖,輸出時(shí)可以鎖存。(1)特點(diǎn):P0:訪問(wèn)片外擴(kuò)展存儲(chǔ)器時(shí),

復(fù)用為低8位地址線和數(shù)據(jù)線

P2:高8位地址線。P1:雙向I/O端口

P3:第二功能1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51片外擴(kuò)展存儲(chǔ)器時(shí)P0、P2口自動(dòng)作為總線使用(2)I/O口的字節(jié)地址和位地址(3)下面分別介紹4個(gè)I/O口的結(jié)構(gòu)1)P0口的位結(jié)構(gòu)鎖存器三態(tài)緩沖器場(chǎng)效應(yīng)管P0口既可用作I/O口,也可用作地址/數(shù)據(jù)總線,但二者不能兼用,用作I/O口時(shí),必須在管腳上接上拉電阻。用作地址/數(shù)據(jù)總線時(shí),地址和數(shù)據(jù)采取分時(shí)復(fù)用方式。用作輸入時(shí),必須對(duì)輸出鎖存器置“1”—“讀引腳”操作B、P1口的位結(jié)構(gòu)P1口由于只能作為I/O口使用,因而輸出控制電路結(jié)構(gòu)同P0口不同。C、P2口位結(jié)構(gòu)P2口既可用作I/O口,也可用作高8位地址總線。D、P3口位結(jié)構(gòu)P3口既可用I/O口,又分別具有第二功能,但二者不能混用,其第二功能如下表所示。P3口第二功能ALEWR

RDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7指令1:MOVP1,#00H指令2:MOVP1,#0FFH指令3:MOVP1,#0AAH000000001111111101010101E輸出舉例指令4:CLRP1.0指令5:SETBP1.0111111110+5V1111111111111111F輸入舉例S0+5V4.7kWALEWR

RDP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7讀端口:MOVP3,#11111111BMOVA,P389C51××××××××寄存器A注:當(dāng)I/O端口作為輸入使用時(shí),需先向端口寫(xiě)入“1”,使內(nèi)部的FET截止,再讀入引腳的狀態(tài)。你知道P3.4對(duì)應(yīng)寄存器A哪一位嗎?P3.4你知道這是為什么嗎?1111111101一、MCS-51單片機(jī)信號(hào)引腳簡(jiǎn)介

P3口線的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振蕩電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(hào)(1)、電源線:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問(wèn)程序存儲(chǔ)控制信號(hào)(6)、PSEN:外部ROM讀選通信號(hào)RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C511、管腳圖2-3 MCS-51單片機(jī)的引腳及其片外總線結(jié)構(gòu)二、片外三總線結(jié)構(gòu)1、地址總線(AB)由P2,P0提供16位地址2、數(shù)據(jù)總線(DB)由P0口提供8位數(shù)據(jù)3、控制總線(CB)由P3口和RST、EA、ALE、PSEN組成2-4 MCS-51單片機(jī)的工作方式一、復(fù)位方式

在振蕩電路工作時(shí),在RST引腳上加上一個(gè)至少保持2個(gè)機(jī)器周期的高電平,單片機(jī)完成復(fù)位。其復(fù)位電路結(jié)構(gòu)和內(nèi)容如圖所示

復(fù)位電路復(fù)位不影響RAM內(nèi)容。使PC指向0000H,重新執(zhí)行程序。復(fù)位可分為上電自動(dòng)復(fù)位和按鍵復(fù)位兩種方式。復(fù)位方式、程序執(zhí)行方式、單步執(zhí)行方式、掉電方式、節(jié)電方式復(fù)位電路復(fù)位電路結(jié)構(gòu)和內(nèi)容二、程序執(zhí)行方式

本方式是單片機(jī)的基本工作方式,復(fù)位后,程序自0000H開(kāi)始執(zhí)行。用戶的程序一般不可能從0000H開(kāi)始存放。因此,需要從0000H開(kāi)始存放一條轉(zhuǎn)移指令,以使執(zhí)行轉(zhuǎn)移到用戶程序的入口地址。三、單步執(zhí)行方式

在外界脈沖的控制下,單片機(jī)每執(zhí)行一條指令就暫停下來(lái)。四、掉電和節(jié)電方式用于低功耗系統(tǒng)設(shè)計(jì)PDGF0—IDLGF1——SMOD

D0

D7PCON五、編程和校驗(yàn)方式

對(duì)于內(nèi)部含有EPROM或EEPROM的單片機(jī),可用于對(duì)其編程或?qū)ζ湫r?yàn)。2-5 MCS-51單片機(jī)的時(shí)序一、時(shí)序在執(zhí)行指令的過(guò)程中,CPU的控制器發(fā)出的一系列特定的控制信號(hào)在時(shí)間上的相互關(guān)系。內(nèi)部控制信號(hào)和外部控制信號(hào)。二、區(qū)別幾個(gè)概念1、振蕩周期(時(shí)鐘周期):振蕩信號(hào)周期,fOSC2、狀態(tài)周期:又叫S周期,可分為P1和P2兩拍,其中P1通常完成邏輯操作,而P2通常完成內(nèi)部寄存器與寄存器間的數(shù)據(jù)傳輸,fosc/2。3、機(jī)器周期:?jiǎn)纹瑱C(jī)的基本操作周期,fosc/12。(教材P25)包含六個(gè)狀態(tài)周期。4、指令周期:執(zhí)行一條指令的周期,分別有單、雙和四機(jī)器周期指令。5、ALE信號(hào):可作為一種周期信號(hào)使用。三、MCS-51指令的取指/執(zhí)行時(shí)序

指令的處理都包括取指(取操作碼或操作數(shù))和執(zhí)行(指令的邏輯功能)兩個(gè)階段,每出現(xiàn)一次ALE信號(hào),CPU就進(jìn)行一次取指操作。 指令寄存器譯碼地址譯碼程序計(jì)數(shù)器地址寄存器累加器A運(yùn)算器①②存儲(chǔ)器內(nèi)部數(shù)據(jù)總線外部地址總線AB數(shù)據(jù)緩沖器外部數(shù)據(jù)總線DB寄存器區(qū)外部控制總線CB內(nèi)部控制信號(hào)時(shí)鐘及清零三、MCS-51指令的取指/執(zhí)行時(shí)序取指過(guò)程例:MOVA,#09H74H

09H;把09H送到累加器A中執(zhí)行過(guò)程PC=0000H0001H0000H0002H0111010000001001(PC)(PC)0001H0002H0000H外部控制總線CB取指過(guò)程(PC)執(zhí)行過(guò)程指令的處理都包括取指(取操作碼或操作數(shù))和執(zhí)行(指令的邏輯功能)兩個(gè)階段,每出現(xiàn)一次ALE信號(hào),CPU就進(jìn)行一次取指操作四、訪問(wèn)外部ROM時(shí)序在S1P2時(shí)刻ALE信號(hào)有效。2.P0口送出ROM的低8位地址,P2口送出高8位地址,A7-A0只持續(xù)到S2結(jié)束,故在外部要用鎖存器,可用ALE作為鎖存信號(hào),A15-A8在整個(gè)讀指令過(guò)程中都有效3.在S3P1時(shí)刻/PSEN開(kāi)始有效,可以用它選通外部ROM的使能端,被選種的ROM單元的內(nèi)容,從P0口讀入CPU,然后/PSEN失效。4.在S4P2后開(kāi)始第二次讀入,其過(guò)程與第一次相同。五、訪問(wèn)外部RAM時(shí)序本章作業(yè):除7題外在同一機(jī)器周期的S5狀態(tài)產(chǎn)生的ALE信號(hào)的下降沿,將P0總線上出現(xiàn)的低8位地址鎖存在外部的鎖存器中。讀數(shù)據(jù)尋址方式數(shù)據(jù)傳送類指令算術(shù)運(yùn)算類指令邏輯操作類指令控制轉(zhuǎn)移類指令位操作指令常用偽指令第

MCS

51

指令系統(tǒng)

本章內(nèi)容SingleChipMicrocomputer概述MCS-51系列單片機(jī)的指令系統(tǒng)專用于51系列單片機(jī),共有111條指令,具在豐富靈活的尋址方式,其指令格式與8086的指令系統(tǒng)相同,甚至某些指令還完全相同。使用時(shí)應(yīng)注意區(qū)別。在111條指令中,從存儲(chǔ)空間的占用上看,單字節(jié)指令占49條,雙字節(jié)指令占45條,三字節(jié)指令占17條;從執(zhí)行時(shí)間上看,在111條指令中,單機(jī)器周期指令占64條,雙機(jī)器周期指令占45條,僅乘法和除法兩條指令為四機(jī)器周期指令。因而無(wú)論是存儲(chǔ)空間的利用率,還是時(shí)間的執(zhí)行效率都是較高的,再加上靈活的尋址方式,特別適合于實(shí)時(shí)測(cè)量和控制場(chǎng)合。因而,單片機(jī)又常被稱為微控制器?!?-1指令的格式及標(biāo)識(shí)操作碼70數(shù)據(jù)或?qū)ぶ贩绞?0雙字節(jié)指令:標(biāo)號(hào):操作碼操作數(shù)或操作數(shù)地址;注釋單字節(jié)指令:操作碼70三字節(jié)指令:操作碼70數(shù)據(jù)或?qū)ぶ贩绞?0數(shù)據(jù)或?qū)ぶ贩绞?0指令按字節(jié)長(zhǎng)度可以分為三種:指令的格式:例如:MOVA,R0例如:MOVA,30H例如:MOVDPTR,#2010H操作碼助記符、目的操作數(shù)、源操作數(shù)是指令的核心部分。方括號(hào)中內(nèi)容為可選項(xiàng),其有無(wú)視具體的指令而異。一、指令的格式二、關(guān)于標(biāo)號(hào)

標(biāo)號(hào)不允許只用數(shù)字,而應(yīng)以字母打頭,后面跟數(shù)字,不可使用運(yùn)算符號(hào),不能同十六進(jìn)制數(shù)發(fā)生混淆,較好的取名原則是見(jiàn)名知義。便于程序員在調(diào)試程序時(shí)更加順利,往往一個(gè)標(biāo)號(hào)就是一個(gè)功能入口,因而在使用標(biāo)號(hào)時(shí)應(yīng)特別小心,用并非每句指令都需要標(biāo)號(hào)。三、關(guān)于指令中的符號(hào)標(biāo)識(shí)符號(hào)含義Rn表示當(dāng)前選定寄存器組的工作寄存器R0~R7Ri表示作為間接尋址的地址指針R0~R1#data表示8位立即數(shù),即00H~FFH#data16表示16位立即數(shù),即0000H~FFFFHaddr16表示16位地址,用于64K范圍內(nèi)尋址addr11表示11位地址,用于2K范圍內(nèi)尋址direct8位直接地址,可以是內(nèi)部RAM區(qū)的某一單元或某一專用功能寄存器的地址Rel帶符號(hào)的8位偏移量(-128~+127)Bit位尋址區(qū)的直接尋址位(X)X地址單元中的內(nèi)容,或X作為間接尋址寄存器時(shí)所指單元的內(nèi)容←將←后面的內(nèi)容傳送到前面去四、關(guān)于注釋

為了增強(qiáng)程序的可讀性,使別人易讀,或防止日久遺忘,可適當(dāng)加些注釋。注釋由“;”開(kāi)始?!?-2 尋址方式

在程序行中,操作碼代表了該句指令的功能,而功能的對(duì)象卻由操作數(shù)決定,由操作數(shù)指出參與運(yùn)算的數(shù)或該數(shù)所在的地址。取得操作數(shù)的地址的方法叫做尋址方式。尋址方式與計(jì)算機(jī)的存儲(chǔ)空間結(jié)構(gòu)是密切相關(guān)的。靈活運(yùn)用各種尋址方式,可以大大的提高程序的運(yùn)行效率。MCS-51基本七種尋址方式一、尋址方式(找信方式)我的信在他那!找信去!②①注:找信是尋找信的“地址”!你能說(shuō)出第二封信的“地址”嗎?目的地#XXH操作數(shù)MOVP1,#55HMOVA,#01H#55H目的地信寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址目的地寄存器尋址P31直接尋址P32立即數(shù)尋址P32寄存器間接尋址P33變址尋址P33相對(duì)尋址P34位尋址P35內(nèi)部RAM或SFR區(qū)操作數(shù)XXHMOVP1,20H20H目的地20H注:尋址是尋操作數(shù)的“地址”!直接給出地址

20H——直接尋址目的地寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址寄存器目的地操作數(shù)XXHMOVP1,A寄存器R0-R7A

B

DPTR你能說(shuō)出為什么叫寄存器尋址嗎?寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址MOVP1,@R0目的地寄存器操作數(shù)3AH內(nèi)部RAM3AH65H3AHR0R1

DPTR寄存器間接尋址寄存器目的地2號(hào)信在2號(hào)箱子里1號(hào)你能說(shuō)出1號(hào)箱子和2號(hào)箱子分別對(duì)應(yīng)內(nèi)存中哪一部分嗎?尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是內(nèi)存20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,R0對(duì)!尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20H④地址是內(nèi)存20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,@R0對(duì)!尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,20H對(duì)!④地址是內(nèi)存20H尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是內(nèi)存20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,#20H對(duì)!寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址MOVCA,@A+DPTR目的地寄存器操作數(shù)內(nèi)部RAM3AH65H3AH基址寄存器12H變址寄存器34H內(nèi)部RAM46H65HADPTRPC46H目的地寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址XXH位尋址操作數(shù)SJMP54HPC+54HPC2002H······2002H=2056HPC2056H寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址20H······27H21H28H21H20H100000000想一想:如果想使27H單元的第3位置1,該怎么辦呢?單元地址2FH2EH2DH2CH2BH2AH29H28H

26H25H24H23H22H21H20H7F776F675F574F47372F271F170F07

MSB

位地址

LSB7E766E665E564E46

362E261E160E067D756D655D554D45352D251D150D057C746C645C544C44

342C241C140C047B736B635B534B43

332B231B130B037A726A625A524A42

322A221A120A027971696159514941

312921191109017870686058504840

30282018100800位尋址地址表

例:SETB3DH

3D

3C

3B3F

3E3A

393827H寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址SETB3DH20H······27H21H28H21H20H000000010§3-3MCS—51指令系統(tǒng)的分類2.1數(shù)據(jù)傳送指令(29條)

2.2算術(shù)運(yùn)算指令(24條)2.3邏輯運(yùn)算指令(24條)2.4控制轉(zhuǎn)移指令(17條)2.5位操作指令(17條)2.6常用偽指令(17條)目的地址源地址數(shù)據(jù)MOV<目的操作數(shù)>,<源操作數(shù)>MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA2.1數(shù)據(jù)傳送指令(29條不影響標(biāo)志位CYACOV)

——8位數(shù)據(jù)傳送指令(15條)

2.1數(shù)據(jù)傳送指令(29條)

——16位數(shù)據(jù)傳送指令(1條)

MOVDPTR,#data16

——外部數(shù)據(jù)傳送指令(4條)

MOVX<目的操作數(shù)>,<源操作數(shù)>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA——交換和查表類指令(9條)

,AXCHdirect@DPTR@RidirectA@DPTR@Ri1)字節(jié)交換指令(3條)

2)低半字節(jié)交換指令(1條)

XCHDA,@Ri3)累加器A中高4位和低4位交換(1條)

SWAPA4)查表指令(2條)

MOVCA,@A+PCMOVCA,@A+DPTR5)堆棧操作指令(2條)

PUSHdirectPOPdirect舉例例3-1

將片內(nèi)RAM30H單元的內(nèi)容送到片外60H;將片外4312H單元的內(nèi)容送到片內(nèi)31H單元:

MOV A,30H MOVR0,#60H MOV @R0,A MOVDPTR,#4312H MOV A,@DPTR MOV 31H,A0000HFFFFH(64K)內(nèi)部外部數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器00HFFH7FH80H(高128B)(低128B)RAM專用

寄存器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可作一般RAM讀寫(xiě)也可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲(chǔ)器

11第3區(qū)18H~1FH

01第1區(qū)08H~0FHRS1RS0寄存器區(qū)片內(nèi)RAM地址

00第0區(qū)00H~07H10第2區(qū)10H~17H工作寄存器區(qū)選擇位RS0、RS1directdirect2.2算術(shù)運(yùn)算類指令(24條)

——普通加法指令(4條)A,Rn@Ri#dataADDRn@Ri#dataADD A,RnADD A,directADD A,@RiADD A,#data注意:1.本指令影響Cy,AC,Ov,P等標(biāo)志。

2.求和操作既可看成是有符號(hào)數(shù)運(yùn)算,也可看成是無(wú)符號(hào)數(shù)運(yùn)算,完全由程序員編程時(shí)自行設(shè)定。

3.計(jì)算機(jī)運(yùn)算時(shí)的規(guī)定參見(jiàn)教材P38。 2.2算術(shù)運(yùn)算類指令(24條)

——帶進(jìn)位加法指令(4條)directdirectA,Rn@Ri#dataADDCRn@Ri#data

ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data

除相加時(shí)要考慮進(jìn)位外,其余操作與前面相同。2.2算術(shù)運(yùn)算類指令(24條)

——減法指令(4條)

directdirectA,Rn@Ri#dataSUBBRn@Ri#data

SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data

減法指令是帶借位的,若不需要帶借位減,則在作減法指令前清除借位位,即CLR C

減法指令影響OV、CY、AC標(biāo)志位助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期INCA00000100A

A+1影響PSW的P標(biāo)志1INCRn00001rrrRn

Rn+1n=0~7,rrr=000~1111INCdirect0101direct(direct)

(direct)+1

1INC@Ri0000011i(Ri)

(Ri)+1i=0,11INCDPTR10100011DPTR

DPTR+1

2DECA00010100A

A-1影響PSW的P標(biāo)志1DECRn00011rrrRn

Rn-1n=0~7,rrr=000~1111DECdirect00010101direct(direct)

(direct)+1

1DEC@Ri0001011i(Ri)

(Ri)-1i=0,11——加1減1指令——乘法指令(1條)

MULAB——除法指令(1條)

DIVAB兩個(gè)8位操作數(shù)相乘,形成16位的積,其中A為積的低位而B(niǎo)為積的高位。需要進(jìn)行更多位的乘法運(yùn)算,需另外編程方能實(shí)現(xiàn)。舉例見(jiàn)教材P40兩個(gè)8位操作數(shù)相除,其中A為被除數(shù)而B(niǎo)為除數(shù);運(yùn)算后,結(jié)果仍然在AB中,其中A為商而B(niǎo)為余數(shù)。 同乘法指令相同,需要進(jìn)行更多位的除法運(yùn)算,需另外編程方能實(shí)現(xiàn)。十進(jìn)制調(diào)整指令

DA A;實(shí)現(xiàn)BCD碼加法

BCD碼相加后,根據(jù)Ac和Cy的狀態(tài)對(duì)A中的數(shù)作適當(dāng)調(diào)整,使運(yùn)算結(jié)果為BCD碼。 這條指令對(duì)加法結(jié)果的調(diào)整規(guī)則是:

(1)若累加器A低4位大于9或輔助進(jìn)位標(biāo)志AC=1.則低4位加6;

(2)若累加器A高4位大于9或CY=1,則高4位加6;

(3)若1、2條件都滿足時(shí),則A加66H;

(4)若1、2條件都不滿足時(shí),則A加00H;

(5)若果加器A的最高位因調(diào)整而產(chǎn)生進(jìn)位時(shí),將CY置1,若不產(chǎn)生進(jìn)位整前的狀態(tài)而并不清零。

DA指令只影響進(jìn)位標(biāo)志CY。例3-3

設(shè)ACC中為壓縮BCD碼56H,R3中為壓縮BCD碼67H,且Cy=1,求ACC與R3的壓縮BCD碼之和

MOV A,#56H MOV R3,#67H ADDC A,R3 DA A ;A=?

(A)=01010110(R3)=01100111+)(Cy)=00000001

和=10111110

調(diào)整+)01100110

100100100BCD碼為1242.3邏輯及移位類指令

——邏輯與指令(6條)

助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期ANLA,direct01010101directA

A∧direct按位相與1ANLA,Rn01011rrrA

A∧Rnn=0~7,rrr=000~1111ANLA,@Ri0101011iA

A∧(Ri)i=0,11ANLA,#data01010100dataA

A∧#data

1ANLdirect,A01010010direct(direct)

(direct)∧A不影響PSW的P標(biāo)志1ANLdirect,#data01010011directdata(direct)

(direct)∧#data不影響PSW的P標(biāo)志2——邏輯或指令(6條)

01000011directdata助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期ORLA,direct01000101directA

A∨direct按位相或1ORLA,Rn01001rrrA

A∨Rnn=0~7,rrr=000~1111ORLA,@Ri0100011iA

A∨(Ri)i=0,11ORLA,#data01000100dataA

A∨#data

1ORLdirect,A01000010direct(direct)

(direct)∨A不影響PSW的P標(biāo)志1ORLdirect,#data(direct)

(direct)∨#data不影響PSW的P標(biāo)志2——邏輯異或指令(6條)

助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期XRLA,direct01100101directA

A

(direct)按位相異或1XRLA,Rn01101rrrA

A

Rnn=0~7,rrr=000~1111XRLA,@Ri0110011iA

A

(Ri)i=0,11XRLA,#data01100100dataA

A

#data

1XRLdirect,A01100010direct(direct)

(direct)

A不影響PSW的P標(biāo)志1XRLdirect,#data01100011directdata(direct)

(direct)#data不影響PSW的P標(biāo)志2——累加器A清0和取反指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期CLRA11100100A

00HA中內(nèi)容清0,影響P標(biāo)志1CPLA11110100A中內(nèi)容按位取反,影響P標(biāo)志1AAA.0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:執(zhí)行帶進(jìn)位的循環(huán)移位指令之前,必須給CY置位或清零?!h(huán)移位指令例3-4

設(shè)(20H)=(X7X6X5X4X3X2X1X0) (21H)=(Y7Y6Y5Y4Y3Y2Y1Y0)試編程使(30H)=Y2Y1Y0X4X3X2X1X0程序清單: MOV 30H,20H ANL 30H,#00011111B;B:二進(jìn)制O:八進(jìn)制D:十進(jìn)制H:十六進(jìn)制

MOV A,21H RL A SWAP A ANL A,#11100000H ORL 30H,A例3-5若ACC=X7X6X5X4X3X2X1X0,試編程將A中的低5位送至P1口,但不能影響P1口的高3位。程序清單:

MOV A,#0AAH ANL P1,#11100000B ORL P1,A2.4控制轉(zhuǎn)移類指令

——無(wú)條件轉(zhuǎn)移指令(4條)1)長(zhǎng)轉(zhuǎn)移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假設(shè)執(zhí)行該指令前,PC的值為0000H。注意:該指令可以轉(zhuǎn)移到64KB程序存儲(chǔ)器中的任意位置。PC高5位(保持不變)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作碼(第一字節(jié))操作數(shù)(第二字節(jié))11位轉(zhuǎn)移地址的形成示意圖程序計(jì)數(shù)器PC2)絕對(duì)轉(zhuǎn)移指令A(yù)JMPaddr11;PC+2PC,addr11PC.10~PC.0PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相對(duì)轉(zhuǎn)移指令

例:SJMP03H

03H03H就是當(dāng)前PC值與目的PC值相對(duì)差PC——條件轉(zhuǎn)移指令(8條)

1)累加器A判0指令(2條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JZrel0110000若A=0,則PC

PC+rel,否則程序順序執(zhí)行2JNZrel01110000若A≠0,則PC

PC+rel,否則程序順序執(zhí)行22)減1非零轉(zhuǎn)移指令(2條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期DJNZRn,rel11011rrrrelRn

Rn-1,若Rn≠0,則PCPC+rel,否則順序執(zhí)行2DJNZdirect,rel11010101directrel(direct)

(direct)-1,若(direct)≠0,則PCPC+rel,否則順序執(zhí)行23)比較轉(zhuǎn)移指令(4條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期CJNEA,#data,rel10110100datarel若A≠#data,則PC

PC+rel,否則順序執(zhí)行;若A<#data,則CY=1,否則CY=02CJNERn,#data,rel10111rrrdatarel若Rn≠#data,則PC

PC+rel,否則順序執(zhí)行;若Rn<#data,則CY=1,否則CY=02CJNE@Ri,#data,rel1011011idatarel若(Ri)≠#data,則PC

PC+rel,否則順序執(zhí)行;若(Ri)<#data,則CY=1,否則CY=02CJNEA,direct,rel10110101directrel若A≠(direct),則PC

PC+rel,否則順序執(zhí)行;若A<(direct),則CY=1,否則CY=02——調(diào)用和返回指令(8條)

1)絕對(duì)調(diào)用指令(1條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期ACALLaddr11a10a9a810001addr7~0PC

PC+2SPSP+1,(SP)

PC0~7SPSP+1,(SP)

PC8~15PC0~10

addr1122)長(zhǎng)調(diào)用指令(1條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期LCALLaddr1600010010addr15~8addr7~0PC

PC+3SPSP+1,SP

PC0~7SPSP+1,SP

PC8~15PCaddr1623)返回指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期RET00100010PC8~15

(SP),SP

SP-1PC0~7

(SP),SP

SP-1子程序返回指令2RETI00110010PC8~15

SP,SP

SP-1PC0~7

SP,SP

SP-1中斷返回指令2助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明NOP00000000空操作消耗1個(gè)機(jī)器周期4)空操作舉例例3-6

根據(jù)累加器A命令鍵鍵值,設(shè)計(jì)命令鍵操作程序入口跳轉(zhuǎn)表。程序如下:

CLR C RLC A ;乘2,若用LJMP指令則乘3 MOV DPTR,#JPTAB JMP @A+DPTRJPTAB: AJMP CCS0 AJMP CCS1 AJMP CCS2例3-7測(cè)試P1口輸入的100個(gè)數(shù)中0~9各數(shù)的概率分布程序

MOV40H,#100READ:MOVA,P1CHK0:CJNEA,#0,CHK1 INC30H DJNZ40H,READ SJMPEENDCHK1:CJNEA,#1,CHK2 INC31H DJNZ40H,READ SJMPEENDCHK2:CJNEA,#2,CHK3 INC32H DJNZ40H,READ SJMPEENDCHK3:CJNEA,#3,CHK4 INC33H DJNZ40H,READ SJMPEENDCHK4:CJNEA,#4,CHK5 INC34H DJNZ40H,READ SJMPEENDCHK5:CJNEA,#5,CHK6 INC35H DJNZ40H,READ SJMPEENDCHK6:CJNEA,#6,CHK7 INC36H DJNZ40H,READ SJMPEENDCHK7:CJNEA,#7,CHK8 INC37H DJNZ40H,READ SJMPEENDCHK8:CJNEA,#8,CHK9 INC38H DJNZ40H,READ SJMPEENDCHK9:INC39H DJNZ40H,READEEND:SJMP$2.5位操作類指令單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM

位尋址區(qū)位地址表助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期MOVC,bit10100010CY

bit位傳送指令,結(jié)果影響CY標(biāo)志2MOVbit,C10010010bit

CY位傳送指令,結(jié)果不影響PSW22.位置位和位清零指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期CLRC11000011CY

0位清0指令,結(jié)果影響CY標(biāo)志1CLRbit11000010bitbit

0位清0指令,結(jié)果不影響PSW1SETBC11010011CY

1位置1指令,結(jié)果影響CY標(biāo)志1SETBbitbit

1位置1指令,結(jié)果不影響PSW111010010bit1.位傳送指令3.位運(yùn)算指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期ANLC,bit10000010bitCY

CY∧bit位與指令2ANLC/bit10110010bit位與指令2ORL,bit01110010bitCY

CY∨bit位或指令2ORLC/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,結(jié)果不影響CY2CY

CY∧bitCY

CY∨bitCYCYbitbit例3-8設(shè)A、B、D代表位地址,試編程實(shí)現(xiàn)D為A與B之異或,即D=AB+AB。

MOV C,B

MOC D,C MOV C,A ANL C,/B ORL C,D MOV D,CANL C,/A ;C與A相與 助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JBbit,rel00100000bitrel若bit=1,則PC

PC+3+rel,否則順序執(zhí)行2JNBbit,rel00110000bitrel若bit=0,則PC

PC+3+rel,否則順序執(zhí)行2JBCbit,rel00010000bitrel若bit=1,則PC

PC+3+rel,bit0,否則順序執(zhí)行24.位轉(zhuǎn)移指令5.判CY標(biāo)志指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JCrel01000000若CY=0,則PC

PC+2+rel,否則順序執(zhí)行2JNCrel01010000若CY≠0,則PC

PC+2+rel,否則順序執(zhí)行2常用偽指令定位偽指令ORG定義字節(jié)數(shù)據(jù)偽指令DB定義字?jǐn)?shù)據(jù)偽指令DW定義空間偽指令DS符號(hào)定義偽指令EQU或=數(shù)據(jù)賦值偽指令DATA數(shù)據(jù)地址賦值偽指令XDATA匯編結(jié)束偽指令END++(P1.1)U(P2.2)V(TF0)W(IE1)X(20H.0)Y(21H.1)ZU(V+W)Q(P3.3)Q=U(V+W)(X+Y)Z MOV C,P2.2 ORL C,TCON.5 ANL C,P1.1 MOV F0,C MOV C,TCON.3 ORL C,/00H ANL C,F(xiàn)0 ANL C,/09H MOV P3.3, C例3-9編程實(shí)現(xiàn)下圖所示的邏輯功能補(bǔ)例:條件轉(zhuǎn)移類指令范例——方案一還有什么方法實(shí)現(xiàn)循環(huán)的終止?將00H~0FH這16個(gè)數(shù)順序地置入片內(nèi)RAM20H~2FH單元中。

MOVR0,#20H MOVR7,#16 CLRALOOP:MOV@R0,AINCAINCR0DJNZR7,LOOPSJMP$JMP1.ASM條件轉(zhuǎn)移類指令范例——方案二MOVR0,#20H MOVR7,#0FH CLRALOOP:MOV@R0,AINCAINCR0CJNEA,#0FH,LOOPSJMP$JMP2.ASM條件轉(zhuǎn)移類指令范例——方案三

MOVR0,#20H MOVA,#0FH;???? MOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0DECAJNZLOOPSJMP$JMP3.ASM條件轉(zhuǎn)移類指令范例——方案四

MOVR0,#20H MOVA,#0FH MOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0SUBBA,#01HJNCLOOPSJMP$JMP4.ASM練習(xí)1

設(shè)內(nèi)部RAM中33H單元中內(nèi)容為44H,34H單元中內(nèi)容為0AFH,R0中內(nèi)容為33H,R1中內(nèi)容為00H,給出以下每一條指令執(zhí)行后A中的值和PSW中P的值。

MOVA,#34H MOVA,34H MOVA,R1 MOVA,@R0

注意:對(duì)PSW中P標(biāo)志的影響。練習(xí)2設(shè)內(nèi)部RAM30H單元中內(nèi)容為52H,請(qǐng)給出以下程序結(jié)果:

MOVA,#30H MOVA,30H MOVR0,#30H MOVA,@R0 MOV30H,#30H設(shè)P1口內(nèi)容為0AAH(P1口地址為90H),請(qǐng)給出以下程序結(jié)果:

MOVR0,#30H MOV10H,P1 MOVA,10H MOV@R0,A MOV40H,@R0本章主要知識(shí)點(diǎn)指令的七種尋址方式。難點(diǎn):寄存器間接尋址各類指令的主要功能。難點(diǎn):查表指令難點(diǎn):條件轉(zhuǎn)移指令作業(yè):2.22.42.6第

匯編語(yǔ)言程序設(shè)計(jì)

本章內(nèi)容SingleChipMicrocomputer§4-0概述§4-2運(yùn)算程序設(shè)計(jì)§4-3數(shù)據(jù)的拆拼和轉(zhuǎn)換§4-1循環(huán)程序設(shè)計(jì)§4-5查表程序§4-6散轉(zhuǎn)程序設(shè)計(jì)§4-7I/O端口控制程序§4-8子程序調(diào)用時(shí)的參數(shù)傳遞概述最早人們只能用機(jī)器語(yǔ)言(二進(jìn)制)編寫(xiě)程序;為了方便記憶,人們開(kāi)始用助記符形式的匯編語(yǔ)言編寫(xiě)程序,稱為低級(jí)語(yǔ)言。然后再用匯編系統(tǒng)將其翻譯成機(jī)器語(yǔ)言,該過(guò)程稱為匯編;為了用更接近人的語(yǔ)言編寫(xiě)程序,程序設(shè)計(jì)師們發(fā)明了高級(jí)語(yǔ)言,如:BASIC、FORTRAN、PASCAL、

C、JAVA

然后再用編譯

溫馨提示

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