單片機(jī)的原理與應(yīng)用_第1頁
單片機(jī)的原理與應(yīng)用_第2頁
單片機(jī)的原理與應(yīng)用_第3頁
單片機(jī)的原理與應(yīng)用_第4頁
單片機(jī)的原理與應(yīng)用_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ī)實(shí)物圖單片機(jī)開發(fā)板單片機(jī)流水燈數(shù)碼管電機(jī)傳感器單片機(jī)應(yīng)用原理一個(gè)微電腦包括微處理器(CPU),存放程序指令的(ROM),存放數(shù)據(jù)的(RAM),輸入輸出端口(I/O口)以及時(shí)鐘,計(jì)數(shù)器,中斷系統(tǒng)等,它們經(jīng)過地址總線(AddressBus),數(shù)據(jù)總線(DadaBus),控制總線(ControlBus)的連接以及輸入輸出端口與外圍設(shè)備連接,構(gòu)成微電腦系統(tǒng)。由于單片機(jī)微處理器把微電腦的主要器件制造在一塊芯片上,所以可以把單片機(jī)微處理器看成是一個(gè)不帶外圍裝置的微電腦。什么是單片機(jī)?測(cè)試題9.8051單片機(jī)的內(nèi)部硬件結(jié)構(gòu)包括了:______________、______________、______________

、和______________以及并行I/O口、串行口、中斷控制系統(tǒng)、時(shí)鐘電路、位處理器等部件,這些部件通過_____________相連接。13.8031單片機(jī)中片內(nèi)RAM共有()字節(jié)。A.128B.256C.4KD.64K工業(yè)方面民用方面儀表方面電訊方面數(shù)據(jù)處理方面汽車方面單片機(jī)的應(yīng)用微型計(jì)算機(jī)硬件結(jié)構(gòu)硬件系統(tǒng):微機(jī)實(shí)體和裝置軟件系統(tǒng):微機(jī)系統(tǒng)使用的各種程序的總稱單片機(jī)硬件結(jié)構(gòu)MCS-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單元,用戶使用前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和12MHZ測(cè)試試題題簡(jiǎn)答題題:1、MCS-51單單片機(jī)機(jī)的片片內(nèi)都都集成成了哪哪些功功能部部件??各個(gè)個(gè)功能能部件件的最最主要要的功功能是是什么么?測(cè)試試題題1.一一個(gè)完完整的的微機(jī)機(jī)系統(tǒng)統(tǒng)由_____________和_______________兩大大部分分組成成.3.半半導(dǎo)體體存儲(chǔ)儲(chǔ)器分分成兩兩大類類__________和__________,,其中中_______________具具有易易失性性,常常用于于存儲(chǔ)儲(chǔ)___________。。MCS-51單單片機(jī)機(jī)信號(hào)號(hào)引腳腳簡(jiǎn)介介P3口線的的第二二功能能VCCVSSXTAL2XTAL1RSTP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.72、時(shí)鐘引引腳::XTAL1、、XTAL23、復(fù)位引引腳::RST7、并行口口:P0、、P1、P2、、P34、ALE:地地址鎖鎖存控控制信信號(hào)1、電源線線: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

313029282726252424222180318051875189C51時(shí)鐘電電路與與復(fù)位位電路路(1)時(shí)鐘鐘振蕩蕩電路路測(cè)試試題題12.單單片機(jī)機(jī)8051的XTALl和XTAL2引腳腳是(())引引腳A.外外接接定時(shí)時(shí)器B..外接接串行行口C.外外接中中斷D.外外接晶晶振例:若振蕩蕩頻率率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ī)機(jī)中,,如果果采用用12MHz晶晶振,,一個(gè)個(gè)機(jī)器器周期期為____________。。測(cè)試試題題1.8031單單片機(jī)機(jī)的()口口的引引腳,,還具具有外外中斷斷、串串行通通信等等第二二功能能。a)P0b))P1c))P2d))P32.單單片機(jī)機(jī)應(yīng)用用程序序一般般存放放在(())a)RAMb))ROMc)寄寄存器器d)CPU3.已已知某某數(shù)的的BCD碼碼為0111010101000010則則其表表示的的十進(jìn)進(jìn)制數(shù)數(shù)值為為())a)7542Hb))7542c))75.42Hd))75.42測(cè)試試題題2.8051的的引引腳RST是_________(IN腳還還是OUT腳),當(dāng)當(dāng)其端端出現(xiàn)現(xiàn)_____電電平時(shí)時(shí),8051進(jìn)進(jìn)入復(fù)復(fù)位狀狀態(tài)。。8051一直直維持持這個(gè)個(gè)值,,直到到RST腳腳收到到____電平平,8051才才脫離離復(fù)位位狀態(tài)態(tài),進(jìn)進(jìn)入程程序運(yùn)運(yùn)行狀狀態(tài),,從ROM_______H單元元開始始取指指令并并翻譯譯和執(zhí)執(zhí)行。。MCS-51的的微處處理器器MCS-51的的微處處理器器(CPU)由運(yùn)算器器和控制器器所構(gòu)成成。2.3.1運(yùn)算器器作用:對(duì)操作作數(shù)進(jìn)進(jìn)行算算術(shù)、、邏輯輯運(yùn)算算和位位操作作。由算術(shù)邏邏輯單單元(ALU)、累加器器A、寄存器器B、位處理理器和程序狀狀態(tài)字字寄存存器(PSW)等構(gòu)成成。1.算算術(shù)邏邏輯運(yùn)運(yùn)算單單元ALU它是運(yùn)運(yùn)算器器的的的核心心.+-*/,&|-...2.累累加器器A((8位位)使用最最頻繁繁的寄寄存器器,可可寫為為Acc。。累加器器A的的作用用:(1))是ALU的輸輸入(數(shù)據(jù)據(jù)處理理源)之一一,又又是運(yùn)運(yùn)算結(jié)結(jié)果的存存放單單元。。(2))數(shù)據(jù)據(jù)傳送送大多多都通通過累累加器器A。。3.寄寄存存器B(8位位)是為執(zhí)執(zhí)行乘、除除法操作設(shè)設(shè)置的的,作作為ALU的輸輸入之之一。。在不不執(zhí)行行乘、、除法法操作作的情情況下下,可可當(dāng)作作普通通寄存存器使使用。。(A*B=BA)(A/B=A…B)4.程程序狀狀態(tài)字字寄存存器PSW(ProgramStatusWord)(1))Cy(PSW.7)進(jìn)位標(biāo)標(biāo)志位位,或或?qū)憺闉镃,有進(jìn)進(jìn)位或或借位位時(shí)硬硬件置置1。。(2))Ac(PSW.6)輔助進(jìn)進(jìn)位標(biāo)標(biāo)志位位,用用于BCD碼的的十進(jìn)制調(diào)調(diào)整運(yùn)運(yùn)算。。當(dāng)?shù)偷?位位向高高4位位數(shù)發(fā)發(fā)生進(jìn)進(jìn)位或或借位位時(shí),AC被硬硬件置置位,否則則被清清0。。(3))F0(PSW.5)用戶自自定義義標(biāo)志志位。??捎糜密浖顾?或清清0,,也可可由軟軟件來來測(cè)試試標(biāo)志志F0以控控制程程序的的流向向。編編程時(shí)時(shí),該該標(biāo)志志很有有用。。CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW表2.3RS1、RS0與片內(nèi)內(nèi)工作寄存存器組的對(duì)對(duì)應(yīng)關(guān)系RS1RS0寄存器組片內(nèi)RAM地址通用寄存器名稱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…PD0HD7D6D5D4D3D2D1D0PSWRAM共128個(gè)單單元測(cè)試題題6.若由程程序設(shè)定RS1、RS0=01,則工工作寄存器器R0~R7的直接接地址為______。5.INTEL8051單單片機(jī)是(())位的的單片機(jī)a)16b)4c)8d)準(zhǔn)1611.進(jìn)進(jìn)位標(biāo)志CY在()中。。A.累加加器AB.算術(shù)術(shù)邏輯運(yùn)算算部件ALUC.程序狀狀態(tài)字寄存存器PSWD.DPDR14.當(dāng)當(dāng)標(biāo)志寄存存器PSW的RS0、RS1分別為1,0時(shí),,選用的工工作寄存器器組為()。。A.組0B.組1C..組2D.組3(5)OV((PSW.2))::溢出出標(biāo)標(biāo)志志位位指示示運(yùn)運(yùn)算算是是否否產(chǎn)產(chǎn)生生溢溢出出。。各各種種算算術(shù)術(shù)運(yùn)運(yùn)算算指指令令對(duì)對(duì)該該位位的的影影響響情情況況較較復(fù)復(fù)雜雜,,將將在在第第3章章介介紹紹。。(6)PSW.1位位:保保留留位位,,未未用用(7)P(PSW.0)::奇偶偶標(biāo)標(biāo)志志位位,每每個(gè)個(gè)指指令令周周期期都都由由硬硬件件置置位位或或清清除除.P=1,,A中中““1””的的個(gè)個(gè)數(shù)數(shù)為為奇奇數(shù)數(shù)P=0,,A中中““1””的的個(gè)個(gè)數(shù)數(shù)為為偶偶數(shù)數(shù)注::奇偶偶標(biāo)標(biāo)志志位位對(duì)對(duì)串行行口口通通訊訊中中的的數(shù)數(shù)據(jù)據(jù)傳傳輸輸有重重要要意意義義,,常常用用奇偶偶檢檢驗(yàn)驗(yàn)的的方方法法來檢檢驗(yàn)驗(yàn)數(shù)數(shù)據(jù)據(jù)傳傳輸輸?shù)牡目煽煽靠啃孕?。。CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW1

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ǔ)儲(chǔ)器器的的結(jié)結(jié)構(gòu)構(gòu)80318051875189C51片內(nèi)RAM片內(nèi)ROM256B((字字節(jié)節(jié)))4K64K64K(1)程序序存存儲(chǔ)儲(chǔ)器器程序序存儲(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ǔ)儲(chǔ)器器資資源源分分布布中斷斷入入口口地地址址0000HFFFFH(64K)內(nèi)部外部(2)數(shù)據(jù)據(jù)存存儲(chǔ)儲(chǔ)器器數(shù)據(jù)據(jù)存儲(chǔ)儲(chǔ)器器00HFFH7FH80H(高128B)(低128B)RAM專用用寄寄存存器器00H07H08H0FH10H17H18H1FH0區(qū)R0R7R0R7R0R7R0R71區(qū)2區(qū)3區(qū)工作寄存器區(qū)可位尋址區(qū)20H2FH7F78070030H7FH數(shù)據(jù)緩沖區(qū)/堆棧區(qū)內(nèi)部部RAM存儲(chǔ)儲(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ū)區(qū)選擇擇位位RS0、、RS1測(cè)試試題題簡(jiǎn)答答題題:2.請(qǐng)請(qǐng)畫畫出出MCS-51RAM區(qū)區(qū)的的示示意意圖圖,并并注注明明各各區(qū)區(qū)域域基基本本用用途途.注意意:一一個(gè)個(gè)單單元元地地址址對(duì)對(duì)應(yīng)應(yīng)有有8個(gè)個(gè)位位地地址址MSB————MostSignificantBit((最最高高有有效效位位))LSB————LeastSignificantBit((最最低低有有效效位位))單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋尋址址區(qū)區(qū)位位地地址址表表測(cè)試試題題15.8051的的內(nèi)內(nèi)部部RAM中中,,可可以以進(jìn)進(jìn)行行位位尋尋址址的的地地址址空空間間為為()。。A.00H~2FHB..20H~2FHC..00H~FFHD.20H~FFH高128個(gè)個(gè)單單元元☆離散散分分布布有有21個(gè)個(gè)特特殊殊功功能能寄寄存存器器SFR。?!?1個(gè)個(gè)可可以以進(jìn)進(jìn)行行位位尋尋址址。。☆特別別提提示示::對(duì)對(duì)SFR只只能能使使用用直直接接尋尋址址方方式式,,書書寫寫時(shí)時(shí)可可使使用用寄寄存存器器符符號(hào)號(hào),,也也可可用用寄寄存存器器單單元元地地址址。。測(cè)試試題題4..CPU主主要要的的組組成成部部部部分分為為(())a))運(yùn)運(yùn)算算器器、、控控制制器器b))加加法法器器、、寄寄存存器器c))運(yùn)運(yùn)算算器器、、寄寄存存器器d))運(yùn)運(yùn)算算器器、、指指令令譯譯碼碼器器8..11H位位尋尋址址所所在在的的單單元元地地址址是是(())a))20Hb))30Hc))22Hd))70H1)堆堆棧棧和和堆堆棧棧指指針針SP堆棧棧是是按先先進(jìn)進(jìn)后后出出或后進(jìn)進(jìn)先先出出原則則進(jìn)進(jìn)行行存存取取的的片內(nèi)RAM區(qū)區(qū)域域。(主主要要是是為為子子程程序序調(diào)調(diào)用用和和中中斷斷操操作作而而設(shè)立立的的)堆棧棧的的具具體體功功能能是是::①保保護(hù)護(hù)斷斷點(diǎn)點(diǎn)(PC的的內(nèi)內(nèi)容容);;②保保護(hù)護(hù)現(xiàn)現(xiàn)場(chǎng)場(chǎng)(保保存存有有關(guān)關(guān)寄寄存存器器單單元元的的內(nèi)內(nèi)容容)。。MCS-51單單片片機(jī)機(jī)的的堆堆棧棧區(qū)區(qū)是是不不固固定定的的,,原原則則上上可可設(shè)置置在在內(nèi)內(nèi)部部RAM(00H~~7FH)的的任任意意單單元元。。但但實(shí)實(shí)際際應(yīng)應(yīng)用中中要要根根據(jù)據(jù)對(duì)對(duì)片片內(nèi)內(nèi)RAM的的各各功功能能區(qū)區(qū)的的使使用用情情況況靈靈活活設(shè)置置,,但但應(yīng)應(yīng)避避開開工工作作寄寄存存器器區(qū)區(qū)、、位位尋尋址址區(qū)區(qū)、、和和用用戶使用用的數(shù)數(shù)據(jù)區(qū)區(qū),一一般設(shè)設(shè)在2FH地址以以后的的區(qū)域域。堆棧指指針SP是是一個(gè)個(gè)8位位的SFR。SP的的內(nèi)容容指示示出堆棧頂頂部在RAM區(qū)區(qū)中的的位置置。單片機(jī)機(jī)復(fù)位后,SP中中的內(nèi)內(nèi)容為為07H(即指指向07H的RAM單元元),,使堆堆棧事事實(shí)上上由08H單元元開始始。所以在在使用用堆棧棧前,,先給給SP賦值值(一般般為2FH以后后的單元元),以規(guī)規(guī)定堆堆棧的的起始始位置置(棧棧底)。當(dāng)當(dāng)數(shù)據(jù)存入入堆棧棧后,,SP的值值也隨隨之自自動(dòng)變變化。。測(cè)試試題題8.MCS-51的的堆棧棧只可可設(shè)置置在________,,一般般設(shè)在在______地址址以后后的區(qū)區(qū)域,,。堆堆棧寄寄存器器SP是____位位寄存存器,,存放放_(tái)__________。。復(fù)位時(shí)時(shí),PC初初始化化為0000H,使MCS-51單片片機(jī)從從程序存存儲(chǔ)器器0000H單元開開始執(zhí)執(zhí)行程程序。。除PC之外外,復(fù)復(fù)位操操作還還對(duì)其其它一一些寄寄存器器有影影響,,見表表2.3(P26)。SP=07H,,P0-P3的引引腳均均為高高電平平。復(fù)位電電路(2)復(fù)位位電路路單片機(jī)機(jī)復(fù)位位條件件:必須使使RST引引腳持持續(xù)2微秒秒高電平平(外外部時(shí)時(shí)鐘12MHz)誰知道道復(fù)位電電路怎怎么起起到復(fù)復(fù)位的的作用用?測(cè)試試題題6.8051復(fù)復(fù)位后后,PC與與SP的值值為(())a))0000H,,00Hb))0000H,07Hc))0003H,,07Hd))0800H,00H指令系系統(tǒng)概概述指令:控控制計(jì)算算機(jī)完成成指定操操作的命命令。指令系統(tǒng)統(tǒng):計(jì)算算機(jī)所能能執(zhí)行的的指令的的集合。。★測(cè)試試題題4.所所謂尋址址,其實(shí)實(shí)質(zhì)就是是___________。。問答題:1、MCS-51共有有哪幾種種尋址方方式?各各有什么么特點(diǎn)??并舉例例說明.指令格式式操作碼::用來規(guī)定定指令進(jìn)進(jìn)行什么么操作。。操作數(shù)::是指令操操作的對(duì)對(duì)象。標(biāo)號(hào):代表該指指令所存存放的第第一個(gè)字字節(jié)存儲(chǔ)儲(chǔ)單元的的地址,,故標(biāo)號(hào)號(hào)又稱為為“符號(hào)號(hào)地址””。DELAY:MOVR3,#0FFH;一段延延時(shí)程序序3.3指指令系系統(tǒng)的尋尋址方式式

(尋尋找操作作數(shù))有我的信信,找信去立即找到到信!找信是尋找存存放信的的?。≌业椒判判诺南渥幼硬耪业降叫?!“地方””3.3指指令系系統(tǒng)的尋尋址方式式

(尋尋找操作作數(shù))找到放信信的箱子子才找到到信!10000H0001H0002H2002H2003H2004H2005H2006H……80H2002H找信是尋找存存放信的的??!“地方””“地址””找操作數(shù)數(shù)是找操作數(shù)數(shù)的“地址””立即尋址址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(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立即數(shù)尋尋址直接尋址址寄存器尋尋址寄存器間間接尋址址變址尋址址相對(duì)尋址址位尋址CPU操作數(shù)內(nèi)部RAM或SFR區(qū)區(qū)20HMOVA,20HA88HAMOVRn,20HMOVdirect,30HMOV@Ri,30HAR0-R7direct@Ri直接給出出操作數(shù)數(shù)地址的的方式20H———直接接尋址ADDA,20HSUBA,30H尋址比較較MOVP1,#20H①M(fèi)OVP1,20H②MOVP1,R0③MOVP1,@R0④指出下列列指令尋尋址方式式MOVP1, #0FFHMOVA,F0HPUSH 12H立即尋址址直接尋址址直接尋址址立即數(shù)尋尋址直接尋址址寄存器尋尋址寄存器間間接尋址址變址尋址址相對(duì)尋址址位尋址CPU88H20H操作數(shù)60H寄存器A操作數(shù)操作數(shù)MOVP1,A你能說出出:帶圈的圓圓弧箭頭頭代表的是是什么嗎嗎?誰能說出出:寄存器尋尋址與直接尋址址的區(qū)別?AR0-R7BDPTRP1MOVP1,R4CLRA立即數(shù)尋尋址直接尋址址寄存器尋尋址寄存器間間接尋址址變址尋址址相對(duì)尋址址位尋址22通過間接找到到的地址———“2號(hào)”!“1號(hào)””信寄存器操作數(shù)寄存器1CPU3AH寄存器R0猜一猜::操作數(shù)的的地址是多少嗎嗎??jī)?nèi)部RAM3AH我才是操操作數(shù)65HMOVA,@R0AR0R1DPTR寄存器間間接尋址址寄存器器MOVXA,@DPTR立即數(shù)尋尋址直接尋址址寄存器尋尋址寄存器間間接尋址址變址尋址址相對(duì)尋址址位尋址CPU寄存器3AH3AH程序存儲(chǔ)儲(chǔ)區(qū)65H操作數(shù)變址寄存器02H基址寄存器0300H+0302H0302H88HADPTRPCMOVCA,@A+DPTRAMOVCA,@A+PC立即數(shù)尋尋址直接尋址址寄存器尋尋址寄存器間間接尋址址變址尋址址相對(duì)尋址址位尋址……0000H0001H0002H2002H2003H2004H2005H2006HPCPCPCPCPCPC如果想跳跳到2006H執(zhí)行,,該給PC值加上多少少呢?2006H2003H—03H03H就就是當(dāng)前前PC值值與目的的PC值值相對(duì)差SJMP03H(PC+03H)SJMP=2003H+03H=2006H操作數(shù)哪哪去了??03就是是操作數(shù)數(shù)立即數(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ǔ)器單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800位尋址地地址表立即數(shù)尋尋址直接尋址址寄存器尋尋址寄存器間間接尋址址變址尋址址相對(duì)尋址址位尋址SETB3DH20H21H27H28H……D7D020H21H000000001MCS-51單單片機(jī)指指令系統(tǒng)統(tǒng)分類介介紹MCS-51單單片機(jī)指指令系統(tǒng)統(tǒng)共有111條條指令,,按功能能分類,,可分下下面5大大類:數(shù)據(jù)傳送送類(29條))算數(shù)操作作類(24條))邏輯運(yùn)算算類(24條))控制轉(zhuǎn)移移類(17條))位操作類類((17條))常用偽指指令(17條))符號(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)容傳送到前面去指令中一一些符號(hào)號(hào)的約定定意義簡(jiǎn)答題:3.MCS-51指令令按功能能可以分分為哪幾幾類?每每類指令令的作用用是什么么?并舉舉例說明明.目的地址址源源地址址數(shù)據(jù)據(jù)MOV<目的操作作數(shù)>,<源操作數(shù)數(shù)>MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA數(shù)據(jù)傳送送指令((29條條)———8位數(shù)據(jù)傳送送指令(15條條)數(shù)據(jù)傳送送指令((29條條)———16位數(shù)據(jù)傳送送指令((1條))MOVDPTR,#data16——外部數(shù)據(jù)傳送送指令(4條)MOVX<目的操作作數(shù)>,<源操作數(shù)數(shù)>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA誰知道內(nèi)RAM中30H中數(shù)數(shù)據(jù)→外RAM的1001H中?MOVA,30HMOVDPTR,#1001HMOVX@DPTR,A片內(nèi)傳送送——MOV在A累加加器、工工作寄存存器R0~R7、片內(nèi)內(nèi)RAM與SFR(direct、、@Ri)之間間傳送數(shù)數(shù)據(jù)。單片機(jī)與片片外RAM之間的數(shù)數(shù)據(jù)傳送((取數(shù)/送送數(shù))———MOVX在片外RAM(或外擴(kuò)I/O口))與A累加器之間間傳送。僅僅采用寄存存器間接尋尋址方式。。單片機(jī)與ROM之間間的數(shù)據(jù)傳傳送

(查查表)———MOVC讀取存放在在程序存儲(chǔ)儲(chǔ)器ROM中的數(shù)據(jù)據(jù),通常是是以表格形形式存放。。采用變址尋址方式。MOVCA,@A+DPTRMOVCA,@A+PCAROM優(yōu)點(diǎn):不改變特殊功能寄寄存器及PC的狀態(tài),根根據(jù)A的內(nèi)容就可可以取出表格中的常常數(shù)。缺點(diǎn):表格只能存存放在該條查表指指令后面的256個(gè)單元之內(nèi)內(nèi),表格的的大小受到到限制,且且表格只能能被一段程程序所利用用。注意:PSEN*信號(hào)有效。。單片機(jī)與ROM之間間的數(shù)據(jù)傳傳送

(查查表)———MOVC編程時(shí)還需需要進(jìn)行偏移量的計(jì)算,即即MOVCA,@A+PC指指令所在地址與表格存放首首地址間的距離字節(jié)節(jié)數(shù)的計(jì)算算,并需要要一條加法指令進(jìn)行調(diào)整。單片機(jī)與ROM之間間的數(shù)據(jù)傳傳送

(查查表)———MOVC(2)MOVCA,@A+DPTR以DPTR作為基址寄存器,,A的內(nèi)容作為無符號(hào)號(hào)整數(shù)和DPTR的的內(nèi)容相加得到一一個(gè)16位位的地址,,把由該地地址指出的的程序存儲(chǔ)器單元元的內(nèi)容送送到累加器器A。例如:MOVCA,@A+DPTR本指令的執(zhí)執(zhí)行結(jié)果只只和指針DPTR及及累加器A的內(nèi)容有有關(guān),與該指令存存放的地址址及常數(shù)表表格存放的的地址無關(guān)關(guān)。表格的大小小和位置可可以在64K程序存存儲(chǔ)器中任任意安排,一個(gè)表格格可以為各各個(gè)程序塊塊公用。例:從程序存儲(chǔ)器器2000H單元開始始存放0~~9的平方值,,以DPTR作為基基址寄存器器進(jìn)行查表表得9的平平方值,若若用以DPTR作作為基址寄寄存器的查查表指令.程序如下:MOVDPTR,#2000HMOVA,#09HMOVCA,@A+DPTR1)字節(jié)交交換指令((3條)——交換類指令(3條條)AF581內(nèi)部RAM directXCH A,Rn @Ri

2)低半字字節(jié)交換指指令(1條條)XCHDA,@Ri這里假設(shè)i=0A85F15B5B寄存器R03)累加器器A中高4位和低4位交換指指令(1條條)SWAPA01011100PUSHdirectPOPdirectPUSH33HPUSH34H——堆棧操作指令(2條條)POP36HPOP35H. .. .★堆棧原則::后進(jìn)先出數(shù)據(jù)緩沖堆堆棧區(qū)堆棧指針SPSP內(nèi)是是存放的是是堆棧棧頂頂?shù)牡刂贰锒褩T瓌t::后進(jìn)先出出PUSHdirectPOPdirectPUSH33HPUSH34H★堆棧原則::后進(jìn)先出出復(fù)位后SP=07HPUSHdirectPOPdirectPOP36HPOP35H★堆棧原則::后進(jìn)先出出復(fù)位后SP=07H傳送類指令令分類單片機(jī)內(nèi)部部數(shù)據(jù)傳送送指令:MOVXCHXCHDSWAPPUSHPOP單片機(jī)內(nèi)部與單片機(jī)外部RAM之間間的數(shù)據(jù)傳傳送指令::MOVX單片機(jī)內(nèi)部與ROM之之間的數(shù)據(jù)據(jù)傳送指令令:MOVC★MOVX和和MOVC以A作中介directdirect算術(shù)運(yùn)算類類指令(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)算術(shù)操作類類指令(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,ABCD碼:00110100——BCD碼調(diào)調(diào)整指令(1條條)DAA注意:DAA指令只只能跟在ADD或ADDC加加法指令后后,不適用用于減法指指令。十進(jìn)制二進(jìn)制BCD碼012345678910

11

12

13

14

15000000010010001101000101011001111000100110101011110011011110111100000001001000110100010101100111100010010001000000010001000100100001001100010100000101011816+34十進(jìn)制0001100000010110+BCD碼001011100011010000101110-00000110差6——BCD碼調(diào)整指指令BCD碼也也叫8421碼,就就是將十進(jìn)進(jìn)制的數(shù)以以8421的形式展展開成二進(jìn)進(jìn)制,大家家知道十進(jìn)進(jìn)制是0~~9十個(gè)數(shù)數(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)整指指令DA A該指令有何何用途呢??注意:DAA指令只只能跟在進(jìn)進(jìn)行BCD碼運(yùn)算的的ADD或或ADDC加法指令令后,不適適用與減法法指令?!狟CD碼調(diào)整指指令例如:87+13——加1減1指令A(yù)中存放結(jié)結(jié)果的低8位B中存放結(jié)結(jié)果的高8位——乘法指令(1條條)——除法指令(1條條)MULABDIVABA中存放結(jié)結(jié)果的商B中存放結(jié)結(jié)果的余數(shù)數(shù)A中存放結(jié)結(jié)果的低8位B中存放結(jié)結(jié)果的高8位——乘法指令(1條條)MULAB例如:MOVA,#02HMOVB,#03HMULABA=06HB=00H——乘法指令(1條條)MULAB例如:MOVA,#20MOVB,#20MULAB20=14HA=90HB=01H20*20=40020=14H400=0190H★提示:——除法指令(1條條)DIVABA中存放結(jié)結(jié)果的商B中存放結(jié)結(jié)果的余數(shù)數(shù)例如:MOVA,#25MOVB,#03DIVABA=08HB=01H3.4.3邏輯運(yùn)運(yùn)算指令——邏輯與指令(6條條)邏輯與指令常用于于屏蔽字節(jié)中中的某些位位。若清除某位,則用用0和該位相與;若保留某位,則用用1和該位相與?!壿嫽蛑噶睿?條條)邏輯或指令常用于于使字節(jié)中的的某些位置置1,其它位保保持不變。。若置位某位,則用用1和該位相或;若保留某某位,則用用0和該位位相或。——邏輯異或指令(6條條)邏輯異或指指令常用于于使字節(jié)中中的某些位位進(jìn)行取反操作,其它它位保持不不變。若某某位取反,,則用1和該位位相異或;若保留某某位,則用用0和該位位相異或。?!奂悠鰽清清0和取反反指令A(yù).0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:執(zhí)行帶進(jìn)位位的循環(huán)移移位指令之之前,必須須給CY置置位或清零零?!h(huán)移位指令MOVA,#01HMOVP1,ARLAMOVP1,A——循環(huán)移位指令3.4.4控制轉(zhuǎn)轉(zhuǎn)移類指令令———無條件轉(zhuǎn)移移指令(4條條)1)長(zhǎng)轉(zhuǎn)轉(zhuǎn)移指令::LJMPAAAAH;;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假設(shè)執(zhí)行該該指令前,,PC的值值為0000H。注意:該指令可以以轉(zhuǎn)移到64KB程序存儲(chǔ)儲(chǔ)器中的任任意位置。。PC高5位位(保持不變變)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作碼(第第一字節(jié))操作數(shù)數(shù)(第第二字字節(jié))11位位轉(zhuǎn)移移地址址的形形成示示意圖圖轉(zhuǎn)移范范圍2k程序計(jì)計(jì)數(shù)器器PC2)絕絕對(duì)轉(zhuǎn)轉(zhuǎn)移指指令A(yù)JMPaddr11;;PC+2PC,addr11PC.10~PC.0PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相相對(duì)轉(zhuǎn)轉(zhuǎn)移指指令例:SJMP03H03H03H就是是當(dāng)前前PC值與目的的PC值相對(duì)差差PCJMP@A+DPTR4)散散轉(zhuǎn)指指令功能::將DPTR中的內(nèi)內(nèi)容作作為基基地址址,通通過修改A的內(nèi)容容實(shí)現(xiàn)現(xiàn)散轉(zhuǎn)轉(zhuǎn)!一般應(yīng)應(yīng)用在在鍵盤盤程序序中1)累加器器A判判0指令((2條條)——條件轉(zhuǎn)轉(zhuǎn)移指令((8條條)2)判判別進(jìn)進(jìn)位標(biāo)標(biāo)志CY狀狀態(tài)指指令((2條條)3)判判別某某位Bit狀態(tài)態(tài)指令令(2條))4)減減1非非零轉(zhuǎn)轉(zhuǎn)移指指令((2條條)5)比比較轉(zhuǎn)轉(zhuǎn)移指指令((4條條)條件轉(zhuǎn)轉(zhuǎn)移指指令的的共同同特點(diǎn)點(diǎn):都是相相對(duì)轉(zhuǎn)轉(zhuǎn)移指指令條件轉(zhuǎn)轉(zhuǎn)移類類指令令范例例(一一)問答題題:2.將將00H~0FH這這16個(gè)數(shù)數(shù)順序序地置置入片片內(nèi)RAM20H~2FH單單元中中。2FH...21H20H0FH...01H00H數(shù)據(jù)地址條件轉(zhuǎn)轉(zhuǎn)移類類指令令范例例(一一)將00H~0FH這這16個(gè)數(shù)數(shù)順序序地置置入片片內(nèi)RAM20H~2FH單單元中中??梢杂糜?6個(gè)MOV指令令將16個(gè)個(gè)數(shù)據(jù)據(jù)依次次裝入入存儲(chǔ)儲(chǔ)器中中!采用循循環(huán)方方式將將16個(gè)數(shù)數(shù)據(jù)依依次裝裝入存存儲(chǔ)器器中??!條件轉(zhuǎn)轉(zhuǎn)移類類指令令范例例(一一)MOVR0,#20HMOVR7,#10HCLRALOOP:MOV@R0,AINCAINCR0DJNZR7,LOOPSJMP$將地址址20H放放入R0中中,明確了了數(shù)據(jù)據(jù)起始始地址址循環(huán)環(huán)次次數(shù)數(shù)16放放入入R7,,明確確循循環(huán)環(huán)15次次累加加器器A=0實(shí)現(xiàn)現(xiàn)數(shù)數(shù)據(jù)據(jù)00放放入入20H中中A=01RO=21判斷斷作作用用??!判斷斷什什么么??判斷斷R7的的值值,,(-1不不等等于于0則則跳跳轉(zhuǎn)轉(zhuǎn)))MOVR0,#20HCLRALOOP:MOV@R0,AINCAINCR0CJNEA,#10H,LOOPSJMP$條件件轉(zhuǎn)轉(zhuǎn)移移類類指指令令范范例例((二二))將地地址址20H放放入入R0中中,,明確確了了數(shù)數(shù)據(jù)據(jù)終終點(diǎn)點(diǎn)起起始始地地址址累加加器器A=0實(shí)現(xiàn)現(xiàn)數(shù)數(shù)據(jù)據(jù)00放放入入20H中中A=01RO=21判斷斷作作用用?。∨袛鄶嗍彩裁疵???判斷斷A的的值值與與#10H是是否否相相等等(比比較較不不相相等等則則跳跳轉(zhuǎn)轉(zhuǎn)))MOVR0,#20HMOVA,#10HMOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0DECAJNZLOOPSJMP$條件件轉(zhuǎn)轉(zhuǎn)移移類類指指令令范范例例((三三))將20H放放入入R0中中將10H放放入入A中中將00H放放入入30H地地址址下下將30H地地址址下下內(nèi)內(nèi)容容放放入入R0內(nèi)內(nèi)容容地地址址下下30H下下內(nèi)內(nèi)容容+1R0下下內(nèi)內(nèi)容容+1A的的內(nèi)內(nèi)容容-1A不不等等于于0則則跳跳轉(zhuǎn)轉(zhuǎn)3FH...30H...X變量量X的的值值從從00-0F不等等于于0則則跳跳轉(zhuǎn)轉(zhuǎn)MOVR0,#20HMOVA,#0FHMOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0SUBBA,#0FHJNCLOOPSJMP$條件件轉(zhuǎn)轉(zhuǎn)移移類類指指令令范范例例((四四))將20H放放入入R0中中將0FH放放入入A中中將00H放放入入30H地地址址下下將30H地地址址下下內(nèi)內(nèi)容容放放入入R0內(nèi)內(nèi)容容地地址址下下30H下下內(nèi)內(nèi)容容+1R0下下內(nèi)內(nèi)容容+1帶借借位位將將A的的內(nèi)內(nèi)容容-1判斷斷CY不不等等于于1則則跳跳轉(zhuǎn)轉(zhuǎn)無借借位位則則跳跳轉(zhuǎn)轉(zhuǎn)帶借借位位減減法法指指令令,,15-1=14..1-1=00-1有借位位順次執(zhí)行——調(diào)用和返回指令(8條))1)絕對(duì)調(diào)用指令(1條))2K范圍內(nèi)調(diào)調(diào)用子程序指指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期ACALLaddr11a10a9a810001addr7~0PCPC+2SPSP+1,(SP)PC0~7SPSP+1,(SP)PC8~15PC0~10addr112比較PUSHdirectPOPdirect比較AJMPaddr11——調(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)內(nèi)程序存儲(chǔ)器器內(nèi)調(diào)用子程程序指令3)返回指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期RET00100010PC8~15

(SP),SPSP-1PC0~7(SP),SPSP-1子程序返回指令2RETI00110010PC8~15

SP,SPSP-1PC0~7SP,SPSP-1中斷返回指令24)空操作指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明NOP00000000空操作消耗1個(gè)機(jī)器周期硬件延時(shí)3.4.5位位操作類指指令單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位尋址區(qū)位地地址表1.位傳送送指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期MOVC,bit10100010CYbit位傳送指令,結(jié)果影響CY標(biāo)志2MOVbit,C10010010bitCY位傳送指令,結(jié)果不影響PSW2例:MOV20H,21HMOVC,21H2.位置位位和位清零指指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期CLRC11000011CY0位清0指令,結(jié)果影響CY標(biāo)志1CLRbit11000010bitbit0位清0指令,結(jié)果不影響PSW1SETBC11010011CY1位置1指令,結(jié)果影響CY標(biāo)志1SETBbitbit1位置1指令,結(jié)果不影響PSW111010010bit3.位運(yùn)算算指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ANLC,bit10000010bitCYCY∧bit位與指令2ANLC,/bit10110010bit位與指令2ORLC,bit01110010bitCYCY∨bit位或指令2ORLC,/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,結(jié)果不影響CY2CYCY∧bitCYCY∨bitCYCYbitbit4.位判斷斷轉(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í)行25.判CY標(biāo)志轉(zhuǎn)移指指令(條件轉(zhuǎn)轉(zhuǎn)移指令)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JCrel01000000若CY=1,則PCPC+rel,否則順序執(zhí)行2JNCrel01010000若CY≠1,則PCPC+rel,否則順序執(zhí)行23.5MCS-51匯編語言言的偽指令偽指令是對(duì)匯編過程起起控制作用,是程序員發(fā)給匯編程序序的命令,指指示如何完成成匯編工作。。偽指令沒有對(duì)對(duì)應(yīng)的機(jī)器代代碼,不產(chǎn)生生目標(biāo)程序。。1)設(shè)置目目標(biāo)程序起始始地址偽指令令ORG(ORiGin)偽指令格式為為:ORG地址(十六進(jìn)進(jìn)制表示)該偽指令的作作用是指明后面的程程序或數(shù)據(jù)塊的起始地址,后后面的源程序或數(shù)據(jù)塊就依次連續(xù)存存放,直到遇到到另一個(gè)ORG指令為止止。例:ORG0100HSTART:MOVSP,##60HMOVR0,#2FHMOVR2,#0FFH在一個(gè)源程序序中,可多次次使用ORG指令,來規(guī)規(guī)定不同的程序段段的起始地址址。但是,地址必須由小小到大排列,地地址不能交叉叉、重疊。例如:ORG2000H┇ORG2500H┇ORG3000H┇2)匯編結(jié)結(jié)束命令END(ENDofassembly)指令格式:END匯編語言源程程序的結(jié)束標(biāo)標(biāo)志,用于終終止源程序的匯編工作作。在整個(gè)源程序序中只能有一一條END命令,且位于于程序的最后后。3)定義字字節(jié)偽指令DB(DefineByte))指令格式:DB項(xiàng)或或項(xiàng)表其中項(xiàng)或項(xiàng)表表指一個(gè)字節(jié)節(jié)數(shù)據(jù)或用逗逗號(hào)分開的字字節(jié)數(shù)據(jù)串,或或以單(雙)引號(hào)括起來來的字符串。。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碼)注意:DB功能:從從指定單元開開始定義(存存儲(chǔ))若干個(gè)個(gè)字節(jié),10進(jìn)制數(shù)自自然轉(zhuǎn)換成16進(jìn)制數(shù),,字符按ASCII碼存存儲(chǔ)。4)定義字字(2字節(jié))偽指令DW(DefineWord)指令格式:DW項(xiàng)或項(xiàng)表例,ORG2000HDW1246H,7BH,10匯編后:(2000H)=12H ;第1個(gè)個(gè)字(2001H)=46H(2002H)=00H ;第2個(gè)個(gè)字(2003H)=7BH(2004H)=00H ;第3個(gè)個(gè)字(2005H)=0AH5)賦值偽偽指令EQU指令格式:標(biāo)號(hào)EQU數(shù)字字或匯編符號(hào)號(hào)該偽指令功能能是使標(biāo)號(hào)等價(jià)于給定的數(shù)字或或匯編符號(hào)。。例:TESTEQU2000H表示標(biāo)號(hào)TEST=2000H,在匯編時(shí),,凡是遇到標(biāo)標(biāo)號(hào)TEST時(shí),均以2000H來來代替。注意:在同一個(gè)源程程序中,同同一個(gè)標(biāo)號(hào)只只能賦值一次次。6)預(yù)留存存儲(chǔ)空間偽指指令DS指令格式:[標(biāo)號(hào):]DS表達(dá)達(dá)式該偽指令的功功能是從標(biāo)號(hào)地址開始,保留若若干字節(jié)的內(nèi)存存空間以備存存放數(shù)據(jù)。保保留的字節(jié)單單元數(shù)由表達(dá)式式的值決定。。例如:ORG1000HDS20HDB30H,8FH匯編后從1000H開始始,預(yù)留32(20H)個(gè)字節(jié)的內(nèi)內(nèi)存單元,然后(1020H)=30H,(1021H)=8FH。7)位地址址定義偽指令令BIT指令格式:標(biāo)號(hào)BIT位地地址該偽指令的功功能是將位地址賦予前面的標(biāo)標(biāo)號(hào),經(jīng)賦值后后可用該標(biāo)號(hào)號(hào)代替BIT前面的位地地址。例如:FLGBITF0簡(jiǎn)單程序設(shè)計(jì)計(jì)結(jié)構(gòu)特點(diǎn):按指令的的先后順序依依次執(zhí)行。問答題:3.將20H單元元的兩個(gè)壓縮縮BCD碼拆拆開變成ASCII碼,,存入21H、、22H單元元。(假設(shè)20H中的BCD碼為00110100)·········20H21H22HAB0011壓縮BCD碼碼001100110100低四位ASCII碼高四位ASCII碼程序設(shè)計(jì)-舉舉例例1.將20H單單元的兩個(gè)壓縮BCD碼拆開變成ASCII碼,存入21H,22H單元元.(假設(shè)20H中的BCD碼為00110100)BCD碼表示示范圍:0-9ASCII碼碼表示為:30H-39H程序設(shè)計(jì)-啟啟示方法1.將BCD碼除以以10H,恰恰好是將BCD碼分別移移到了A.B的低4位,然后再再各自與30H相或,即即成為ASCII碼.①②③ORG0000HMOVA,20HMOVB,#10HDIVABORLB,#30HMOV22H,BORLA,#30HMOV21H,ASJMP$END

開始(20H)A10HBA/B(A中為高4位BCD碼,B中為低4位BCD碼)B+30HBB(22H)A+30HAA(21H)結(jié)束簡(jiǎn)單程序例1---方法法1源程序如下::·········20H21H22HAB00110100PCPC0011010000010000PC0011000000000100PC00110100PCPCPC0011PCORG0000HMOVR0,#20HMOVA,#30HXCHDA,@R0MOV22H,AMOVA,@R

溫馨提示

  • 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. 人人文庫網(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)論