單片機課后題答案(霍孟友主編)_第1頁
單片機課后題答案(霍孟友主編)_第2頁
單片機課后題答案(霍孟友主編)_第3頁
單片機課后題答案(霍孟友主編)_第4頁
單片機課后題答案(霍孟友主編)_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機課后題答案(霍孟友主編)單片機課后題答案(霍孟友主編)單片機課后題答案(霍孟友主編)V:1.0精細(xì)整理,僅供參考單片機課后題答案(霍孟友主編)日期:20xx年X月2-1.8051單片機芯片內(nèi)部包含哪些主要邏輯功能部件答:一個8位微處理器(CPU);片內(nèi)數(shù)據(jù)存儲器RAM;片內(nèi)程序存儲器ROM;四個8位并行I/O口P0~P3;兩個定時器/計數(shù)器;五個中斷源的中斷控制系統(tǒng);一個UART(通用異步接收發(fā)送器)的串行I/O口;片內(nèi)振蕩器和時鐘產(chǎn)生電路。2-2、8051存儲器分哪幾個地址空間如何區(qū)別不同空間尋址答:⑴片內(nèi)、外統(tǒng)一編址的64KB程序存儲器;⑵片內(nèi)256B數(shù)據(jù)存儲器;⑶片外64KB數(shù)據(jù)存儲器。硬件:引腳接高電平時CPU從片內(nèi)0000H單元開始取指令,接低電平時CPU直接訪問片外EPROM。EA軟件:MOV指令訪問片內(nèi)數(shù)據(jù)存儲器,MOVX指令訪問片外數(shù)據(jù)存儲器,MOVC指令用于讀取程序存儲器中的常數(shù)。2-3.簡述8051片內(nèi)RAM的空間分配。答:低128B位數(shù)據(jù)存儲器區(qū)分為:工作寄存器區(qū)(00H~1FH);位尋址區(qū)(20H~2FH);一般數(shù)據(jù)存儲區(qū)(30H~7FH)高128B數(shù)據(jù)存儲器區(qū)離散地分布著21個特殊功能寄存器2-4.簡述直接位尋址區(qū)的空間分配,片內(nèi)RAM中包含哪些可位尋址單元答:MCS-51單片機片內(nèi)RAM中有兩個區(qū)域可進(jìn)行位尋址:(1)片內(nèi)RAM低128字節(jié)的位尋址區(qū),地址為20H~2FH的16個字節(jié)單元共128位,每一位都有相應(yīng)的位地址,可用位尋址方式對其進(jìn)行置位、復(fù)位、內(nèi)容傳送、邏輯運算等操作,128位的位地址定義為00H~7FH。(2)片內(nèi)RAM高128字節(jié)的存儲器區(qū),有21個特殊功能寄存器。其中字節(jié)地址正好能被8整除的字節(jié)單元中的每一位都可以按位尋址、操作。142-5.8051的P0~P3口有何不同,用作通用I/O口輸入數(shù)據(jù)時應(yīng)注意什么答:P0~P3口功能不完全相同。(1)訪問外擴展存儲器時,P2口送出16位地址的高8位地址,P0口先送出16位地址的低8位地址,再做數(shù)據(jù)的輸入/輸出通道。(2)在無片外擴展存儲器的系統(tǒng)中,P0、P2口不需要做地址口時,和P1、P3口一樣,都可作為準(zhǔn)雙向通用I/O口使用。P0的輸出級無上拉電阻,在作為通用I/O口時需外接上拉電阻,且P0口的每一位輸出可驅(qū)動8個TTL負(fù)載,而P0~P3口的輸出級接有上拉負(fù)載電阻,每一位輸出可驅(qū)動4個TTL負(fù)載。在作通用I/O輸入數(shù)據(jù)時應(yīng)注意:應(yīng)先對相應(yīng)的端口鎖存器寫1,防止誤讀。2-6.8051單片機引腳有何功能在使用8031時,引腳應(yīng)如何處理EAEA答:引腳為外部程序存儲器地址允許輸入端,其電平的高低決定了系統(tǒng)復(fù)位后CPU是從片內(nèi)程序存儲器還是片外擴展存儲器的0000H字節(jié)單元開始取指令。EA(1)當(dāng)引腳接成高電平時,CPU首先從片內(nèi)0000H字節(jié)單元開始取指令執(zhí)行程序,當(dāng)指令地址寄存器PC中的內(nèi)容超過0FFFH后,就自動轉(zhuǎn)向片外擴展的EPROM中取指令執(zhí)行,這時芯片外部的重疊地址為0000H~0FFFH的低4KBEPROM忽略不用。EA(2)當(dāng)引腳接成低電平時,復(fù)位后CPU直接從片外EPROM的0000H字節(jié)單元開始取指令執(zhí)行,這時芯片內(nèi)部0000H~0FFFH的4KB單元被忽略不用。EA在使用8031時,由于其內(nèi)部沒有ROM/EPROM,所以必須使用外部擴展程序存儲器,它的引腳應(yīng)該接成低電平,CPU直接從片外擴展的EPROM中取指令執(zhí)行。EA2-7.8051單片機有哪些信號需要芯片以第二功能的方式提供答:(1)VPD(9腳):片內(nèi)RAM備用電源的輸入端。(2)(30腳):對于片內(nèi)帶有可編程序存儲器的芯片,作為編程寫入的編程脈沖輸入端,把編寫好的程序指令代碼存入程序存儲器中。PROG(3)VPP(31腳):對于片內(nèi)有EPROM的芯片固化程序時,它作為是加高編程電壓的輸入端。(4)RXD(10腳):串行口通信數(shù)據(jù)輸入線。(5)TXD(11腳):串行口通信數(shù)據(jù)輸出線。(6)(12腳):外部中斷0輸入信號。INT0(7)(13腳):外部中斷1輸出信號。INT1(8)T0(14腳):定時器0的脈沖信號外部輸入。(9)T1(15腳):定時器1的脈沖信號外部輸入。15(10)(16腳):CPU至片外數(shù)據(jù)存儲器的“寫選通控制”輸出。WR(11)(17腳):CPU至片外數(shù)據(jù)存儲器的“讀選通控制”輸出。RD2-8.內(nèi)RAM低128B單元劃分為哪三個主要區(qū)域各區(qū)域主要功能是什么答:地址范圍為00H~7FH的128字節(jié)單元,按功能特點劃分為不同的幾個區(qū),分述如下。(1)工作寄存器區(qū)地址范圍為00H~1FH的32字節(jié)存儲器單元,分為四個組,每組有8個工作寄存器字節(jié)單元,定名為R0、R1、R2、R3、R4、R5、R6和R7。通過改變程序狀態(tài)字特殊功能寄存器PSW中RS1,RS0兩位的內(nèi)容,每組工作寄存器均可選作CPU的當(dāng)前工作寄存器組。(2)位尋址區(qū)地址為20H~2FH的16個字節(jié)單元中共128位,每一位都有相應(yīng)的位地址,可用位尋址方式對其進(jìn)行置位、復(fù)位、內(nèi)容傳送、邏輯運算等操作。(3)一般數(shù)據(jù)存儲區(qū)地址范圍為30H~7FH的區(qū)域,可用于原始數(shù)據(jù)及運算結(jié)果的存儲。值得注意的是,30H~7FH中一部分字節(jié)單元可以開辟出一塊遵守“后進(jìn)先出”或“先進(jìn)后出”規(guī)則的特殊數(shù)據(jù)區(qū)──堆棧。2-9.單片機系統(tǒng)復(fù)位有哪幾種方法復(fù)位后特殊功能寄存器初始狀態(tài)如何答:使單片機系統(tǒng)復(fù)位有兩種方法:上電自動復(fù)位和按鍵手動復(fù)位系統(tǒng)復(fù)位的主要功能就是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序,另外,系統(tǒng)復(fù)位還使一些特殊功能寄存器恢復(fù)到復(fù)位狀態(tài)。PC:0000HACC:00HPSW:00HSP:07HDPTR:0000HP0~P3:FFHIP:**000000BIE:0*000000BTMOD:00HTCON:00HTL0:00HTH0:00HTL1:00HTH1:00HSCON:00HSBUF:不定PCON:0***0000B2-10.開機復(fù)位后,CPU使用那組工作寄存器作為當(dāng)前工作寄存器它們的地址是什么答:開機復(fù)位后,由于(RS1=0,RS0=0),CPU使用第0組工作寄存器作為當(dāng)前工作寄存器,它的地址為00H~07H.2-11.CPU如何確定和改變當(dāng)前工作寄存器組答:通過改變程序狀態(tài)字特殊功能寄存器PSW中RS1,RS0兩位的內(nèi)容,每組工作寄存器均可被選作當(dāng)前工作寄存器。RS1RS0當(dāng)前工作寄存器00第0組01第1組1610第2組11第3組2-13.位尋址與字節(jié)單元地址7CH如何區(qū)別位地址7CH、具體在片內(nèi)RAM的什么位置答:8051采用不同的尋址方式和指令分別對位和字節(jié)進(jìn)行不同的操作,如SETB20H指的是20H位單元的內(nèi)容置為1,而MOV20H,#0FFH指的是內(nèi)RAM20H字節(jié)單元的內(nèi)容變?yōu)镕FH。位地址7CH在內(nèi)RAM低128字節(jié)的2FH字節(jié)單元的第四位。2-14.8051單片機時鐘周期與振蕩周期之間有什么關(guān)系答:8051單片機的時鐘周期為振蕩周期的兩倍。2-15.一個機器周期的時序是怎樣劃分的答:MCS-51系列單片機工作的一個機器周期由6個S狀態(tài)周期組成,即S1~S6,每個狀態(tài)又持續(xù)兩個振蕩周期,即P1和P2兩拍,故一個機器周期包括12個振蕩周期。一個機器周期具體分為S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2共12狀態(tài)拍。若采用12MHZ晶體振蕩器,則每個機器周期恰為1μs。2-16.什么叫堆棧堆棧指針SP的作用是什么8051單片機堆棧容量不能超過多少字節(jié)答:一般在30H~7FH的地址范圍內(nèi),有一部分字節(jié)單元可開辟出一塊遵守“后進(jìn)先出”或“先進(jìn)后出”規(guī)則的特殊數(shù)據(jù)區(qū),就叫堆棧。SP為堆棧指針,它始終存放堆棧頂部字節(jié)單元的地址(棧頂指針),數(shù)據(jù)壓棧時,SP首先自動加1,然后數(shù)據(jù)壓入SP內(nèi)容指示的字節(jié)單元中;而數(shù)據(jù)出棧時,SP內(nèi)容指示的字節(jié)單元中的數(shù)據(jù)彈出,然后SP自動減1,這樣SP始終指向堆棧頂部字節(jié)單元的地址。8051單片機堆棧容量最多不能超過128字節(jié)。初始化后,(SP)=07H,如果CPU使用工作寄存器1組,那么堆棧和工作寄存器將發(fā)生沖突,因此常把堆棧移至30~7FH區(qū)域之中。2-17.分析原教材中說明圖2-16系統(tǒng)中各信號線的作用。答:P1口用作一般I/O口,,,通過光電隔離電路向三相步進(jìn)電機的功率放大電路順序地發(fā)出步進(jìn)脈沖信號;和作為輸入,檢測控制步進(jìn)電機的正反轉(zhuǎn)的按鍵狀態(tài);XTAL1和XTAL2接外部時鐘電路,為系統(tǒng)提供振蕩時鐘;P0口分時用作地址/數(shù)據(jù)總線,取指令時輸出低8位地址,經(jīng)地址鎖存器74LS373鎖存,其它時間P0口用作數(shù)據(jù)總線輸出8位數(shù)據(jù);高5位地址由~提供;ALE作為地址輸出鎖存控制端;接地,CPU直接從外擴EPROM中取指令執(zhí)行;為程序存儲器輸出允許控制端,在CPU讀取EPROM中數(shù)據(jù)時,EAPSEN17使EPROM輸出指令。3-1什么是尋址方式MCS-51單片機有哪幾種尋址方式對8031內(nèi)部RAM的128~255字節(jié)地址的空間尋址要注意什么答:尋址方式是如何找到存放被操作數(shù)據(jù)的位置(地址)的方法;MCS-51單片機有七種尋址方式:寄存器尋址、直接尋址、立即數(shù)尋址、寄存器間接尋址、變址間接尋址、相對尋址和位尋址;8031內(nèi)部RAM的128~255字節(jié)為特殊功能寄存器區(qū),只允許使用直接尋址方式。3-6若要完成以下數(shù)據(jù)傳送,如何應(yīng)用MCS-51指令予以實現(xiàn)(1)R1的內(nèi)容傳送到R0:MOVA,R1MOVR0,A(2)外部RAM20H單元的內(nèi)容送入R0:MOVR1,#20HMOVXA,@R1MOVR0,A(1)外部RAM0020H單元的內(nèi)容送內(nèi)部RAM20H單元:MOVR0,#20HMOVXA,@R0MOV20H,A(2)外部RAM1000H單元內(nèi)容送內(nèi)部RAM20H單元:MOVDPTR,#1000HMOVXA,@DPTR31MOV20H,A(3)外部ROM2000H單元內(nèi)容送R0:MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVR0,A(4)外部ROM2000H單元內(nèi)容送內(nèi)部RAM20H單元:MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOV20H,A(5)外部ROM2000H單元內(nèi)容送外部RAM0020H單元:MOVA,#00HMOVR0,#20HMOVDPTR,#2000HMOVCA,@A+DPTRMOVX@R0,A3-8已知SP=25H,PC=2345H,標(biāo)號LABEL所在的地址為3456H,問執(zhí)行長調(diào)用指令LCALLLABEL后,堆棧指針和堆棧的內(nèi)容發(fā)生什么變化PC值等于什么答:(SP)=27H,(26H)=48H,(27H)=23H;(PC)=3456H3-9上題中的LCALL指令能否直接換成ACALL指令,為什么如果使用ACALL指令,則可調(diào)用的地址范圍是什么答:不能,因為LABEL所在地址3456H與PC不在同一2KB范圍內(nèi),即高5位地址不同。若要使用ACALL指令,可調(diào)用的地址范圍是2000H~27FFH。3-10有一個16位二進(jìn)制數(shù),高8位存于21H單元,低8位存于20H單元。執(zhí)行如下程序段,試問:⑴程序段功能是什么⑵能否用MOV代替程序段中的XCH語句而不改變程序的邏輯功能寫出相應(yīng)程序段。⑶兩個程序段結(jié)果是否相同差別在哪里CLRCXCHA,21HRRCAXCHA,21H32XCHA,20HRRCAXCHA,20H答:(1)程序段的功能是將此16位二進(jìn)制數(shù)除2后取整(2)能用MOV代替程序段中的XCH語句而不改變程序的邏輯功能,如下:CLRCMOVA,21HRRCAMOV21H,AMOVA,20HRRCAMOV20H,A兩個程序段結(jié)果不相同。原程序執(zhí)行后A的內(nèi)容為程序運行前A中內(nèi)容,即此程序沒有改變A中內(nèi)容;MOV語句程序中A的內(nèi)容為原20H單元內(nèi)容右移一位后的內(nèi)容。3-11分析以下程序段運行的結(jié)果。若將DAA指令取消,則結(jié)果會有什么不同CLRCMOV20H,#99HMOVA,20HADDA,#01HDAAMOV20H,A答:結(jié)果為(20H)=00H,CY=1。若取消DAA指令,(20H)=9AH,CY=0。3-12由于SJMP指令的轉(zhuǎn)移范圍是256B,而AJMP指令轉(zhuǎn)移范圍是2KB,所以在程序中SJMP指令都可以用AJMP指令來代替。”請問這種說法是否正確,為什么答:不正確。AJMP轉(zhuǎn)移的目標(biāo)地址必須在AJMP后面指令的第一個字節(jié)開始的同一2KB范圍內(nèi),不能改變高5位地址,因此,即使相鄰很近的兩個地址,只要它的高5位發(fā)生改變,就不能跳轉(zhuǎn)。而SJMP可以通過幾次跳轉(zhuǎn),最終到任意目標(biāo)地址。3-13使用位操作指令實現(xiàn)下列邏輯操作,要求不更改單元其他位的內(nèi)容。解:(1)使置1:SETB(2)清除累加器的高四位:ANLA,#0FH或CLRCLRCLRCLR(3)清除,,,:ANLA,#87H或CLRCLRCLRCLR3-14將片內(nèi)RAM中0FH單元的內(nèi)容傳送到寄存器B,對0FH單元的尋址可有三種方法:R尋址、R間址、Direct尋址。請分別編出相應(yīng)的程序,比較其字節(jié)數(shù)、機器周期和優(yōu)缺點。答:R尋址:MOVR0,0FH;2字節(jié),雙周期MOV0F0H,R0;2字節(jié),雙周期R間址:MOVR0,#0FH;2字節(jié),單周期MOV0F0H,@R0;2字節(jié),雙周期Direct尋址:MOVA,#0FH;2字節(jié),單周期MOV0F0H,A;2字節(jié),單周期3-15怎樣把位40H的內(nèi)容移至30H位答:MOVC,40HMOV30H,C3-16編寫一段程序,模擬如圖3-1所示邏輯電路的邏輯功能。要求將4個輸入與非門的功能模擬先寫成一個子程序,然后多次調(diào)用得到整個電路的功能模擬。設(shè)X,Y,Z、W和F都已定義為位地址,若程序中還需要其它位地址,也可另行定義。提示:首先用偽指令定義X,Y,Z,W,F(xiàn)是單片機引腳端口位,然后再編程,注意34操作對象是位單元,應(yīng)該使用位邏輯指令。4-1兩個4位BCD碼數(shù)相加求和。設(shè)被加數(shù)存于內(nèi)部RAM的40H、41H單元,加數(shù)存于45H、46H單元,要求和數(shù)存于50H、51H單元(均前者為低二位,后者為高二位)。請編制加法程序段。若進(jìn)行BCD碼減法運算,應(yīng)如何考慮。解:程序如下:CLRCMOVA,40HADDA,45HDAAMOV50H,AMOVA,41HADDCA,46HDAAMOV51H,ACLRAADDCA,#00HMOV52H,A編寫多字節(jié)十進(jìn)制(BCD碼)減法程序段:設(shè)被減數(shù)低字節(jié)地址存R0中,減數(shù)低字節(jié)地址存R1中,字節(jié)數(shù)存R3中。相減的結(jié)果依次存于原被減數(shù)單元。START:SETBCSUBA:CLRAADDCA,#99H;加99SUBBA,@R1;減去減數(shù)ADDA,@R0;作加法,加上被加數(shù)DAA;十進(jìn)制調(diào)整MOV@R0,A;存入對應(yīng)的被減數(shù)單元INCR0;指向下一個字節(jié)單元INCR1DJNZR3,SUBA;若(R3)一1≠0,繼續(xù)作減法RET注意:80C51中的十進(jìn)制調(diào)整指令(DAA)只能用于二進(jìn)制加法指令之后,不能用于二進(jìn)制減法結(jié)果的調(diào)整。進(jìn)行十進(jìn)制(BCD碼)減法只能采用先求減數(shù)的十進(jìn)制補碼,然后把結(jié)果與被減數(shù)相加。如果被減數(shù)為A,減數(shù)為B,十進(jìn)制的位數(shù)為n,則A-B=A+B=A+10-B=A+9…9+1-B=9…9+1-B+A式中:9…9的個數(shù)為n。4-2試編寫程序,查找在內(nèi)部RAM20H-50H單元中出現(xiàn)00H的次數(shù),并將查找的結(jié)果存入51H單元。解:程序如下:MOVR0,#20HMOVR7,#31HMOV51H,#00HLOOP1:CJNE@R0,#00H,LOOPINC51HLOOP:INCR0DJNZR7,LOOP1HERE:SJMPHERE4-3晶振頻率為12MHz,請用循環(huán)轉(zhuǎn)移指令編制延時20ms的延時子程序。解:一個機器周期為1us,延時20ms需要機器周期數(shù)20000us/1us=20000延時程序如下:MOVR5,#T1;1個機器周期LOOP2:MOVR4,#T2;T1個機器周期LOOP1:NOP;T1*T2個機器周期NOP;T1*T2個機器周期DJNZR4,LOOP1;2*T1*T2個機器周期DJNZR5,LOOP2;2*T1個機器周期RET;1個機器周期總計時:1+3×T1+4×T1×T2+1=20000則:T1=202=0CAH,T2=24=18H(答案不唯一,T1與T2的值≤255)4-4已知兩個八位無符號數(shù)a、b存放在BUF和BUF+1單元,編寫程序計算5a+b,結(jié)果可能大于8位,仍放回BUF和BUF+1單元(BUF+1單元為高字節(jié))。解:根據(jù)題意,編寫程序如下:MOVA,BUFMOVB,#05HMULABCLRCADDA,BUF+1MOVBUF,AMOVA,BADDCA,#00HMOVBUF+1,A4-5外部數(shù)據(jù)RAM從2000H到2100H有—個數(shù)據(jù)塊,現(xiàn)要將它們傳送到從3000H到3100H的區(qū)域,試編寫有關(guān)程序。方法1:MOVP2,#20HMOVR0,#00HMOVR2,#00HLOOP:MOVXA,@R0;P2口即高八位地址SETB;20H→30HMOVX@R0,ACLR;30H→20HINCR0DJNZR2,LOOPMOVDPTR,#2100HMOVXA,@DPTRMOVDPTR,#3100HMOVX@DPTR,A方法2MOVDPTR,#3000HPUSHDPLPUSHDPH;壓棧保護目標(biāo)地址MOVDPTR,#2000HMOVR2,#01HMOVR3,#01H;數(shù)據(jù)長度送R3R2LOOP:MOVXA,@DPTRINCDPTRMOVR5,DPHMOVR4,DPL;源地址加1保護POPDPHPOPDPL;彈出目標(biāo)地址MOVX@DPTR,AINCDPTRPUSHDPLPUSHDPH;目標(biāo)地址加1壓棧保護MOVDPH,R5MOVDPL,R4;取出源地址37CLRCMOVA,R2SUBBA,#01HMOVR2,A;數(shù)據(jù)區(qū)長度低8位減1MOVA,R3SUBBA,#00HMOVR3,A;數(shù)據(jù)區(qū)長度高8位減借位位ORLA,R2;(R3)與(R2)相或JNZLOOP;兩者全零時,101H個數(shù)傳送完畢。HERE:SJMPHERE4-6求16位帶符號二進(jìn)制補碼數(shù)的絕對值。假定補碼放在內(nèi)部RAM的num和num+1單元,求得的絕對值仍放在原單元中。(設(shè)num+1中內(nèi)容為高8位)解:根據(jù)題意,編寫子程序如下:ABC:MOVA,num+1JB,FUSHU;最高位為1,負(fù)數(shù),轉(zhuǎn)移處理RET;正數(shù),補碼即絕對值FUSHU:MOVR0,#numMOVA,@R0CPLAADDA,#01H;低8位取反加1MOV@R0,AINCR0MOVA,@R0CPLAADDCA,#00H;高8位取反加1,同時加進(jìn)位位MOV@R0,ARET4-7下列程序段經(jīng)匯編后,從1000H開始的各有關(guān)存儲單元的內(nèi)容是什么ORG1000HTAB1EQU1234HTAB2EQU3000HDB“START”DWTAB1,TAB2,70H答:1000H:53H;1001H:54H;1002H:41H;1003H:52H;1004H:54H1005H:12H;1006H:34H;1007H:30H;1008H:00H;1009H:00H38100AH:70H4-8編程將20H單元中的兩個BCD數(shù)拆開,并變成相應(yīng)的ASCII碼存入21H和22H單元。解:根據(jù)題意,編寫程序如下:MOVR0,#22HMOV@R0,#00HMOVA,20HXCHDA,@R0ORL22H,#30H;轉(zhuǎn)換低4位SWAPAORLA,#30H;轉(zhuǎn)換高4位MOV21H,AHERE:SJMPHERE4-9存放在片內(nèi)RAM的DAT單元中的自變量X中是一個無符號數(shù),試編寫程序求下面函數(shù)的函數(shù)值并存放到片內(nèi)RAM的FUNC單元中。63731.s1663729.<≥>≥=20)(X2X20)X(505X50)(XXY解:根據(jù)題意設(shè)計程序如下:MOVA,DATCJNEA,#32H,LOOPLOOP:JNCDONECJNEA,#14H,LOOP1LOOP1:JCLOOP2RLARLAADDA,DATSJMPDONELOOP2:RLADONE:MOVFUNC,AHERE:SJMPHERE4-11已知片內(nèi)RAM以ADDR為起始地址的區(qū)域中存放著24個無符號數(shù),試編寫程序找出最小值,并存入MIN單元。解:根據(jù)題意,編寫程序如下:MOVR0,#ADDR;數(shù)據(jù)區(qū)首地址39MOVR7,#18H;數(shù)據(jù)區(qū)長度MOVA,@R0;讀第一個數(shù)DECR7LOOP:INCR0MOV2AH,@R0;讀下一個數(shù)CJNEA,2AH,CHK;數(shù)值比較CHK:JCLOOP1;A值小轉(zhuǎn)移MOVA,@R0LOOP1:DJNZR7,LOOP;繼續(xù)MOV2BH,A;極值送2BH單元HERE:AJMPHERE;停止6-1什么是中斷什么是中斷源答:當(dāng)CPU正在運行時,外部發(fā)生的某一隨機事件(如一個電平的變化,一個脈沖沿的發(fā)生或定時器計數(shù)溢出等)請求CPU迅速去處理,于是,CPU暫時中止現(xiàn)行的程序,轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件以后,再回到原來被中止的地方,繼續(xù)原來的工作。這種在程序執(zhí)行過程中由于外界的原因而被中間打斷的情況稱為中斷。產(chǎn)生中斷的請求源稱為中斷源。6-2MCS-51提供了哪幾種中斷源在中斷管理上有什么特點各中斷源中斷優(yōu)先權(quán)的高低是如何排列確定的答:MCS-51單片機設(shè)立了5個中斷源,其中兩個為外部中斷源,外部中斷0即,外部中斷1即,三個為片內(nèi)中斷源(內(nèi)部中斷源),分別為定時器/計數(shù)器T0溢出中斷、定時器/計數(shù)器T1溢出中斷和串行口中斷。由特殊功能寄存器TCON和SCON的相應(yīng)位表示了各中斷源的狀態(tài)。提供2個中斷優(yōu)先級,中斷處理程序可實現(xiàn)二級中斷嵌套。各中斷源可以由中斷優(yōu)先級控制寄存器IP程控為高優(yōu)先級或低優(yōu)先級中斷。中斷源的排列順序由中斷優(yōu)先級控制寄存器和內(nèi)部查詢電路共同決定,并且各中斷源可以由中斷允許控制寄存器IE定義為開放或屏蔽狀態(tài)。0INT1INT6-3MCS-51響應(yīng)中斷的條件是什么CPU響應(yīng)中斷時,不同的中斷源,其中斷入口地址各是多少答:MCS-51響應(yīng)中斷的基本條件有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論