單片機練習(xí)題及例題_第1頁
單片機練習(xí)題及例題_第2頁
單片機練習(xí)題及例題_第3頁
單片機練習(xí)題及例題_第4頁
單片機練習(xí)題及例題_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機課堂練習(xí)題/例題總結(jié)習(xí) 題 和 思 考 題 一、一個完整的單片微機芯片內(nèi)至少有哪些部件?、根據(jù)程序存儲器的差別單片機可以分為那些類型?、單片機的主要特性是什么?它適宜于構(gòu)成一個通用微機系統(tǒng)還是專用微機系統(tǒng)?為什么?習(xí)題與思考題二、8051單片機內(nèi)包含哪些主要邏輯功能部件?、MCS-51單片機結(jié)構(gòu)上有哪些主要特點?習(xí) 題 和 思 考 題 三、詳細描繪MCS-51單片機的存儲器配置圖。 、MCS-51單片機是通過哪些方法將程序存儲器和數(shù)據(jù)存儲器嚴格分開的? 、什么是單片機的特殊功能寄存器?8051/8052各有幾個特殊功能寄存器?這些特殊功能寄存器占有的地址范圍?

2、、MCS51單片機有哪些可直接尋址的位? 、什么是堆棧?8031的堆棧區(qū)可以設(shè)在什么地方?一般應(yīng)設(shè)在什么區(qū)域?如何實現(xiàn)?試舉例說明。習(xí)題和思考題四1、試根據(jù)P1口和P3口的結(jié)構(gòu)特性,指出它們作為輸入口或第二功能輸入/輸出的條件。2、MCS-51中無ROM型單片機在應(yīng)用中P2口和P0口能否直接作為輸入/輸出連接開關(guān)、指示燈之類的外圍設(shè)備?為什么?3、畫出MCS-51系列單片機進行系統(tǒng)擴展時的三總線結(jié)構(gòu)圖。 課堂練習(xí)一1、8031有四個工作寄存器區(qū),由PSW狀態(tài)字中的RS1、RS0兩位的狀態(tài)來決定,單片機復(fù)位后,若執(zhí)行 SETB RS1 指令,此時只能使用( )區(qū)的工作寄存器。A、0區(qū) B、1區(qū)

3、C、2區(qū) D、3區(qū)2. 09H位所在的單元地址是( )A 02H B 21H C 08H D20H3.單片機在進行取指令操作時,指令的地址是由( )的內(nèi)容決定。A SP BPC C DPTR D PSEN和ALE4. P1口作輸入用途之前必須( )。A外接高電平 B外接上拉電阻 C相應(yīng)端口先置0 D相應(yīng)端口先置15.程序計數(shù)器PC用來( )。A存放指令 B存放上一條的指令地址 C存放下一條的指令地址 D存放正在執(zhí)行的指令地址思 考 題1. 數(shù)123可能是( )。 A. 二進制數(shù) B. 八進制數(shù) C. 十六進制數(shù) D 四進制數(shù) E.十進制數(shù)2. 8031單片機內(nèi)部RAM包括( ) 。 A.程序存

4、儲區(qū) B堆棧區(qū) C工作寄存器及特殊功能區(qū) D位尋址區(qū) E. 中斷入口地址區(qū)3. 8051單片機CPU的主要功能有( )。A.產(chǎn)生控制信號 B存儲數(shù)據(jù) C.算術(shù)、邏輯運算及位操作 DI/O端口數(shù)據(jù)傳送 E.驅(qū)動LED4.單片機能夠直接運行的程序是( )。 A. 匯編源程序 B. C語言源程序 C. 高級語言程序 D. 機器語言源程序5. 十進制數(shù)126其對應(yīng)的十六進制可表示為( )。 A8F B8E CFE D. 7E6. 十進制數(shù)89.75其對應(yīng)的二進制可表示為( ). A. B.10 C.11 D.117. 二進制數(shù)對應(yīng)的十六進制數(shù)可表示為( ) A.192H BC90H C 1A2H D.

5、 CA0H8. 二進制數(shù)對應(yīng)的十六進制數(shù)可表示為( )。 A 1D3H B, 1B6H C DBOH D. 666H9. -3的補碼是( )。 A B. C D 10. CPU主要的組成部部分為( )。 A運算器,控制器 B加法器,寄存器 C. 運算器,寄存器 D. 運算器,指令譯碼器11. INTEL 8051 CPU是( )位的單片機。 A 16 B4 C8 D.準16位12. 對于INTEL 8031來說,/EA腳總是( ) A.接地 B.接電源 C. 懸空 D.不用13. 在單片機中,通常將一些中間計算結(jié)果放在( )中 A.累加器 B控制器 C. 程序存儲器 D.數(shù)據(jù)存儲器14. 程序

6、計數(shù)器PC用來( )。 A存放指令 B存放正在執(zhí)行的指令地址 C. 存放下一條的指令地址 D存放上一條的指令地址15. 指令和程序是以( )形式存放在程序存儲器中。 A. 源程序 B. 匯編程序 C. 二進制編碼 DBCD碼16. 單片機應(yīng)用程序一般存放在( )中。 A. RAM BROM C. 寄存器 DCPU17. 單片機上電后或復(fù)位后,工作寄存器R0是在( )。 A. 0區(qū)00H單元 B0區(qū)01H單元 C. 1區(qū)09H單元 DSFR18. 進位標志CY在( )中。 A. 累加器A B算術(shù)邏輯運算部件ALU C程序狀態(tài)字寄存器PSW D. DPDR19. 單片機8051的XTALl和XTA

7、L2引腳是( )引腳 A. 外接定時器 B外接串行口 C. 外接中斷 D.外接晶振20. 8031復(fù)位后,PC與SP的值為( )。 A0000H,00H B0000H,07H C0003H,07H D. 0800H,00H21. P0,P1口作輸入用途之前必須( )。 A. 相應(yīng)端口先置1 B相應(yīng)端口先置0 C外接高電平 D外接上拉電阻22. 8031單片機中既可位尋址,又可字節(jié)尋址的單元是( )。 A20H B30H C00H D70H23. 8031單片機中片內(nèi)RAM共有( )字節(jié)。 A128 B256 C4K D64K24. 當(dāng)標志寄存器PSW的RS0、RS1分別為1和0時,系統(tǒng)選用的工

8、作寄存器組為( )。 A. 組0 B組1 C組2 D. 組325. 8051的內(nèi)部RAM中,可以進行位尋址的地址空間為( )。 A. 00H2FH B 20H2FH C 00HFFH D. 20HFFH26. 8051的程序計數(shù)器PC為16位計數(shù)器,其尋址范圍是( ) 。 A. 8K B. 16K C 32K D 64K27. 8051單片機中,唯一一個用戶不能直接使用的寄存器是( )。 APSW B. DPTR CPC D. B28. 對MCS-51單片機來說,其內(nèi)部RAM( )。 A.只能位尋址 D只能字節(jié)尋址 C既能位尋又能字節(jié)尋址 D少部分能位尋址29. 所謂系統(tǒng)總線,指的是( )。

9、A. 數(shù)據(jù)總線 B地址總線 C. 內(nèi)部總線 D外部總線 E控制總線習(xí)題和思考題五 1、MCS-51指令系統(tǒng)有幾種尋址方式?如果要對特殊功能寄存器進行操作將使用哪種尋址方式? 2、在MCS-51程序段中,怎樣識別位地址和字節(jié)地址? 3、怎樣區(qū)分內(nèi)部RAM高128個字節(jié)地址以及特殊功能寄存器的地址? 4、MCS-51指令系統(tǒng)按其操作功能分幾大類?例:設(shè)(70H) = 60H, (60H) = 20H, P1口為輸入口,當(dāng)前輸入狀態(tài)為 B7 H, 執(zhí)行下面的程序:MOV R0,#70H; (R0) = 70HMOV A,R0;(A) = 60HMOV 01H,R0; (R1) = (70H) = 6

10、0HMOV B,R1;(B) = 20HMOV R0,P1; (70H) = B7H結(jié)果為:(70H) = B7H(B) = 20H(R1) = 60H (R0) = 70H習(xí)題與思考題六1、寫出實現(xiàn)以下數(shù)據(jù)傳送的MCS-51指令:1)   R7內(nèi)容傳送到R4;2)   外部RAM20H單元內(nèi)容送R0;3)   外部RAM1000H單元內(nèi)容送內(nèi)部RAM30H;4)   ROM2000H單元內(nèi)容送R2;5) 外部RAM0456H的內(nèi)容送外部RAM0078H單元。2、若(SP)=26H,(A)=37H,(DPTR)=0

11、CFA 8H;執(zhí)行PUSH A,PUSH DPL, POP A, POP DPL指令后,試指出SP、A、DPTR的數(shù)值。3、設(shè)R0的內(nèi)容為32H,A的內(nèi)容為48H,內(nèi)部RAM32H內(nèi)容為80H,40H內(nèi)容為08H,請指出在執(zhí)行下列程序段后各單元內(nèi)容的變化。MOV A, R0MOV R0, 40HMOV 40H, AMOV R0, #40HMOV R0, A例、將30H和31H二單元清0,試編程。 ORG0100H MOV R0,30H ; R0指向30H單元 MOV R0,00; 30H單元清0 INC R0 ; R0加1,指向31H單元 MOV R0,00; 31H單元清0 L:SJMP L

12、 ; 停機 END例、將內(nèi)部RAM中40H與41H二單元內(nèi)容相乘,乘積存43H,42H單元中(高字節(jié)存在43H單元,低字節(jié)存在42H單元);將40H和41H二單元內(nèi)容相除,商存在44H單元中,余數(shù)存在45H單元中,試編程。ORG 0100HMOVA,40H; (40H)被乘數(shù) AMOVB,41H; (41H)乘數(shù)BMUL AB ; (A)×(B)BAMOV42H,A;MOV43H,B; 積存43H,42H單元中MOVA,40H; (40H)被除數(shù) AMOVB,41H; (41H)除數(shù)BDIVAB ; A÷BMOV44H,A; 商存入44H單元中MOV45H,B; 余數(shù)存入4

13、5H單元中L:SJMPL ; 停機END習(xí)題與思考題七已知(A)=7AH,(R0)=30H,(30H)=A5H, (PSW)=80H,問執(zhí)行下列各指令后的結(jié)果(每條指令相互獨立)。(1) XCH A, R0; (A)=; (R0)=(2) XCH A, 30H; (A)=; (30H)=(3) XCH A, R0; (A)=; (R0)=;(30H)=(4) XCHD A, R0; (A)=; (R0)=;(30H)=(5) SWAP A; (A)=(6) ADD A, R0; (A)=; (Cy)=;(OV)=(7) ADD A, 30H; (A)=; (Cy)=;(OV)=(8) ADDC

14、 A, 30H; (A)=; (Cy)=;(OV)=(9) SUBB A, 30H; (A)=; (Cy)=;(OV)=(10) SUBB A, #30H; (A)=; (Cy)=;(OV)=例、將40H單元中的內(nèi)容,低四位送41H單元低四位,高四位送42H單元的高四位,試編程。ORG 0100HMOV A,40H; A (40H)ANLA,0FH; 屏蔽A中高四位,保留低四位MOV 41H,A; 41H 低四位MOV A,40H; A (40H)ANLA,0F0H; 屏蔽A中低四位,保留高四位MOV 42H,A ; 42H 高四位L:SJMPL ; 停機END例:將30H單元中的低四位置1,

15、且不影響高四位的值,試編程。ORG 0010H ORL30H,0FHL:SJMPL END習(xí)題與思考題八1、設(shè)(A)=B,(R4)=B,請分別寫出它們進行“與”、“或”、“異或”操作結(jié)果。若要將R4內(nèi)容取反,試問用什么指令實現(xiàn)?2、試編程將內(nèi)部RAM26H單元位2、4、6取反后送P1口。例:若A中存放待處理命令編號(07),ROM中存放著標號為PMTB的轉(zhuǎn)移地址表,則執(zhí)行下列程序,將根據(jù)A內(nèi)的命令編號轉(zhuǎn)向相應(yīng)的命令處理程序。PM:MOV R1, ARLAADDA, R1;(A)×3MOV DPTR, #PMTB; 轉(zhuǎn)移表首址DPTRJMPA+DPTRPMTB:LJMPPM0;轉(zhuǎn)向命令

16、0處理入口 LJMPPM1;. LJMPPM2;. LJMPPM3;. LJMPPM4;. LJMPPM5;. LJMPPM6;. LJMPPM7;轉(zhuǎn)向命令7處理入口例:延時程序START:SETBP1.1DL:MOV30H, #40HDL0:MOV31H, #0F0HDL1:DJNZ31H, DL1DJNZ30H, DL0CPLP1.1AJMPDL習(xí)題與思考題九1、試編一程序?qū)?nèi)部RAM 30H3FH單元數(shù)據(jù)傳送到外部RAM首址為0F00H的單元中去。2、有兩塊數(shù)據(jù)分別在內(nèi)部RAM20H29H、30H39H,現(xiàn)將兩塊數(shù)據(jù)對換,試編程。3、從內(nèi)部RAM 24H單元開始存放有30個用ASC碼表示

17、的字符和數(shù)據(jù),現(xiàn)要找B字符,若找到則轉(zhuǎn)移到其處理程序,若找不到B直至找完則停機。試編程。程序示例 一、 循環(huán)程序例1:對數(shù)據(jù)區(qū)的一片單元清零-單重循環(huán)程序?qū)?0H3FH單元的內(nèi)容清成零。程序如下:ZZZ:MOVR0, # 30HMOVR7, # 10HMOVA, # 00HLOOP:MOVR0, AINCR0DJNZR7, LOOP例2:軟件延時-多重循環(huán)程序DMS:MOVR5, # 0EHDD1:MOVR7, # 64HDD2:NOPNOPNOPDJNZR7, DD2DJNZR6, DD1二、 算邏處理程序例1:多字節(jié)二進制數(shù)加法程序設(shè)兩個加數(shù)分別存放在40H和50H為首址的單元中(先存低位

18、),求這兩個數(shù)的和,并將和存放到40H為首址的單元中去。如: 被加數(shù) 加數(shù)(40H)=A7H (50H)=35H(41H)=5BH (51H)=DFH(42H)=2FH (52H)=14H主程序:JAFA:MOVR0,#40HMOVR1,#50HMOVR2,#04HACALLJASUB.加法子程序:JASUB:CLRCJASB1:MOVA, R0 ADDCA, R1 MOVR0, A INCR0 INCR1 DJNZR2, JASB1 RET例2、多字節(jié)乘法程序16位乘8位的乘法程序。設(shè)被乘數(shù)放在R4、R3中,乘數(shù)在R2中,求積并將積放于R7、R6、R5中。思路:(R4)(R3)×(

19、R2)=(R4)×28+(R3)×(R2) =(R4)×(R2)×28+(R3)×(R2)CF:MOVA, R2MOVB, R3MULAB;完成(R3)×(R2)MOVR5, A;積的低位R5MOVR6, B;積的高位R6MOVA, R2MOVB, R4MULAB;完成(R4)×(R2)ADDA, R6;(R3)×(R2)高位加(R4)×(R2)低位MOVR6, A;結(jié)果送R6保存,進位在C中MOVA, BADDC A, #00H;(R4)×(R2)的高位加低位的進位MOVR7, A;結(jié)果送R7

20、RET16位乘16位(R3)(R2)×(R1)(R0)=(R3)×28+(R2)×(R1)×28+(R0)=(R3)×(R1)×216+(R3)×(R0)+(R2)×(R1)×28 +(R2)×(R0)例:被乘數(shù)3AD6H,乘數(shù)03E8H,結(jié)果存入33H30H單元。MOV R0,#30HMOV R2,#3AHMOV R3,#0D6HMOV R6,#03HMOV R7,#0E8HMOV R1,#00HCLR CMUL1:MOV A,R3MOV B,R7MUL ABMOV R0,AMOV R4,BM

21、UL2:MOV A,R2MOV B,R7MUL ABADD A,R4MOV R4,AMOV A,BADDC A,#00HMOV R5,AMUL3:MOV A,R3MOV B,R6MUL ABADD A,R4INC R0MOV R0,AMOV A,BADDC A,R5MOV R5,AJNC MUL4MOV R1,#01HMUL4:MOV A,R2MOV B,R6MUL ABADD A,R5INC R0MOV R0,AMOV A,BADDC A,R1INC R0MOV R0,A三、數(shù)制轉(zhuǎn)換程序例1、 將A中的1位十六進制數(shù)轉(zhuǎn)換為ASCII碼思路:數(shù)字09的ASCII碼分別是30H39H;英文大寫字

22、母AF的ASCII碼分別是41H46H。當(dāng)16進制數(shù)<10,需要加30H;當(dāng)16進制數(shù)10,需要加37H。例2、 單字節(jié)十六進制整數(shù)轉(zhuǎn)換成十進制整數(shù)(BCD碼)將40H單元中一字節(jié)的十六進制整數(shù)轉(zhuǎn)換成十進制數(shù),分別存入31H30H單元中(高字節(jié)在后),試編程。思路:一字節(jié)十六進制數(shù)最大值為FFH,即十進制數(shù)為255(3位)。由此可見,一字節(jié)二位十六進制數(shù)轉(zhuǎn)換成十進制數(shù)時可有3位。例3、 單字節(jié)二進制小數(shù)轉(zhuǎn)換成十進制小數(shù)(BCD碼)一個n位小數(shù)的十進制表達式為:x= a-1·10-1 + · · · · · · + a-

23、n·10-n把x乘以10,所得到的整數(shù)部分即為十進制小數(shù)的最高位,即a-1,再把小數(shù)部分乘以10得a-2,這樣執(zhí)行n次后,便得到所有的a-i(i=1,2,n)。設(shè)二進制小數(shù)在A中,轉(zhuǎn)換后的十進制小數(shù)存放在30H、31H、32H單元中。MOV R0, #30H LP:MOV B, #10MOV R7, #03H MUL ABMOV R0, BINC R0DJNZ R7, LPRET四、 散轉(zhuǎn)程序設(shè)計入口地址表256個單元的情況,根據(jù)(R2)轉(zhuǎn)移。JMP4:MOVDPTR, #TBL4MOVA, R2ADDA, R2;(R2)×2AJNCNADDINCDPH;(R2)×

24、;2256 NADD:MOV R3, A;暫存MOVC A, A+DPTR ;地址高8位XCHA, R3INCAMOVC A, A+DPTR ;地址低8位MOV DPL, AMOV DPH, R3CLR AJMPA+DPTR TBL4:DW PRG0DW PRG1 . TBL4 +100H: DW PRG128 . DW PRGn五、子程序調(diào)用中參數(shù)的傳遞方法1、用堆棧傳遞參數(shù) MAIN: PUSH70H;起始地址PUSH71H;數(shù)據(jù)長度ACALL SUBRTNEXT:SUBRT:POPDPH; NEXTHDPHPOPDPL; NEXTLDPLPOPR7 ;數(shù)據(jù)長度POPR0 ;起始地址SUB

25、1:MOV A, # 00HLOOP:MOV R0, AINCR0DJNZR7, LOOPPUSHDPLPUSHDPHRET2、利用堆棧指針傳遞 MAIN: ACALL PRINTDB “THIS IS AN EXAMPLE”DB0AH, 0DH, 00HNEXT: PRINT:POPDPH;把參數(shù)首址彈出,POPDPL;作為數(shù)據(jù)指針PPP1:MOV A, # 00HMOVC A, A+DPTR;取出欲打印的字符INCDPTR;字符指針加1JZPEND;判是否為結(jié)束字符PPP2: SJMP PPP1PEND:JMPA+DPTR習(xí)題與思考題十1、什么叫做偽指令?偽指令與匯編程序有什么區(qū)別?2、編

26、寫實驗二、三、四、五中相應(yīng)的程序。例:應(yīng)用 T0 產(chǎn)生 1ms 定時,并使 P1.0 輸出周期為 2ms 的方波,設(shè)晶振為 6MHZ。1)求計數(shù)初值X:(TH0,TL0初值計算)因為 fosc6MHZ,所以 Tcy2us(6×106)=2×10-6s=2us(213X)×2×10-610-3X7692( 01100)B(TH0)=F0H (TL0)=0CH2)方式字TMOD(TMOD)00H3)程序用查詢 TF0 的狀態(tài)來控制 P1.0 的輸出,在 P1.0 端得到周期為 2ms 的方波。TART:MOV TMOD, # 00H;不必MOV TL0, #

27、 0CH;置初值MOV TH0, # 0F0HSETB TR0;啟動T0計數(shù)LOOP:JBCTF0, PTF0AJMP LOOPPTF0:MOV TL0, # 0CHMOV TH0, # 0F0HCPLP1.0;P1求反AJMP LOOP例:若從T0引腳輸入低頻負脈沖信號,要求0每次發(fā)生負跳變時,從 P1.0 輸出一個 500us的同步脈沖,設(shè)fosc6MHZ1)TH0. TL0. TH1. TL1初值設(shè)定T0:計數(shù)方式,使發(fā)生負跳變時加計數(shù)溢出,程序查詢到TF0=1時啟動T1定時,故初值應(yīng)為FFH。T1:定時500us(256X)×2×10-6500×10-6

28、X06H所以 (TH1)(TL1)06H2)TMOD(TMOD)26H3)程序:START:MOV TMOD, # 26HMOV TH1, # 06HMOV TL1, # 06HMOV TH0,# 0FFHMOV TL0, # 0FFHSETB TR0LOOP1:JBCTF0, PTF01AJMP LOOP1PTF01:CLR P1.0SETB TR1 LOOP2:JBCTF1, PTF02AJMP LOOP2PTF02:SETB P1.0CLR TR1AJMP LOOP1例 設(shè)內(nèi)部RAM20H單元和30H 單元中分別存放了兩個8位的無符號數(shù) X、Y, 若XY 則讓P1.0管腳連接的LED亮;

29、若X<Y 則讓P1.1管腳連接的LED亮。方法1:兩個數(shù)據(jù)做減法SUBB,可根據(jù)借位CY來判斷兩個數(shù)的大小!方法2:兩個數(shù)據(jù)做比較CJNE,再根據(jù)是否相等和借位CY來判斷兩個數(shù)的大??!方法1編程:X DATE 20H Y DATE 30H ORG 0000H MOV A,X CLR C SUBB A,Y JC L1 CLR P1.0 SJMP FINISHL1: CLR P1.1FINISH: SJMP $ END方法2編程:X DATE 20H Y DATE 30H ORG 0000H MOV A,X CJNE A,Y,L0 L0:JC L1 CLR P1.0 SJMP FINISHL

30、1: CLR P1.1FINISH: SJMP $ END例:由串行接口發(fā)送帶偶校驗位的ASC碼數(shù)據(jù)塊。設(shè)數(shù)據(jù)位于內(nèi)部RAM 30H3FH單元,fosc=12M,串行口采用方式1,T1用作波特率發(fā)生器,SMOD=0,發(fā)送的波特率要求為 1200 b/s.1) T1初值計算: 波特率 = 2SMOD×T1溢出率32 X = 204 = CCH) 發(fā)送程序 TSTART:MOV TMOD, # 20H;T1方式2、定時器方式MOV TL1, # 0CCH;置T1初值MOV TH1, # 0CCHMOV SCON, # 40H;置串行口方式1MOV R0, # 30H;R0地址指針,指向首

31、址MOV R7, # 10H;R7計數(shù)器,置字節(jié)數(shù)SETB TR1;啟動T1 LOOP:MOV A, R0;取待發(fā)送的一個字節(jié)MOV C, P;取奇偶標志,奇“1”偶“0”MOV A.7, C;加偶校驗位MOV SBUF, A;啟動發(fā)送 WAIT:JNB TI, WAIT;等發(fā)送完畢CLR TI;清TI標志,準備下次發(fā)送INC R0;指向下一字節(jié)地址DJNZ R7, LOOP;未發(fā)完繼續(xù)RET3) 接收程序 RSTART:MOV TMOD, # 20H;T1方式2、定時器方式MOV TL1, # 0CCH;置T1初值MOV TH1, # 0CCHMOV R0, # 40H;R0地址指針,指向首

32、址MOV R7, # 10H;R7計數(shù)器,置字節(jié)數(shù)SETB TR1;啟動T1 LOOP:MOV SCON, # 50H;置方式1,并啟動接受 WAIT:JNB RI, WAIT;等接受完畢MOV A, SBUF;取已接受字節(jié)到AMOV C, P;取奇偶標志JC ERROR;若有錯,轉(zhuǎn)出錯處理程序ANL A, # 7FH;未出錯,去偶校驗位 MOV R0, A;存接受的字節(jié)CLR RI;清RI標志,準備下次接受INC R0;指向下一字節(jié)地址DJNZ R7, LOOP;未接受完繼續(xù)RET習(xí)題與思考題十五1、單片機訪問外部RAM或擴展I/O口的指令共有哪幾條?2、一個8031應(yīng)用系統(tǒng),外擴兩片271

33、6EPROM,請畫出擴展電路圖。3、一個8751應(yīng)用系統(tǒng),需擴展一片6116RAM作為數(shù)據(jù)存儲器,地址從0000H開始,請畫出擴展電路圖。對于該系統(tǒng),若要將片內(nèi)EPROM中自100H單元開始的10個字節(jié)的內(nèi)容依次移到片外RAM的100H單元開始的10個字節(jié)中去,編寫該程序段。例 撥盤輸入程序:將千、百、十、個 位依次讀入存放在 8031 片內(nèi)RAM30H33H單元。RDS:MOVR0, # 30H;存放單元首址MOVR2, # 7FH;控制字(千位);輸入方式MOVR3, # 04H;讀4個BCD碼LOOP:MOVA, R2MOVP1, AMOVA, P1;讀入BCD碼ANLA, # 0FH;

34、屏蔽高4位MOVR0, A;送入存儲單元INCR0;指向下一個存儲單元MOVA, R2;準備下一片撥盤的控制端置0RRAMOVR2, ADJNZR3, LOOPRET習(xí)題與思考題十六(P187、201)1、什么是DAC0832接口的單緩沖方式?雙緩沖方式?它們各占用8031外部RAM幾個單元?軟件編程有什么區(qū)別?2、用8031單片機和DAC0832組成單緩沖工作方式產(chǎn)生梯形波。斜邊采用步幅為1的線形波,幅度從00H到80H,水平部分靠調(diào)用延時程序來維持,寫出梯形波產(chǎn)生程序。3、若梯形波的水平部分用8031內(nèi)部定時器來產(chǎn)生,程序應(yīng)如何修改?4、若8031和ADC0809的連接采用圖5-30的方式

35、,用8031內(nèi)部定時器來控制對模擬信號的采集,要求每分鐘采集一次,寫出對8路信號采集一遍的程序。5、靜態(tài)顯示電路和動態(tài)顯示電路各有什么特點?例:信號燈的控制1、要求:(1) 利用單片機的定時查詢與中斷方式,實現(xiàn)對信號燈的復(fù)雜控制。(2) 使P1口的8盞燈由左至右,由右至左輪流電量一次2程序1)定時器查詢方式ORG0000HCONT: MOVR2,#07HMOVA,#0FEHNEXT:MOVP1,AACALLDELAYRLADJNZR2,NEXTMOV R2,#07HNEXT1:MOVP1,ARRAACALLDELAYDJNZR2,NEXT1SJMPCONTDELAY: MOV R3,#14H;

36、置50ms計數(shù)循環(huán)初值MOVTMOD,#10H;設(shè)定時器1為方式1MOVTH1,#3CH;置定時器初值MOVTL1,#0B0HSETBTR1;啟動T1LP1:JBCTF1,LP2 ;查詢計數(shù)溢出SJMPLP1;未到50ms繼續(xù)計數(shù)LP2:MOVTH1,#3CH ;重新置定時器初值MOVTL1,#0B0HDJNZR3,LP1 ;未到1s繼續(xù)循環(huán)RET;返回主程序END2)定時器中斷方式ORG0000H;程序入口AJMP0100H;指向主程序ORG001BH;定時器T1中斷入口AJMPCONT;指向中斷服務(wù)程序ORG0100HMAIN:MOVTMOD,#10H;置T1為工作方式1MOVTH1,#3CH;置50ms

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論