《單片機(jī)應(yīng)用技術(shù)》復(fù)習(xí)題及答案電科2018.doc
《《單片機(jī)應(yīng)用技術(shù)》復(fù)習(xí)題及答案電科2018.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《《單片機(jī)應(yīng)用技術(shù)》復(fù)習(xí)題及答案電科2018.doc(14頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
單片機(jī)應(yīng)用技術(shù)復(fù)習(xí)題及答案 一、簡(jiǎn)答題(回答要點(diǎn),并簡(jiǎn)明扼要解釋) 第一、二章 1. MCS51系列單片機(jī)的內(nèi)部資源有哪些?說(shuō)出8031、8051和8751的區(qū)別。 答:MCS51系列單片機(jī)上有1個(gè)8位CPU、128B的RAM、21個(gè)SFR、4個(gè)并行口、1個(gè)串行口、2個(gè)定時(shí)計(jì)數(shù)器和中斷系統(tǒng)等資源。8031、8051和8751的區(qū)別是8031內(nèi)無(wú)ROM;8051內(nèi)有4KB的掩膜ROM;8751內(nèi)有4KB的EPROM。 2. 在MCS-51單片機(jī)系統(tǒng)中,外接程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共用16位地址線(xiàn)和8位數(shù)據(jù)線(xiàn),會(huì)不會(huì)發(fā)生沖突,并說(shuō)明為什么? 答:不會(huì)。 因?yàn)镸CS-51單片機(jī)訪(fǎng)問(wèn)外部程序存儲(chǔ)器用的指針是PC,控制線(xiàn)為,而訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),使用的指針是DPTR,有效的控制信號(hào)是,。所以不會(huì)發(fā)生沖突。 3. MCS-51單片機(jī)的內(nèi)部RAM共有128個(gè)字節(jié)存儲(chǔ)單元(00H~7FH),根據(jù)功能可將其劃分為三個(gè)區(qū)域,試述這三個(gè)區(qū)域的特點(diǎn)及其首末地址 答:80C51單片機(jī)的片內(nèi)RAM低128單元分為: 1)寄存器區(qū)(00H-1FH),32字節(jié),共有四個(gè)寄存器組,由RS1和RS0設(shè)置,主要為寄存器訪(fǎng)問(wèn)方式,常用數(shù)據(jù)存儲(chǔ)。 2)位尋址區(qū)(20H-2FH),16字節(jié),128個(gè)位。主要用于位數(shù)據(jù)存放,也可用于存放字節(jié)數(shù)據(jù)。 3)普通用戶(hù)RAM區(qū)(30H-7FH),80字節(jié),只用于存放字節(jié)數(shù)據(jù)。 4. 存儲(chǔ)器的容量如下所示,若它的首地址為0000H,寫(xiě)出它的末地址。 (1)存儲(chǔ)容量1KB,末地址為多少? (2)存儲(chǔ)容量4KB,末地址為多少? 答:(1)末地址為3FFH; (2)末地址為FFFH 5. 簡(jiǎn)述累加器的ACC的作用 答:(1)8位專(zhuān)用寄存器。 (2)運(yùn)算時(shí)存放一個(gè)操作數(shù)。 (3)運(yùn)算后存放運(yùn)算結(jié)果,所以稱(chēng)它為累加器。 6. DPTR是什么寄存器?它的作用是什么?它是由哪幾個(gè)寄存器組成? 答:DPTR是數(shù)據(jù)寄存器; 作用:1)在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)用DPTR 作為地址指針,尋址整個(gè)64KB 外部數(shù)據(jù)存儲(chǔ)器空間;2)用DPTR 作為基址寄存器,對(duì)程序存儲(chǔ)器空間進(jìn)行訪(fǎng)問(wèn)。 DPTR 由DPL 和DPH兩個(gè)8位寄存器構(gòu)成。 7. 說(shuō)明MCS-51的外部引腳EA的作用? 答:為訪(fǎng)問(wèn)內(nèi)/外部程序存儲(chǔ)器控制信號(hào)。 高電平時(shí),對(duì)ROM的讀操作先從內(nèi)部4KB開(kāi)始,當(dāng)?shù)刂贩秶?KB時(shí)自動(dòng)切換到外部進(jìn)行;當(dāng)為低電平,對(duì)ROM 的讀操作限定在外部程序存儲(chǔ)器。 8. 開(kāi)機(jī)復(fù)位后,CPU 使用的是哪組工作寄存器?它們的地址是什么?CPU如何確定和改變當(dāng)前工作寄存器組? 答:開(kāi)機(jī)復(fù)位后,CPU 使用的是0組工作寄存器; 它們的地址是什么00H~07H; CPU通過(guò)PSW 的PSW.4、PSW.3兩位來(lái)確定和改變當(dāng)前工作寄存器組。 9. MCS-51單片機(jī)的時(shí)鐘周期與振蕩周期之間有什么關(guān)系?一個(gè)機(jī)器周期的時(shí)序如何劃分? 答:時(shí)鐘周期是單片機(jī)最基本的時(shí)間單位。機(jī)器周期則是完成某一個(gè)規(guī)定操作所需的時(shí)間。一個(gè)機(jī)器周期為6個(gè)時(shí)鐘周期,共12個(gè)振蕩周期性,依次表示為S1P1、S1P2、……S6P1、S6P2。 10. 單片機(jī)的復(fù)位(RST)操作有幾種方法,復(fù)位功能的主要作用。 答:?jiǎn)纹瑱C(jī)的復(fù)位操作方式有:1、上電復(fù)位;2、手動(dòng)復(fù)位。 復(fù)位功能的主要作用是:復(fù)位時(shí),PC初始化為0000H,使MCS-51單片機(jī)從0000H開(kāi)始執(zhí)行程序。 11. 簡(jiǎn)述堆棧。 ?。?)在程序中斷或子程序調(diào)用時(shí),為了保護(hù)返回地址(斷點(diǎn))和保護(hù)現(xiàn)場(chǎng)而設(shè)立的RAM區(qū)。 ?。?)用MOV SP,#DATA指令建立堆棧。 (3)存放數(shù)據(jù)按“后進(jìn)先出”原則進(jìn)行。 (4)利用PUSH、POP指令即可進(jìn)行進(jìn)棧、出棧操作。 第三章 12. MCS-51指令系統(tǒng)有哪幾種尋址方式? 答:MCS-51指令系統(tǒng)有7種尋址方式,分別為:寄存器尋址,直接尋址,寄存器間接尋址,立即尋址,相對(duì)尋址,基址寄存器加變址寄存器間接尋址(變址尋址),位尋址等方式。 13. MCS-51單片機(jī)對(duì)I/O口操作有哪幾類(lèi)指令?并要求每類(lèi)指令寫(xiě)出兩條指令 答:?jiǎn)纹瑱C(jī)對(duì)I/O口操作有兩類(lèi)指令 讀引腳指令和讀修改寫(xiě)指令 例如讀引腳指令MOV A, P1; ANL A,P1 讀修改寫(xiě)指令 ANL P1,#0FH ;ORL P1,#0FH 14. 若SP=60H,標(biāo)號(hào)LABEL所在的地址為3456H。LCALL指令的地址為2000H,執(zhí)行指令如下: 2000H LCALL LABEL 后,堆棧指針SP和堆棧內(nèi)容發(fā)生了什么變化?PC的值等于什么?如果將指令LCALL 直接換成ACALL是否可以?如果換成ACALL指令,可調(diào)用的地址范圍是什么? 答:1)SP=SP+1=61H (61H)=PC的低字節(jié)=03H SP=SP+1=62H (62H)=PC的高字節(jié)=20H 2)PC=3456H 3)可以 4)2KB=2048 Byte 第四章 15. 為什么外擴(kuò)存儲(chǔ)器時(shí),P0口要外接鎖存器,而P2口卻不接? 答:P0口要傳送外部數(shù)據(jù)存儲(chǔ)器的低8位地址和8位數(shù)據(jù),而P2口只傳送外部數(shù)據(jù)存儲(chǔ)器的高8位地址。 16. 常用的I/O接口編址有哪兩種方式?它們各有什么特點(diǎn)?MCS-51的I/O端口編址采用的是哪種方式? 答:一.獨(dú)立編址方式:獨(dú)立編址方式就是I/O地址空間和存儲(chǔ)器地址空間分開(kāi)編址。獨(dú)立編址的優(yōu)點(diǎn)是I/O地址空間和存儲(chǔ)器地址空間相互獨(dú)立,界限分明。但是,卻需要設(shè)置一套專(zhuān)門(mén)的讀寫(xiě)I/O的指令和控制信號(hào)。 二.統(tǒng)一編址方式:這種編址方式是把I/O端口的寄存器與數(shù)據(jù)存儲(chǔ)器單元同等對(duì)待,統(tǒng)一進(jìn)行編址。統(tǒng)一編址的優(yōu)點(diǎn)是不需要專(zhuān)門(mén)的I/O指令,直接使用訪(fǎng)問(wèn)數(shù)據(jù)存儲(chǔ)器的指令進(jìn)行I/O操作,簡(jiǎn)單、方便且功能強(qiáng)大。MCS-51單片機(jī)使用的是I/O和外部數(shù)據(jù)存儲(chǔ)器RAM統(tǒng)一編址的方式。 17. MCS-51采用6MHz的晶振,定時(shí)0.5ms,如用定時(shí)器方式1時(shí)的初值(16進(jìn)制數(shù))應(yīng)為多少?(寫(xiě)出計(jì)算過(guò)程) 答:T0 初值=216-500μm/2μm =65536-250 = 65286 =FF06H 18. 8051的定時(shí)/計(jì)數(shù)器T0的有幾種工作模式,對(duì)各工作模式作簡(jiǎn)單的敘述。 答: 定時(shí)/計(jì)數(shù)器T0的有4種工作模式: 方式0:13位定時(shí)/計(jì)數(shù)器; 方式1:16位定時(shí)/計(jì)數(shù)器; 方式2:8位重裝初值的定時(shí)/計(jì)數(shù)器; 方式3:2個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器, T1用作波特率發(fā)生器。 19. 定時(shí)/計(jì)數(shù)器用作定時(shí)器時(shí),其計(jì)數(shù)脈沖由誰(shuí)提供?定時(shí)時(shí)間與哪些因素有關(guān)? 答:定時(shí)/計(jì)數(shù)器作定時(shí)時(shí),其計(jì)數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時(shí)鐘信號(hào)12分頻后提供。定時(shí)時(shí)間與時(shí)鐘頻率和定時(shí)初值有關(guān)。 20. THX與TLX(X=0,1)是普通寄存器還是計(jì)數(shù)器?其內(nèi)容可以隨時(shí)用指令更改嗎?更改后的新值是立即刷新還是等當(dāng)前計(jì)數(shù)器計(jì)滿(mǎn)后才能刷新? 答:THX與TLX(X=0,1)是由特殊功能寄存器構(gòu)成的計(jì)數(shù)器,其內(nèi)容可以隨時(shí)用指令更改,更改后的新值是立即刷新。但在讀THX、TLX的值時(shí),應(yīng)該先讀THX值,后讀TLX,再讀THX。若兩次讀得THX相同,則可確定讀得的內(nèi)容正確。若前后兩次讀得的THX有變化,再重復(fù)上述過(guò)程。 21. MCS51的中斷系統(tǒng)有幾個(gè)中斷源?幾個(gè)中斷優(yōu)先級(jí)?如何用指令設(shè)置各中斷源的優(yōu)先級(jí)別?如果同一級(jí)別同時(shí)存在多個(gè)中斷申請(qǐng)時(shí),CPU按什么順序響應(yīng)(按自然優(yōu)先級(jí)順序?qū)懗龈鱾€(gè)中斷源)?各個(gè)中斷源的入口地址是多少?; 答:MCS51單片機(jī)有5個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí),中斷優(yōu)先級(jí)由特殊功能寄存器IP控制,在出現(xiàn)同級(jí)中斷申請(qǐng)時(shí),CPU按如下順序響應(yīng)各個(gè)中斷源的請(qǐng)求:INT0、T0、INT1、T1、串口,各個(gè)中斷源的入口地址分別是0003H、000BH、0013H、001BH、0023H 22. 定時(shí)器T1中斷,用指令如何實(shí)現(xiàn)?CPU響應(yīng)中斷后,轉(zhuǎn)到何處開(kāi)始執(zhí)行服務(wù)程序?此中斷服務(wù)程序的最后一條指令是什么?功能怎樣? 答: 1)用指令SETB TF1 產(chǎn)生中斷。 2)CPU響應(yīng)中斷后,轉(zhuǎn)到001BH處開(kāi)始執(zhí)行服務(wù)程序。 3)中斷服務(wù)程序的最后一條指令是 RETI 4)RETI的功能是將斷點(diǎn)地址彈給PC,返回?cái)帱c(diǎn)。 23. CPU響應(yīng)中斷的條件有哪些? 答:1、CPU沒(méi)有處在一個(gè)同級(jí)或高級(jí)的中斷服務(wù)中 2、查詢(xún)中斷請(qǐng)求的機(jī)器周期是當(dāng)前指令的最后一個(gè)機(jī)器周期 3、當(dāng)前指令不是返回指令(RET,RETI)或訪(fǎng)問(wèn)IE、IP的指令。 24. 想將中斷服務(wù)程序放置在程序存儲(chǔ)區(qū)的任意區(qū)域,在程序中應(yīng)該作何種設(shè)置?請(qǐng)舉例加以說(shuō)明。 答:以外部中斷0為例說(shuō)明,外部中斷0的入口地址是0003H,想將外部中斷0的中斷服務(wù)程序放置在程序存儲(chǔ)區(qū)的任意區(qū)域可使用跳轉(zhuǎn)指令。如: ORG 0003H LJMP INT0 … INT0:………… … RETI 25. 已知一MCS51單片機(jī)系統(tǒng)使用12MHZ的外部晶體振蕩器,計(jì)算: 1)該單片機(jī)系統(tǒng)的狀態(tài)周期與機(jī)器周期各為多少? 2)當(dāng)單片機(jī)的定時(shí)器0(T0)工作在方式2時(shí),T0的最大定時(shí)時(shí)間為多少? 答:1)狀態(tài)周期=2/fosc=0.167μm 機(jī)器周期=12/fosc=1μm 2)TMAX =28機(jī)器周期 =2561=256μm 26. 在由8031CPU芯片設(shè)計(jì)的系統(tǒng)中,若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級(jí),此時(shí),特殊功能寄存器TCON、IE、IP為多少? 答:TCON=00H IE=81H IP=01H 若規(guī)定外部中斷1邊沿觸發(fā)方式,高優(yōu)先級(jí),寫(xiě)出初始化程序。 答:初始化程序如下: SETB EA SETB EX1 SETB PX1 CLR IT1 27. 編制中斷服務(wù)程序時(shí),為什么在主程序的初始化程序中,必須設(shè)置 SETB EA 這條指令,以及在中斷服務(wù)程序中為什么通常需要保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)? 答:中斷允許寄存器IE中有1個(gè)總的開(kāi)關(guān)中斷控制位EA,當(dāng)EA=0時(shí),所有的中斷請(qǐng)求被屏蔽,CPU不接受任何中斷;只有當(dāng)EA=1時(shí),CPU才開(kāi)放中斷。所以主程序的初始化程序中,必須設(shè)置 SETB EA 這條指令。 現(xiàn)場(chǎng)是指中斷時(shí)刻單片機(jī)中某些寄存器和儲(chǔ)存器單元中的數(shù)據(jù)或狀態(tài),為了使中斷服務(wù)程序的執(zhí)行不破壞這些數(shù)據(jù)和狀態(tài),以免在中斷返回后影響主程序的運(yùn)行,因此要這些數(shù)據(jù)和狀態(tài)送入堆棧保存,這就是現(xiàn)場(chǎng)保護(hù)。中斷結(jié)束后,在返回主程序謙,則需要把保存的現(xiàn)場(chǎng)數(shù)據(jù)和狀態(tài)從堆棧中彈出,以恢復(fù)那些寄存器和存儲(chǔ)器單元中的原有內(nèi)容,這就是現(xiàn)場(chǎng)恢復(fù)。 24. 中斷服務(wù)子程序返回指令RETI和普通子程序返回指令RET有什么區(qū)別? 答:中斷服務(wù)子程序返回指令RETI和普通子程序返回指令RET的區(qū)別在于: RETI指令在返回的同時(shí)清除相應(yīng)的優(yōu)先級(jí)觸發(fā)器,以允許下次中斷。 28. 8051的串行通信的有幾種工作模式,請(qǐng)對(duì)各工作模式作簡(jiǎn)單的敘述。 答: 串行通信共有4種工作模式 ,分別是: 模式0:8位同步移位寄存器;TXD時(shí)鐘端,RXD數(shù)據(jù)端,波特率fosc/12 模式1:10位兩機(jī)的異步通信;TXD數(shù)據(jù)發(fā)送端,RXD數(shù)據(jù)接收端,波特率可變, 模式2:11位可多機(jī)的異步通信;TXD數(shù)據(jù)發(fā)送端,RXD數(shù)據(jù)接收端,波特率fosc/32或fosc/64。 模式3: 11位可多機(jī)的異步通信;TXD數(shù)據(jù)發(fā)送端,RXD數(shù)據(jù)接收端,波特率可變,波特率可變,公式與模式1同。 29. 通信波特率為2400bps,fosc=11.2592MHZT1工作在模式2,其SMOD=0計(jì)算T1的初值X。答: 通信波特率為2400bps,fosc=11.2592MHZT1工作在模式2,其SMOD=0計(jì)算T1的初值X。 根據(jù) 波特率= ,得出n=76800 根據(jù) ,得出X=244,即X=F4H 二、編程題 1、 從P1口引腳讀入數(shù)據(jù),并將該數(shù)據(jù)寫(xiě)入外部RAM 2100H單元。 MOV P1,#0FFH MOV DPTR,#2100H MOV A,P1 MOV @DPTR,A 2、 將內(nèi)部RAM 30H單元的內(nèi)容求補(bǔ)后,送回30H單元。 MOV A,30H CPL A ADD A,#1 MOV 30H,A 3、 使外部RAM 2100H單元內(nèi)容的高兩位清“0”,其余位變反。 MOV DPTR,#2100H MOV A,@DPTR CPL A ANL A,#3FH MOV @DPTR,A 4、 將R6寄存器的內(nèi)容取反,送到內(nèi)部RAM 20H單元。 MOV A,R6 CPL A MOV R6,A MOV 20H, A 5、 將R6寄存器的內(nèi)容高4位與低4位交換,送到內(nèi)部RAM 20H單元。 MOV A,R6 SWAP A MOV R6,A MOV 20H, A 6、 將程序存儲(chǔ)器 0600H單元內(nèi)容送到內(nèi)部RAM 30H單元中。 MOV DPTR,#0600H CLR A (或MOV A,#0H) MOVC A,@A+DPTR MOV 30H,A 7、 請(qǐng)將ROM 1000H單元內(nèi)容送外部RAM 1000H單元。 MOV DPTR,#1000H CLR A (或MOV A,#0H) MOVC A,@A+DPTR MOVX @DPTR,A 8、 請(qǐng)將ROM 1000H單元內(nèi)容送R6單元。 MOV DPTR,#1000H CLR A (或MOV A,#0H) MOVC A,@A+DPTR MOV R6,A 9、 將外部RAM 2100H單元的內(nèi)容取反后,送回原單元。 MOV DPTR,#2100H MOVX A,@DPTR CPL A MOVX @DPTR,A 10、 將外部RAM 2200H單元內(nèi)容的高4位清“0”,低4位不變。 MOV DPTR,#2200H MOVX A,@DPTR ANL A,#0FH MOVX @DPTR,A 11、 將外部RAM 3100H單元的內(nèi)容求補(bǔ)后,送回原單元中。 MOV DPTR,#3100H MOVX A,@DPTR CPL A ADD A,#01H (或 INC A) MOVX @DPTR,A 12、 將內(nèi)部RAM 30H單元的內(nèi)容求補(bǔ)后,送到31H單元。 MOV A,30H CPL A ADD A,#1 (或 INC A ) MOV 31H,A 13、 使外部RAM 2000H單元內(nèi)容的高兩位置“1”,其余位變反。 MOV DPTR,#2000H MOVX A,@DPTR CPL A ORL A,#0C0H MOVX @DPTR,A 14、 將工作寄存器R7的內(nèi)容求補(bǔ)。 MOV A,R7 CPL A INC A (或 ADD A,#1) MOV R7,A 15、 編制定時(shí)器T1中斷初始化程序,采用方式2。 MOV TMOD,#20H MOV TL1,#DATA MOV TH1,#DATA SETB TR1 SETB ET1 SETB EA 16、 編制定時(shí)器T0中斷初始化程序,采用方式1。 MOV TMOD,#01H MOV TL0,#DATA1 MOV TH0,#DATA2 SETB TR0 SETB ET0 SETB EA 17、 編制中斷初始化程序,外部中斷0開(kāi)中斷(邊沿觸發(fā)),定時(shí)器0開(kāi)中斷,定時(shí)器1關(guān)中斷。 SETB IT0 SETB EX0 STEB ET0 CLR ET1 SETB EA 18、 編制中斷初始化程序,外部中斷1開(kāi)中斷(邊沿觸發(fā))、定時(shí)器0關(guān)中斷、定時(shí)器1開(kāi)中斷、串行口關(guān)中斷。 SETB IT1 SETB EX1 CLR ET0 SETB ET1 CLR ES SETB EA 19、 編程將內(nèi)部RAM 25H和26H單元的BCD碼轉(zhuǎn)換成壓縮BCD碼存放在30H單元中。 MOV A, 26H SWAP A ORL A, 25H MOV 30H, A 20、 編程將內(nèi)部RAM 30H和31H單元中的低4位合并為一個(gè)字節(jié),存放在40H單元中. ORG 0000H MOV A, 30H ANL A, #0FH SWAP A MOV B, A MOV A,31H ANL A,#0FH ADD A, B MOV 40H,A RET 21、 編程將內(nèi)部RAM 30H~3FH單元內(nèi)容送到外部RAM 1000H~100FH單元。 ORG 0000H MOV R0,#30H MOV DPTR,#1000H MOV R7,#10H AT0:MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,AT0 RET 22、 編程將程序存儲(chǔ)器 2000H~200FH單元內(nèi)容送到內(nèi)部RAM 40H~4FH單元。 ORG 0000H MOV R0,#40H MOV DPTR,#2000H MOV R7,#10H AT0:CLR A MOVC A, @A+DPTR MOV @R0,A INC R0 INC DPTR DJNZ R7,AT0 RET 23、 編程將外部RAM 1500H~1507H單元內(nèi)容送到內(nèi)部RAM 30H~37H單元。 ORG 0000H MOV R0,#30H MOV DPTR,#1500H MOV R7,#8 AT0:MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR DJNZ R7,AT0 RET 24、 編寫(xiě)統(tǒng)計(jì)內(nèi)部RAM 20H單元中所存的單字節(jié)數(shù)二進(jìn)制位中1的個(gè)數(shù),存于21H中。 ORG 0000H AT0: MOV R1, #00H MOV R7, #08H MOV A, 20H AT1: JB ACC.7, AT2 SJMP AT3 AT2: INC R1 AT3: RL A DJNZ R7, AT1 MOV 21H, R1 END 25、 編寫(xiě)一循環(huán)程序,將內(nèi)部RAM的20H~2FH共16個(gè)連續(xù)單元清零。 ORG 0000H AT0: MOV R0,#20H MOV R2, #0FH CLR A AT1: MOV@R0, A INC R0 DJNZ R2, AT1 RET 26、 編程程序,將外部RAM 4000H~40FFH單元內(nèi)容全部置“1”。 ORG 0000H AT0: MOV A, #0FFH MOV R0, #0FFH MOV DPTR, #4000H AT1:MOVX @DPTR, A INC DPTR DJNZ R0, AT1 END 27、 試編寫(xiě)程序,查找在內(nèi)部RAM的40H~60H單元中是否有0FFH這一數(shù)據(jù)。若有,則將51H單元置為“00H”;若未找到,則將51H單元置為“01H” ORG 0000H AT0: MOV R0,#40H MOV R2, #20H AT1: MOV A,@R0 CJNE A, #0FFH, AT2 MOV 51H, #00H SJMP AT3 AT2: INC R0 DJNZ R2, AT1 MOV 51H, #01H AT3: END 28、 編寫(xiě)一循環(huán)程序,查找內(nèi)部RAM 30H~50H單元中出現(xiàn)FFH個(gè)數(shù),并將查找搭結(jié)果存入51H單元。 ORG 0000H AT0: MOV R0,#30H MOV R2, #20H MOV R3 ,#00H AT1: MOV A,@R0 CJNE A, #0FFH, AT2 INC R3 AT2: INC R0 DJNZ R2, AT1 MOV 51H, R3 END 29、 設(shè)在內(nèi)RAM 40H 開(kāi)始的存儲(chǔ)區(qū)有若干個(gè)字符和數(shù)字,已知最后一個(gè)為字符 “F”(并且只有一個(gè)),試統(tǒng)計(jì)這些字符數(shù)字的個(gè)數(shù),結(jié)果存入30H單元中。 ORG 0000H AT0: MOV R0, #40H CLR A AT1: CJNE @R0, #46H, AT2 SJMP AT3 AT2: INC A INC R0 SJMP AT1 AT3: INC A MOV 30H, A END 三、應(yīng)用題 1.設(shè)計(jì)一個(gè)循環(huán)燈程序,如圖所示,使這些發(fā)光二極管每次只點(diǎn)亮一個(gè)(高電平亮),依次一個(gè)一個(gè)地點(diǎn)亮,循環(huán)不止(從D0開(kāi)始)。 ORG 0000H AT0:MOV R7 ,#8 MOV A,#01H AT1:MOV P0,A RL A ACALL D1MS DJNZ R7,AT1 SJMP AT0 D1MS: RET END 2.根據(jù)圖示電路(P0接LED),設(shè)計(jì)一個(gè)程序,開(kāi)機(jī)后LED顯示0,以后每按一次鍵(P2.7),顯示的數(shù)字加1,顯示9后,再回到0,并照此循環(huán)。(LED為共陰極,0-9的字形段碼依次為3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH) ORG 0000H AT0:MOV DPTR ,#TAB MOV R7,#10 MOV R1,#00H AT1:MOV A,R1 MOVC A,@A+DPTR MOV P0,A JB P2.7,$ INC R1 DJNZ R7,AT1 SJMP AT0 LAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH END 3.設(shè)計(jì)一個(gè)循環(huán)燈程序,如圖所示,使這些發(fā)光二極管每次只點(diǎn)亮一個(gè)并閃爍10次(高電平亮),再依次一個(gè)一個(gè)地點(diǎn)亮閃爍10次,循環(huán)不止(從D0開(kāi)始)。 ORG 0000H AT0: MOV A,#01H AT1: MOV R7 ,#10 AT2:MOV P0,A ACALL D1MS MOV A, #00H ACALL D1MS DJNZ R7,AT2 RL A SJMP AT1 D1MS: RET END 4.用8051的P1口接8個(gè)發(fā)光二極管,由/INT0接一按鍵開(kāi)關(guān),開(kāi)始P1.0的LED亮(高電平亮),以后由/INT0按鍵每中斷一次,下一個(gè)LED亮,順序下移,且每次只一個(gè)LED亮,周而復(fù)始。請(qǐng)編制程序。 ORG 0000H AJMP AT0 ORG 0003H AJMP AT1 ORG 0040H AT0: MOV A, #01H MOV P1, A SETB EA SETB EX0 SETB IT0 SJMP $ AT1: RL A MOV P1, A RET1 END 5. 用8051的P0口接8個(gè)發(fā)光二極管,P1口接8個(gè)開(kāi)關(guān)。每按一次開(kāi)關(guān)K產(chǎn)生一個(gè)負(fù)脈沖作用于INT1,作為中斷請(qǐng)求信號(hào)。單片機(jī)每響應(yīng)一次中斷請(qǐng)求,就從開(kāi)關(guān)讀入數(shù)據(jù),然后送到發(fā)光二極管顯示。 ORG 0000H AJMP AT0 ORG 0013H AJMP AT1 ORG 0040H AT0: SETB EX1 SETB IT1 SETB EA SJMP $ AT1: MOV P1, #0FFH MOV A, P1 MOV P0, A RETI END 6.用8051的P0.4-P0.7口接4個(gè)發(fā)光二極管,P1.0-P1.3口接4個(gè)開(kāi)關(guān)。每按一次開(kāi)關(guān)K產(chǎn)生一個(gè)負(fù)脈沖作用于INT0,作為中斷請(qǐng)求信號(hào)。單片機(jī)每響應(yīng)一次中斷請(qǐng)求,就從開(kāi)關(guān)讀入數(shù)據(jù),然后送到發(fā)光二極管顯示。 ORG 0000H AJMP AT0 ORG 0003H AJMP AT1 ORG 0040H AT0: SETB EX0 SETB IT0 SETB EA SJMP $ AT1: MOV P1, #0FFH MOV A, P1 SWAP A MOV P0, A RETI END 7. 8051單片機(jī)P2口的低4位輸入開(kāi)關(guān)設(shè)置的4位二進(jìn)制數(shù),用P1口輸出控制一個(gè)共陰七段LED顯示器,要求每當(dāng)INT0有一個(gè)跳變時(shí)單片機(jī)從P2口輸入一個(gè)數(shù)據(jù),并將其顯示在七段LED上。請(qǐng)編制該程序。 ORG 0000H AJMP AT0 ORG 0003H AJMP AT1 ORG 0040H AT0: SETB EX0 SETB IT0 SETB EA SJMP $ AT1: MOV DPTR ,#TAB MOV P2, #0FFH MOV A, P2 ANL A, #0FH MOVC A,@A+DPTR MOV P1, A RETI TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH END 8.根據(jù)圖示電路(P0接LED),設(shè)計(jì)一個(gè)程序,開(kāi)機(jī)后LED顯示9,以后每按一次鍵(P2.7),顯示的數(shù)字減1,顯示0后,再回到9,并照此循環(huán)。(LED為共陰極,0-9的字形段碼依次為3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH) ORG 0000H AT0:MOV DPTR ,#TAB MOV R7,#10 MOV R1,#09H AT1:MOV A,R1 MOVC A,@A+DPTR MOV P0,A JB P2.7,$ DEC R1 DJNZ R7,AT1 SJMP AT0 LAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH END 9. 根據(jù)圖示電路(P0接LED),設(shè)計(jì)一個(gè)程序,從0顯示到9再到0,每個(gè)字符顯示1秒,并照此循環(huán)不止。(LED為共陰極,0-9的字形段碼依次為3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH) ORG 0000H AT0:MOV DPTR ,#TAB MOV R7,#10 MOV R1,#00H AT1:MOV A,R1 MOVC A,@A+DPTR MOV P0,A LCALL DT1S INC R1 DJNZ R7,AT1 SJMP AT0 LAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH DT1S: RET END 10. 使用定時(shí)器T0以工作方式2實(shí)現(xiàn)定時(shí),在P1.0輸出周期為200μs的連續(xù)方波。已知晶振頻率fosc=6MHz。求計(jì)數(shù)初值,方式控制字,編制相應(yīng)程序。(中斷方式) 解:(2分)計(jì)數(shù)初值X=256-50=206=CEH (2分)TMOD=02H (8分)主程序 ORG 0000H AJMP AT0 ORG 000BH AJMP AT1 ORG 0040H AT0:MOV TMOD,#02H MOV TH0, #0CEH MOV TL0, #0CEH SETB ET0 SETB EA SETB TR0 SJMP $ AT1: CPL P1.0 RETI END- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
5 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī)應(yīng)用技術(shù) 單片機(jī) 應(yīng)用技術(shù) 復(fù)習(xí)題 答案 2018
鏈接地址:http://www.820124.com/p-12767412.html