版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
第二章
51、87c51、80c51和80c31單片機(jī)的主要區(qū)別在那里?
答:相同之處是:制造工藝都為CHMOS,都有128字節(jié)片內(nèi)RAM、兩個(gè)定時(shí)/計(jì)數(shù)器、4
個(gè)8位I/O并行口,一個(gè)串行口和5個(gè)中斷源。
主要區(qū)別:
①89C51片內(nèi)4K字節(jié)FLASHROM;
②87C51片內(nèi)4K字節(jié)EPROM;
③80C51片內(nèi)4K字節(jié)掩膜ROM;
④80C31片內(nèi)無程序存儲(chǔ)器。
2.MCS-51單片機(jī)引腳有多少I/O線?它們和單片機(jī)對外的地址總線和數(shù)據(jù)總線有何關(guān)系?
答:4個(gè)8位I/O并行口,一個(gè)串行口;
其中P0口為外接程存和數(shù)存的地址低8位和數(shù)據(jù)總線的時(shí)分復(fù)用接口;
其中P2口為外接程存和數(shù)存的地址高8位總線接口;
其中P1口為真正的用戶口線;
其中P3口有第2功能;
以上4個(gè)口線在沒有專用功能時(shí),也可以做通用I/O口線用。
3.簡述8031片內(nèi)RAM區(qū)地址空間的分配特點(diǎn)。
答:
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
MCS-51單片機(jī)片內(nèi)RAM為256字節(jié),地址范圍為00H?FFH,分為兩大部分:低128
字節(jié)(00H?7FH)為真正的RAM區(qū);高128字節(jié)(80H-FFH)為特殊功能寄存器區(qū)SFR。
在低128字節(jié)RAM中,00H?1FH共32單元是4個(gè)通用工作寄存器區(qū)。每一個(gè)區(qū)有
8個(gè)通用寄存器R0?R7。
4.MCS-51單片機(jī)由哪幾個(gè)部分組成。
答:
①一個(gè)8位CPU;
②4KBROMorEPROM(8031無ROM);
③128字節(jié)RAM數(shù)據(jù)存儲(chǔ)器;
④21個(gè)特殊功能寄存器SFR;
⑤4個(gè)8位并行I/O口,其中PO、P2為地址/數(shù)據(jù)線,可尋址64KB程序存儲(chǔ)器和64KB
數(shù)據(jù)存儲(chǔ)器;
⑥一個(gè)可編程全雙工串行口;
⑦具有5個(gè)中斷源,兩個(gè)優(yōu)先級,嵌套中斷結(jié)構(gòu);
⑧兩個(gè)16位定時(shí)器/計(jì)數(shù)器;
⑨一個(gè)片內(nèi)振蕩器及時(shí)鐘電路。
5.MCS-51單片機(jī)的麗,這瓦示麗信號各自的功能是什么?
答:都是控制總線
①EA/VPP-.訪問內(nèi)部程序存儲(chǔ)器的控制信號/編程電壓輸入端。EA=1時(shí),CPU從
片內(nèi)讀取指令,拓=0CPU從片外讀取指令。
②ALE/PROG地址鎖存允許/編程信號線。
③PSEN:外部程序存儲(chǔ)器讀選通信號。
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
④RSEWPD:復(fù)位輸入信號/掉電保護(hù)后備電源引腳。
6.MCS-51單片機(jī)如何實(shí)現(xiàn)工作寄存器組的選擇?
RS1(PSW.4)、RS0(PSW.3)為工作寄存器組的選擇位;
①取值為00時(shí)選擇第0組工作寄存器,片內(nèi)RAM地址是00H?07H,名稱為R0?
R7;
②取值為01時(shí)選擇第1組工作寄存器,片內(nèi)RAM地址是08H?0FH,名稱為R0?R7;
③取值為10時(shí)選擇第2組工作寄存器,片內(nèi)RAM地址是10H?17H,名稱為R0?R7;
④取值為11時(shí)選擇第3組工作寄存器,片內(nèi)RAM地址是18H?1FH,名稱為R0?R7。
7.什么是時(shí)鐘周期、機(jī)器周期、指令周期?當(dāng)單片機(jī)的時(shí)鐘頻率為12MHz時(shí),一個(gè)機(jī)器周
期是多少?ALE引腳的輸出頻率是多少?
(1)振蕩周期:也稱時(shí)鐘周期,是指為單片機(jī)提供時(shí)鐘脈沖信號的振蕩源的周期。
(2)狀態(tài)周期:每個(gè)狀態(tài)周期為時(shí)鐘周期的2倍,是振蕩周期經(jīng)二分頻后得到的。
(3)機(jī)器周期:一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期S1?S6,也就是12個(gè)時(shí)鐘周期。
在一個(gè)機(jī)器周期內(nèi),CPU可以完成一個(gè)獨(dú)立的操作。
(4)指令周期:它是指CPU完成一條操作所需的全部時(shí)間。每條指令執(zhí)行時(shí)間都是有一
個(gè)或幾個(gè)機(jī)器周期組成。
MCS-51系統(tǒng)中,有單周期指令、雙周期指令和四周期指令。
當(dāng)單片機(jī)的時(shí)鐘頻率為12MHz時(shí),一個(gè)機(jī)器周期是多少1那(微秒);ALE引腳的輸出
頻率是多少2那(微秒)。
第三章
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
1.MCS-51指令系統(tǒng)按功能分為幾類?具有幾種尋址方式?他們的尋址范圍如何?答:
①按功能分為5類,分別是:數(shù)據(jù)傳送類、算術(shù)操作類、邏輯操作類、控制轉(zhuǎn)移類和位操
作類;
②具有7種尋址方式;
③立即尋址,尋址范圍是程序存儲(chǔ)器;
直接尋址,尋址范圍是內(nèi)部RAM低128字節(jié)和高128字節(jié);
寄存器尋址,尋址范圍是四組工作寄存器R0?R7;
寄存器間接尋址,尋址范圍是內(nèi)部RAM的低128和外部RAM低64K可尋址空間;
基址寄存器加變址寄存器間接尋址,尋址范圍是程序存儲(chǔ)器;
相對尋址,尋址范圍是以下一條指令為相對地址的-128?+127字節(jié)范圍內(nèi);
位尋址,尋址范圍是可位尋址空間,包括內(nèi)部RAM的可尋址位,特殊功能寄存器中的可
尋址位。
2.設(shè)內(nèi)部RAM中59H單元的內(nèi)容為50H,寫出當(dāng)執(zhí)行下列程序段后寄存器A,RO,和內(nèi)部RAM
中50H、51H單元的內(nèi)容為和值?
答:
MOVA,59H;(A)=(59H)=50H
MOVROA;(RO)=50H
MOVA,#00;(A)=00
MOV@R0A;((RO))=(50H)=00
MOVA,#25H;(A)=25H
MOV51HA;(51H)=25H
MOV52H,#70H;(52H)=70H
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
執(zhí)行下列程序段后:(A)=25H,(RO)=50H,(50同=00、(51H)=25H
3.PSW中Cy與OV有何不同?下列程序段執(zhí)行后(Cy)=?(OV)=?。
MOVA,#56H
ADDA,#74H
答:
Cy一進(jìn)位、借位標(biāo)志位;
OV一溢出標(biāo)志位。
MOVA,#56H;(A)=56H=01010110B
ADDA,#74H;(A)=56H+74H=0CAH=11001010B,
程序執(zhí)行后:(Cy)=0(OV)=1
4.MOVCA,@A+DPTR與MOVXA,@DPTR指令有何不同?
答:
①M(fèi)OVCA,@A+DPTR;尋找的操作數(shù)在程序存儲(chǔ)器中,地址是:(A)+(DPTR);
②MOVXA,@DPTR;尋找的操作數(shù)在外部數(shù)據(jù)存儲(chǔ)器中,地址是:(DPTR)。
5.AJMP、IJMP、SJMP指令功能上有何不同?
答:
相同之處,都是無條件轉(zhuǎn)移指令。
①AJMPaddrll;下調(diào)指令為基準(zhǔn)的2KB范圍內(nèi)的跳轉(zhuǎn)指令。
②LJMPaddrl6;轉(zhuǎn)移的目標(biāo)地址可以在64KB程序存儲(chǔ)器的任何地方。
③SJMPrel;下調(diào)指令為基準(zhǔn)的-128B?+127B范圍內(nèi)的短跳轉(zhuǎn)指令。
6.設(shè)堆棧指針SP中的內(nèi)容為60H,內(nèi)部RAM中30H和31H單元的內(nèi)容分別為24H和10H,
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
執(zhí)行下列程序段后,61H,62H,30H,31H,DPTR及SP中的內(nèi)容將有何變化?
PUSH30H
PUSH31H
POPDPL
POPDPH
MOV30H,#00H
MOV31H,#0FFH
答:
PUSH30H;(61H)=(30H)=24H
PUSH31H;(62H)=(31H)=10H
POPDPL;(DPL)=(62H)=10H
POPDPH;(DPH)=(61H)=24H
MOV30H,#00H;(30H)=OOH
MOV31H,#0FFH;(31H)=OFFH
程序執(zhí)行后:(61H)=24H,(62H)=10H,(30H)=OOH,(31坨=0FFH,(DPTR)=2410H
7.試分析下列程序段,當(dāng)程序執(zhí)行后,位地址00H和01H中的內(nèi)容將為何值?P1口的8條
I/O線為何狀態(tài)?
CLRC
MOVA,#66H
JCLOOP1
CPLC
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
SETB01H
JBACC.2J.OOP2
LOOP2:MOVP1A
CLRC;(Cy)=O
MOVA,#66H;(A)=66H=01100110B
JCLOOP1;因此時(shí)(Cy)=0,所以不跳轉(zhuǎn)
(Cy)=1
SETB01H;(01H)=1
LOOP1:ORLCACC.O;(Cy)=(Cy)V(ACC.O)=1
JBACC.2J.OOP2;因(ACC.2)=1
LOOP2:MOVP1?A;(Pl)=01100110B
8.要完成以下的數(shù)據(jù)傳送,應(yīng)如何用MCS-51指令實(shí)現(xiàn)?
(1)R1的內(nèi)容傳送到R0;
(2)片外RAM20H單元的內(nèi)容送R0;
(3)片外RAM20H單元的內(nèi)容送片內(nèi)RAM20H單元;
(4)片外RAM1000H單元的內(nèi)容送片內(nèi)RAM20H單元;
(5)ROM2000H單元的內(nèi)容送R0;
(6)ROM2000H單元的內(nèi)容送片內(nèi)RAM20H單元;
⑺ROM2000H單元的內(nèi)容送片外RAM20H單元。
(1)R1的內(nèi)容傳送到R0;
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
MOVA,R1
MOVROA
⑵片外RAM20H單元的內(nèi)容送RO;
MOVRl,#20H
MOVXA,@R1
MOVROA
⑶片外RAM20H單元的內(nèi)容送片內(nèi)RAM20H單元;
MOVRl,#20H
MOVXA,@R1
MOV20HA
(4)片外RAM1000H單元的內(nèi)容送片內(nèi)RAM20H單元;
MOVDPTR,#20H
MOVXA,@DPTR
MOV20HA.
⑸ROM2000H單元的內(nèi)容送R0;
MOVDPTR,#2000H
CLRA
MOVCA,@A+DPTR
MOVROA
(6)ROM2000H單元的內(nèi)容送片內(nèi)RAM20H單元;
MOVDPTR,#2000H
CLRA
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
MOVCA,@A+DPTR
MOV20HA.
(7)ROM2000H單元的內(nèi)容送片外RAM20H單元。
MOVDPTR,#2000H
CLRA
MOVCA,@A+DPTR
MOVR0,#20H
MOVX@R0A
9.分析以下程序每條指令執(zhí)行的結(jié)果:
MOVA,#25H;(A)=25H
MOVR1,#33H;(RI)=33H
MOV4OH,#1AH;(40H)=1AH
MOVR0,40H;(RO)=1AH
ADDA,RI;(A)=25H+33H=58H
ADDCA,@R0;(A)=58H+(1AH)+(Cy)=58H
ADDCA,40H;(A)=58H+1AH+(Cy)=72H
10.設(shè)A=83H,R0=17H,(17H)=34H,執(zhí)行下列程序后,(A)=?
ANLA,#17H;(A)=1000001IBA00010111B=0000001IB
ORL17H4;(17H)=00110100BV0000001IB=00110111B
XRLA,@R0;(A)=0000001IB?00110111=00110100B
CPLA;(A)=11001011B
11.兩個(gè)4位BCD碼數(shù)相加,被加數(shù)和加數(shù)分別存于30H、31H和40H、41H單元中(次
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
序?yàn)榍弧傥辉诘偷刂分?,十位、個(gè)位在高地址中),和數(shù)放在50H、51H、52H中(52H
用于存放最高位的進(jìn)位),試編寫加法程序。
解:ORG00H
MOV30H,#12H
MOV31H,#34H9
MOV40H,#56H9
MOV41H,#78H9
MOVA,31H;取被加數(shù)十個(gè)位
ADDA,41H;相加,(A)=(31H)+(41H)
DAA;十進(jìn)制調(diào)整
MOV51H4;存十位個(gè)位運(yùn)算結(jié)果
MOVA,30H;取被加數(shù)千百位
ADDCA,40H;相加,(A)=(30H)+(40同
DAA;十進(jìn)制調(diào)整
MOV50HA;存千位百位運(yùn)算結(jié)果
CLRA;清A
ADDCA,#0;將進(jìn)位加到A中
MOV52H,A;存進(jìn)位
SJMP$
12.試編寫一程序,查找內(nèi)部RAM單元的20H?50H中是否有OAAH這一數(shù)據(jù),若有,則
將51H單元置為01H,若沒有,則使51H單元置0。
解:ORG00H
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
MOV30H,#0AAH;
MOVRI,#31H;
MOVRO,#20H;
ByIAO:MOVA,@R0
CJNEA,#0AAH,LOOP;
MOV51H,#01H
SJMPJIESHU
LOOP:INCRO
DJNZR1,BgIAO
MOV51H,#00H
JIESHU:SJMP$
第四章
1、若有兩個(gè)符號數(shù)X,Y分別存放在內(nèi)部存儲(chǔ)器50H、51H單元中,試編寫一個(gè)程序?qū)崿F(xiàn)
X*10+Y,結(jié)果存入52H、53H中。
1ORG00H
000078502MOVR0,#50H
0002E63MOVA,@R0
000375F00A4MOVB,#0AH
0006A45MULAB
0007086INCR0
0008267ADDA,@R0
0009088INCR0
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
000AA6F09MOV@R0,B
000C0810INCRO
000DF611MOV@R0A
12END
2、在以3000H為首地址的外部RAM中,存放了14個(gè)以ASCII碼表示的0?9的數(shù),試編寫
程序?qū)⑺鼈冝D(zhuǎn)換成BCD碼,并以壓縮BCD形式存放在以2000H為首地址的外部RAM中。
1ORGOOH
00009030002MOVDPTR,#3000H;原始數(shù)據(jù)首地址
000378073MOVR0,#07;循環(huán)次數(shù)
000579304MOVRl,#30H;轉(zhuǎn)換結(jié)果暫存區(qū)指針
0007E05CHI:MOVXA,@DPTR
0008550F6ANLA,#0000111IB
000AC47SWAPA
000BF5F08MOVBA
000DA39INCDPTR
000EE010MOVXA,@DPTR
000F550F11ANLA,#0000111IB
001145F012ORLA,B
0013F713MOV@R13.
00140914INCRI
0015A315INCDPTR
0016D8EF16DJNZR0,CHI
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
001890200017MOVDPTR,#2000H;轉(zhuǎn)換結(jié)果存儲(chǔ)區(qū)
001B7A0718MOVR2,#07H;結(jié)果個(gè)數(shù)
001D793019MOVRI,#30H
001FE720CH2:MOVA,@R1;
3、采樣的5個(gè)值分別存放在RO、RI、R2、R3、R4中,求出它們的中間值,并存放在R2
中。
1ORG00H
>000078052MOVR0,#5
000279063MOVRI,#6
00047A074MOVR2,#7
00067B085MOVR3,#8
00087C096MOVR4,#9
000AE47CLRA;
000BC38CLRC;
000CE89MOVA,R0;
000D2910ADDA,RI
000E2A11ADDA,R2;
000F2B12ADDA,R3
00102C13ADDA,R4
001175F00514MOVB,#5
00148415DIVAB
0015FA16MOVR2rA
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
001617END
18END
4、以BUF1為起始地址的外部數(shù)據(jù)存儲(chǔ)區(qū)中存放著16個(gè)單字節(jié)的無符號數(shù),求其平均值并
送入R2中。
1ORGOOH
2BUF1EQU#1000H
00009010003MOVDPTRBUF1
0003AA004MOVR2,0
000578165MOVR0,#16H
0007E06SUM:MOVXA,@DPTR
00082A7ADDA,R2
0009FA8MOVR2A
000AA39INCDPTR
000BD8FA10DJNZR0,SUM
000D75F01011MOVB,#10H
00108412DIVAB
0011FA13MOVR2公
14END
5、試編寫程序,將內(nèi)部RAM單元中DATA1開始的20個(gè)單字節(jié)數(shù)依次與DATA2單元為起
始地址的20個(gè)單字節(jié)數(shù)據(jù)進(jìn)行交換。
>1DATA1EQU#30H
2DATA2EQU#50H
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
3LENEQU#16
4ORGOH
000078305MOVR0QATA1
000279506MOVR1QATA2
00047A107MOVR2J£N
0006E68EXC:MOVA,@R0
0007C79XCHA,@R1
0008F610MOV@R0A
00090811INCR0
000A0912INCRI
000BDAF913DJNZR2,EXC
14END
6、某場歌手賽,共有10個(gè)評委,試編寫一程序,輸入10個(gè)評分,去掉最高分和最低分,
求平均分(均為BCD碼)。
ORG0H
NEQU#5
BLOCKEQU#30H
ISELSORT:MOVR7N
DECR7
MOVRI,BLOCK
ISST1:MOVRO,BLOCK
MOVA,R7
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
MOVR6公
MOVA,@R0
MOVB^A
ISST2:INCRI
MOVA,@R1
CLRC
SUBBA,B
JCISST3
MOVA,@R1
MOVR2A
MOVB,@R1
ISST3:DJNZR6JSST2
MOVA,B
XCHA,@R1
MOVB,R2
MOV@R1,B
MOV@R13,
DJNZR7JSST1
MOVRO,BLOCK
MOV@R0,#0;去掉最低分
MOVA,BLOCK
ADDA,#9
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
MOVROA
MOV@R0,#0;去掉最高分
AD:MOVRO,BLOCK
INCRO
MOVRI,#8
CLRA
CLRC
MOVB,#0
ADL:ADDA,@RO
DAA
MOVR2A
ADDCA,#0
MOVB^A
MOVA,R2
DJNZRl^DL
MOVR5,0
MOVR4,B
MOVR3,A
MOVR2,#0
MOVRI,#8
R5R4R3/R2R1=R4R3
MOVRl,#00H
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
MOVR2,#0FH
MOVR3,#04H
MOVR4,#05H
MOVR5,#06H
LCALL_DIV
AJMP$
DIV:;{
CLRC
MOV30H,#0
MOV31H,#0
MOV32H,#0
DIV_LOOP:CLRC
MOVA,R3
SUBBA,RI
MOVR3A
MOVA,R4
SUBBA,R2
MOVR4公
MOVA,R5
SUBBA,#0
MOVR54
JC_DIV_END
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
_INC_SHANG:CLRC
MOVA,30H
ADDCA,#l
MOV30HA
MOVA,31H
ADDCA,#0
MOV31HA
MOVA,32H
ADDCA,#0
MOV32HA
IJMP_DIV_LOOP
_DIV_END:CLRC
MOVA,RI
ADDCA,R3
MOVA,R2
ADDCA,R4
MOVR3,30H
MOVR4,31H
END
7、編寫將一個(gè)十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的子程序。
>000078FE2MOVR0,#FEH
000279303MOVRI,#30H
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
0004E84HEXBCD:MOVA,R0
000575F0645MOVB,#100
0008846DIVAB
0009F77MOV@R1,A
000A740A8MOVA,#10
000CC5F09XCHA,B
000E8410DIVAB
000F0911INCRI
0010F712MOV@R]jA
00110913INCRI
0012A7F014MOV@R1,B
15RET
8、在內(nèi)部RAM的BLOCK開始的單元中有一無符號數(shù)據(jù)塊,數(shù)據(jù)長度為LEN。試編程求
其中最大的數(shù)并存入MAX中。
MCS51
1ORG0H
2LENEQU#10;數(shù)據(jù)塊長度
3MAXEQU#40H
000078304MOVR0,#30H;BLOCK首地址
0002790A5MOVRl^LEN
0004196DECRI;循環(huán)次數(shù)
0005C37CLRC
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
0006E68LOOP:MOVA,@R0
0007089INCR0
00089610SUBBA,@R0
0009400211JCEXCHANG
000B800212SJMPNEXT
000D86F013EXCHANG:MOVB,@R0
000FC314NEXT:CLRC
0010D9F415DJNZRILOOP
001285F04016MOV40H,B;MAX單元17END
9、試編程將內(nèi)部RAM中41H?43H單元中的數(shù)左移4位,移出部分送50H。
題意不清。
10、在外部RAM中BLOCK開始的單元中有一數(shù)據(jù)塊,數(shù)據(jù)長度為LEN,試編程統(tǒng)計(jì)其中的
正數(shù)、負(fù)數(shù)和零的個(gè)數(shù)分別存入內(nèi)部RAM的Pcount、Mcoun和Zcount單元。
MCS51
>1ORGOH
2LENEQU#10;數(shù)據(jù)塊長度
3PCOUNTEQU#30H
4MCOUNTEQU#31H
5ZCOUNTEQU#32H
6BLOCKEQU#40H
000078407MOVR0,BLOCK;BLOCK首地址
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
0002790A8MOVR1J£N
0004E69LOOP:MOVA,@R0
0005C310CLRC
0006B4000411CJNEA,#OH,SULT1
0009053212INC32H
000B800913SJMPSULT2
000D3314SULT1:RLCA;移出符號位以判斷正負(fù)!
000E400415JCNEG
0010053016INC30H
0012800217SJMPSULT2
0014053118NEG:INC31H
00160819SULT2:INCRO
0017D9EB20DJNZRILOOP
11、試編寫一查表求平方的子程序SQR(設(shè)X在累加器A中,A小于15,平方數(shù)存入工作寄
存器R7中)。
00009000082MOVDPTR,#TAB
000378303MOVR0,#30H
0005E64MOVA,@R0
0006935MOVCA,@A+DPTR
0007FF6MOVR7八
0008010104097TAB:DB1,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225
000C10192431
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
001040516479
001490A9C4E1
8END
12、試編寫一程序,將外部數(shù)據(jù)區(qū)DATA1單元開始的50個(gè)單節(jié)數(shù)逐一依次移動(dòng)到內(nèi)部RAM
中DATA2單元開始的數(shù)據(jù)區(qū)中。
>MCS51
1ORG0H
2DATA1EQU#1000H
3DATA2EQU#30H
4LENEQU#10H
00009010005MOVDPTR,DATA1
000378306MOVR0QATA2
000579107MOVR1J£N
0007E08LOOP:MOVXA,@DPTR
0008F69MOV@R0jA
0009A310INCDPTR
000A0811INCR0
000BD9FA12DJNZRILOOP
13END
13、14,略
第五章
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
1、簡述中斷、中斷源、中斷源優(yōu)先級及中斷嵌套的含義。
中斷是單片機(jī)實(shí)時(shí)地處理內(nèi)部或外部事件的一種內(nèi)部機(jī)制。當(dāng)某種內(nèi)部或外部事件發(fā)生
時(shí),單片機(jī)的中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行中斷事件的處理,中
斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去、。
中斷的意義在于資源共享和應(yīng)急處理。
中斷的功能有四:一、調(diào)整CPU與外設(shè)的速度配合;二、實(shí)時(shí)控制的實(shí)現(xiàn);三、故障
檢測;四、實(shí)現(xiàn)人機(jī)交流
引起中斷的原因,或者能夠發(fā)出中斷請求信號的來源統(tǒng)稱為中斷源。
通常中斷源有以下幾種:
(1)外部設(shè)備請求中斷。一般的外部設(shè)備(如鍵盤、打印機(jī)和A/D轉(zhuǎn)換器等)在完成
自身的操作后,向CPU發(fā)出中斷請求,要求CPU為他服務(wù)。由計(jì)算機(jī)硬件異?;蚬收弦?/p>
起的中斷,也稱為內(nèi)部異常中斷。
(2)故障強(qiáng)迫中斷。計(jì)算機(jī)在一些關(guān)鍵部位都設(shè)有故障自動(dòng)檢測裝置。如運(yùn)算溢出、存
儲(chǔ)器讀出出錯(cuò)、外部設(shè)備故障、電源掉電以及其他報(bào)警信號等,這些裝置的報(bào)警信號都能使
CPU中斷,進(jìn)行相應(yīng)的中斷處理。
(3)實(shí)時(shí)時(shí)鐘請求中斷。在控制中遇到定時(shí)檢測和控制,為此常采用一個(gè)外部時(shí)鐘電路
(可編程)控制其時(shí)間間隔。需要定時(shí)時(shí),CPU發(fā)出命令使時(shí)鐘電路開始工作,一旦到達(dá)
規(guī)定時(shí)間,時(shí)鐘電路發(fā)出中斷請求,由CPU轉(zhuǎn)去完成檢測和控制工作。
(4)數(shù)據(jù)通道中斷。數(shù)據(jù)通道中斷也稱直接存儲(chǔ)器存取(DMA)操作中斷,如磁盤、磁
帶機(jī)或CRT等直接與存儲(chǔ)器交換數(shù)據(jù)所要求的中斷。
為了使得系統(tǒng)能及時(shí)響應(yīng)并處理發(fā)生的所有中斷,系統(tǒng)根據(jù)引起中斷事件的重要性和緊
迫程度,硬件將中斷源分為若干個(gè)級別,稱作中斷優(yōu)先級。
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
中斷系統(tǒng)正在執(zhí)行一個(gè)中斷服務(wù)時(shí),有另一個(gè)優(yōu)先級更高的中斷提出中斷請求,這時(shí)
會(huì)暫時(shí)終止當(dāng)前正在執(zhí)行的級別較低的中斷源的服務(wù)程序,去處理級別更高的中斷源,
待處理完畢,再返回到被中斷了的中斷服務(wù)程序繼續(xù)執(zhí)行,這個(gè)過程稱為是中斷嵌套。
2、MCS-51單片機(jī)提供了幾個(gè)中斷源?幾個(gè)中斷優(yōu)先級?
MCS-51單片機(jī)的中斷源共有三類,分別是外部中斷、定時(shí)計(jì)數(shù)器中斷和串行通信口
中斷,第一類有IEO和IE1,第二類有TFO和TF1,第三類的RI、TI合二為一。
MCS-51單片機(jī)分兩個(gè)優(yōu)先級,每個(gè)中斷源的優(yōu)先級都可以通過中斷優(yōu)先級寄存器IP
中的相應(yīng)位進(jìn)行設(shè)定。在同級優(yōu)先級中,五個(gè)中斷源的優(yōu)先級次序由高到低分別是:IEO、
TFO、IE1、TF1、RI或TI。
3、簡述TCON、SCON、IE、IP四個(gè)特殊功能寄存器各位的定義及功能。
TCON(TimerControlRegister)定時(shí)器/計(jì)數(shù)器控制寄存器
TCON在特殊功能寄存器中,字節(jié)地址為88H,位地址(由低位到高位)為88H-8FH,
由于有位地址,所以可以于進(jìn)行位操作。TCON的作用是控制定時(shí)器的啟、停,標(biāo)
志定時(shí)器溢出和中斷情況。
其中,TF1,TRI,TF0和TR0位用于定時(shí)器/計(jì)數(shù)器;IE1,IT1,IE0和IT0位用于中
斷系統(tǒng)。如圖所示:
TF1TR1TF0TR0IE1IT1IE0IT0
其中,TF1:定時(shí)器1溢出標(biāo)志位。當(dāng)定時(shí)器1計(jì)滿溢出時(shí),由硬件使TF1置“1”,
并且申請中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清“0”,在查詢方式下用軟件清“0”。
TR1:定時(shí)器1運(yùn)行控制位。由軟件清“0”關(guān)閉定時(shí)器1。當(dāng)GATE=1,且INTI為高電
平時(shí),TR1置“1”啟動(dòng)定時(shí)器1;當(dāng)GATE=0,TR1置“1”啟動(dòng)定時(shí)器1。TF0:
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
定時(shí)器0溢出標(biāo)志。其功能及操作情況同TF1。TRO:定時(shí)器0運(yùn)行控制位。其功
能及操作情況同TRI。IE1:外部中斷1請求標(biāo)志位。IT1:外部中斷1觸發(fā)方
式選擇位。當(dāng)m=0,為低電平觸發(fā)方式;當(dāng)IT1=1,為下降沿觸發(fā)方式。IEO:外
部中斷0請求標(biāo)志位。ITO:外部中斷0觸發(fā)方式選擇位。當(dāng)ITO=O,為低電平觸
發(fā)方式;當(dāng)ITO=1,為下降沿觸發(fā)方式。
TCON中低4位與中斷有關(guān)。由于TCON是可以位尋址的,因而如果只清溢出或啟
動(dòng)定時(shí)器工作,可以用位操作命令。例如:執(zhí)行“CLRTFO”后則清定時(shí)器0的溢出;執(zhí)
行“SETBTR1”后可啟動(dòng)定時(shí)器1開始工作。
SCON(SerialPortControlRegister)串行口控制寄存器
寄存器地址98H,位尋址9FH?98H。
位地址9F9E9D9C9B9A9998
位符號SM0SM1SM2RENTB8RB8TIRI
SMO、SM1:串行口工作方式選擇位
SM2:多機(jī)通信控制位
REN:允許/禁止串行口接收的控制位
TB8:在方式2和方式3中,是被發(fā)送的第9位數(shù)據(jù),可根據(jù)需要由軟件置1或清零,也可
以作為奇偶校驗(yàn)位,在方式1中是停止位。
RB8:在方式2和方式3中,是被接收的第9位數(shù)據(jù)(來自第TB8位);在方式1中,RB8
收到的是停止位,在方式0中不用。
TI——串行口發(fā)送中斷請求標(biāo)志位
當(dāng)發(fā)送完一幀串行數(shù)據(jù)后,由硬件置1;在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清0。
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
RI——串行口接收中斷請求標(biāo)志位
當(dāng)接收完一幀串行數(shù)據(jù)后,由硬件置1;在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清0。
此處的“軟件清零”,意指需要用戶用指令清零。
IE(interruptEnableRegister):中斷允許控制寄存器
寄存器地址A8H,位尋址AFH?A8H。
位地AFAEADACABAAA9A8
址
位符EA/ET2ESET1EXIETOEXO
號
EA:中斷允許總控制位
當(dāng)EA=0時(shí),中斷總禁止。
當(dāng)EA=1時(shí),中斷總允許后中斷的禁止與允許由各中斷源的中斷允許控制位進(jìn)行
設(shè)置。
EXO(EX1):外部中斷允許控制位
當(dāng)EXO(EX1)=0禁止外中斷
當(dāng)EXO(EX1)=1允許外中斷
ETO(EX1):定時(shí)/計(jì)數(shù)中斷允許控制位
當(dāng)ETO(ET1)=0禁止定時(shí)(或計(jì)數(shù))中斷
當(dāng)ETO(ET1)=1允許定時(shí)(或計(jì)數(shù))中斷
ET2:定時(shí)器2中斷允許控制位,在AT89s52、AT89c52中
ES:串行中斷允許控制位
當(dāng)ES=0禁止串行中斷
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
當(dāng)ES=1允許串行中斷
IP(InterruptPriorityRegister):中斷優(yōu)先級控制寄存器
寄存器地址B8H,位尋址BFH?B8H。
位地BFBEBDBCBBBAB9B8
址
位符//PT2PSPTlPX1PTOPXO
號
PX0——外部中斷0優(yōu)先級設(shè)定位;PT0——定時(shí)中斷。優(yōu)先級設(shè)定位;PX1——
外部中斷1優(yōu)先級設(shè)定位;PT1——定時(shí)中斷1優(yōu)先級設(shè)定位;PS——串口中斷
優(yōu)先級設(shè)定位;PT2一定時(shí)器2優(yōu)先級設(shè)定位(8052才有)。
4、簡述MCS-51單片機(jī)的中斷響應(yīng)過程。
MCS-51單片機(jī)的中斷響應(yīng)過程可簡單歸納為5步:
(1)中斷源檢測:在每條指令結(jié)束后,系統(tǒng)都自動(dòng)檢測中斷請求信號,如果有中斷請求,且
CPU處于開中斷狀態(tài)下,則響應(yīng)中斷。
⑵保護(hù)現(xiàn)場:在保護(hù)現(xiàn)場前,CPU自動(dòng)將當(dāng)前PC壓入堆棧。此時(shí),一般要關(guān)中斷,以
防止現(xiàn)場被破壞。保護(hù)現(xiàn)場一般是用堆棧指令將原程序中用到的寄存器推入堆棧。
⑶中斷服務(wù):即為相應(yīng)的中斷源服務(wù)。
(4)恢復(fù)現(xiàn)場:用堆棧指令將保護(hù)在堆棧中的數(shù)據(jù)彈出來,在恢復(fù)現(xiàn)場前要關(guān)中斷,
以防止現(xiàn)場被破壞。在恢復(fù)現(xiàn)場后應(yīng)及時(shí)開中斷。
⑸返回:CPU將推入到堆棧的斷點(diǎn)地址彈回到程序計(jì)數(shù)器,從而使CPU繼續(xù)執(zhí)行
剛才被中斷的程序。
--完整版學(xué)習(xí)資料分享--
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
5、說明MCS-51單片機(jī)響應(yīng)中斷后,中斷服務(wù)程序的入口地址。
MCS-51單片機(jī)響應(yīng)中斷后,其中斷矢量是由硬件自動(dòng)生成的。各中斷源的中斷服務(wù)程序的
入口地址如下表。
中斷源中斷矢量
外部中斷00003H
定時(shí)器TO中斷000BH
外部中斷10013H
定時(shí)器T1中斷001BH
串行口中斷0023H
定時(shí)器T2中斷(僅8052有)002BH
6、指出哪幾個(gè)中斷申請標(biāo)志在CPU響應(yīng)中斷響應(yīng)后能被硬件自動(dòng)清零。
除了串行通信中斷申請標(biāo)志在CPU響應(yīng)中斷后需要用戶用軟件指令清零中斷申請
標(biāo)志外,其余的中斷源的申請標(biāo)志都是在CPU響應(yīng)后由硬件自動(dòng)清零的。它們分別是:
外部中斷0申請標(biāo)志(IEO)、外部中斷1申請標(biāo)志(IE1)、定時(shí)計(jì)數(shù)器0溢出標(biāo)志(ITO)
和定時(shí)計(jì)數(shù)器1溢出標(biāo)志(IT1)o
7、在MCS-51單片機(jī)的應(yīng)用系統(tǒng)中,如果有多個(gè)外部中斷源,怎樣進(jìn)行處理?
在多中斷源的系統(tǒng)中,假如各中斷源之間很少發(fā)生競爭,那么采用“線或非”連接,用
軟件查詢的方式進(jìn)行控制如圖。
--完整版學(xué)習(xí)資料分享一-
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除
+5V
40200
1
XTAL1VccP1.
P1.2
P1.3
P1.4
P1.5
XTAL2P1.6
P1.7
RESET/VP1,0
PDP2.1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年簡化版居家養(yǎng)老照護(hù)合同
- 2024甲方委托乙方可再生能源項(xiàng)目的建設(shè)與運(yùn)營合同
- 2024年重點(diǎn)中學(xué)校長任用合同范本3篇
- 2025年度家禽養(yǎng)殖廢棄物處理設(shè)施運(yùn)營管理買賣合同書3篇
- 2025年度財(cái)務(wù)會(huì)計(jì)軟件定制開發(fā)與授權(quán)使用合同3篇
- 2024年度商鋪?zhàn)赓U合同提前解除及清退協(xié)議3篇
- 2025年70米煙囪拆除工程風(fēng)險(xiǎn)評估與安全防護(hù)設(shè)計(jì)合同3篇
- 2024年經(jīng)銷商雙方合作協(xié)議版B版
- 2024年項(xiàng)目管理服務(wù)協(xié)議:工程監(jiān)理與咨詢服務(wù)
- 2024年財(cái)務(wù)風(fēng)險(xiǎn)評估與管理合同
- 燃燒仿真.燃燒數(shù)值模擬方法:化學(xué)反應(yīng)動(dòng)力學(xué)模型:燃燒仿真前沿技術(shù)與研究
- 線性代數(shù)考試練習(xí)題帶答案大全(二)
- 排水管網(wǎng)溯源排查項(xiàng)目專項(xiàng)培訓(xùn)
- 重癥超聲與休克-課件
- 電梯工程師在電梯設(shè)計(jì)中的工作內(nèi)容
- 二年級數(shù)學(xué)上冊口算天天練
- 2024國家開放大學(xué)電大本科《液壓氣動(dòng)技術(shù)》期末試題及答案
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 職業(yè)技術(shù)學(xué)院食品檢驗(yàn)檢測技術(shù)專業(yè)課程標(biāo)準(zhǔn)(2023級)
- 08D800-5 民用建筑電氣設(shè)計(jì)與施工 常用電氣設(shè)備安裝與控制
- 餐飲顧問合作協(xié)議
評論
0/150
提交評論