版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片微型計(jì)算機(jī)及其應(yīng)用1單片微型計(jì)算機(jī)及其應(yīng)用
第一章緒論
第二章MCS—51單片機(jī)的結(jié)構(gòu)和原理
第三章MCS51指令系統(tǒng)
第四章匯編語言程序設(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)的組成2第
章
緒
論本章內(nèi)容SingleChipMicrocomputer什么是單片機(jī)單片機(jī)特點(diǎn)及應(yīng)用單片機(jī)的結(jié)構(gòu)特點(diǎn)3一、什么是單片機(jī)
1、微型計(jì)算機(jī)硬件結(jié)構(gòu)——常見的微機(jī)外形臺(tái)式微機(jī)便攜式微機(jī)立式微機(jī)4微型計(jì)算機(jī)硬件結(jié)構(gòu)——微機(jī)硬件組成
顯示器主機(jī)鍵盤鼠標(biāo)5微型計(jì)算機(jī)硬件結(jié)構(gòu)
——運(yùn)算器控制器CPU存儲(chǔ)器輸入接口電路輸入設(shè)備輸出設(shè)備輸出接口電路硬件系統(tǒng)內(nèi)部結(jié)構(gòu)6硬件系統(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)7CPU輸入設(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ī)8幾種單片機(jī)封裝形式9單片機(jī)內(nèi)部結(jié)構(gòu)示意圖
CPU存儲(chǔ)器定時(shí)器/計(jì)數(shù)器
中斷系統(tǒng)P0-P3TxDRxD
TINT并行I/O口串行I/O口10單片機(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)試的基本技能。11
二、單片機(jī)的結(jié)構(gòu)特點(diǎn)2、引腳采用分時(shí)復(fù)用技術(shù)。由于芯片集成度高,而引腳又不宜過多,因此將部分引腳設(shè)計(jì)為多功能的,例如,地址總線和數(shù)據(jù)總線采用分時(shí)復(fù)用等。1、存儲(chǔ)結(jié)構(gòu)。采用ROM和RAM嚴(yán)格分開的哈佛結(jié)構(gòu),可分為:內(nèi)部ROM、RAM,外部ROM、RAM。123、特殊功能寄存器(21個(gè))
采用特殊功能寄存器來控制單片機(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ì)。13三、單片機(jī)的特點(diǎn)及應(yīng)用
1.單片機(jī)的特點(diǎn)體積小,重量輕電源單一,功耗低功能強(qiáng),價(jià)格低運(yùn)行速度快,抗干擾能力強(qiáng),可靠性高。可以嵌入到電子產(chǎn)品中——嵌入式應(yīng)用系統(tǒng)142.單片機(jī)應(yīng)用
工業(yè)方面民用方面儀表方面電訊方面數(shù)據(jù)處理方面汽車方面15A、單片機(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ù),在未來的高科技工程系統(tǒng)中采用單片機(jī)多機(jī)系統(tǒng)作為主要的發(fā)展方向。其應(yīng)用模式可分為功能彌散系統(tǒng)、并行多機(jī)處理系統(tǒng)和局部網(wǎng)絡(luò)系統(tǒng)。16B、單片機(jī)的供應(yīng)狀態(tài)
單片機(jī)通過執(zhí)行指令流來完成預(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)。172、片內(nèi)EPROM配置
適用于樣機(jī)開發(fā),可多次重寫。3、片內(nèi)E2PROM配置適用于樣機(jī)開發(fā),可多次重寫,其重寫比EPROM更方便,目前使用最為廣泛。4、片內(nèi)無ROM配置由于片內(nèi)無ROM,因而需在片外擴(kuò)展ROM,其電路復(fù)雜,靈活性差,已逐漸被淘汰。18C、單片機(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)品。193.單片機(jī)種類
◆生產(chǎn)廠商:美國(guó)微芯片公司:PIC16C××系列、PIC17C××系列、PIC1400系列,美國(guó)英特爾公司的MCS-48和MCS-51系列,美國(guó)摩托羅拉公司的MC68HC05系列和MC68HC11系列,美國(guó)齊洛格公司的Z8系列,日本電氣公司的μPD78××系列,美國(guó)莫斯特克公司和仙童公司合作生產(chǎn)的F8(3870)系列等。
20A、單片機(jī)的分類(按用途)(1)通用型單片機(jī)它可向開發(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)用范圍受到了很大的限制。21B、按字長(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)用范圍較廣。22(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í)代的到來。如TMS320C50,進(jìn)行一次乘法運(yùn)算僅需60ns?!魡纹瑱C(jī)的發(fā)展經(jīng)歷了由4位機(jī)到8位機(jī),再到16位機(jī)的發(fā)展過程◆目前8位單片機(jī)仍是單片機(jī)的主流機(jī)型;232-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)和原理24一、MCS-51系列型號(hào)型號(hào)片內(nèi)程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器8031NO128Bytes80514KROM128Bytes87514KEPROM128Bytes8032NO256Bytes89C514KE2PROM128Bytes89C528KE2PROM256Bytes89C20512KE2PROM128Bytes2-1關(guān)于MCS-51系列25二、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)266、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é))27時(shí)鐘電路CPUROMRAMT0T1中斷系統(tǒng)串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時(shí)計(jì)數(shù)器結(jié)構(gòu)框圖中央處理器CPU:8位,運(yùn)算和控制功能內(nèi)部RAM:共256個(gè)RAM單元,用戶使用前128個(gè)單元,用于存放可讀寫數(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)原理一、基本組成281、8051單片機(jī)的基本組成中央處理器CPU:8位,運(yùn)算和控制功能內(nèi)部RAM:共256個(gè)RAM單元,用戶使用前128個(gè)單元,用于存放可讀寫數(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和12MHZ291
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é))4K64K64K30(1)程序存儲(chǔ)器程序存儲(chǔ)器內(nèi)部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序執(zhí)行的起始單元,
在這三個(gè)單元存放一條
無條件轉(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 ……..310000HFFFFH(64K)內(nèi)部外部(2)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器00HFFH7FH80H(高128B)(低128B)RAM專用
寄存器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可作一般RAM讀寫也可位尋址區(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、RS132注意:一個(gè)單元地址對(duì)應(yīng)有8個(gè)位地址
MSB——MostSignificantBit(最高有效位)
LSB——LeastSignificantBit(最低有效位)單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB
位地址
LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地址表(P11)33(3)特殊功能寄存器(高128個(gè)單元)
MCS-51內(nèi)部安排有21個(gè)特殊功能寄存器各特殊功能寄存器的符號(hào)及地址見表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,PCON34高128個(gè)單元☆離散分布有21個(gè)特殊功能寄存器SFR?!?/p>
11個(gè)可以進(jìn)行位尋址:ACC、B、PSW、IE、IP、P0、P1、P2、P3、SCON、TCON☆特別提示:對(duì)SFR只能使用直接尋址方式,書寫時(shí)可使用寄存器符號(hào),也可用寄存器單元地址。353、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:用于乘法和除法操作,也用作暫存器。36(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é)果超過-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~17H37(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,#0FH384、并行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:訪問片外擴(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)作為總線使用39(2)I/O口的字節(jié)地址和位地址(3)下面分別介紹4個(gè)I/O口的結(jié)構(gòu)401)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”—“讀引腳”操作41B、P1口的位結(jié)構(gòu)P1口由于只能作為I/O口使用,因而輸出控制電路結(jié)構(gòu)同P0口不同。42C、P2口位結(jié)構(gòu)P2口既可用作I/O口,也可用作高8位地址總線。43D、P3口位結(jié)構(gòu)P3口既可用I/O口,又分別具有第二功能,但二者不能混用,其第二功能如下表所示。44P3口第二功能45ALEWR
RDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7指令1:MOVP1,#00H指令2:MOVP1,#0FFH指令3:MOVP1,#0AAH000000001111111101010101E輸出舉例指令4:CLRP1.0指令5:SETBP1.0111111110+5V461111111111111111F輸入舉例S0+5V4.7kWALEWR
RDP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7讀端口:MOVP3,#11111111BMOVA,P389C51××××××××寄存器A注:當(dāng)I/O端口作為輸入使用時(shí),需先向端口寫入“1”,使內(nèi)部的FET截止,再讀入引腳的狀態(tài)。你知道P3.4對(duì)應(yīng)寄存器A哪一位嗎?P3.41111111101你知道這是為什么嗎?47一、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:訪問程序存儲(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)48二、片外三總線結(jié)構(gòu)1、地址總線(AB)由P2,P0提供16位地址2、數(shù)據(jù)總線(DB)由P0口提供8位數(shù)據(jù)3、控制總線(CB)由P3口和RST、EA、ALE、PSEN組成49502-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é)電方式51復(fù)位電路52復(fù)位電路結(jié)構(gòu)和內(nèi)容53二、程序執(zhí)行方式
本方式是單片機(jī)的基本工作方式,復(fù)位后,程序自0000H開始執(zhí)行。用戶的程序一般不可能從0000H開始存放。因此,需要從0000H開始存放一條轉(zhuǎn)移指令,以使執(zhí)行轉(zhuǎn)移到用戶程序的入口地址。54三、單步執(zhí)行方式 在外界脈沖的控制下,單片機(jī)每執(zhí)行一條指令就暫停下來。55四、掉電和節(jié)電方式用于低功耗系統(tǒng)設(shè)計(jì)PDGF0—IDLGF1——SMOD
D0
D7PCON56五、編程和校驗(yàn)方式 對(duì)于內(nèi)部含有EPROM或EEPROM的單片機(jī),可用于對(duì)其編程或?qū)ζ湫r?yàn)。572-5 MCS-51單片機(jī)的時(shí)序一、時(shí)序在執(zhí)行指令的過程中,CPU的控制器發(fā)出的一系列特定的控制信號(hào)在時(shí)間上的相互關(guān)系。內(nèi)部控制信號(hào)和外部控制信號(hào)。58二、區(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)周期。594、指令周期:執(zhí)行一條指令的周期,分別有單、雙和四機(jī)器周期指令。5、ALE信號(hào):可作為一種周期信號(hào)使用。60三、MCS-51指令的取指/執(zhí)行時(shí)序
指令的處理都包括取指(取操作碼或操作數(shù))和執(zhí)行(指令的邏輯功能)兩個(gè)階段,每出現(xiàn)一次ALE信號(hào),CPU就進(jìn)行一次取指操作。 61指令寄存器譯碼地址譯碼程序計(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í)序取指過程例:MOVA,#09H74H
09H;把09H送到累加器A中執(zhí)行過程PC=0000H0001H0000H0002H0111010000001001(PC)(PC)0001H0002H0000H外部控制總線CB取指過程(PC)執(zhí)行過程指令的處理都包括取指(取操作碼或操作數(shù))和執(zhí)行(指令的邏輯功能)兩個(gè)階段,每出現(xiàn)一次ALE信號(hào),CPU就進(jìn)行一次取指操作62四、訪問外部ROM時(shí)序在S1P2時(shí)刻ALE信號(hào)有效。2.P0口送出ROM的低8位地址,P2口送出高8位地址,A7-A0只持續(xù)到S2結(jié)束,故在外部要用鎖存器,可用ALE作為鎖存信號(hào),A15-A8在整個(gè)讀指令過程中都有效3.在S3P1時(shí)刻/PSEN開始有效,可以用它選通外部ROM的使能端,被選種的ROM單元的內(nèi)容,從P0口讀入CPU,然后/PSEN失效。4.在S4P2后開始第二次讀入,其過程與第一次相同。63五、訪問外部RAM時(shí)序本章作業(yè):除7題外在同一機(jī)器周期的S5狀態(tài)產(chǎn)生的ALE信號(hào)的下降沿,將P0總線上出現(xiàn)的低8位地址鎖存在外部的鎖存器中。讀數(shù)據(jù)64尋址方式數(shù)據(jù)傳送類指令算術(shù)運(yùn)算類指令邏輯操作類指令控制轉(zhuǎn)移類指令位操作指令常用偽指令第
章
MCS
51
指令系統(tǒng)本章內(nèi)容SingleChipMicrocomputer65概述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ī)器周期指令。因而無論是存儲(chǔ)空間的利用率,還是時(shí)間的執(zhí)行效率都是較高的,再加上靈活的尋址方式,特別適合于實(shí)時(shí)測(cè)量和控制場(chǎng)合。因而,單片機(jī)又常被稱為微控制器。66§3-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),其有無視具體的指令而異。一、指令的格式67二、關(guān)于標(biāo)號(hào)
標(biāo)號(hào)不允許只用數(shù)字,而應(yīng)以字母打頭,后面跟數(shù)字,不可使用運(yùn)算符號(hào),不能同十六進(jìn)制數(shù)發(fā)生混淆,較好的取名原則是見名知義。便于程序員在調(diào)試程序時(shí)更加順利,往往一個(gè)標(biāo)號(hào)就是一個(gè)功能入口,因而在使用標(biāo)號(hào)時(shí)應(yīng)特別小心,用并非每句指令都需要標(biāo)號(hào)。68三、關(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)容傳送到前面去69四、關(guān)于注釋
為了增強(qiáng)程序的可讀性,使別人易讀,或防止日久遺忘,可適當(dāng)加些注釋。注釋由“;”開始。70§3-2 尋址方式
在程序行中,操作碼代表了該句指令的功能,而功能的對(duì)象卻由操作數(shù)決定,由操作數(shù)指出參與運(yùn)算的數(shù)或該數(shù)所在的地址。取得操作數(shù)的地址的方法叫做尋址方式。尋址方式與計(jì)算機(jī)的存儲(chǔ)空間結(jié)構(gòu)是密切相關(guān)的。靈活運(yùn)用各種尋址方式,可以大大的提高程序的運(yùn)行效率。71MCS-51基本七種尋址方式72一、尋址方式(找信方式)我的信在他那!找信去!②①注:找信是尋找信的“地址”!你能說出第二封信的“地址”嗎?73目的地#XXH操作數(shù)MOVP1,#55HMOVA,#01H#55H目的地信寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址74目的地寄存器尋址P31直接尋址P32立即數(shù)尋址P32寄存器間接尋址P33變址尋址P33相對(duì)尋址P34位尋址P35內(nèi)部RAM或SFR區(qū)操作數(shù)XXHMOVP1,20H20H目的地20H注:尋址是尋操作數(shù)的“地址”!直接給出地址
20H——直接尋址75目的地寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址寄存器目的地操作數(shù)XXHMOVP1,A寄存器R0-R7A
B
DPTR你能說出為什么叫寄存器尋址嗎?76寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址MOVP1,@R0目的地寄存器操作數(shù)3AH內(nèi)部RAM3AH65H3AHR0R1
DPTR寄存器間接尋址寄存器目的地2號(hào)信在2號(hào)箱子里1號(hào)你能說出1號(hào)箱子和2號(hào)箱子分別對(duì)應(yīng)內(nèi)存中哪一部分嗎?77尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是內(nèi)存20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,R0對(duì)!78尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20H④地址是內(nèi)存20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,@R0對(duì)!79尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,20H對(duì)!④地址是內(nèi)存20H80尋址比較MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是內(nèi)存20HMOVP1,#20H①直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOVP1,#20H對(duì)!81寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址MOVCA,@A+DPTR目的地寄存器操作數(shù)內(nèi)部RAM3AH65H3AH基址寄存器12H變址寄存器34H內(nèi)部RAM46H65HADPTRPC46H82目的地寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址XXH位尋址操作數(shù)SJMP54HPC+54HPC2002H······2002H=2056HPC2056H83寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址20H······27H21H28H21H20H100000000想一想:如果想使27H單元的第3位置1,該怎么辦呢?84單元地址2FH2EH2DH2CH2BH2AH29H28H
26H25H24H23H22H21H20H7F776F675F574F47372F271F170F07
MSB
位地址
LSB7E766E665E564E46
362E261E160E067D756D655D554D45352D251D150D057C746C645C544C44
342C241C140C047B736B635B534B43
332B231B130B037A726A625A524A42
322A221A120A027971696159514941
312921191109017870686058504840
30282018100800位尋址地址表例:SETB3DH
3D
3C
3B3F
3E3A
393827H85寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址SETB3DH20H······27H21H28H21H20H00000001086§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條)87目的地址源地址數(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條)
882.1數(shù)據(jù)傳送指令(29條)
——16位數(shù)據(jù)傳送指令(1條)
MOVDPTR,#data16
——外部數(shù)據(jù)傳送指令(4條)
MOVX<目的操作數(shù)>,<源操作數(shù)>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA89——交換和查表類指令(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條)
PUSHdirectPOPdirect90舉例例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,A910000HFFFFH(64K)內(nèi)部外部數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器00HFFH7FH80H(高128B)(低128B)RAM專用
寄存器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可作一般RAM讀寫也可位尋址區(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、RS192directdirect2.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)算,也可看成是無符號(hào)數(shù)運(yùn)算,完全由程序員編程時(shí)自行設(shè)定。
3.計(jì)算機(jī)運(yùn)算時(shí)的規(guī)定參見教材P38。 932.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)位外,其余操作與前面相同。942.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)志位95助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期INCA00000100AA+1影響PSW的P標(biāo)志1INCRn00001rrrRnRn+1n=0~7,rrr=000~1111INCdirect0101direct(direct)(direct)+1
1INC@Ri0000011i(Ri)(Ri)+1i=0,11INCDPTR10100011DPTRDPTR+1
2DECA00010100AA-1影響PSW的P標(biāo)志1DECRn00011rrrRnRn-1n=0~7,rrr=000~1111DECdirect00010101direct(direct)(direct)+1
1DEC@Ri0001011i(Ri)(Ri)-1i=0,11——加1減1指令96——乘法指令(1條)
MULAB——除法指令(1條)
DIVAB兩個(gè)8位操作數(shù)相乘,形成16位的積,其中A為積的低位而B為積的高位。需要進(jìn)行更多位的乘法運(yùn)算,需另外編程方能實(shí)現(xiàn)。舉例見教材P40兩個(gè)8位操作數(shù)相除,其中A為被除數(shù)而B為除數(shù);運(yùn)算后,結(jié)果仍然在AB中,其中A為商而B為余數(shù)。 同乘法指令相同,需要進(jìn)行更多位的除法運(yùn)算,需另外編程方能實(shí)現(xiàn)。97十進(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。98例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碼為124992.3邏輯及移位類指令
——邏輯與指令(6條)
助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ANLA,direct01010101directAA∧direct按位相與1ANLA,Rn01011rrrAA∧Rnn=0~7,
rrr=000~1111ANLA,@Ri0101011iAA∧(Ri)i=0,11ANLA,#data01010100dataAA∧#data
1ANLdirect,A01010010direct(direct)(direct)∧A不影響PSW的P標(biāo)志1ANLdirect,#data01010011directdata(direct)(direct)∧#data不影響PSW的P標(biāo)志2100——邏輯或指令(6條)
01000011directdata助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ORLA,direct01000101directAA∨direct按位相或1ORLA,Rn01001rrrAA∨Rnn=0~7,rrr=000~1111ORLA,@Ri0100011iAA∨(Ri)i=0,11ORLA,#data01000100dataAA∨#data
1ORLdirect,A01000010direct(direct)(direct)∨A不影響PSW的P標(biāo)志1ORLdirect,#data(direct)(direct)∨#data不影響PSW的P標(biāo)志2101——邏輯異或指令(6條)
助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期XRLA,direct01100101directAA(direct)按位相異或1XRLA,Rn01101rrrAARnn=0~7,rrr=000~1111XRLA,@Ri0110011iAA(Ri)i=0,11XRLA,#data01100100dataAA#data
1XRLdirect,A01100010direct(direct)(direct)A不影響PSW的P標(biāo)志1XRLdirect,#data01100011directdata(direct)(direct)#data不影響PSW的P標(biāo)志2102——累加器A清0和取反指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期CLRA11100100A00HA中內(nèi)容清0,影響P標(biāo)志1CPLA11110100A中內(nèi)容按位取反,影響P標(biāo)志1AA103A.0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:執(zhí)行帶進(jìn)位的循環(huán)移位指令之前,必須給CY置位或清零。——循環(huán)移位指令104例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,A105例3-5若ACC=X7X6X5X4X3X2X1X0,試編程將A中的低5位送至P1口,但不能影響P1口的高3位。程序清單:
MOV A,#0AAH ANL P1,#11100000B ORL P1,A1062.4控制轉(zhuǎn)移類指令
——無條件轉(zhuǎn)移指令(4條)1)長(zhǎng)轉(zhuǎn)移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假設(shè)執(zhí)行該指令前,PC的值為0000H。注意:該指令可以轉(zhuǎn)移到64KB程序存儲(chǔ)器中的任意位置。107
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.0108PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相對(duì)轉(zhuǎn)移指令例:SJMP03H
03H03H就是當(dāng)前PC值與目的PC值相對(duì)差PC109——條件轉(zhuǎn)移指令(8條)
1)累加器A判0指令(2條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JZrel0110000若A=0,則PCPC+rel,否則程序順序執(zhí)行2JNZrel01110000若A≠0,則PCPC+rel,否則程序順序執(zhí)行22)減1非零轉(zhuǎn)移指令(2條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期DJNZRn,rel11011rrrrelRnRn-1,若Rn≠0,則PCPC+rel,否則順序執(zhí)行2DJNZdirect,rel11010101directrel(direct)(direct)-1,若(direct)≠0,則PCPC+rel,否則順序執(zhí)行21103)比較轉(zhuǎn)移指令(4條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期CJNEA,#data,rel10110100datarel若A≠#data,則PCPC+rel,否則順序執(zhí)行;若A<#data,則CY=1,否則CY=02CJNERn,#data,rel10111rrrdatarel若Rn≠#data,則PCPC+rel,否則順序執(zhí)行;若Rn<#data,則CY=1,否則CY=02CJNE@Ri,#data,rel1011011idatarel若(Ri)≠#data,則PCPC+rel,否則順序執(zhí)行;若(Ri)<#data,則CY=1,否則CY=02CJNEA,direct,rel10110101directrel若A≠(direct),則PCPC+rel,否則順序執(zhí)行;若A<(direct),則CY=1,否則CY=02111——調(diào)用和返回指令(8條)
1)絕對(duì)調(diào)用指令(1條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期ACALLaddr11a10a9a810001addr7~0PCPC+2SPSP+1,(SP)PC0~7SPSP+1,(SP)PC8~15PC0~10addr1122)長(zhǎng)調(diào)用指令(1條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期LCALLaddr1600010010addr15~8addr7~0PCPC+3SPSP+1,SPPC0~7SPSP+1,SPPC8~15PCaddr1621123)返回指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期RET00100010PC8~15
(SP),SPSP-1PC0~7(SP),SPSP-1子程序返回指令2RETI00110010PC8~15
SP,SPSP-1PC0~7SP,SPSP-1中斷返回指令2助記符格式機(jī)器碼(B)相應(yīng)操作指令說明NOP00000000空操作消耗1個(gè)機(jī)器周期4)空操作113舉例例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 CCS2114例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 SJMPEEND115CHK6: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$1162.5位操作類指令單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB
位地址
LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM
位尋址區(qū)位地址表117助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期MOVC,bit10100010CYbit位傳送指令,結(jié)果影響CY標(biāo)志2MOVbit,C10010010bitCY位傳送指令,結(jié)果不影響PSW22.位置位和位清零指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期CLRC11000011CY0位清0指令,結(jié)果影響CY標(biāo)志1CLRbit11000010bitbit0位清0指令,結(jié)果不影響PSW1SETBC11010011CY1位置1指令,結(jié)果影響CY標(biāo)志1SETBbitbit1位置1指令,結(jié)果不影響PSW111010010bit1.位傳送指令1183.位運(yùn)算指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ANLC,bit10000010bitCYCY∧bit位與指令2ANLC/bit10110010bit位與指令2ORL,bit01110010bitCYCY∨bit位或指令2ORLC/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,結(jié)果不影響CY2CYCY∧bitCYCY∨bitCYCYbitbit119例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相與 120助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JBbit,rel00100000bitrel若bit=1,則PCPC+3+rel,否則順序執(zhí)行2JNBbit,rel00110000bitrel若bit=0,則PCPC+3+rel,否則順序執(zhí)行2JBCbit,rel00010000bitrel若bit=1,則PCPC+3+rel,bit0,否則順序執(zhí)行24.位轉(zhuǎn)移指令1215.判CY標(biāo)志指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JCrel01000000若CY=0,則PCPC+2+rel,否則順序執(zhí)行2JNCrel01010000若CY≠0,則PCPC+2+rel,否則順序執(zhí)行2122常用偽指令定位偽指令ORG定義字節(jié)數(shù)據(jù)偽指令DB定義字?jǐn)?shù)據(jù)偽指令DW定義空間偽指令DS符號(hào)定義偽指令EQU或=數(shù)據(jù)賦值偽指令DATA數(shù)據(jù)地址賦值偽指令XDATA匯編結(jié)束偽指令END123++(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)下圖所示的邏輯功能124補(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.ASM125條件轉(zhuǎn)移類指令范例——方案二MOVR0,#20H MOVR7,#0FH CLRALOOP:MOV@R0,AINCAINCR0CJNEA,#0FH,LOOPSJMP$JMP2.ASM126條件轉(zhuǎn)移類指令范例——方案三
MOVR0,#20H MOVA,#0FH;???? MOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0DECAJNZLOOPSJMP$JMP3.ASM127條件轉(zhuǎn)移類指令范例——方案四
MOVR0,#20H MOVA,#0FH MOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0SUBBA,#01HJNCLOOPSJMP$JMP4.ASM128練習(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)志的影響。129練習(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,@R0130本章主要知識(shí)點(diǎn)指令的七種尋址方式。難點(diǎn):寄存器間接尋址各類指令的主要功能。難點(diǎn):查表指令難點(diǎn):條件轉(zhuǎn)移指令作業(yè):
2.22.42.6131第
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋買賣合同格式模板
- 2024舞蹈教室租賃合同樣本
- 2024年家庭居室裝修工程協(xié)議
- 年西安市設(shè)備技術(shù)轉(zhuǎn)讓合同樣本-合同范本
- 2024工程建設(shè)招標(biāo)投標(biāo)協(xié)議合同范本
- 簡(jiǎn)約技術(shù)專利權(quán)轉(zhuǎn)讓合同
- 2024公司股份轉(zhuǎn)讓合同股份轉(zhuǎn)讓后可以毀約
- 2024年車輛礦石運(yùn)輸合同范本
- 廢料回收權(quán)轉(zhuǎn)讓協(xié)議
- 公司流動(dòng)資金借款合同
- 財(cái)務(wù)經(jīng)理招聘面試題與參考回答(某世界500強(qiáng)集團(tuán))2024年
- 專題13 原電池 化學(xué)電源-五年(2020-2024)高考化學(xué)真題分類匯編(原卷版)
- 2023年金華市城市規(guī)劃設(shè)計(jì)院招聘筆試真題
- 江西省宜春市豐城市多校2024-2025學(xué)年五年級(jí)上學(xué)期期中數(shù)學(xué)試卷(含答案)
- 浙江省杭州市2024-2025學(xué)年高三上學(xué)期期中教學(xué)質(zhì)量檢測(cè)歷史試題(無答案)
- 期中模擬測(cè)試卷3(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)(福建)
- 安徽省合肥市肥西縣西苑中學(xué)2023-2024學(xué)年八年級(jí)上學(xué)期期中數(shù)學(xué)試卷
- 人教版(PEP)三年級(jí)英語上冊(cè)2024期中考試(無答案)
- 防性侵安全教育主題班會(huì)教案3篇
- 憲法與法律學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 《數(shù)學(xué)三年級(jí)上學(xué)期數(shù)學(xué)期中試卷》
評(píng)論
0/150
提交評(píng)論