單片機(jī)習(xí)題課_20130609_第1頁
單片機(jī)習(xí)題課_20130609_第2頁
單片機(jī)習(xí)題課_20130609_第3頁
單片機(jī)習(xí)題課_20130609_第4頁
單片機(jī)習(xí)題課_20130609_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2.6、程序狀態(tài)字寄存器PSW的作用是什么?常用狀態(tài)標(biāo)志有哪些位?作用是什么? 答:程序狀態(tài)字PSW是8位寄存器,用于存放程序運(yùn)行的狀態(tài)信息,PSW中各位狀態(tài)通常是在指令執(zhí)行的過程中自動(dòng)形成的,但也可以由用戶根據(jù)需要采用傳送指令加以改變。各個(gè)標(biāo)志位的意義如下: PSW.7(Cy):進(jìn)位標(biāo)志位。 PSW.6(AC):輔助進(jìn)位標(biāo)志位,又稱為半進(jìn)位標(biāo)志位。 PSW.5(F0):用戶標(biāo)志位。 PSW.4、PSW.3(RS1和 RS0):寄存器組選擇位。 PSW.2(OV):溢出標(biāo)志位。 PSW.1(空缺位):此位未定義。 PSW.0(P):奇偶校驗(yàn)位。2.9 單片機(jī)程序存儲(chǔ)器的尋址范圍是多少?程序計(jì)數(shù)

2、器PC的值代表什么?程序存儲(chǔ)器ROM用于存放編好的程序和表格常數(shù),它以16位的程序存儲(chǔ)器PC作為地址指針來尋址,因此尋址空間為64KB,地址為:0000H-FFFFH.PC中的內(nèi)容是將要執(zhí)行的下一條指令的地址,因此他指示的最大容量是64KB。2.10 開機(jī)復(fù)位后,CPU使用是的哪組工作寄存器?它們的地址是什么?CPU如何確定和改變當(dāng)前工作寄存器組?答:開機(jī)復(fù)位后,CPU使用的是第0組工作寄存器。它們的地址是00H07H。CPU通過對(duì)程序狀態(tài)字PSW中RS1、RS0的設(shè)置來確定和改變當(dāng)前工作寄存器組。如:RS1、RS0為00則指向第0組;為01則指向第1組;為10則指向第2組;為11則指向第3組

3、。2.11 MCS-51單片機(jī)片內(nèi)256B的數(shù)據(jù)存儲(chǔ)器可分為幾個(gè)區(qū)?分別起什么作用?答:MCS-51單片機(jī)片內(nèi)數(shù)據(jù)存儲(chǔ)器可分為二個(gè)區(qū):00H7FH單元組成的低128B的片內(nèi)RAM區(qū)、80HFFH單元組成的高128B的專用寄存器區(qū)。其中低128B的RAM區(qū)又分為:00H1FH單元為工作寄存器區(qū)、20H2FH單元為位尋址區(qū)、30H7FH單元為用戶RAM區(qū)。工作寄存器區(qū)可作通用寄存器用,用戶RAM區(qū)可作堆棧和數(shù)據(jù)緩沖用。專用寄存器區(qū)又稱特殊功能寄存器,使用80HFFH單元。2.14、MCS-51的4個(gè)并行I/O 口在使用分工?及注意事項(xiàng) P0、P1、P2、P3均可用作一般的I/O口使用,但在實(shí)際應(yīng)用

4、中,P0口和P2口多用于構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線。具體來講,P0口用作構(gòu)建高8位數(shù)據(jù)總線和低8位地址總線,而P2口用于構(gòu)建高8位地址總線。至于P3口,多發(fā)揮其第二功能的作用。真正用作一般I/O口的往往是P1口。注意事項(xiàng):注意事項(xiàng):(1 )P3口用作第二功能輸出信號(hào)時(shí),也應(yīng)先把對(duì)應(yīng)的鎖存口用作第二功能輸出信號(hào)時(shí),也應(yīng)先把對(duì)應(yīng)的鎖存器置器置1(2)作為輸入口使用,必須先寫1,再讀引腳狀態(tài)。 (3)由于P0口為內(nèi)置場(chǎng)效應(yīng)管上拉,作為輸出口時(shí),上拉的場(chǎng)效應(yīng)截止,輸出引腳與電源Vcc之間呈現(xiàn)開路狀態(tài),因此,為了保證輸出口能夠輸出標(biāo)準(zhǔn)的高低電平,其輸出引腳應(yīng)上拉電阻。2.17、什么是單片機(jī)的機(jī)器周期、

5、狀態(tài)周期、振蕩周期和指令周期?它們之間是什么關(guān)系? 答:某條指令的執(zhí)行周期由若干個(gè)機(jī)器周期(簡(jiǎn)稱M周期)構(gòu)成,一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期(又稱時(shí)鐘周期,簡(jiǎn)稱S周期),而一個(gè)狀態(tài)周期又包含兩個(gè)振蕩周期(P1和P2,簡(jiǎn)稱P周期)。也就是說,指令執(zhí)行周期有長(zhǎng)有短,但一個(gè)機(jī)器周期恒等于6個(gè)狀態(tài)周期或12個(gè)振蕩周期,即1M=6S=12P。第3章3.6使內(nèi)部30H的內(nèi)容與外部1200H單元的內(nèi)容進(jìn)行交換。 MOV 40H,30H ;備份30HMOV DPTR,#1200H MOVX A,DPTR MOV 30H,AMOV A ,40H MOVX DPTR,A 3.7 已知X=15 試編程計(jì)算(X+20)

6、*10, 并將計(jì)算結(jié)果存入片內(nèi)RAM 40H開始的單元內(nèi),低位字節(jié)在前,高位字節(jié)在后(要求首先將題目中的十進(jìn)制數(shù)全部轉(zhuǎn)換成16進(jìn)制數(shù)再編程序)。程序清單如下: ORG0030HSTART: MOVA, #0FH ;(A)X ADD A,#14H; MOV B,#0AHMUL A,B MOV 41H, B ;(41H)A*B的高字節(jié) MOV 40H, A ;(40H)A*B的低字節(jié) SJMP$習(xí)題3.9:試編寫一段程序,將30H開始的10個(gè)單元的內(nèi)容傳送到50H開始的10個(gè)單元中去。MOV R2,#0AHMOV R0,#30HMOV R1,#50HLOOP:MOV A,R0MOV R1,AINC

7、R0INCR1DJNZ R2,LOOPSJMP $10習(xí)題3.11:試編寫一段程序,使P1口交替輸出高、低電平,中間要有一定的延時(shí),并不斷循環(huán)。要求將延時(shí)部分作為子程序。START: MOV A,#0FFH ;讓ACC的內(nèi)容為11111111LOOP: MOV P1,A ;讓P1口輸出ACC的內(nèi)容CALL DELAY ;調(diào)用延時(shí)子程序CPL A LJMP LOOP ;跳到LOOP處執(zhí)行=0.1s延時(shí)子程序(12MHz晶振): DELAY: MOV R7,#200 ;單周期指令(1us)D1: MOV R6,#250 ;單周期指令(1us) DJNZ R6,$ ;雙周期指令(2us)/該指令自身

8、執(zhí)行R6次 DJNZ R7,D1 ;雙周期指令(2us)/D1執(zhí)行R7次 RET ;雙周期指令(2us)T=1+(1+2*R6+2)*R7+2 =100603us 0.1s11習(xí)題3.12:試編寫一段程序,要求從P1.0到P1.7依次輸出高電平,中間要有一定的延時(shí),并不斷循環(huán)。要求將延時(shí)部分作為子程序。START: MOV A,#0FEH ;讓ACC的內(nèi)容為11111110LOOP: MOV P1,A ;讓P1口輸出ACC的內(nèi)容 RR A ;讓ACC的內(nèi)容左移 CALL DELAY ;調(diào)用延時(shí)子程序 LJMP LOOP ;跳到LOOP處執(zhí)行=0.1s延時(shí)子程序(12MHz晶振): DELAY:

9、 MOV R7,#200 ;單周期指令(1us)D1: MOV R6,#250 ;單周期指令(1us) DJNZ R6,$ ;雙周期指令(2us)/該指令自身執(zhí)行R6次 DJNZ R7,D1 ;雙周期指令(2us)/D1執(zhí)行R7次 RET ;雙周期指令(2us)T=1+(1+2*R6+2)*R7+2 =100603us 0.1s12習(xí)題3.13:已知在內(nèi)部RAM30H34H中存放著5個(gè)無符號(hào)數(shù),試編寫一段程序,找出其中最大的數(shù),將它存放于35H處。 MOV R2,#04H ; 循環(huán)次數(shù) MOV R0,#30H ;片內(nèi)ram初始地址 MOV A,R0 ;A存放最大值 SUB: INC R0 ;取

10、下一個(gè)地址的數(shù)據(jù) MOV B,R0 CJNE A,B,NEXT ;不等則轉(zhuǎn) NEXT: JC NEXT1 ;如果A小于B,則轉(zhuǎn)NEXT1 DJNZ R2,SUB ;A大于等于B,則循環(huán)次數(shù)減一,轉(zhuǎn)到sub循環(huán)JMP LAST ;循環(huán)結(jié)束后,存放最大值 NEXT1: MOV A,B ;A小于b,則將b賦值給a,a始終存放最大數(shù) DJNZ R2,SUB ;循環(huán)次數(shù)減一,轉(zhuǎn)到sub循環(huán) JMP LAST ;循環(huán)結(jié)束后,存放最大值 LAST: MOV 35H,A ;將最大值存入35h SJMP $13習(xí)題3.14:試編寫一段程序,將存放于外部RAM1000H起的10個(gè)無符號(hào)數(shù)相加,并將結(jié)果存放在內(nèi)部R

11、AM的60H(低位)和61H(高位)單元中。MOVR2,#0AHMOVDPTR,#1000HMOV60H,#0MOV61H,#0LOOP: MOVX A,DPTRADDA,60HJNCNEXTINC61HNEXT:MOV60H,AINCDPTRDJNZR2,LOOPSJMP$1415 (1)計(jì)算計(jì)數(shù)初始值 因?yàn)橄到y(tǒng)的晶振頻率為 ,則機(jī)器周期 。周期10us 設(shè)計(jì)數(shù)初始值為X: (2)設(shè)置工作方式 方式0:M1M0=00; 定時(shí)器模式: ; 定時(shí)/計(jì)數(shù)器啟動(dòng)不受外部控制: GATE=0; 因此,(TMOD)=00H。MHz12oscfs112oscMfTususTtX152213Md130TC/

12、4.7 編程用定時(shí)的方法,在P1.0口上產(chǎn)生頻率為100Khz的方波,設(shè)單片機(jī)的晶振為12Mhz。第4章程序清單(中斷編程): ORG 0000H LJMP MAIN ORG 000BH LJMP CTC0 ORG 0030H MAIN:MOV TMOD,#02H MOV TL1,#251 MOV TH1,#251 SETB EA SETB ET0 SETB TR0 SJMP $ CTC0:CPL P1.0 RETI1617 例9:設(shè)MCS-51單片機(jī)系統(tǒng)時(shí)鐘頻率為6MHZ,請(qǐng)利用定時(shí)/計(jì)數(shù)器產(chǎn)生1秒的定時(shí)。使指示燈以1秒為間隔閃爍。 解:MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器T0和T1作為定時(shí)/計(jì)

13、數(shù)器使用時(shí),所得到的定時(shí)時(shí)間比較短,當(dāng)系統(tǒng)晶振頻率為6MHz時(shí),最長(zhǎng)的延時(shí)時(shí)間約為131ms(方式1)。因此,直接由定時(shí)/計(jì)數(shù)器定時(shí)無法實(shí)現(xiàn)這么長(zhǎng)時(shí)間的延時(shí)。18 方法一:采用2個(gè)定時(shí)/計(jì)數(shù)器聯(lián)合使用的方案實(shí)現(xiàn)1秒 的定時(shí)。 首先采用定時(shí)/計(jì)數(shù)器T0以方式1產(chǎn)生100ms的定時(shí),從P1.0引腳輸出周期為200ms的連續(xù)方波信號(hào)。然后,把此信號(hào)作為定時(shí)/計(jì)數(shù)器T1的外部計(jì)數(shù)輸入信號(hào)輸入到引腳T1(P3.5),設(shè)置T1為計(jì)數(shù)模式,以方式2計(jì)數(shù),T1計(jì)數(shù)5次即可實(shí)現(xiàn)1秒的定時(shí)。指示燈L由P1.2控制。5.4 定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例19 (2)計(jì)數(shù)初始值計(jì)算 單片機(jī)系統(tǒng)的晶振頻率為6MHz,需要

14、定時(shí)100ms,定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)初始值X1為: 轉(zhuǎn)換為二進(jìn)制數(shù)X1 3CB0H。 對(duì)于定時(shí)/計(jì)數(shù)器T1來說,每計(jì)數(shù)5次需要計(jì)數(shù)器溢出,采用方式2時(shí),計(jì)數(shù)初始值為: ,轉(zhuǎn)換為二進(jìn)制數(shù)。 1553621010021316XFBH02X5.4 定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例20P1.2P1.0T18051RL產(chǎn)生1秒定時(shí)及指示燈驅(qū)動(dòng)顯示的原理5.4 定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例21例4.4 利用定時(shí)器T1的工作方式2對(duì)外部信號(hào)計(jì)數(shù),要求每計(jì)滿100次,將P1.0端狀態(tài)取反。編寫程序如下:ORG0000HAJMPMAINORG000BHCPLP1.1ORG001BHCPLP1.0RETIMAIN:

15、SETB EA SETB IT0SETB IT1MOVTMOD,#61H;T0 定時(shí),t1計(jì)數(shù)MOVTH1,#9CHMOVTL1,#9CHMOVTH0,#9CHMOVTL0,#9CHSETBTR1SETBTR0SJMP$22 方法二:采用定時(shí)/計(jì)數(shù)器T0以方式1定時(shí)100ms,定時(shí)/計(jì)數(shù)器T0溢出10次后,即可實(shí)現(xiàn)1秒的定時(shí)。 這種方法的優(yōu)點(diǎn)在于節(jié)省了MCS-51單片機(jī)寶貴的定時(shí)/計(jì)數(shù)器資源,用存儲(chǔ)單元作為計(jì)數(shù)器。當(dāng)實(shí)現(xiàn)較長(zhǎng)時(shí)間的延時(shí)時(shí),延時(shí)時(shí)間為定時(shí)/計(jì)數(shù)器溢出次數(shù)乘以它的定時(shí)時(shí)間。 5.4 定時(shí)器/計(jì)數(shù)器的編程應(yīng)用舉例23ORG0000HAJMPMAINORG000BHAJMP T0INT

16、ORG001BHCPLP1.0RETIMAIN: SETB EA SETB IT0SETB IT1MOVTMOD,#01H;T0 定時(shí)MOVTH0,#XXHMOVTL0,#XXH MOV A,#00H; MOV R0,#00HSETBTR1SETBTR0SJMP$T0INT: INC ACJNE A,#0AH,EXITCPL P1.0 MOV A,#00H; INC R0 CJNE R0,#60,EXIT CPL P1.1 MOV R0,#00HEXIT: MOV TH0,#XXHMOVTL0,#XXHRETI第5章5.1 MCS-51單片機(jī)進(jìn)行系統(tǒng)擴(kuò)展時(shí)要使用哪些總線?請(qǐng)說明各總線的構(gòu)成。2

17、425答: 單片機(jī)系統(tǒng)的擴(kuò)展是建立在地址總線(AB)、數(shù)據(jù)總線(DB)和控制總線(CB)基礎(chǔ)上的。1、數(shù)據(jù)總線(DB): P0口作為數(shù)據(jù)總線。傳送數(shù)據(jù),雙向,CPU的位數(shù)和外部數(shù)據(jù)總線的位數(shù)一致。而數(shù)據(jù)可能是指令代碼、狀態(tài)量或控制量,也可能是真正的數(shù)據(jù)。2、地址總線(AB): 傳送CPU發(fā)出的地址信息,單向,寬度為16位,由P0口作為低八位地址總線,P2口作為高八位地址總線3、控制總線(CB): 傳送使微機(jī)協(xié)調(diào)工作的定時(shí)、控制信號(hào),雙向,但對(duì)于每一條具體的控制線,都有固定的功能。MCS-51單片機(jī)與擴(kuò)展相關(guān)的控制總線如下: (1)ALE用來實(shí)現(xiàn)低8位地址的鎖存。 (2) EA 外部程序存儲(chǔ)器選

18、擇控制信號(hào)。 (3)PSEN擴(kuò)展外部程序存儲(chǔ)器讀控制信號(hào)。 (4)WR擴(kuò)展的外部數(shù)據(jù)存儲(chǔ)器和外部I/O口的寫控制信號(hào),是P3.6的第2功能,單片機(jī)輸出的信號(hào); (5)RD擴(kuò)展的外部數(shù)據(jù)存儲(chǔ)器和外部I/O的讀控制信號(hào),是P3.7的第2功能,單片機(jī)輸出的信號(hào)。 5.3程序存儲(chǔ)器與外部數(shù)據(jù)存儲(chǔ)器使用同一地址總線,且地址范圍相同,為什么訪問這兩個(gè)存儲(chǔ)器空間的時(shí)候不會(huì)發(fā)生沖突?解:程序存儲(chǔ)器與外部數(shù)據(jù)存儲(chǔ)器使用同一地址總線,它們的地址空間是完全重疊的,但由于單片機(jī)對(duì)兩種存儲(chǔ)器設(shè)計(jì)了兩種不同的控制信號(hào)和指令,故不會(huì)發(fā)生地址沖突。單片機(jī)訪問外部程序存儲(chǔ)器時(shí),使用PSEN控制對(duì)外部程序存儲(chǔ)器單元的讀取操作,即使程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的單元地址完全相同,也不會(huì)造成訪問沖突。讀取外部數(shù)據(jù)存儲(chǔ)器由下列指令實(shí)現(xiàn)MOVX。讀取程序存儲(chǔ)器由下列指令實(shí)現(xiàn)MOVC。 26第6章27 6.3 LED數(shù)碼顯示器的靜態(tài)顯示和動(dòng)態(tài)顯示各有什么特點(diǎn)?靜態(tài)顯示靜態(tài)顯示的優(yōu)點(diǎn)是顯示程序簡(jiǎn)單,顯示亮度高且穩(wěn)定,不刷新顯示內(nèi)容時(shí)不需CPU干預(yù),可節(jié)約CPU時(shí)間。但缺點(diǎn)是顯示位數(shù)較多需要占用較多的系統(tǒng)口線,而擴(kuò)展IO口線將提高硬件成本。故靜態(tài)顯示一般用于顯示位數(shù)較少的系統(tǒng)中。動(dòng)態(tài)顯示動(dòng)態(tài)顯示雖然電路簡(jiǎn)單,但是程序較復(fù)雜。實(shí)際使用時(shí),要在主程序中反復(fù)調(diào)用顯示子

溫馨提示

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

評(píng)論

0/150

提交評(píng)論