版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)原理及應(yīng)用第1,2,3章復(fù)習(xí)光華學(xué)院信息工程系王超單片機(jī)原理及應(yīng)用第1,2,3章復(fù)習(xí)光華學(xué)院1單片機(jī)實(shí)物圖單片機(jī)實(shí)物圖2單片機(jī)開(kāi)發(fā)板單片機(jī)開(kāi)發(fā)板3單片機(jī)流水燈數(shù)碼管電機(jī)傳感器單片機(jī)應(yīng)用原理單片機(jī)流水燈數(shù)碼管電機(jī)傳感器單片機(jī)應(yīng)用原理4一個(gè)微電腦包括微處理器(CPU),存放程序指令的(ROM),存放數(shù)據(jù)的(RAM),輸入輸出端口(I/O口)以及時(shí)鐘,計(jì)數(shù)器,中斷系統(tǒng)等,它們經(jīng)過(guò)地址總線(xiàn)(AddressBus),數(shù)據(jù)總線(xiàn)(DadaBus),控制總線(xiàn)(ControlBus)的連接以及輸入輸出端口與外圍設(shè)備連接,構(gòu)成微電腦系統(tǒng)。由于單片機(jī)微處理器把微電腦的主要器件制造在一塊芯片上,所以可以把單片機(jī)微處理器看成是一個(gè)不帶外圍裝置的微電腦。什么是單片機(jī)?一個(gè)微電腦包括微處理器(CPU),存放程序指令的(ROM),5測(cè)試題9.8051單片機(jī)的內(nèi)部硬件結(jié)構(gòu)包括了:______________、______________、______________
、和______________以及并行I/O口、串行口、中斷控制系統(tǒng)、時(shí)鐘電路、位處理器等部件,這些部件通過(guò)_____________相連接。13.8031單片機(jī)中片內(nèi)RAM共有()字節(jié)。A.128B.256C.4KD.64K測(cè)試題9.8051單片機(jī)的內(nèi)部硬件結(jié)構(gòu)包括了:_6工業(yè)方面民用方面儀表方面電訊方面數(shù)據(jù)處理方面汽車(chē)方面單片機(jī)的應(yīng)用工業(yè)方面民用方面儀表方面電訊方面數(shù)據(jù)處理方面汽車(chē)方面單片機(jī)的7微型計(jì)算機(jī)硬件結(jié)構(gòu)硬件系統(tǒng):微機(jī)實(shí)體和裝置軟件系統(tǒng):微機(jī)系統(tǒng)使用的各種程序的總稱(chēng)微型計(jì)算機(jī)硬件結(jié)構(gòu)硬件系統(tǒng):軟件系統(tǒng):8單片機(jī)硬件結(jié)構(gòu)單片機(jī)硬件結(jié)構(gòu)9MCS-51單片機(jī)的硬件結(jié)構(gòu)時(shí)鐘電路CPUROMRAMT0T1中斷系統(tǒng)串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時(shí)計(jì)數(shù)器結(jié)構(gòu)框圖微處理器CPU:8位,運(yùn)算和控制功能內(nèi)部RAM:共256個(gè)RAM單元,用戶(hù)使用前128個(gè)單元,用于存放可讀寫(xiě)數(shù)據(jù),后128個(gè)單元被專(zhuān)用寄存器占用。內(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和12MHZMCS-51單片機(jī)的硬件結(jié)構(gòu)時(shí)鐘電路CPUROMRAMT010測(cè)試題簡(jiǎn)答題:1、MCS-51單片機(jī)的片內(nèi)都集成了哪些功能部件?各個(gè)功能部件的最主要的功能是什么?測(cè)試題簡(jiǎn)答題:11測(cè)試題1.一個(gè)完整的微機(jī)系統(tǒng)由_____________和_______________兩大部分組成.3.半導(dǎo)體存儲(chǔ)器分成兩大類(lèi)__________和__________,其中_______________具有易失性,常用于存儲(chǔ)___________。測(cè)試題1.一個(gè)完整的微機(jī)系統(tǒng)由__________12MCS-51單片機(jī)信號(hào)引腳簡(jiǎn)介
P3口線(xiàn)的第二功能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.72、時(shí)鐘引腳:XTAL1、XTAL23、復(fù)位引腳:RST7、并行口:P0、P1、P2、P34、ALE:地址鎖存控制信號(hào)1、電源線(xiàn):VCC(+5V)、VSS(地)EAPSEN6、EA:內(nèi)外程序存儲(chǔ)選擇控制信號(hào)5、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
313029282726252424222180318051875189C51MCS-51單片機(jī)信號(hào)引腳簡(jiǎn)介P3口線(xiàn)的第二功能VCCVS13時(shí)鐘電路與復(fù)位電路
(1)時(shí)鐘振蕩電路時(shí)鐘電路與復(fù)位電路
(1)時(shí)鐘振蕩電路14測(cè)試題12.單片機(jī)8051的XTALl和XTAL2引腳是()引腳A.外接定時(shí)器B.外接串行口C.外接中斷D.外接晶振測(cè)試題12.單片機(jī)8051的XTALl和XTAL15例:若振蕩頻率fosc=12MHz,則MCS-51的振蕩周期,狀態(tài)周期,機(jī)器周期是多少?振蕩周期(時(shí)鐘周期)=1/12us狀態(tài)周期=2*(1/12)us機(jī)器周期=12*(1/12)us=1us10.在MCS-51單片機(jī)中,如果采用12MHz晶振,一個(gè)機(jī)器周期為_(kāi)___________。例:若振蕩頻率fosc=12MHz,則MCS-51的振蕩周16測(cè)試題1.8031單片機(jī)的()口的引腳,還具有外中斷、串行通信等第二功能。a)P0
b)P1c)P2
d)P32.單片機(jī)應(yīng)用程序一般存放在(
)
a)RAM
b)ROM
c)寄存器
d)CPU
3.已知某數(shù)的BCD碼為0111010101000010則其表示的十進(jìn)制數(shù)值為()a)7542Hb)7542c)75.42Hd)75.42測(cè)試題1.8031單片機(jī)的()口的引腳17測(cè)試題2.8051的引腳RST是_________(IN腳還是OUT腳),當(dāng)其端出現(xiàn)_____電平時(shí),8051進(jìn)入復(fù)位狀態(tài)。8051一直維持這個(gè)值,直到RST腳收到____電平,8051才脫離復(fù)位狀態(tài),進(jìn)入程序運(yùn)行狀態(tài),從ROM_______H單元開(kāi)始取指令并翻譯和執(zhí)行。測(cè)試題2.8051的引腳RST是________18MCS-51的微處理器
MCS-51的微處理器(CPU)
由運(yùn)算器和控制器所構(gòu)成。2.3.1運(yùn)算器作用:對(duì)操作數(shù)進(jìn)行算術(shù)、邏輯運(yùn)算和位操作。
由算術(shù)邏輯單元(ALU)、累加器A、寄存器B、位處理器和程序狀態(tài)字寄存器(PSW)等構(gòu)成。
MCS-51的微處理器MCS-51的微處理器(CPU191.算術(shù)邏輯運(yùn)算單元ALU它是運(yùn)算器的的核心.+-*/,&|-...2.累加器A(8位)
使用最頻繁的寄存器,可寫(xiě)為Acc。
累加器A的作用:(1)是ALU的輸入(數(shù)據(jù)處理源)之一,又是運(yùn)算結(jié)果的存放單元。(2)數(shù)據(jù)傳送大多都通過(guò)累加器A。3.寄存器B
(8位)是為執(zhí)行乘、除法操作設(shè)置的,作為ALU的輸入之一。在不執(zhí)行乘、除法操作的情況下,可當(dāng)作普通寄存器使用。(A*B=BA)(A/B=A…B)1.算術(shù)邏輯運(yùn)算單元ALU2.累加器A(8位)3.寄存器204.程序狀態(tài)字寄存器PSW
(ProgramStatusWord)(1)Cy(PSW.7)進(jìn)位標(biāo)志位,或?qū)憺镃,有進(jìn)位或借位時(shí)硬件置1。(2)Ac(PSW.6)輔助進(jìn)位標(biāo)志位,用于BCD碼的十進(jìn)制調(diào)整運(yùn)算。當(dāng)?shù)?位向高4位數(shù)發(fā)生進(jìn)位或借位時(shí),AC被硬件置位,否則被清0。(3)F0(PSW.5)用戶(hù)自定義標(biāo)志位。可用軟件使它置1或清0,也可由軟件來(lái)測(cè)試標(biāo)志F0以控制程序的流向。編程時(shí),該標(biāo)志很有用。
CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW4.程序狀態(tài)字寄存器PSW(ProgramStatus21表2.3RS1、RS0與片內(nèi)工作寄存器組的對(duì)應(yīng)關(guān)系
RS1RS0寄存器組片內(nèi)RAM地址通用寄存器名稱(chēng)000組00H~07HR0~R7011組08H~0FHR0~R7102組10H~17HR0~R7113組18H~1FHR0~R7(4)RS1、RS0(PSW.4、PSW.3):4組工作寄存器區(qū)選擇控制位1和位0。CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW表2.3RS1、RS0與片內(nèi)工作寄存器組的對(duì)應(yīng)關(guān)系R22RAM共128個(gè)單元RAM共128個(gè)單元23測(cè)試題6.若由程序設(shè)定RS1、RS0=01,則工作寄存器R0~R7的直接地址為_(kāi)_____。5.INTEL8051
單片機(jī)是(
)位的單片機(jī)
a)16
b)4
c)8
d)準(zhǔn)16
11.進(jìn)位標(biāo)志CY在()中。A.累加器AB.算術(shù)邏輯運(yùn)算部件ALUC.程序狀態(tài)字寄存器PSWD.DPDR14.當(dāng)標(biāo)志寄存器PSW的RS0、RS1分別為1,0時(shí),選用的工作寄存器組為()。A.組0B.組1C.組2D.組3測(cè)試題6.若由程序設(shè)定RS1、RS0=01,則工作24(5)OV(PSW.2):溢出標(biāo)志位指示運(yùn)算是否產(chǎn)生溢出。各種算術(shù)運(yùn)算指令對(duì)該位的影響情況較復(fù)雜,將在第3章介紹。(6)PSW.1位:保留位,未用
(7)P(PSW.0):奇偶標(biāo)志位,每個(gè)指令周期都由硬件置位或清除. P=1,A中“1”的個(gè)數(shù)為奇數(shù) P=0,A中“1”的個(gè)數(shù)為偶數(shù)注:奇偶標(biāo)志位對(duì)串行口通訊中的數(shù)據(jù)傳輸有重要意義,常用奇偶檢驗(yàn)的方法來(lái)檢驗(yàn)數(shù)據(jù)傳輸?shù)目煽啃?。CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW(5)OV(PSW.2):溢出標(biāo)志位CyACF0RS1RS251
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
MCS51存
儲(chǔ)
器的結(jié)構(gòu)80318051875189C51片內(nèi)RAM片內(nèi)ROM256B(字節(jié))4K64K64K1
2
3
4
5
6
7
8
9
10
11
12
13
26(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ǔ)器資源分布中斷入口地址(1)程序存儲(chǔ)器程序存儲(chǔ)器內(nèi)部外部0000H0FFFH(4K270000HFFFFH(64K)內(nèi)部外部(2)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器00HFFH7FH80H(高128B)(低128B)RAM專(zhuān)用
寄存器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可位尋址區(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、RS10000HFFFFH(64K)內(nèi)部外部(2)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存28測(cè)試題簡(jiǎn)答題:2.請(qǐng)畫(huà)出MCS-51RAM區(qū)的示意圖,并注明各區(qū)域基本用途.測(cè)試題簡(jiǎn)答題:29注意:一個(gè)單元地址對(duì)應(yīng)有8個(gè)位地址
MSB——MostSignificantBit(最高有效位)
LSB——LeastSignificantBit(最低有效位)單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB
位地址
LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地址表注意:一個(gè)單元地址對(duì)應(yīng)有8個(gè)位地址
MSB——Most30測(cè)試題15.8051的內(nèi)部RAM中,可以進(jìn)行位尋址的地址空間為()。A.00H~2FHB.20H~2FHC.00H~FFHD.20H~FFH測(cè)試題15.8051的內(nèi)部RAM中,可以進(jìn)行位尋31高128個(gè)單元☆離散分布有21個(gè)特殊功能寄存器SFR?!?/p>
11個(gè)可以進(jìn)行位尋址?!钐貏e提示:對(duì)SFR只能使用直接尋址方式,書(shū)寫(xiě)時(shí)可使用寄存器符號(hào),也可用寄存器單元地址。高128個(gè)單元☆離散分布有21個(gè)特殊功能寄存器SFR。☆132測(cè)試題4.CPU主要的組成部部分為(
)
a)運(yùn)算器、控制器
b)加法器、寄存器c)運(yùn)算器、寄存器
d)運(yùn)算器、指令譯碼器
8.11H位尋址所在的單元地址是(
)
a)20H
b)30H
c)22H
d)70H
測(cè)試題4.CPU主要的組成部部分為(
)
331)堆棧和堆棧指針SP堆棧是按先進(jìn)后出或后進(jìn)先出原則進(jìn)行存取的片內(nèi)RAM區(qū)域。(主要是為子程序調(diào)用和中斷操作而設(shè)立的)堆棧的具體功能是:①保護(hù)斷點(diǎn)(PC的內(nèi)容);②保護(hù)現(xiàn)場(chǎng)(保存有關(guān)寄存器單元的內(nèi)容)。MCS-51單片機(jī)的堆棧區(qū)是不固定的,原則上可設(shè)置在內(nèi)部RAM(00H~7FH)的任意單元。但實(shí)際應(yīng)用中要根據(jù)對(duì)片內(nèi)RAM的各功能區(qū)的使用情況靈活設(shè)置,但應(yīng)避開(kāi)工作寄存器區(qū)、位尋址區(qū)、和用戶(hù)使用的數(shù)據(jù)區(qū),一般設(shè)在2FH地址以后的區(qū)域。1)堆棧和堆棧指針SP34
堆棧指針SP是一個(gè)8位的SFR。SP的內(nèi)容指示出堆棧頂部在RAM區(qū)中的位置。
單片機(jī)復(fù)位后,SP中的內(nèi)容為07H(即指向07H的RAM單元),使堆棧事實(shí)上由08H單元開(kāi)始。所以在使用堆棧前,先給SP賦值(一般為2FH以后的單元),以規(guī)定堆棧的起始位置(棧底)。當(dāng)數(shù)據(jù)存入堆棧后,SP的值也隨之自動(dòng)變化。堆棧指針SP是一個(gè)8位的SFR。SP的內(nèi)容指示35測(cè)試題8.MCS-51的堆棧只可設(shè)置在________,一般設(shè)在______地址以后的區(qū)域,。堆棧寄存器SP是____位寄存器,存放_(tái)__________。測(cè)試題8.MCS-51的堆棧只可設(shè)置在______36
復(fù)位時(shí),PC初始化為0000H,使MCS-51單片機(jī)從程序存儲(chǔ)器0000H單元開(kāi)始執(zhí)行程序。除PC之外,復(fù)位操作還對(duì)其它一些寄存器有影響,見(jiàn)表2.3(P26)。
SP=07H,P0-P3的引腳均為高電平。復(fù)位電路復(fù)位時(shí),PC初始化為0000H,使MCS-51單37單片機(jī)的原理與應(yīng)用課件38(2)復(fù)位電路單片機(jī)復(fù)位條件:必須使RST引腳持續(xù)2微秒高電平(外部時(shí)鐘12MHz)誰(shuí)知道復(fù)位電路怎么起到復(fù)位的作用?(2)復(fù)位電路單片機(jī)復(fù)位條件:必須使RST引腳持續(xù)39測(cè)試題6.8051復(fù)位后,PC與SP的值為(
)
a)0000H,00H
b)0000H,07H
c)0003H,07Hd)0800H,00H
測(cè)試題6.8051復(fù)位后,PC與SP的值為(
40指令系統(tǒng)概述指令:控制計(jì)算機(jī)完成指定操作的命令。指令系統(tǒng):計(jì)算機(jī)所能執(zhí)行的指令的集合?!镏噶钕到y(tǒng)概述指令:控制計(jì)算機(jī)完成指定操作的命令。★41測(cè)試題4.所謂尋址,其實(shí)質(zhì)就是___________。問(wèn)答題:1、MCS-51共有哪幾種尋址方式?各有什么特點(diǎn)?并舉例說(shuō)明.測(cè)試題4.所謂尋址,其實(shí)質(zhì)就是_________42指令格式操作碼:用來(lái)規(guī)定指令進(jìn)行什么操作。操作數(shù):是指令操作的對(duì)象。標(biāo)號(hào):代表該指令所存放的第一個(gè)字節(jié)存儲(chǔ)單元的地址,故標(biāo)號(hào)又稱(chēng)為“符號(hào)地址”。DELAY:
MOV
R3,#0FFH
;一段延時(shí)程序指令格式操作碼:用來(lái)規(guī)定指令進(jìn)行什么操作。DELAY:MO433.3指令系統(tǒng)的尋址方式
(尋找操作數(shù))有我的信,找信去立即找到信!找信是尋找存放信的!找到放信的箱子才找到信!“地方”3.3指令系統(tǒng)的尋址方式
(尋找操作數(shù))有我的信,找信去立443.3指令系統(tǒng)的尋址方式
(尋找操作數(shù))找到放信的箱子才找到信!10000H0001H0002H2002H2003H2004H2005H2006H……80H2002H找信是尋找存放信的!“地方”“地址”找操作數(shù)是找操作數(shù)的“地址”3.3指令系統(tǒng)的尋址方式
(尋找操作數(shù))找到放信的箱子才找45立即尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址信操作數(shù)立即找到信!立即數(shù)尋址!#XXHMOVA,#55H#55HCPUAAMOVRn,#01HR0-R700H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲(chǔ)器MOVDPTR,#1FFFHDPTRMOVdirect,#88HdirectMOV
Direct,
#88H直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址70H……70H88H10001000ADDA,#55HSUBA,#01H立即尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋46立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址CPU操作數(shù)內(nèi)部RAM或SFR區(qū)20HMOVA,20HA88HAMOVRn,20HMOVdirect,30HMOV@Ri,30HAR0-R7direct@Ri直接給出操作數(shù)地址的方式20H——直接尋址ADDA,20HSUBA,30H立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位47尋址比較MOV P1, #20H ①M(fèi)OV P1, 20H ②MOV P1, R0 ③MOV P1, @R0 ④尋址比較MOV P1, #20H ①48指出下列指令尋址方式MOV P1, #0FFHMOV A, F0HPUSH 12H立即尋址直接尋址直接尋址指出下列指令尋址方式MOV P1, #0FFH立即尋址直接尋49立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址CPU88H20H操作數(shù)60H寄存器A操作數(shù)操作數(shù)MOVP1,A你能說(shuō)出:帶圈的圓弧箭頭代表的是什么嗎?誰(shuí)能說(shuō)出:寄存器尋址與直接尋址的區(qū)別?AR0-R7BDPTRP1MOVP1,R4CLRA立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位50立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址22通過(guò)
間接找到的地址——“2號(hào)”!“1號(hào)”信寄存器操作數(shù)寄存器1CPU3AH寄存器R0猜一猜:操作數(shù)的地址是多少嗎??jī)?nèi)部RAM3AH我才是操作數(shù)65HMOVA,@R0AR0R1DPTR寄存器間接尋址寄存器MOVXA,@
DPTR立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位51立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址CPU寄存器3AH3AH程序存儲(chǔ)區(qū)65H操作數(shù)變址寄存器02H基址寄存器0300H+0302H0302H88HADPTRPCMOVCA,@A+DPTRAMOVCA,@A+PC立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位52立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址……0000H0001H0002H2002H2003H2004H2005H2006HPCPCPCPCPCPC如果想跳到2006H執(zhí)行,該給PC值加上多少呢?2006H2003H—03H03H就是當(dāng)前PC值與目的PC值相對(duì)差SJMP03H(PC+03H)SJMP=2003H+03H
=2006H操作數(shù)哪去了?03就是操作數(shù)立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位53立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址20H21H27H28H20H21H……D7D0000000001想一想:如果想使27H單元的D5位置1,該怎么辦呢?00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部RAM存儲(chǔ)器立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位54單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB
位地址
LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800位尋址地址表單元地址2FH7FMSB55立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位尋址SETB3DH20H21H27H28H……D7D020H21H000000001立即數(shù)尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址位56單片機(jī)的原理與應(yīng)用課件57MCS-51單片機(jī)指令系統(tǒng)分類(lèi)介紹MCS-51單片機(jī)指令系統(tǒng)共有111條指令,按功能分類(lèi),可分下面5大類(lèi):數(shù)據(jù)傳送類(lèi)(29條)算數(shù)操作類(lèi)(24條)邏輯運(yùn)算類(lèi)(24條)控制轉(zhuǎn)移類(lèi)(17條)位操作類(lèi)(17條)常用偽指令(17條)MCS-51單片機(jī)指令系統(tǒng)分類(lèi)介紹MCS-51單片機(jī)58符號(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ū)的某一單元或某一專(zhuān)用功能寄存器的地址Rel帶符號(hào)的8位偏移量(-128~+127)Bit位尋址區(qū)的直接尋址位(X)X地址單元中的內(nèi)容,或X作為間接尋址寄存器時(shí)所指單元的內(nèi)容←將←后面的內(nèi)容傳送到前面去指令中一些符號(hào)的約定意義符號(hào)含義Rn表示當(dāng)前選定寄存器組的工作寄存器R059簡(jiǎn)答題:3.MCS-51指令按功能可以分為哪幾類(lèi)?每類(lèi)指令的作用是什么?并舉例說(shuō)明.簡(jiǎn)答題:60目的地址源地址數(shù)據(jù)MOV<目的操作數(shù)>,<源操作數(shù)>MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA數(shù)據(jù)傳送指令(29條)
——8位數(shù)據(jù)傳送指令(15條)
目的地址源地址數(shù)據(jù)M61數(shù)據(jù)傳送指令(29條)
——16位數(shù)據(jù)傳送指令(1條)
MOVDPTR,#data16——外部數(shù)據(jù)傳送指令(4條)
MOVX<目的操作數(shù)>,<源操作數(shù)>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA數(shù)據(jù)傳送指令(29條)
——16位數(shù)據(jù)傳送指令(1條)62誰(shuí)知道內(nèi)RAM中30H中數(shù)據(jù)→外RAM的1001H中?MOVA,30HMOVDPTR,#1001HMOVX@DPTR,A誰(shuí)知道MOVA,30HMOVDPTR,#1001HM63片內(nèi)傳送——MOV在A(yíng)累加器、工作寄存器R0~R7、片內(nèi)RAM與SFR(direct、@Ri)之間傳送數(shù)據(jù)。片內(nèi)傳送——MOV在A(yíng)累加器、工作寄存器R0~R7、片內(nèi)RA64單片機(jī)與片外RAM之間的數(shù)據(jù)傳送(取數(shù)/送數(shù))——MOVX在片外RAM(或外擴(kuò)I/O口)與A累加器之間傳送。僅采用寄存器間接尋址方式。單片機(jī)與片外RAM之間的數(shù)據(jù)傳送(取數(shù)/送數(shù))——MOVX在65單片機(jī)與ROM之間的數(shù)據(jù)傳送
(查表)——MOVC讀取存放在程序存儲(chǔ)器ROM中的數(shù)據(jù),通常是以表格形式存放。采用變址尋址方式。MOVC A, @A+DPTR MOVC A, @A+PC
A
ROM單片機(jī)與ROM之間的數(shù)據(jù)傳送
(查表)——MOVC讀取存放在66優(yōu)點(diǎn):不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。缺點(diǎn):表格只能存放在該條查表指令后面的256個(gè)單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。注意:PSEN*信號(hào)有效。單片機(jī)與ROM之間的數(shù)據(jù)傳送
(查表)——MOVC優(yōu)點(diǎn):不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取67編程時(shí)還需要進(jìn)行偏移量的計(jì)算,即MOVCA,@A+PC指令所在地址與表格存放首地址間的距離字節(jié)數(shù)的計(jì)算,并需要一條加法指令進(jìn)行調(diào)整。單片機(jī)與ROM之間的數(shù)據(jù)傳送
(查表)——MOVC編程時(shí)還需要進(jìn)行偏移量的計(jì)算,即單片機(jī)與ROM之間的數(shù)據(jù)傳送68(2)MOVCA,@A+DPTR以DPTR作為基址寄存器,A的內(nèi)容作為無(wú)符號(hào)整數(shù)和DPTR的內(nèi)容相加得到一個(gè)16位的地址,把由該地址指出的程序存儲(chǔ)器單元的內(nèi)容送到累加器A。例如:MOVCA,@A+DPTR本指令的執(zhí)行結(jié)果只和指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址及常數(shù)表格存放的地址無(wú)關(guān)。表格的大小和位置可以在64K程序存儲(chǔ)器中任意安排,一個(gè)表格可以為各個(gè)程序塊公用。(2)MOVCA,@A+DPTR69例:從程序存儲(chǔ)器2000H單元開(kāi)始存放0~9的平方值,以DPTR作為基址寄存器進(jìn)行查表得9的平方值,若用以DPTR作為基址寄存器的查表指令.程序如下:MOVDPTR,#2000HMOVA,#09HMOVCA,@A+DPTR例:從程序存儲(chǔ)器2000H單元開(kāi)始存放0~9701)字節(jié)交換指令(3條)——交換類(lèi)指令(3條)AF581內(nèi)部RAM directXCH A,Rn @Ri
2)低半字節(jié)交換指令(1條)XCHD A,@Ri這里假設(shè)i=0A85F15B5B寄存器R01)字節(jié)交換指令(3條)——交換類(lèi)指令(3條)AF581內(nèi)部713)累加器A中高4位和低4位交換指令(1條)SWAP A01011100PUSH directPOP directPUSH 33HPUSH 34H——堆棧操作指令(2條)POP 36HPOP 35H. .. .★堆棧原則:后進(jìn)先出3)累加器A中高4位和低4位交換指令(1條)SWAP A072數(shù)據(jù)緩沖堆棧區(qū)堆棧指針SPSP內(nèi)是存放的是堆棧棧頂?shù)牡刂贰锒褩T瓌t:后進(jìn)先出數(shù)據(jù)緩沖堆棧區(qū)堆棧指針SPSP內(nèi)是存放的是堆棧棧頂?shù)牡刂?3PUSH directPOP directPUSH 33HPUSH 34H★堆棧原則:后進(jìn)先出復(fù)位后SP=07HPUSH directPOP directPUSH 374PUSH directPOP directPOP 36HPOP 35H★堆棧原則:后進(jìn)先出復(fù)位后SP=07HPUSH directPOP directPOP 3675傳送類(lèi)指令分類(lèi)單片機(jī)內(nèi)部數(shù)據(jù)傳送指令:MOVXCH XCHDSWAPPUSHPOP單片機(jī)內(nèi)部與單片機(jī)外部RAM之間的數(shù)據(jù)傳送指令:MOVX單片機(jī)內(nèi)部與ROM之間的數(shù)據(jù)傳送指令:MOVC★MOVX和MOVC以A作中介傳送類(lèi)指令分類(lèi)單片機(jī)內(nèi)部數(shù)據(jù)傳送指令:★MOVX和MOVC76directdirect算術(shù)運(yùn)算類(lèi)指令(24條)
——加法指令(8條)
A,Rn@Ri#dataADDRn@Ri#datadirectdirectA,Rn@Ri#dataADDCRn@Ri#data——減法指令(4條)
directdirectA,Rn@Ri#dataSUBBRn@Ri#dataADDCA,B(A+B+CY→A)SUBBA,B(A–B–
CY→A)directdirect算術(shù)運(yùn)算類(lèi)指令(24條)
——加法77算術(shù)操作類(lèi)指令(24條)——加法指令(8條) RnADDCA,direct @Ri #data
0011,0110,1010,1101+1010,1100,1101,1100———————————1110,0011,1000,10011010,1101+1101,1100———————————1000,1001MOVA,#0ADHADDA,#0DCHMOV20H,A——————MOVA,#36HADDCA,#0ACHMOV21H,A算術(shù)操作類(lèi)指令(24條)——加法指令(8條) Rn78BCD碼:00110100——BCD碼調(diào)整指令(1條)
DAA注意:DAA指令只能跟在A(yíng)DD或ADDC加法指令后,不適用于減法指令。十進(jìn)制二進(jìn)制BCD碼012345678910
11
12
13
14
15000000010010001101000101011001111000100110101011110011011110111100000001001000110100010101100111100010010001000000010001000100100001001100010100000101011816+34十進(jìn)制0001100000010110+BCD碼001011100011010000101110-00000110差6BCD碼:00110100——BCD碼調(diào)整指令(79——BCD碼調(diào)整指令BCD碼也叫8421碼,就是將十進(jìn)制的數(shù)以8421的形式展開(kāi)成二進(jìn)制,大家知道十進(jìn)制是0~9十個(gè)數(shù)組成,這十個(gè)數(shù)每個(gè)數(shù)都有自己的8421碼:舉個(gè)例子:321的8421碼就是321001100100001原因:0011=8x0+4x0+2x1+1x1=30010=8x0+4x0+2x1+1x0=2.0001=8x0+4x0+2x0+1x1=1
——BCD碼調(diào)整指令BCD碼也叫8421碼,就是將十進(jìn)制的數(shù)80——BCD碼調(diào)整指令DA A該指令有何用途呢?注意:DAA指令只能跟在進(jìn)行BCD碼運(yùn)算的ADD或ADDC加法指令后,不適用與減法指令?!狟CD碼調(diào)整指令DA A該指令有何用途呢?注意:D81——BCD碼調(diào)整指令例如:87+13——BCD碼調(diào)整指令例如:82——加1減1指令——加1減1指令83A中存放結(jié)果的低8位B中存放結(jié)果的高8位——乘法指令(1條)——除法指令(1條)MUL ABDIV ABA中存放結(jié)果的商B中存放結(jié)果的余數(shù)A中存放結(jié)果的低8位——乘法指令(1條)——除法指令(1條)84A中存放結(jié)果的低8位B中存放結(jié)果的高8位——乘法指令(1條)MUL AB例如:MOVA,#02HMOVB,#03HMULABA=06HB=00HA中存放結(jié)果的低8位——乘法指令(1條)MUL AB例如:A85——乘法指令(1條)MUL AB例如:MOVA,#20MOVB,#20MULAB20=14HA=90HB=01H20*20=40020=14H400=0190H★提示:——乘法指令(1條)MUL AB例如:20=14H20*2086——除法指令(1條)DIV ABA中存放結(jié)果的商B中存放結(jié)果的余數(shù)例如:MOVA,#25MOVB,#03DIVABA=08HB=01H——除法指令(1條)DIV ABA中存放結(jié)果的商例如:A=0873.4.3邏輯運(yùn)算指令——邏輯與指令(6條)邏輯與指令常用于屏蔽字節(jié)中的某些位。若清除某位,則用0和該位相與;若保留某位,則用1和該位相與。3.4.3邏輯運(yùn)算指令——邏輯與指令(6條)邏輯與指令88——邏輯或指令(6條)邏輯或指令常用于使字節(jié)中的某些位置1,其它位保持不變。若置位某位,則用1和該位相或;若保留某位,則用0和該位相或?!壿嫽蛑噶睿?條)邏輯或指令常用于使字節(jié)中的某些位置89——邏輯異或指令(6條)邏輯異或指令常用于使字節(jié)中的某些位進(jìn)行取反操作,其它位保持不變。若某位取反,則用1和該位相異或;若保留某位,則用0和該位相異或。——邏輯異或指令(6條)邏輯異或指令常用于使字節(jié)中的某些90——累加器A清0和取反指令——累加器A清0和取反指令91A.0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:執(zhí)行帶進(jìn)位的循環(huán)移位指令之前,必須給CY置位或清零?!h(huán)移位指令A(yù).0A.7A.0A.7A.0A.7A.0A.7CYCY注意92MOVA,#01HMOVP1,ARLAMOVP1,A——循環(huán)移位指令MOVA,#01H——循環(huán)移位指令933.4.4控制轉(zhuǎn)移類(lèi)指令
——無(wú)條件轉(zhuǎn)移指令(4條)1)長(zhǎng)轉(zhuǎn)移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假設(shè)執(zhí)行該指令前,PC的值為0000H。注意:該指令可以轉(zhuǎn)移到64KB程序存儲(chǔ)器中的任意位置。3.4.4控制轉(zhuǎn)移類(lèi)指令
——無(wú)條件轉(zhuǎn)移指令(4條)94PC高5位(保持不變)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作碼(第一字節(jié))操作數(shù)(第二字節(jié))11位轉(zhuǎn)移地址的形成示意圖轉(zhuǎn)移范圍2k程序計(jì)數(shù)器PC2)絕對(duì)轉(zhuǎn)移指令A(yù)JMPaddr11;PC+2PC,addr11PC.10~PC.0PC高5位PC低11位A10A9A80095PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相對(duì)轉(zhuǎn)移指令例:SJMP03H
03H03H就是當(dāng)前PC值與目的PC值相對(duì)差PCPC2002H2003H0000H0001H······2096JMP @A+DPTR4)散轉(zhuǎn)指令
功能:將DPTR中的內(nèi)容作為基地址,通過(guò)修改A的內(nèi)容實(shí)現(xiàn)散轉(zhuǎn)!一般應(yīng)用在鍵盤(pán)程序中JMP @A+DPTR4)散轉(zhuǎn)指令功能:將DPTR中971)累加器A判0指令(2條)——條件轉(zhuǎn)移指令(8條)1)累加器A判0指令(2條)——條件轉(zhuǎn)移指令(8條)982)判別進(jìn)位標(biāo)志CY狀態(tài)指令(2條)3)判別某位Bit狀態(tài)指令(2條)2)判別進(jìn)位標(biāo)志CY狀態(tài)指令(2條)3)判別某位Bit狀態(tài)指994)減1非零轉(zhuǎn)移指令(2條)4)減1非零轉(zhuǎn)移指令(2條)1005)比較轉(zhuǎn)移指令(4條)條件轉(zhuǎn)移指令的共同特點(diǎn):都是相對(duì)轉(zhuǎn)移指令5)比較轉(zhuǎn)移指令(4條)條件轉(zhuǎn)移指令的共同特點(diǎn):都是相對(duì)轉(zhuǎn)移101條件轉(zhuǎn)移類(lèi)指令范例(一)問(wèn)答題:2.將00H~0FH這16個(gè)數(shù)順序地置入片內(nèi)RAM20H~2FH單元中。2FH...21H20H0FH...01H00H數(shù)據(jù)地址條件轉(zhuǎn)移類(lèi)指令范例(一)問(wèn)答題:2FH0FH數(shù)據(jù)地址102條件轉(zhuǎn)移類(lèi)指令范例(一)將00H~0FH這16個(gè)數(shù)順序地置入片內(nèi)RAM20H~2FH單元中。可以用16個(gè)MOV指令將16個(gè)數(shù)據(jù)依次裝入存儲(chǔ)器中!采用循環(huán)方式將16個(gè)數(shù)據(jù)依次裝入存儲(chǔ)器中!條件轉(zhuǎn)移類(lèi)指令范例(一)將00H~0FH這16個(gè)數(shù)順序地103條件轉(zhuǎn)移類(lèi)指令范例(一)MOV R0, #20H MOV R7, #10H CLR ALOOP: MOV @R0, A INC A INC R0 DJNZ R7, LOOP SJMP $將地址20H放入R0中,明確了數(shù)據(jù)起始地址循環(huán)次數(shù)16放入R7,明確循環(huán)15次累加器A=0實(shí)現(xiàn)數(shù)據(jù)00放入20H中A=01RO=21判斷作用!判斷什么?判斷R7的值,(-1不等于0則跳轉(zhuǎn))條件轉(zhuǎn)移類(lèi)指令范例(一)104 MOV R0, #20H CLR ALOOP: MOV @R0,A INC A INC R0 CJNEA,#10H,LOOP SJMP$條件轉(zhuǎn)移類(lèi)指令范例(二)將地址20H放入R0中,明確了數(shù)據(jù)終點(diǎn)起始地址累加器A=0實(shí)現(xiàn)數(shù)據(jù)00放入20H中A=01RO=21判斷作用!判斷什么?判斷A的值與#10H是否相等(比較不相等則跳轉(zhuǎn)) MOV R0, #20H條件轉(zhuǎn)移類(lèi)指令范例(二)將地址2105 MOV R0,#20H MOV A,#10H MOV 30H, #00HLOOP:MOV @R0,30H INC 30H INC R0 DEC A JNZ LOOP SJMP $條件轉(zhuǎn)移類(lèi)指令范例(三)將20H放入R0中將10H放入A中將00H放入30H地址下將30H地址下內(nèi)容放入R0內(nèi)容地址下30H下內(nèi)容+1R0下內(nèi)容+1A的內(nèi)容-1A不等于0則跳轉(zhuǎn)3FH...30H...X變量X的值從00-0F不等于0則跳轉(zhuǎn) MOV R0,#20H條件轉(zhuǎn)移類(lèi)指令范例(三106 MOV R0,#20H MOV A,#0FH MOV 30H, #00HLOOP:MOV @R0,30H INC 30H INC R0 SUBB A, #0FH JNC LOOP SJMP $條件轉(zhuǎn)移類(lèi)指令范例(四)將20H放入R0中將0FH放入A中將00H放入30H地址下將30H地址下內(nèi)容放入R0內(nèi)容地址下30H下內(nèi)容+1R0下內(nèi)容+1帶借位將A的內(nèi)容-1判斷CY不等于1則跳轉(zhuǎn)無(wú)借位則跳轉(zhuǎn)帶借位減法指令,15-1=14..1-1=00-1有借位順次執(zhí)行 MOV R0,#20H條件轉(zhuǎn)移類(lèi)指令范例(四107——調(diào)用和返回指令(8條)1)絕對(duì)調(diào)用指令(1條)2K范圍內(nèi)調(diào)用子程序指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期A(yíng)CALLaddr11a10a9a810001addr7~0PCPC+2SPSP+1,(SP)PC0~7SPSP+1,(SP)PC8~15PC0~10addr112比較PUSHdirectPOPdirect比較AJMPaddr11——調(diào)用和返回指令(8條)1)絕對(duì)調(diào)用指令(1條)2K范圍內(nèi)108——調(diào)用和返回指令(8條)2)長(zhǎng)調(diào)用指令(1條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期LCALLaddr1600010010addr15~8addr7~0PCPC+3SPSP+1,SPPC0~7SP
SP+1,SPPC8~15PCaddr16264K范圍內(nèi)程序存儲(chǔ)器內(nèi)調(diào)用子程序指令——調(diào)用和返回指令(8條)2)長(zhǎng)調(diào)用指令(1條)助記符格式機(jī)1093)返回指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期RET00100010PC8~15
(SP),SPSP-1PC0~7(SP),SPSP-1子程序返回指令2RETI00110010PC8~15
SP,SPSP-1PC0~7SP,SPSP-1中斷返回指令23)返回指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期RET001104)空操作指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明NOP00000000空操作消耗1個(gè)機(jī)器周期硬件延時(shí)4)空操作指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明NOP01113.4.5位操作類(lèi)指令單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07
MSB
位地址
LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地址表3.4.5位操作類(lèi)指令單元地址2FH7FMSB1121.位傳送指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期MOVC,bit10100010CYbit位傳送指令,結(jié)果影響CY標(biāo)志2MOVbit,C10010010bitCY位傳送指令,結(jié)果不影響PSW2例:MOV20H,21HMOVC,21H1.位傳送指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周1132.位置位和位清零指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期CLRC11000011CY0位清0指令,結(jié)果影響CY標(biāo)志1CLRbit11000010bitbit0位清0指令,結(jié)果不影響PSW1SETBC11010011CY1位置1指令,結(jié)果影響CY標(biāo)志1SETBbitbit1位置1指令,結(jié)果不影響PSW111010010bit2.位置位和位清零指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)1143.位運(yùn)算指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周期A(yíng)NLC,bit10000010bitCYCY∧bit位與指令2ANLC,/bit10110010bit位與指令2ORLC,bit01110010bitCYCY∨bit位或指令2ORLC,/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,結(jié)果不影響CY2CYCY∧bitCYCY∨bitCYCYbitbit3.位運(yùn)算指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說(shuō)明機(jī)器周1154.位判斷轉(zhuǎn)移指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JBbit,rel00100000bitrel若bit=1,則PCPC+rel,否則順序執(zhí)行2JNBbit,rel00110000bitrel若bit=0,則PCPC+rel,否則順序執(zhí)行2JBCbit,rel00010000bitrel若bit=1,則PCPC+rel,bit0,否則順序執(zhí)行24.位判斷轉(zhuǎn)移指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期J1165.判CY標(biāo)志轉(zhuǎn)移指令(條件轉(zhuǎn)移指令)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JCrel01000000若CY=1,則PCPC+rel,否則順序執(zhí)行2JNCrel01010000若CY≠1,則PCPC+rel,否則順序執(zhí)行25.判CY標(biāo)志轉(zhuǎn)移指令(條件轉(zhuǎn)移指令)助記符格式機(jī)器碼(B1173.5MCS-51匯編語(yǔ)言的偽指令
偽指令是對(duì)匯編過(guò)程起控制作用,是程序員發(fā)給匯編程序的命令,指示如何完成匯編工作。偽指令沒(méi)有對(duì)應(yīng)的機(jī)器代碼,不產(chǎn)生目標(biāo)程序。1)設(shè)置目標(biāo)程序起始地址偽指令ORG(ORiGin)偽指令格式為:ORG
地址(十六進(jìn)制表示)該偽指令的作用是指明后面的程序或數(shù)據(jù)塊的起始地址,后面的源程序或數(shù)據(jù)塊就依次連續(xù)存放,直到遇到另一個(gè)ORG指令為止。3.5MCS-51匯編語(yǔ)言的偽指令118
例:ORG0100HSTART:MOVSP,#60HMOVR0,#2FHMOVR2,#0FFH例:ORG0100H119在一個(gè)源程序中,可多次使用ORG指令,來(lái)規(guī)定不同的程序段的起始地址。但是,地址必須由小到大排列,地址不能交叉、重疊。例如: ORG2000H ┇ORG2500H ┇ ORG3000H ┇在一個(gè)源程序中,可多次使用ORG指令,來(lái)規(guī)定1202)匯編結(jié)束命令END(ENDofassembly)指令格式:END匯編語(yǔ)言源程序的結(jié)束標(biāo)志,用于終止源程序的匯編工作。在整個(gè)源程序中只能有一條END命令,且位于程序的最后。3)定義字節(jié)偽指令DB(DefineByte)指令格式:DB項(xiàng)或項(xiàng)表其中項(xiàng)或項(xiàng)表指一個(gè)字節(jié)數(shù)據(jù)或用逗號(hào)分開(kāi)的字節(jié)數(shù)據(jù)串,或以單(雙)引號(hào)括起來(lái)的字符串。2)匯編結(jié)束命令END(ENDofassembly)121
ORG2000HTAB:DB30H,7FH,24DB‘C’,‘5’,‘AB’匯編后: (2000H)=30H (2001H)=7FH (2002H)=18H(十進(jìn)制數(shù)24) (2003H)=43H(字符C的ASCII碼) (2004H)=35H(字符5的ASCII碼)(2005H)=41H(字符A的ASCII碼)(2006H)=42H(字符B的ASCII碼)ORG2000H122注意:DB功能:從指定單元開(kāi)始定義(存儲(chǔ))若干個(gè)字節(jié),10進(jìn)制數(shù)自然轉(zhuǎn)換成16進(jìn)制數(shù),字符按ASCII碼存儲(chǔ)。注意:1234)定義字(2字節(jié))偽指令DW(DefineWord)指令格式:DW項(xiàng)或項(xiàng)表例,ORG2000H DW1246H,7BH,10匯編后:(2000H)=12H ;第1個(gè)字(2001H)=46H(2002H)=00H ;第2個(gè)字(2003H)=7BH(2004H)=00H ;第3個(gè)字(2005H)=0AH4)定義字(2字節(jié))偽指令DW(DefineWord)124
5)賦值偽指令EQU指令格式:標(biāo)號(hào)EQU數(shù)字或匯編符號(hào)該偽指令功能是使標(biāo)號(hào)等價(jià)于給定的數(shù)字或匯編符號(hào)。例:
TESTEQU2000H表示標(biāo)號(hào)TEST=2000H,在匯編時(shí),凡是遇到標(biāo)號(hào)TEST時(shí),均以2000H來(lái)代替。注意:在同一個(gè)源程序中,同一個(gè)標(biāo)號(hào)只能賦值一次。5)賦值偽指令EQU1256)預(yù)留存儲(chǔ)空間偽指令DS指令格式:[標(biāo)號(hào):]DS表達(dá)式該偽指令的功能是從標(biāo)號(hào)地址開(kāi)始,保留若干字節(jié)的內(nèi)存空間以備存放數(shù)據(jù)。保留的字節(jié)單元數(shù)由表達(dá)式的值決定。例如:ORG1000HDS20HDB30H,8FH匯編后從1000H開(kāi)始,預(yù)留32(20H)個(gè)字節(jié)的內(nèi)存單元,然后(1020H)=30H,(1021H)=8FH。6)預(yù)留存儲(chǔ)空間偽指令DS1267)位地址定義偽指令BIT指令格式:標(biāo)號(hào)BIT位地址該偽指令的功能是將位地址賦予前面的標(biāo)號(hào),經(jīng)賦值后可用該標(biāo)號(hào)代替BIT前面的位地址。例如:FLGBITF07)位地址定義偽指令BIT127簡(jiǎn)單程序設(shè)計(jì)
結(jié)構(gòu)特點(diǎn):按指令的先后順序依次執(zhí)行。問(wèn)答題:3.將20H單元的兩個(gè)壓縮BCD碼拆開(kāi)變成ASCII碼,存入21H、22H單元。(假設(shè)20H中的BCD碼為00110100)·········20H21H22HAB0011壓縮BCD碼001100110100低四位ASCII碼高四位ASCII碼簡(jiǎn)單程序設(shè)計(jì)結(jié)構(gòu)特點(diǎn):按指令的先后順序依次執(zhí)行。128程序設(shè)計(jì)-舉例例1.將20H單元的兩個(gè)壓縮BCD碼拆開(kāi)變成ASCII碼,存入21H,22H單元.(假設(shè)20H中的BCD碼為00110100)BCD碼表示范圍:0-9ASCII碼表示為:30H-39H程序設(shè)計(jì)-舉例例1.將20H單元的兩個(gè)壓縮BCD碼拆開(kāi)變成A129程序設(shè)計(jì)-啟示方法1.將BCD碼除以10H,恰好是將BCD碼分別移到了A.B的低4位,然后再各自與30H相或,即成為ASCII碼.①②③程序設(shè)計(jì)-啟示方法1.將BCD碼除以10H,恰好是將BCD碼130ORG0000HMOVA,20HMOVB,#10HDIVABORLB,#30HMOV22H,BORLA,#30HMOV21H,ASJMP$END
開(kāi)始(20H)A10HBA/B(A中為高4位BCD碼,B中為低4位BCD碼)B+30HBB(22H)A+30HAA(21H)結(jié)束簡(jiǎn)單程序例1---方法1源程序如下:·········20H21H22HAB00110100PCPC0011010000010000PC0011000000000100PC00110100PCPCPC0011PCORG0000H開(kāi)始(20H)A10HBA131ORG0000HMOVR0,#20HMOVA,#30HXCHDA,@R0MOV22H,AMOVA,@R0SWAPAORLA,#30HMOV21H,ASJMP$END簡(jiǎn)單程序例1---方法2
開(kāi)始#20HR0#30HAA的低4位(20H)的低4位A(22H)(20H)AA的低4位A的高4位A(21H)結(jié)束A+30HAPCPCPCPCPCPCPCPC源程序如下:·········20H21H22HAR000110010000000110100000001000011010000110000001100000011PC0011
132ThankYou!ENDThankYou!END133單片機(jī)原理及應(yīng)用第1,2,3章復(fù)習(xí)光華學(xué)院信息工程系王超單片機(jī)原理及應(yīng)用第1,2,3章復(fù)習(xí)光華學(xué)院134單片機(jī)實(shí)物圖單片機(jī)實(shí)物圖135單片機(jī)開(kāi)發(fā)板單片機(jī)開(kāi)發(fā)板136單片機(jī)流水燈數(shù)碼管電機(jī)傳感器單片機(jī)應(yīng)用原理單片機(jī)流水燈數(shù)碼管電機(jī)傳感器單片機(jī)應(yīng)用原理137一個(gè)微電腦包括微處理器(CPU),存放程序指令的(ROM),存放數(shù)據(jù)的(RAM),輸入輸出端口(I/O口)以及時(shí)鐘,計(jì)數(shù)器,中斷系統(tǒng)等,它們經(jīng)過(guò)地址總線(xiàn)(AddressBus),數(shù)據(jù)總線(xiàn)(DadaBus),控制總線(xiàn)(ControlBus)的連接以及輸入輸出端口與外圍設(shè)備連接,構(gòu)成微電腦系統(tǒng)。由于單片機(jī)微處理器把微電腦的主要器件制造在一塊芯片上,所以可以把單片機(jī)微處理器看成是一個(gè)不帶外圍裝置的微電腦。什么是單片機(jī)?一個(gè)微電腦包括微處理器(CPU),存放程序指令的(ROM),138測(cè)試題9.8051單片機(jī)的內(nèi)部硬件結(jié)構(gòu)包括了:______________、______________、______________
、和______________以及并行I/O口、串行口、中斷控制系統(tǒng)、時(shí)鐘電路、位處理器等部件,這些部件通過(guò)_____________相連接。13.8031單片機(jī)中片內(nèi)RAM共有()字節(jié)。A.128B.256C.4KD.64K測(cè)試題9.8051單片機(jī)的內(nèi)部硬件結(jié)構(gòu)包括了:_139工業(yè)方面民用方面儀表方面電訊方面數(shù)據(jù)處理方面汽車(chē)方面單片機(jī)的應(yīng)用工業(yè)方面民用方面儀表方面電訊方面數(shù)據(jù)處理方面汽車(chē)方面單片機(jī)的140微型計(jì)算機(jī)硬件結(jié)構(gòu)硬件系統(tǒng):微機(jī)實(shí)體和裝置軟件系統(tǒng):微機(jī)系統(tǒng)使用的各種程序的總稱(chēng)微型計(jì)算機(jī)硬件結(jié)構(gòu)硬件系統(tǒng):軟件系統(tǒng):141單片機(jī)硬件結(jié)構(gòu)單片機(jī)硬件結(jié)構(gòu)142MCS-51單片機(jī)的硬件結(jié)構(gòu)時(shí)鐘電路CPUROMRAMT0T1中斷系統(tǒng)串行接口并行接口P0P1P2P3TXDRXDINT0INT1定時(shí)計(jì)數(shù)器結(jié)構(gòu)框圖微處
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度消防維保專(zhuān)項(xiàng)應(yīng)急預(yù)案合同3篇
- 2024年度代繳社保服務(wù)與外籍教師合作協(xié)議3篇
- 2024年度電線(xiàn)電纜采購(gòu)銷(xiāo)售協(xié)議范本版B版
- 2024年度藝術(shù)地板磚定制與施工承包合同2篇
- 2024年度健康醫(yī)療服務(wù)預(yù)付款協(xié)議書(shū)3篇
- 2024年度玉米秸稈生物質(zhì)顆粒燃料生產(chǎn)原料采購(gòu)協(xié)議3篇
- 2024年度社會(huì)工作者青少年服務(wù)合同下載3篇
- 第一單元 史前時(shí)期:中國(guó)境內(nèi)早期人類(lèi)與文明的起源(B卷·能力提升練)(原卷版)
- 2024年初中化學(xué)教案
- 2024年變電檢修(電氣試驗(yàn)類(lèi))專(zhuān)業(yè)“人人過(guò)關(guān)”考核試題庫(kù)-上(單選題)
- GB/T 45086.1-2024車(chē)載定位系統(tǒng)技術(shù)要求及試驗(yàn)方法第1部分:衛(wèi)星定位
- 支氣管動(dòng)脈造影護(hù)理
- 校園春季安全
- 2024-2025學(xué)年六上科學(xué)期末綜合檢測(cè)卷(含答案)
- 【MOOC】工程力學(xué)-浙江大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年湖南省公務(wù)員考試《行測(cè)》真題及答案解析
- 產(chǎn)房年終總結(jié)及明年計(jì)劃
- 北京交通大學(xué)《數(shù)據(jù)結(jié)構(gòu)與算法》2021-2022學(xué)年期末試卷
- 足球體育說(shuō)課
- 【粵教】八上地理知識(shí)點(diǎn)總結(jié)
- 人教鄂教版五年級(jí)上冊(cè)科學(xué)復(fù)習(xí)資料
評(píng)論
0/150
提交評(píng)論