單片機原理及接口技術課后習題答案李朝青_第1頁
單片機原理及接口技術課后習題答案李朝青_第2頁
單片機原理及接口技術課后習題答案李朝青_第3頁
單片機原理及接口技術課后習題答案李朝青_第4頁
單片機原理及接口技術課后習題答案李朝青_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片機原理及接口李朝青1.89C51單片機內包含哪些主要邏輯功能部件?答:80C51系列單片機在片內集成了以下主要邏輯功能部件:(l)CPU(中央處理器):8位(2)片內RAM:128B(3)特殊功能寄存器:21個(4)程序存儲器:4KB(5)并行I/O口:8位,4個(6)串行接口:全雙工,1個(7)定時器/計數器:16位,2個(8)片內時鐘電路:1個2.89C51的EA端有何用途?答:/EA端接高電平時,CPU只訪問片內flashRom并執(zhí)行內部程序,存儲器。/EA端接低電平時,CPU只訪問外部ROM,并執(zhí)行片外程序存儲器中的指令。/EA端保持高電平時,CPU執(zhí)行內部存儲器中的指令。3.89C51的存儲器分哪幾個空間?如何區(qū)別不同空間的尋址?答:ROM(片內ROM和片外ROM統(tǒng)一編址)(使用MOVC)(數據傳送指令)(16bits地址)(64KB)片外RAM(MOVX)(16bits地址)(64KB)片內RAM(MOV)(8bits地址)(256B)4.簡述89C51片內RAM的空間分配。答:片內RAM有256B低128B是真正的RAM區(qū)高128B是SFR(特殊功能寄存器)區(qū)5.簡述布爾處理存儲器的空間分配,片內RAM中包含哪些可位尋址單元。答:片內RAM區(qū)從00H~FFH(256B)其中20H~2FH(字節(jié)地址)是位尋址區(qū)對應的位地址是00H~7FH6.如何簡捷地判斷89C51正在工作?答:用示波器觀察8051的XTAL2端是否有脈沖信號輸出(判斷震蕩電路工作是否正常?)ALE(地址鎖存允許)(AddressLatchEnable)輸出是fosc的6分頻用示波器觀察ALE是否有脈沖輸出(判斷8051芯片的好壞?)觀察PSEN(判斷8051能夠到EPROM或ROM中讀取指令碼?)因為/PSEN接外部EPROM(ROM)的/OE端子OE=OutputEnable(輸出允許)7.89C51如何確定和改變當前工作寄存器組?答:PSW(程序狀態(tài)字)(ProgramStatusWord)中的RS1和RS0可以給出4中組合用來從4組工作寄存器組中進行選擇PSW屬于SFR(SpecialFunctionRegister)(特殊功能寄存器)8.89C51P0口用作通用I/O口輸入時,若通過TTL“OC”門輸入數據,應注意什么?為什么?答:9.讀端口鎖存器和“讀引腳”有何不同?各使用哪種指令?答:讀鎖存器(ANLP0,A)就是相當于從存儲器中拿數據,而讀引腳是從外部拿數據(如MOVA,P1這條指令就是讀引腳的,意思就是把端口p1輸入數據送給A)傳送類MOV,判位轉移JB、JNB、這些都屬于讀引腳,平時實驗時經常用這些指令于外部通信,判斷外部鍵盤等;字節(jié)交換XCH、XCHD算術及邏輯運算ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制轉移CJNE、DJNZ都屬于讀鎖存器。10.89C51P0~P3口結構有何不同?用作通用I/O口輸入數據時,應注意什么?答:P0口內部沒有上拉電阻,可以用做16位地址的低8位;P3有第二功能;P2口可以用做16位地址的高8位;需要上拉電阻。OC門電路無法輸出高低電平,只有靠上拉電阻才能實現11.89C51單片機的EA信號有何功能?在使用8031時,EA信號引腳應如何處理?答:(1)80C51單片機的EA信號的功能EA為片外程序存儲器訪問允許信號,低電平有效;在編程時,其上施加21V的編程電壓EA引腳接高電平時,程序從片內程序存儲器開始執(zhí)行,即訪問片內存儲器;EA引腳接低電平時,迫使系統(tǒng)全部執(zhí)行片外程序存儲器程序。(2)在使用80C31時,EA信號引腳的處理方法因為80C31沒有片內的程序存儲器,所以在使用它時必定要有外部的程序存儲器,EA信號引腳應接低電平。12.89C51單片機有哪些信號需要芯片引腳以第2功能的方式提供?答:第一功能第二功能串行口:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)中斷:P3.2INT0外部中斷0P3.3INT1外部中斷1定時器/計數器(T0、T1):P3.4T0(定時器/計數器0的外部輸入)P3.5T1(定時器/計數器1的外部輸入)數據存儲器選通:P3.6WR(外部存儲器寫選通,低電平有效,輸出)P3.7RD(外部存儲器讀選通,低電平有效,輸出)定時器/計數器(T2):P1.0T2(定時器T2的計數端)P1.1T2EX(定時器T2的外部輸入端)13.內部RAM低128字節(jié)單元劃分為哪3個主要部分?各部分主要功能是什么?答:片內RAM低128單元的劃分及主要功能:(l)工作寄存器組(00H~lFH)這是一個用寄存器直接尋址的區(qū)域,內部數據RAM區(qū)的0~31(00H~lFH),共32個單元。它是4個通用工作寄存器組,每個組包含8個8位寄存器,編號為R0~R7。(2)位尋址區(qū)(20H~2FH)從內部數據RAM區(qū)的32~47(20H~2FH)的16個字節(jié)單元,共包含128位,是可位尋址的RAM區(qū)。這16個字節(jié)單元,既可進行字節(jié)尋址,又可實現位尋址。(3)字節(jié)尋址區(qū)(30H~7FH)從內部數據RAM區(qū)的48~127(30H~7FH),共80個字節(jié)單元,可以采用間接字節(jié)尋址的方法訪問。14.使單片機復位有幾種方法?復位后機器的初始狀態(tài)如何?答:(1)單片機復位方法單片機復位方法有:上電自動復位、按鍵電平復位和外部脈沖三種方式,如題圖2-1所示。題圖2-1(2)復位后的初始狀態(tài)復位后機器的初始狀態(tài),即各寄存器的狀態(tài):PC之外,復位操作還對其他一些特殊功能寄存器有影響,它們的復位狀態(tài)如題表2-1所例15.開機復位后,CPU使用的是哪組工作寄存器?它們的地址是什么?CPU如何確定和改變當前工作寄存器組?答:一般開機復位后都是選擇第一組通用工作寄存器作為工作寄存器的,一共有4組,分別為0.1.2.3連續(xù)位于00h到1FH地址,然后在機器中有個程序狀態(tài)字PSW,它的第四和第三位RS1,RS0是用來選擇工作寄存器組的,可能不同機器地址稍有不同。他們倆的值和寄存器組的關系:RS1/RS00/00/11/01/1使用的工作寄存器0123地址00-0708-0F10-1718-1F寫程序的時候就是通過定義程序狀態(tài)字來選擇使用不同的寄存器組。也可以直接對RS1和RS0賦值。(最后一問同題7)16.程序狀態(tài)寄存器PSW的作用是什么?常用標志有哪些位?作用是什么?答:PSW是一個SFR(特殊功能寄存器)位于片內RAM的高128B具體地址D0H(00H~FFH)(片內RAM的編址)(8bits編址方法)PSW=ProgramStatusWord(程序狀態(tài)字)PSW的常用標志位有哪些?CY=Carry(進位標志位)AC=AuxiliaryCarry(輔助進位標志位)(半進位標志位)F0用戶標志位RS1,RS0,用來選擇當前工作寄存器組(R0~R7)(4選1)OV=Overflow(溢出標志位)P=Parity(奇偶校驗位)17.位地址7CH與字節(jié)地址7CH如何區(qū)別?位地址7CH具體在片內RAM中的什么位置?答:用不同的尋址方式來加以區(qū)分,即訪問128個位地址用位尋址方式,訪問低128字節(jié)單元用字節(jié)尋址和間接尋址。具體地址為2F的第五位,即為7C。INC51H;為0,00H個數增1L1:INCR0;地址增1,指向下一個待查數據DJNZR2,LOOP;數據塊長度減1,不等于0,繼續(xù)查找RET27、MOVDPTR,#SOURCE;源首地址→DPTRMOVR0,#DIST;目的首地址→R0LOOP:MOVXA,@DPTR;傳送一個字符MOV@R0,AINCDPTR;指向下一個字符INCR0CJNEA,#24H,LOOP;傳送的是“$”字符嗎?不是,傳送下一個字符RET28、MOVA,R3;取該數高8位→AANLA,#80H;取出該數符號判斷JZL1;是正數,轉L1MOVA,R4;是負數,將該數低8位→ACPLA;低8位取反ADDA,#01H;加1MOVR4,A;低8位取反加1后→R4MOVA,R3;將該數高8位→ACPLA;高8位取反ADDCA,#00H;加上低8位加1時可能產生的進位MOVR3,A;高8位取反加1后→R3L1:RET29、CLRC;清進位位CMOVA,31H;取該數低8位→ARLCA;帶進位位左移1位MOV31H,A;結果存回31HMOVA,30H;取該數高8位→ARLCA;帶進位位左移1位MOV30H,A;結果存回30H30、MOVR2,#04H;字節(jié)長度→R2MOVR0,#30H;一個加數首地址→R0MOVR1,#40H;另一個加數首地址→R1CLRC;清進位位LOOP:MOVA,@R0;取一個加數ADDCA,@R1;兩個加數帶進位位相加DAA;十進制調整MOV@R0,A;存放結果INCR0;指向下一個字節(jié)INCR1;DJNZR2,LOOP;數據塊長度減1,不等于0,繼續(xù)查找RET31、MOVR2,#08H;數據塊長度→R2MOVR0,#30H;數據塊目的地址→R0MOVDPTR,#2000H;數據塊源地址→DPTRLOOP:MOVXA,@DPTR;傳送一個數據MOV@R0,AINCDPTR;指向下一個數據INCR0;DJNZR2,LOOP;數據塊長度減1,沒傳送完,繼續(xù)傳送RET32、(1)MOVR0,0FH;2字節(jié),2周期4字節(jié)4周期(差)MOVB,R0;2字節(jié),2周期(2)MOVR0,#0FH;2字節(jié),1周期4字節(jié)3周期(中)MOVB,@R0;2字節(jié),2周期(3)MOVB,#0FH;3字節(jié),2周期3字節(jié)2周期(好)33、(1)功能是將片內RAM中50H~51H單元清0。(2)7A0A(大家可以看一下書上,對于立即數尋址的話,后面一個字節(jié)存放的是立即數)7850(第一個字節(jié)的后三位是寄存器,前一個條指令是010也就是指的R2,在這里是R0,所以應該是78,后一個字節(jié)存放的是立即數)DAFC(這里涉及到偏移量的計算,可以參考書上5634、INC@R0;(7EH)=00HINCR0;(R0)=7FHINC@R0;(7FH)=39HINCDPTR;(DPTR)=10FFHINCDPTR;(DPTR)=1100HINCDPTR;(DPTR)=1101H35、解:(1000H)=53H(1001H)=54H(1002H)=41H(1003H)=52H(1004H)=54H(1005H)=12H(1006H)=34H(1007H)=30H(1008H)=00H(1009H)=70H36、MOVR0,#40H;40H→R0MOVA,@R0;98H→AINCR0;41H→R0ADDA,@R0;98H+(41H)=47H→AINCR0MOV@R0,A;結果存入42H單元CLRA;清AADDCA,#0;進位位存入AINCR0MOV@R0,A;進位位存入43H功能:將40H,41H單元中的內容相加結果放在42H單元,進位放在43H單元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H37、MOVA,61H;F2H→AMOVB,#02H;02H→BMULAB;F2H×O2H=E4H→AADDA,62H;積的低8位加上CCH→AMOV63H,A;結果送62HCLRA;清AADDCA,B;積的高8位加進位位→AMOV64H,A;結果送64H功能:將61H單元的內容乘2,低8位再加上62H單元的內容放入63H,將結果的高8位放在64H單元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H39、MOVA,XXHORLA,#80HMOVXXH,A40、(2)MOVA,XXHMOVR0,AXRLA,R0第五章1、什么是中斷和中斷系統(tǒng)?其主要功能是什么?答:當CPU正在處理某件事情的時候,外部發(fā)生的某一件事件請求CPU迅速去處理,于是,CPU暫時中止當前的工作,轉去處理所發(fā)生的事件,中斷服務處理完該事件以后,再回到原來被終止的地方,繼續(xù)原來的工作。這種過程稱為中斷,實現這種功能的部件稱為中斷系統(tǒng)。功能:(1)

使計算機具有實時處理能力,能對外界異步發(fā)生的事件作出及時的處理(2)

完全消除了CPU在查詢方式中的等待現象,大大提高了CPU的工作效率(3)

實現實時控制2、試編寫一段對中斷系統(tǒng)初始化的程序,使之允許INT0,INT1,TO,串行口中斷,且使T0中斷為高優(yōu)先級中斷。解:MOVIE,#097HMOVIP,#02H3、在單片機中,中斷能實現哪些功能?答:有三種功能:分時操作,實時處理,故障處理4、89C51共有哪些中斷源?對其中端請求如何進行控制?答:(1)89C51有如下中斷源①:外部中斷0請求,低電平有效②:外部中斷1請求,低電平有效③T0:定時器、計數器0溢出中斷請求④T1:定時器、計數器1溢出中斷請求⑤TX/RX:串行接口中斷請求(2)通過對特殊功能寄存器TCON、SCON、IE、IP的各位進行置位或復位等操作,可實現各種中斷控制功能5、什么是中斷優(yōu)先級?中斷優(yōu)先處理的原則是什么?答:中斷優(yōu)先級是CPU相應中斷的先后順序。原則:(1)

先響應優(yōu)先級高的中斷請求,再響應優(yōu)先級低的(2)

如果一個中斷請求已經被響應,同級的其它中斷請求將被禁止(3)

如果同級的多個請求同時出現,則CPU通過內部硬件查詢電路,按查詢順序確定應該響應哪個中斷請求查詢順序:外部中斷0→定時器0中斷→外部中斷1→定時器1中斷→串行接口中斷6、說明外部中斷請求的查詢和響應過程。答:當CPU執(zhí)行主程序第K條指令,外設向CPU發(fā)出中斷請求,CPU接到中斷請求信號并在本條指令執(zhí)行完后,中斷主程序的執(zhí)行并保存斷點地址,然后轉去響應中斷。CPU在每個S5P2期間順序采樣每個中斷源,CPU在下一個機器周期S6期間按優(yōu)先級順序查詢中斷標志,如果查詢到某個中斷標志為1,將在接下來的機器周期S1期間按優(yōu)先級進行中斷處理,中斷系統(tǒng)通過硬件自動將相應的中斷矢量地址裝入PC,以便進入相應的中斷服務程序。中斷服務完畢后,CPU返回到主程序第K+1條指令繼續(xù)執(zhí)行。7、89C51在什么條件下可響應中斷?答:(1)

有中斷源發(fā)出中斷請求(2)

中斷中允許位EA=1.即CPU開中斷(3)

申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽(4)

無同級或更高級中斷正在服務(5)

當前指令周期已經結束(6)

若現行指令為RETI或訪問IE或IP指令時,該指令以及緊接著的另一條指令已執(zhí)行完畢8、簡述89C51單片機的中斷響應過程。答:CPU在每個機器周期S5P2期間順序采樣每個中斷源,CPU在下一個機器周期S6期間按優(yōu)先級順序查詢中斷標志,如查詢到某個中斷標志為1,將在接下來的機器周期S1期間按優(yōu)先級進行中斷處理,中斷系統(tǒng)通過硬件自動將相應的中斷矢量地址裝入PC,以便進入相應的中斷服務程序。一旦響應中斷,89C51首先置位相應的中斷“優(yōu)先級生效”觸發(fā)器,然后由硬件執(zhí)行一條長調用指令,把當前的PC值壓入堆棧,以保護斷點,再將相應的中斷服務的入口地址送入PC,于是CPU接著從中斷服務程序的入口處開始執(zhí)行。對于有些中斷源,CPU在響應中斷后會自動清除中斷標志。9、在89C51內存中,應如何安排程序區(qū)?答:主程序一般從0030H開始,主程序后一般是子程序及中斷服務程序。在這個大家還要清除各個中斷的中斷矢量地址。10、試述中斷的作用及中斷的全過程。答:作用:對外部異步發(fā)生的事件作出及時的處理過程:中斷請求,中斷響應,中斷處理,中斷返回11、當正在執(zhí)行某一個中斷源的中斷服務程序時,如果有新的中斷請求出現,試問在什么情況下可響應新的中斷請求?在什么情況下不能響應新的中斷請求?答:(1)符合以下6個條件可響應新的中斷請求:a)有中斷源發(fā)出中斷請求b)中斷允許位EA=1,即CPU開中斷c)申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽d)無同級或更高級中斷正在被服務e)當前的指令周期已結束f)若現行指令為RETI或訪問IE或IP指令時,該指令以及緊接著的另一條指令已被執(zhí)行完12、89C51單片機外部中斷源有幾種觸發(fā)中斷請求的方法?如何實現中斷請求?答:有兩種方式:電平觸發(fā)和邊沿觸發(fā)電平觸發(fā)方式:CPU在每個機器周期的S5P2期間采樣外部中斷引腳的輸入電平。若為低電平,使IE1(IE0)置“1”,申請中斷;若為高電平,則IE1(IE0)清零。邊沿觸發(fā)方式:CPU在每個機器周期S5P2期間采樣外部中斷請求引腳的輸入電平。如果在相繼的兩個機器周期采樣過程中,一個機器周期采樣到外部中斷請求為高電平,接著下一個機器周期采樣到外部中斷請求為低電平,則使IE1(IE0)置“1”申請中斷;否則,IE1(IE0)置0。13、89C51單片機有五個中斷源,但只能設置兩個中斷優(yōu)先級,因此,在中斷優(yōu)先級安排上受到一定的限制。試問以下幾種中斷優(yōu)先順序的安排(級別由高到低)是否可能:若可能,則應如何設置中斷源的中斷級別:否則,請簡述不可能的理由。⑴定時器0,定時器1,外中斷0,外中斷1,串行口中斷??梢?,MOVIP,#0AH⑵串行口中斷,外中斷0,定時器0,外中斷1,定時器1??梢?,MOVIP,#10H⑶外中斷0,定時器1,外中斷1,定時器0,串行口中斷。不可以,只能設置一級高級優(yōu)先級,如果將INT0,T1設置為高級,而T0級別高于INT1.⑷外中斷0,外中斷1,串行口中斷,定時器0,定時器1??梢?,MOVIP,#15H⑸串行口中斷,定時器0,外中斷0,外中斷1,定時器1。不可以⑹外中斷0,外中斷1,定時器0,串行口中斷,定時器1。不可以⑺外中斷0,定時器1,定時器0,外中斷1,串行口中斷??梢?,MOVIP,#09H14、89C51各中斷源的中斷標志是如何產生的?又是如何清0的?CPU響應中斷時,中斷入口地址各是多少?答:各中斷標志的產生和清“0”如下:(1)

外部中斷類外部中斷是由外部原因引起的,可以通過兩個固定引腳,即外部中斷0和外部中斷1輸入信號。外部中斷0請求信號,由P3.2腳輸入。通過IT0來決定中斷請求信號是低電平有效還是下跳變有效。一旦輸入信號有效,則向CPU申請中斷,并且使IE0=1。硬件復位。外部中斷1請求信號,功能與用法類似外部中斷0(2)

定時中斷類定時中斷是為滿足定時或計數溢出處理需要而設置的。當定時器/計數器中的計數結構發(fā)生計數溢出的,即表明定時時間到或計數值已滿,這時就以計數溢出信號作為中斷請求,去置位一個溢出標志位。這種中斷請求是在單片機芯片內部發(fā)生的,無需在芯片上設置引入端,但在計數方式時,中斷源可以由外部引入。TF0:定時器T0溢出中斷請求。當定時器T0產生溢出時,定時器T0請求標志TF0=1,請求中斷處理。使用中斷時由硬件復位,在查詢方式下可由軟件復位。TF1:定時器T1溢出中斷請求。功能與用法類似定時器T0(3)

串行口中斷類串行口中斷是為串行數據的傳送需要而設置的。串行中斷請求也是在單片機芯片內部發(fā)生的,但當串行口作為接收端時,必須有一完整的串行幀數據從RI端引入芯片,才可能引發(fā)中斷。RI或TI:串行口中斷請求。當接收或發(fā)送一串幀數據時,使內部串行口中斷請求標志RI或TI=1,并請求中斷。響應后必須軟件復位。CPU響應中斷時,中斷入口地址如下:中斷源入口地址外部中斷00003H定時器T0中斷000BH外部中斷10013H定時器T1中斷001BH串行口中斷0023H15、中斷響應時間是否為確定不變的?為什么?答:中斷響應時間不是確定不變的。由于CPU不是在任何情況下對中斷請求都予以響應的;此外,不同的情況對中斷響應的時間也是不同的。下面以外部中斷為例,說明中斷響應的時間。在每個機器周期的S5P2期間,端的電平被所存到TCON的IE0位,CPU在下一個機器周期才會查詢這些值。這時滿足中斷響應條件,下一條要執(zhí)行的指令將是一條硬件長調用指令“LCALL”,使程序轉入中斷矢量入口。調用本身要用2個機器周期,這樣,從外部中斷請求有效到開始執(zhí)行中斷服務程序的第一條指令,至少需要3個機器周期,這是最短的響應時間。如果遇到中斷受阻的情況,這中斷響應時間會更長一些。例如,當一個同級或更高級的中斷服務程序正在進行,則附加的等待時間取決于正在進行的中斷服務程序:如果正在執(zhí)行的一條指令還沒有進行到最后一個機器周期,附加的等待時間為1~3個機器周期;如果正在執(zhí)行的是RETI指令或者訪問IE或IP的指令,則附加的等待時間在5個機器周期內。若系統(tǒng)中只有一個中斷源,則響應時間為3~8個機器周期。16、中斷響應過程中,為什么通常要保護現場?如何保護?答:因為一般主程序和中斷服務程序都可能會用到累加器,PSW寄存器及其他一些寄存器。CPU在進入中斷服務程序后,用到上述寄存器時,就會破壞它原來存在寄存器中的內容;一旦中斷返回,將會造成主程序的混亂。因而在進入中斷服務程序后,一般要先保護現場,然后再執(zhí)行中斷處理程序,在返回主程序以前再恢復現場。保護方法一般是把累加器、PSW寄存器及其他一些與主程序有關的寄存器壓入堆棧。在保護現場和恢復現場時,為了不使現場受到破壞或者造成混亂,一般規(guī)定此時CPU不響應新的中斷請求。這就要求在編寫中斷服務程序時,注意在保護現場之前要關中斷,在恢復現場之后開中斷。如果在中斷處理時允許有更高級的中斷打斷它,則在保護現場之后再開中斷,恢復現場之前關中斷。17、清敘述中斷響應的CPU操作過程,為什么說中斷操作是一個CPU的微查詢過程?答:在中斷響應中,CPU要完成以下自主操作過程:a)置位相應的優(yōu)先級狀態(tài)觸發(fā)器,以標明所響應中斷的優(yōu)先級別b)

中斷源標志清零(TI、RI除外)c)

中斷斷點地址裝入堆棧保護(不保護PSW)d)

中斷入口地址裝入PC,以便使程序轉到中斷入口地址處在計算機內部,中斷表現為CPU的微查詢操作。89C51單片機中,CPU在每個機器周期的S6狀態(tài),查詢中斷源,并按優(yōu)先級管理規(guī)則處理同時請求的中斷源,且在下一個機器周期的S1狀態(tài)中,響應最高級中斷請求。但是以下情況除外:a)CPU正在處理相同或更高優(yōu)先級中斷b)多機器周期指令中,還未執(zhí)行到最后一個機器周期c)

正在執(zhí)行中斷系統(tǒng)的SFR操作,如RETI指令及訪問IE、IP等操作時,要延后一條指令18、在中斷請求有效并開中斷狀況下,能否保證立即響應中斷?有什么條件?答:在中斷請求有效并開中斷狀況下,并不能保證立即響應中斷。這是因為,在計算機內部,中斷表現為CPU的微查詢操作。89C51單片機中,CPU在每個機器周期的S6狀態(tài)下,查詢中斷源,并按優(yōu)先級管理規(guī)則處理同時請求的中斷源,且在下一個機器周期的S1狀態(tài)中,響應最高級中斷請求。在以下情況下,還需要有另外的等待:a)

CPU正在處理相同或更高優(yōu)先級中斷b)

多機器周期指令中,還未執(zhí)行到最后一個機器周期c)正在執(zhí)行中斷系統(tǒng)的SFR操作,如RETI指令及訪問IE、IP等操作時,要延后一條指令

第6章習題答案1、定時器模式2有什么特點?適用于什么場合?答:(1)模式2把TL0(或TL1)配置成一個可以自動重裝載的8位定時器/計數器。TL0計數溢出時不僅使溢出中斷標志位TF0置1,而且還自動把TH0中的內容重新裝載到TL0中。TL0用作8位計數器,TH0用以保存初值。(2)用于定時工作方式時間(TF0溢出周期)為,用于計數工作方式時,最大計數長度(TH0初值=0)為28=256個外部脈沖。

這種工作方式可省去用戶軟件重裝初值的語句,并可產生相當精確定時時間,特別適于作串行波特率發(fā)生器。2、單片機內部定時方式產生頻率為100KHZ等寬矩形波,假定單片機的晶振頻率為12MHZ,請編程實現。答:T0低5位:1BHT0高8位:FFHMOVTMOD,#00H;設置定時器T0工作于模式0MOVTL0,#1BH;設置5ms定時初值MOVTH0,#0FFHSETBTR0;啟動T0LOOP:JBCTF0,L1;查詢到定時時間到?時間到轉L1SJMPLOOP;時間未到轉LOOP,繼續(xù)查詢L1:MOVTL0,#1BH;重新置入定時初值MOVTH0,#0FFHCPLP1.0;輸出取反,形成等寬矩形波SJMPLOOP;重復循環(huán)3、89C51定時器有哪幾種工作模式?有何區(qū)別?答:有四種工作模式:模式0,模式1,模式2,模式3(1)

模式0:選擇定時器的高8位和低5位組成一個13位定時器/計數器。TL低5位溢出時向TH進位,TH溢出時向中斷標志位TF進位,并申請中斷。定時時間t=(213-初值)×振蕩周期×12;計數長度位213=8192個外部脈沖(2)

模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時時間t=(216-初值)×振蕩周期×12;計數長度位216=65536個外部脈沖(3)

模式2:把TL0和TL1配置成一個自動重裝載的8位定時器/計數器。TL用作8位計數器,TH用以保存初值。TL計數溢出時不僅使TF0置1,而且還自動將TH中的內容重新裝載到TL中。定時時間t=(28-初值)×振蕩周期×12;計數長度位28=256個外部脈沖(4)

模式3:對T0和T1不大相同若設T0位模式3,TL0和TH0被分為兩個相互獨立的8位計數器。TL0為8位計數器,功能與模式0和模式1相同,可定時可計數。TH0僅用作簡單的內部定時功能,它占用了定時器T1的控制位TR1和中斷標志位TF1,啟動和關閉僅受TR1控制。定時器T1無工作模式3,但T0在工作模式3時T1仍可設置為0~2。4、89C51內部設有幾個定時器/計數器?它們是由哪些特殊功能寄存器組成?答:89C51單片機內有兩個16位定時器/計數器,即T0和T1。T0由兩個8位特殊功能寄存器TH0和TL0組成;T1由TH1和TL1組成。5、定時器用作定時器時,其定時時間與哪些因素有關?作計數器時,對外界計數頻率有何限制?答:定時時間與定時器的工作模式,初值及振蕩周期有關。作計數器時對外界計數頻率要求最高為機器振蕩頻率的1/24。6、簡述定時器4種工作模式的特點,如何選擇設定?答:(1)

模式0:選擇定時器的高8位和低5位組成一個13位定時器/計數器。TL低5位溢出時向TH進位,TH溢出時向中斷標志位TF進位,并申請中斷。定時時間t=(213-初值)×振蕩周期×12;計數長度位213=8192個外部脈沖置TMOD中的M1M0為00(2)

模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時時間t=(216-初值)×振蕩周期×12;計數長度位216=65536個外部脈沖置TMOD中的M1M0為01(3)

模式2:把TL0和TL1配置成一個自動重裝載的8位定時器/計數器。TL用作8位計數器,TH用以保存初值。TL計數溢出時不僅使TF0置1,而且還自動將TH中的內容重新裝載到TL中。定時時間t=(28-初值)×振蕩周期×12;計數長度位28=256個外部脈沖置TMOD中的M1M0為10(4)

模式3:對T0和T1不大相同若設T0位模式3,TL0和TH0被分為兩個相互獨立的8位計數器。TL0為8位計數器,功能與模式0和模式1相同,可定時可計數。TH0僅用作簡單的內部定時功能,它占用了定時器T1的控制位TR1和中斷標志位TF1,啟動和關閉僅受TR1控制。定時器T1無工作模式3,但T0在工作模式3時T1仍可設置為0~2。置TMOD中的M1M0為117、當T0用作模式3時,由于TR1已被T0占用,如何控制T1的開啟和關閉?答:用T1控制位C/T切換定時器或計數器工作方式就可以使T1運行。定時器T1無工作模式3,將T1設置為工作模式3,就會使T1立即停止計數,關閉。8、以定時器/計數器1進行外部時間計數,每計數1000個脈沖后,定時器/計數器1轉為定時工作方式,定時10ms后又轉為計數方式,如此循環(huán)不止。假定為6WHZ,用模式1編程。解:T1為定時器時初值:T1為計數器時初值:所以:L1:MOVTMOD,#50H;設置T1為計數方式且工作模式為1MOVTH1,#0FCH;置入計數初值MOVTL1,#18HSETBTR1;啟動T1計數器LOOP1:JBCTF1,L2;查詢計數溢出?有溢出(計數滿1000個)轉L2SJMPLOOP1;無溢出轉LOOP1,繼續(xù)查詢L2:CLRTR1;關閉T1MOVTMOD,#10H;設置T1為定時方式且工作與模式1MOVTH1,#0ECH;置入定時10ms初值MOVTL1,#78HSETBTR1;啟動T1定時LOOP2:JBCTF1,L1;查詢10ms時間到?時間到,轉L1SJMPLOOP2;時間未到,轉LOOP2,繼續(xù)查詢9、一個定時器定時時間有限,如何實現兩個定時器的串行定時以滿足較長定時時間的要求?答:當一個定時器溢出時,設置另一個定時器的初值為0開始定時。10、使用一個定時器,如何通過軟硬件結合方法實現較長時間的定時?答:設定好定時器的定時時間,采用中斷方式用軟件設置計數次數,進行溢出次數累計,從而得到較長的時間。11、89C51定時器作定時和計數時其計數脈沖分別由誰提供?答:作定時器時計數脈沖由89C51片內振蕩器輸出經12分頻后的脈沖提供,作計數時計數脈沖由外部信號通過引腳P3.4和P3.5提供。12、89C51定時器的門控信號GATE設置為1時定時器如何啟動?答:只有(或)引腳為高電平且由軟件使TR0(或TR1)置1時,才能啟動定時器工作。13、已知89C51單片機的fosc=6MHz,請利用T0和P1.0輸出矩形波。矩形波高電平寬50μs,低電平寬300μs。解:T0采用模式2作為50μs定時時的初值:所以作300μs定時時的初值:MOVTMOD,#02H;設置定時器T0工作于模式2L2:CLRP1.0;P1.0輸出低電平MOVTH0,#6AH;置入定時300μs初值MOVTL0,#6AHSETBTR0;啟動T0LOOP1:JBCTF0,L1;查詢300μs時間到?時間到,轉L1SJMPLOOP1;時間未到,轉LOOP1,繼續(xù)查詢L1:SETBP1.0;P1.0輸出高電平CLRTR0;關閉T0MOVTH0,#0E7H;置入定時300μs初值MOVTL0,#0E7HSETBTR0;啟動T0LOOP2:JBCTF0,L2;查詢50μs時間到?時間到,轉L2SJMPLOOP2;時間未到,轉LOOP2,繼續(xù)查詢14、已知89C51單片機的fosc=12MHz,用T1定時。試編程由P1.0和P1.1引腳分別輸出周期為2ms和500μs的方波。解:采用模式0作定時初值:所以MOVR2,#04H;R2為“250μs”計數器,置入初值4CLRP1.0;P1.0輸出低電平CLRP1.1;P1.1輸出低電平MOVTMOD,#00HL2:MOVTH1,#0F8H;置入定時250μs初值MOVTL1,#06HSETBTR1;啟動T1LOOP:JBCTF1,L1;查詢250μs時間到?時間到,轉L1SJMPLOOP;時間未到,轉LOOP,繼續(xù)查詢L1:CPLP1.1;P1.1輸出取反,形成周期為500μsCLRTR1;關閉T1DJNZR2,L2;“250μs”計數器減1,到1ms嗎?未到轉L2CPLP1.0;P1.0輸出取反,形成周期為2ms方波MOVR2,#04H;重置“250μs”計數器初值4LJMPL2;重復循環(huán)

15、單片機8031的時鐘頻率為6MHz,若要求定時值分別為0.1ms,1ms,10ms,定時器0工作在模式0、模式1和模式2時,其定時器初值各應是多少?解:(1)

0.1ms模式0:T0低5位01110B=0EHT0高8位:11111110B=FEH模式1:模式2:(2)

1ms模式0:T0低5位01100B=0CHT0高8位:11110000B=F0H模式1:模式2:在此情況下最長定時為512μs,無法一次實現定時1ms,可用0.1ms循環(huán)10次(3)

10ms模式0:T0低5位11000B=18HT0高8位:01100011B=63H模式1:模式2:在此情況下最長定時為512μs,無法一次實現定時10ms,可用0.1ms循環(huán)100次

16、89C51單片機的定時器在何種設置下可提供三個8位計數器定時器?這時,定時器1可作為串行口波特率發(fā)生器。若波特率按9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100b/s來考慮,則此時可選用的波特率是多少(允許存在一定誤差)?設fosc=12MHz。解:當T0為模式3,T1為模式2時,可提供3個8位定時器。可選100b/s17、試編制一段程序,功能為:當P1.2引腳的電平上跳時,對P1.1的輸入脈沖進行計數;當P1.2引腳的電平下跳時,停止計數,并將計數值寫入R6,R7。解:MOVTMOD,#05H;T0為計數方式且工作于模式1JNBP1.2,$;等待P1.2引腳電平上跳MOVTH0,#00H;P1.2電平上跳,置入計數初值MOVTL0,#00HSETBTR0;啟動T0JBP1.2,$;等待P1.2引腳電平下跳CLRTR0;電平下跳,關閉T0MOVR7,TH0;計數初值寫入R7,R6MOVR6,TL0

18、設fosc=12MHz。試編制一段程序,功能為:對定時器T0初始化,使之工作在模式2,產生200μs定時,并用查詢T0溢出標志的方法,控制P1.0輸出周期為2ms的方波。解:T0作定時器時初值:所以程序1:CLRP1.0;P1.0輸出低電平MOVR2,#05H;R2為“200μs”計數器,置入初值5,計1msMOVTMOD,#02H;設定時器T0工作于模式2L2:MOVTH0,#38H;置入定時初值MOVTL0,#38HSETBTR0;啟動T0LOOP:JBCTF0,L1;查詢200μs時間到?時間到,轉L1SJMPLOOP;時間未到,轉LOOP,繼續(xù)查詢L1:CLRTR0;關閉T0DJNZR2,L2;“200μs”計數器減1,到1ms嗎?未到,轉L2CPLP1.0;到1ms,P1.0取反,形成周期為2ms的方波MOVR2,#05H;重置“200μs”計數器初值LJMPL2;重復循環(huán)程序2:MAIN:MOVTMOD,#02H;設定時器T0工作于模式2CLRP1.0;P1.0輸出低電平LOOP1:MOVR2,#05H;R2為“200μs”計數器,置入初值5,計1msLOOP:MOVTH0,#38H;置入定時初值MOVTL0,#38HSETBTR0;啟動T0JNBTF0,$;查詢200μs時間到?時間到,繼續(xù)查詢CLRTR0;關閉T0DJNZR2,LOOP;“200μs”計數器減1,到1ms嗎?未到,轉LOOPCPLP1.0;到1ms,P1.0取反,形成周期為2ms的方波SJMPLOOP1;重復循環(huán)19、以中斷方法設計單片機秒、分脈沖發(fā)生器。假定P1.0每秒產生1個機器周期的正脈沖,P1.1每分產生1個周期的正脈沖。第七章1、什么是串行異步通信,它有哪些作用?答:在異步串行通信中,數據是一幀一幀(包括一個字符代碼或一字節(jié)數據)傳送的,每一幀的數據格式參考書。通信采用幀格式,無需同步字符。存在空閑位也是異步通信的特征之一。2、89C51單片機的串行口由哪些功能部件組成?各有什么作用?答:89C51單片機的串行接口由發(fā)送緩沖期SBUF,接收緩沖期SBUF、輸入移位寄存器、串行接口控制器SCON、定時器T1構成的波特率發(fā)生器等部件組成。由發(fā)送緩沖期SBUF發(fā)送數據,接收緩沖期SBUF接收數據。串行接口通信的工作方式選擇、接收和發(fā)送控制及狀態(tài)等均由串行接口控制寄存器SCON控制和指示。定時器T1產生串行通信所需的波特率。3、簡述串行口接收和發(fā)送數據的過程。答:串行接口的接收和發(fā)送是對同一地址(99H)兩個物理空間的特殊功能寄存器SBUF進行讀和寫的。當向SBUF發(fā)“寫”命令時(執(zhí)行“MOVSBUF,A”),即向緩沖期SBUF裝載并開始TXD引腳向外發(fā)送一幀數據,發(fā)送完便使發(fā)送中斷標志位TI=1。在滿足串行接口接收中斷標志位RI(SCON.0)=0的條件下,置允許接收位REN(SCON.4)=1,就會接收一幀數據進入移位寄存器,并裝載到接收SBUF中,同時使RI=1。當發(fā)讀SBUF命令時(執(zhí)行“MOVA,SBUF”),便由接收緩沖期SBUF取出信息通過89C51內部總線送CPU。4、89C51串行口有幾種工作方式?有幾種幀格式?各工作方式的波特率如何確定?答:89C51串行口有4種工作方式:方式0(8位同步移位寄存器),方式1(10位異步收發(fā)),方式2(11位異步收發(fā)),方式3(11位異步收發(fā))。有2種幀格式:10位,11位方式0:方式0的波特率≌fosc/12(波特率固定為振蕩頻率1/12)方式2:方式2波特率≌2SMOD/64×fosc方式1和方式3:方式1和方式3波特率≌2SMOD/32×(T1溢出速率)如果T1采用模式2則:5、若異步通信接口按方式3傳送,已知其每分鐘傳送3600個字符,其波特率是多少?答:已知每分鐘傳送3600個字符,方式3每個字符11位,則:波特率=(11b/字符)×(3600字符/60s)=660b/s6、89C51中SCON的SM2,TB8,RB8有何作用?答:89c51SCON的SM2是多機通信控制位,主要用于方式2和方式3.若置SM2=1,則允許多機通信。TB8是發(fā)送數據的第9位,在方式2或方式3中,根據發(fā)送數據的需要由軟件置位或復位。它在許多通信協(xié)議中可用作奇偶校驗位;在多機通信中作為發(fā)送地址幀或數據幀的標志位。RB8是接收數據的第9位,在方式2或方式3中接收到的第9位數據放在RB8位。它或是約定的奇偶校驗位,或是約定的地址/數據標示位。7、設fosc=11.059MHz,試編寫一段程序,其功能為對串行口初始化,使之工作與方式1,波特率為1200b/s;并用查詢串行口狀態(tài)的方法,讀出接收緩沖器的數據并回送到發(fā)送緩沖器。解:START:MOVSCON,#40H;串行接口工作于方式1MOVTMOD,#20H;定時器T1工作于模式2MOVTH1,#0E8H;賦定時器計數初值MOVTL1,#0E8HSETBTR1;啟動定時器T1MOVA,SBUF;讀出接收緩沖器數據MOVSBUF,A;啟動發(fā)送過程JNBTI,$;等待發(fā)送完CLRTI;清TI標志SJMP$;結束8、若晶振為11.0592MHz,串行口工作與方式1,波特率為4800b/s。寫出用T1作為波特率發(fā)生器的方式字和計數初值。解:MOVTMOD,#20H;定時器T1工作于模式2MOVTH1,#0FAH;賦定時器計數初值MOVTL1,#0FAH9、為什么定時器T1用作串行口波特率發(fā)生器時,常選用工作模式2?若已知系統(tǒng)時鐘頻率和通信用的波特率,如何計算其初值?答:因為工作模式2是自動重裝初值定時器,編程時無需重裝時間參數(計數初值),比較使用。若選用工作模式0或工作模式1,當定時器T1溢出時,需在中斷服務程序中重裝初值。已知系統(tǒng)時鐘頻率fosc和通信用的波特率fbaud,可得出定時器T1模式2的初值10、若定時器T1設置成模式2作波特率發(fā)生器,已知fosc=6MHz。求可能產生的最高和最低的波特率。解:最高波特率為T1定時最小值時,此時初值為255,并且SMOD=1,有:最高波特率為T1定時最大值時,此時初值為0,并且SMOD=0,有:11、串行通信的總線標準是什么?有哪些內容?答:美國電子工業(yè)協(xié)會(EIA)正式公布的串行總線接口標準有RS-232C,RS-422,RS-423和RS-485等。在異步串行通信中應用最廣的標準總線是RD-232C。它包括了按位串行傳輸的電氣和機械方面的規(guī)定,如適用范圍、信號特性、接口信號及引腳說明等,適用于短距離(<15m)或帶調制解調的通信場合。采用RS-422,RS-485標準時,通信距離可達1000m。

12、簡述單片幾多機通信的原理。答:當一片89C51(主機)與多片89C51(從機)通信時,所有從機的SM2位都置1.主機首先發(fā)送的一幀數據為地址,即某從機機號,其中第9位為1,所有的從機接收到數據后,將其中第9位裝入RB8中。各從機根據收到的第9位數據(RB8中)的值來決定從機可否再接收主機的信息。若(RB8)=0,說明是數據幀,則使接收中斷標志位RI=0,信息丟失;若(RB8)=1說明是地址幀,數據裝入SBUF并置RI=1,中斷所有從機,只有被尋址的目標從機清除SM2(SM2=0),以接收主機發(fā)來的一幀數據(點對點通信)。其他從機仍然保持SM2=1.13、當89C51串行口按工作方式1進行串行數據通信時。假定波特率為1200b/s,以中斷方式傳送數據。請編寫全雙工通信程序。解:設系統(tǒng)時鐘頻率fosc=6.0MHZ。查教材表9-2可知,可取SMOD=0,T1的計數初值為F3H。程序如下:ORG0000HAJMPMAIN;上電,轉向主程序ORG0023H;串行口的中斷入口地址AJMPSERVE;轉向中斷服務程序ORG0040H;主程序MAIN:MOVSP,#60H;設置堆棧指針MOVSCON,#50HMOVPCON,#00HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HSETBTR1MOVR0,#20H;置發(fā)送數據區(qū)首地址MOVR1,#40H;置接收數據區(qū)首地址MOVR7,#10H;置發(fā)送字節(jié)長度MOVR6,#10H;置接收字節(jié)長度SETBES;允許串行口中斷SETBEA;CPU允許中斷MOVA,@R0;取第一個數據發(fā)送MOVSBUF,A;發(fā)送第一個數據SJMP$;等待中斷SERVE:JNBRI,SEND;TI=1,為發(fā)送中斷CLRRIMOVA,SBUF;讀出接收緩沖區(qū)內容MOV@R1,A;讀入接收緩沖區(qū)DJNZR6,L1;判斷數據塊發(fā)送完否SJMPL2;數據塊接收完,轉L2L1:INCR1;修改數據區(qū)指針L2:RETI;中斷返回SEND:CLRTI;清除發(fā)送中斷標志DJNZR7,L3;判斷數據塊發(fā)送完否SJMPL4;數據塊接收完,轉L4L3:MOVA,@R0;取數據發(fā)送MOVSBUF,A;發(fā)送數據INCR0;修改數據地址L4:RETI;中斷返回END14、以89C51串行口按工作方式3進行串行數據通信。假定波特率為1200b/s,第9數據位作奇偶校驗位,以中斷方式傳送數據。請編寫通信程序。解:ORG0000HAJMPMAIN;上電,轉向主程序ORG0023H;串行口的中斷入口地址AJMPSTOP;轉向中斷服務程序ORG0040H;主程序MAIN:MOVSP,#60HMOVTMOD,#20HMOVTH1,#0E8HMOVTL1,#0E8HSETBTR1MOVSCON,#0D0HMOVPCON,#00HMOVR0,#20H;置發(fā)送數據區(qū)首地址MOVR1,#40H;置接收數據區(qū)首地址SETBES;允許串行口中斷SETBEA;CPU允許中斷MOVA,@R0MOVC,PSW.0;P→CCPLCMOVTB8,CMOVSBUF,A;發(fā)送第一個數據SJMP$STOP:JNBRISOUT;TI=1,為發(fā)送中斷CLRRIMOVA,SBUF;讀出接收緩沖區(qū)內容MOVC,PSW.0;P→CCPLC;形成奇校驗JCLOOP1;判斷接收端的奇偶值,C=1轉LOOP1JNBRB8,LOOP2 ;C=0,RB8=0,轉LOOP2SJMPERROR;C=0,RB8=1,轉出錯處理LOOP1:JBRB8,LOOP2 ;C=1,RB8=1,轉LOOP2SJMPERROR;C=0,RB8=1,轉出錯處理LOOP2:MOV@R1,A;將接收數據送入接收數據區(qū)INCR1;修改數據區(qū)指針RETISOUT:CLRTI;是發(fā)送中斷,清除發(fā)送中斷標志INCR0;修改數據區(qū)指針MOVA,@R0MOVPSW.0,C;P→CCPLCMOVTB8,CMOVSBUF,A;發(fā)送第一個數據RETIERROR:……

15、某異步通信接口,其幀格式由1個起始位(0),7個數據位,1個奇偶校驗位和1個停止位(1)組成。當該接口每分鐘傳送1800個字符時,試計算出傳送波特率。解:該異步通信接口的幀格式為10b/字符,當該接口每分鐘傳送1800個字符時:波特率=(10b/字符)×(1800字符/60s)=300b/s16、串行口工作在方式1和方式3時,其波特率與fosc、定時器T1工作模式2的初值及SMOD位的關系如何?設fosc=6MHz,現利用定時器T1模式2產生的波特率為110b/s。試計算定時器初值。解:關系如下:當波特率為110b/s,fosc=6MHz,令SMOD=0,有:

17、設計一個單片機的雙機通信系統(tǒng),并編寫通信程序。將甲機內部RAM40H--4FH存儲區(qū)中去。參考教材例題7-121.微處理器,RAM,ROM,以及I/O口,定時器,構成的微型計算機稱為單片機。2.指令寄存器(IR)保存當前正在執(zhí)行的一條指令;指令譯碼器(ID)對操作碼進行譯碼。3.程序計數器(PC)指示出將要執(zhí)行的下一條指令地址,由兩個8位計數器PCH及PCL組成。4.80C31片內沒有程序存儲器,80C51內部設有4KB的掩膜ROM程序存儲器,87C51是將80C51片內的ROM換成EPROM,89C51則換成4KB的閃存FLASHROM,51增強型的程序存儲器容量是普通型的2倍。5.89C51的組成:一個8位的80C51的微處理器,片內256字節(jié)數據存儲器RAM/SFR用來存放可以讀/寫的數據,片內4KB程序存儲器FLASHROM用存放程序、數據、表格,4個8位并行I/O端口P0-P3,兩個16位的定時器/計數器,5個中斷源、兩個中斷個優(yōu)先級的中斷控制系統(tǒng),一個全雙工UART的串行口I/O口,片內振蕩器和時鐘產生電路,休閑方式和掉電方式。6.89C51片內程序存儲器容量為4KB,地址從0000-0FFFH開始,存放程序和表格常數,片外最多可擴展64KBROM地址1000-FFFFH,片內外統(tǒng)一編址。單片機的內部存儲空間分為數據存儲器和程序存儲器。7.內部數據存儲器:共256字節(jié)單元,包括低128個單元和高128個單元。低128字節(jié)又分成3個區(qū)域:工作寄存器區(qū)(00H~1FH),位尋址區(qū)(20H~2FH)和用戶RAM區(qū)(30H~7FH)存放中間結果,數據暫存及數據緩沖。高128字節(jié)是供給特殊功能寄存器(SFR)使用的,因此稱之為特殊功能寄存器區(qū)(80H~FFH),訪問它只能用直接尋址。內部程序存儲器:在8031片內無程序存儲器,8051片內具有4KB掩模ROM,8751片內具有4KBEPROM。8.引腳是片內外程序存儲器的選擇信號。當端保持高電平時,訪問內部程序存儲器,但在PC(程序計數器)值超過0FFFH(對于8051/8751/80C51)或1FFFH(對于8052)時,將自動轉向訪問外部程序存儲器。當端保持低電平時,不管是否有內部程序存儲器,則只訪問外部程序存儲器。由于8031片內沒有程序存儲器,所以在使用8031時,引腳必須接低電平。9.RST復位信號輸入端,高電平有效。保持兩個機器周期(24個時鐘振蕩周期)的高電平有效,完成復位,復位后,CPU和系統(tǒng)都處于一個確定的初始狀態(tài),在這種狀態(tài)下,所有的專用寄存器都被賦予默認值,除SP=07H,P0~P3口為FFH外,其余寄存器均為0。ALE/:ALE輸出正脈沖,頻率為振蕩周期的1/6,CPU訪問片外存儲器時,ALE輸出信號作為鎖存低8位地址的控制信號,看芯片好壞可以用示波器看ALE端是否有脈沖信號輸出。PSEN程序存儲允許輸出信號端,也可以檢查芯片好壞,有效即能讀出片外ROM的指令,引腳信號RD/WR有效時可讀/寫片外RAM或片外I/O接口。10.P0作為輸出口時,必須外接上拉電阻才能有高電平輸出,作為輸入口時,必須先向鎖存器寫“1”;作為普通I/O口使用或低8位地址/P1口有上拉電阻,對FLASHROM編程和校驗是P1接收低八位地址;只用作普通I/O口使用。P2口比P1口多了一個轉換控制開關;作為普通I/O口使用

溫馨提示

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

評論

0/150

提交評論