單片機(jī)原理及應(yīng)用知識(shí)點(diǎn)匯總(復(fù)習(xí))
單片機(jī)原理及應(yīng)用 知識(shí)點(diǎn)匯總
一、填空題
1、單片機(jī)是將微處理器、一定容量的 RAM 和ROM以及 I/O 口、定時(shí)器等電路集成在一塊芯片上而構(gòu)成的微型計(jì)算機(jī)。
2、單片機(jī)80C51片內(nèi)集成了 4 KB的FLASH ROM,共有 5 個(gè)中斷源。
3、兩位十六進(jìn)制數(shù)最多可以表示 256 個(gè)存儲(chǔ)單元。
4、在80C51中,只有當(dāng)EA引腳接 高 電平時(shí),CPU才訪問片內(nèi)的Flash ROM。
5、當(dāng)CPU訪問片外的存儲(chǔ)器時(shí),其低八位地址由 P0 口提供,高八位地址由 P2 口提供,8位數(shù)據(jù)由 P0 口提供。
6、在I/O口中, P0 口在接LED時(shí),必須提供上拉電阻, P3 口具有第二功能。
7、80C51具有 64 KB的字節(jié)尋址能力。
8、在80C51中,片內(nèi)RAM分為地址為 00H~7FH 的真正RAM區(qū),和地址為80H~FFH的 特殊功能寄存器(SFR) 區(qū)兩個(gè)部分。
9、在80C51中,通用寄存器區(qū)共分為 4 組,每組 8 個(gè)工作寄存器,當(dāng)CPU復(fù)位時(shí),第 0 組寄存器為當(dāng)前的工作寄存器。
10、數(shù)據(jù)指針DPTR是一個(gè) 16 位的 特殊功能寄存器 寄存器。
11、在80C51中,一個(gè)機(jī)器周期包括 12 個(gè)振蕩周期,而每條指令都由一個(gè)或幾個(gè)機(jī)器周期組成,分別有單周期指令、雙周期指令和 4周期 指令。
12、當(dāng)系統(tǒng)處于正常工作狀態(tài)且振蕩穩(wěn)定后,在RST引腳上加一個(gè) 高 電平并維持 2 個(gè)機(jī)器周期,可將系統(tǒng)復(fù)位。
13、單片機(jī)80C51復(fù)位后,其I/O口鎖存器的值為 0FFH ,堆棧指針的值為 07H ,SBUF的值為 不定 ,內(nèi)部RAM的值不受復(fù)位的影響,而其余寄存器的值全部為 0H 。
14、在809C51中,有兩種方式可使單片機(jī)退出空閑模式,其一是 任何的中斷請(qǐng)求被響應(yīng) ,其二是 硬件復(fù)位 ;而只有 硬件復(fù)位 方式才能讓進(jìn)入掉電模式的單片機(jī)退出掉電模式。
15、單片機(jī)80C51的5個(gè)中斷源分別為 INT0 、INT1 、T0 、T1 以及 TXD/RXD 。
16、單片機(jī)80C51的中斷要用到4個(gè)特殊功能寄存器,它們是TCON、SCON、 IE 以及IP。
17、在80C51中,外部中斷由IT0(1)位來控制其兩種觸發(fā)方式,分別是 電平觸發(fā)方式和 邊沿 觸發(fā)方式。
18、中斷處理過程分為4個(gè)階段,即 中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)以及中斷返回 。
19、單片機(jī)80C51片內(nèi)有兩個(gè) 16 位的定時(shí)/計(jì)數(shù)器,即T0和T1,它們都有 定時(shí) 和 計(jì)數(shù) 的功能。
20、單片機(jī)80C51的時(shí)鐘頻率為6MHz,若要求定時(shí)1ms,定時(shí)/計(jì)數(shù)器工作于模式1,其定時(shí)/計(jì)數(shù)器的初值為FE0CH 。
21、單片機(jī)80C51具有 并行 通信和 串行 通信兩種通信方式。
22 、串行通信有 同步 通信和 異步 通信兩種通信方式。
23、在異步通信中,數(shù)據(jù)的幀格式定義一個(gè)字符由4部分組成,即: 起始位 、數(shù)據(jù)位、 奇偶校驗(yàn)位 和停止位。
24、串行通信中,為使設(shè)備同步工作,需要通信雙方有兩個(gè)共同的要求,一是 通信雙方必須采用統(tǒng)一的編碼方式 ,二是 通信雙方必須能產(chǎn)生相同的傳送速率 。
25、單片機(jī)80C51中的串行通信共有 4 種方式,其中方式 0 是用作同步移位寄存器來擴(kuò)展I/O口的。
26、設(shè)80C51的晶振頻率為11.0592MHz,選用定時(shí)器T工作模式2作波特率發(fā)生器,波特率為2400b/s,且SMOD置0,則定時(shí)器的初值為 F4H
27、鍵盤可分為 獨(dú)立連接 式和 矩陣 式兩類。鍵盤可分為 編碼 式和 非編碼 式兩類。
28、LED數(shù)碼管有 靜態(tài) 顯示和 動(dòng)態(tài) 顯示兩種方式。
29、在執(zhí)行下列指令后,A=___60H___,R0=__45H____,(60H)=___45H___。
MOV A,# 45H
MOV R0,# 60H
MOV @R0,A
XCH A, R0
30、設(shè)RAM 中(2456H)=66H,(2457H)=34H,ROM 中(2456H)=55H,(2457H)=64H。請(qǐng)分析下面程序執(zhí)行后各寄存器的內(nèi)容。 (A)=___64H___,(DPTR)=__2456H____。
MOV A,#1
MOV DPTR,#2456H
MOVC A,@A+DPTR
31.對(duì)單片機(jī)而言,連接到數(shù)據(jù)總線上的輸出口應(yīng)具有(鎖存) 功能。
32.決定程序執(zhí)行的順序是(PC) 寄存器,該寄存器復(fù)位時(shí)的值為 (0000h)。
33.單片機(jī)內(nèi)包含組成微機(jī)的三個(gè)主要功能部件是CPU、存儲(chǔ)器和(I/O口)。
34. 80C51系列單片機(jī)字長是(8)位,有(40)根引腳。
35.ALE信號(hào)的作用是(鎖存允許)。
36.80C51復(fù)位后,PC=(0000)H。
37.80C51的堆棧指針是(SP)。
38.80C51單片機(jī)的P0口和P2口除了可以作為并行口進(jìn)行數(shù)據(jù)的輸入/輸出外,通常還用來構(gòu)建系統(tǒng)的(地址)和(數(shù)據(jù))。
39.80C51單片機(jī)外部中斷請(qǐng)求信號(hào)有電平方式和(邊沿觸發(fā)),在電平方式下,當(dāng)采集到INT0、INT1的有效信號(hào)為(低電平)時(shí),激活外部中斷。
40.80C51單片機(jī)指令A(yù)NL A,20H中源操作數(shù)的尋址方式是(直接)。
41.串行通訊中有 (同步)和異步兩種基本方式。
42.C51中存儲(chǔ)類型XDATA定義的是(外部)存儲(chǔ)空間,其地址范圍是(0000h~ffffH)
43.執(zhí)行下列程序后,(A)=__35H____,(B)=__16H____。
MOV A,#9FH
MOV B,#36H
ANL B,A
SETB C
ADDC A,B
二、選擇題
1、80C51是以下哪個(gè)公司的產(chǎn)品?( C )
A、INTEL B、AMD C、ATMEL D、PHILIPS
2、80C51系列單片機(jī)是屬于( C )體系結(jié)構(gòu)。
A、馮諾依曼 B、普林斯頓 C、哈佛 D、圖靈
3、以下哪一條指令的寫法是錯(cuò)誤的( C )。
A、MOV DPTR,#3F98H B、MOV R0,#0FEH C、MOV 50H,#0FC3DH D、INC R0
4、以下哪一條指令的寫法是錯(cuò)誤的( D )。
A、INC DPTR B、MOV R0,#0FEH C、DEC A D、PUSH A
5、以下哪一條指令的寫法是錯(cuò)誤的( B )。
A、MOVC A,@A+DPTR B、MOV R0,#FEH C、CPL A D、PUSH ACC
6、以下哪一條是位操作指令( B )。
A、MOV P0,#0FFH B、CLR P1.0 C、CPL A D、POP PSW
7、以下哪一條是位操作指令( B )。
A、MOV P1,#0FFH B、MOV C,ACC.1 C、CPL A D、POP PSW
8、以下哪一條是位操作指令( B )。
A、MOV P0,#0FFH B、SETB TR0 C、CPL R0 D、PUSH PSW
9、以下哪種方式的接口總線最少?( C )
A、SPI B、I2C C、單總線 D、并行通信
10、以下哪個(gè)是屬于單片機(jī)系統(tǒng)前向通道的器件?( A )
A、A/D轉(zhuǎn)換 B、D/A轉(zhuǎn)換 C、LED數(shù)碼管 D、繼電器
11、80C51 單片機(jī)的RS1,RS0=01 時(shí),當(dāng)前寄存器R0—R7 占用內(nèi)部RAM( B )單元。
A、 00H—07H B、 08H—0FH C、 10H—17H D、 18H—1FH
12、80C51 單片機(jī)有片內(nèi)RAM 容量( A )。
A. 128B B、 4KB C、 8KB D、 256B
13、80C51 單片機(jī)的最大時(shí)序定時(shí)單位是( D )。
A、 拍節(jié) B、狀態(tài) C、機(jī)器周期 D、指令周期
14、80C51 單片機(jī)的定時(shí)器/計(jì)數(shù)器工作方式0 是( C )。
A、8 位計(jì)數(shù)器結(jié)構(gòu) B、16 位計(jì)數(shù)器結(jié)構(gòu) C、13 位計(jì)數(shù)器結(jié)構(gòu) D、2 個(gè)8 位計(jì)數(shù)器結(jié)構(gòu)
15、80C51 單片機(jī)的外部中斷0 中斷入口地址為( C )。
A、 000BH B、 001BH C、0003H D、 0013H
16.在下列80C5l單片機(jī)各條指令中,錯(cuò)誤的是( A )。
A.MOVC @A+DPTR,A B.MOV A, @R0 C.MOV 20H, A D.MOV B, A
17. 單片機(jī)上電復(fù)位后,堆棧區(qū)的最大允許范圍是 ( B ) 個(gè)單元。
A.64 B.120 C.128 D.256
18. 80C51單片機(jī)ALE引腳是( C )。
A.輸出高電平 B.輸出低電平 C.輸出矩形脈沖,頻率為fosc的1/6
D.輸出矩形脈沖,頻率為fosc的1/2
19.80C51單片機(jī)的XTAL1和XTAL2引腳是( D )引腳。
A、外接定時(shí)器 B、外接串行口 C、外接中斷 D、外接晶振
20.80C51的串行數(shù)據(jù)緩沖器SBUF用于( D )。
A.存放運(yùn)算中間結(jié)果 B.暫存數(shù)據(jù)和地址 C.存放待調(diào)試的程序
D.存放待發(fā)送或已接收到的數(shù)據(jù)
21. 假定設(shè)置堆棧指針SP的值為37H,在進(jìn)行子程序調(diào)用時(shí)把斷點(diǎn)地址進(jìn)棧保護(hù)后,SP的值為( D )。
A.6H B.37H C.38H D.39H
22. 單片機(jī)中的程序計(jì)數(shù)器PC用來( B)。
A.存放指令 B.存放正在執(zhí)行的指令地址
C.存放下一條指令地址 D.存放上一條指令地址
23. 在80C51指令中,下列指令中( C)是無條件轉(zhuǎn)移指令。
A.LCALL addr16 B.DJNZ direct,rel C.SJMP rel D.ACALL addr11
24.80C51系列單片機(jī)的中斷系統(tǒng)具有( A )。
A、5個(gè)中斷源 B、6個(gè)中斷源 C、2個(gè)中斷源 D、3個(gè)中斷源
25.指令和程序是以( C )形式存放在程序存儲(chǔ)器中。
A、源程序 B、匯編程序 C、二進(jìn)制編碼 D、BCD碼
26.當(dāng)需要從80C51單片機(jī)程序存儲(chǔ)器取數(shù)據(jù)時(shí),采用的指令為(B )
A、MOV A, @R1 B、MOVC A, @A + DPTR
C、MOVX A, @ R0 D、MOVX A, @ DPTR
三、判斷
1、在51系列單片機(jī)的指令系統(tǒng)中,其加法、減法、乘法和除法必須有累加器A的參與才能完成。T
2、當(dāng)80C51的EA引腳接低電平時(shí),CPU只能訪問片外ROM,而不管片內(nèi)是否有程序存儲(chǔ)器。T
3、當(dāng)80C51的EA引腳接高電平時(shí),CPU只能訪問片內(nèi)的4KB空間。F
4、80C51系列單片機(jī)直接讀端口和讀端口鎖存器的結(jié)果永遠(yuǎn)是相同的。F
5、是讀端口還是讀鎖存器是用指令來區(qū)別的。T
6、在80C51的片內(nèi)RAM區(qū)中,位地址和部分字節(jié)地址是沖突的。F
7、中斷的矢量地址位于RAM區(qū)中。F
8、在80C51中,當(dāng)CPU訪問片內(nèi)、外ROM區(qū)時(shí)用MOVC指令,訪問片外RAM區(qū)時(shí)用MOVX指令,訪問片內(nèi)RAM區(qū)時(shí)用MOV指令。T
9、工作寄存器區(qū)不允許做普通的RAM單元來使用。F
10、工作寄存器組是通過置位PSW中的RS0和RS1來切換的。T
11、特殊功能寄存器可以當(dāng)作普通的RAM單元來使用。F
12、訪問128個(gè)位地址用位尋址方式,訪問低128字節(jié)單元用直接或間接尋址方式。T
13、堆棧指針SP的內(nèi)容可指向片內(nèi)00H~7FH的任何RAM單元,系統(tǒng)復(fù)位后,SP初始化為00H。F
14、DPTR只能當(dāng)作一個(gè)16位的特殊功能寄存器來使用。F
15、程序計(jì)數(shù)器PC是一個(gè)可以尋址的特殊功能寄存器。F
16、單片機(jī)80C51復(fù)位后,其PC指針初始化為0000H,使單片機(jī)從該地址單元開始執(zhí)行程序。T
17、單片機(jī)系統(tǒng)上電后,其內(nèi)部RAM的值是不確定的。T
18、在80C51中,當(dāng)產(chǎn)生中斷響應(yīng)時(shí),所有中斷請(qǐng)求標(biāo)志位都由硬件自動(dòng)清零。F
19、在51系列單片機(jī)中,中斷服務(wù)程序從矢量地址開始執(zhí)行,一直到返回指令RETI為止。T
20、在執(zhí)行子程序調(diào)用或執(zhí)行中斷服務(wù)程序時(shí)都將產(chǎn)生壓棧的動(dòng)作。T
21、定時(shí)/計(jì)數(shù)器工作于定時(shí)方式時(shí),是通過80C51片內(nèi)振蕩器輸出經(jīng)12分頻后的脈沖進(jìn)行計(jì)數(shù),直至溢出為止。T
22、定時(shí)/計(jì)數(shù)器工作于計(jì)數(shù)方式時(shí),是通過809C51的P3.4和P3.5對(duì)外部脈沖進(jìn)行計(jì)數(shù),當(dāng)遇到脈沖下降沿時(shí)計(jì)數(shù)一次。T
23、定時(shí)/計(jì)數(shù)器在工作時(shí)需要消耗CPU的時(shí)間。F
24、定時(shí)/計(jì)數(shù)器的工作模式寄存器TMOD可以進(jìn)行位尋址。F
25、定時(shí)/計(jì)數(shù)器在使用前和溢出后,必須對(duì)其賦初值才能正常工作。F
26、在51系列單片機(jī)的指令中,既有帶借位的減法指令,又有不帶借位的減法指令。F
27、單片機(jī)80C51的定時(shí)/計(jì)數(shù)器是否工作可以通過外部中斷進(jìn)行控制。T
28、并行通信的優(yōu)點(diǎn)是傳送速度高,缺點(diǎn)是所需傳送線較多,遠(yuǎn)距離通信不方便。T
29、串行通信的優(yōu)點(diǎn)是只需一對(duì)傳送線,成本低,適于遠(yuǎn)距離通信,缺點(diǎn)是傳送速度較低。T
30、異步通信中,在線路上不傳送字符時(shí)保持高電平。T
31、在異步通信的幀格式中,數(shù)據(jù)位是低位在前高位在后的排列方式。T
32、異步通信中,波特率是指每秒傳送二進(jìn)制代碼的位數(shù),單位是b/s。T
33、在80C51的串行通信中,串行口的發(fā)送和接收都是對(duì)特殊功能寄存器SBUF進(jìn)行讀/寫而實(shí)現(xiàn)的。T
34、在單片機(jī)809C51中,串行通信方式1和方式3的波特率是固定不變的。F
35、在單片機(jī)809C51中,讀和寫的SBUF在物理上是獨(dú)立的,但地址是相同的。T
36、單片機(jī)80C51一般使用非整數(shù)的晶振是為了獲得精確的波特率。T
37、單片機(jī)809C51和PC機(jī)的通信中,使用芯片MAX232是為了進(jìn)行電平轉(zhuǎn)換。T
38、在A/D轉(zhuǎn)換器中,逐次逼近型在精度上不及雙積分型,但雙積分型在速度上較低。T
39、A/D轉(zhuǎn)換的精度不僅取決于量化位數(shù),還取決于參考電壓。T
四、簡答題
1、簡述80C51單片機(jī)中斷的概念。
答:當(dāng)CPU正在處理某件事情的時(shí)候,外部發(fā)生的某一事件請(qǐng)求CPU迅速去處理,于是,CPU暫時(shí)中止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的時(shí)間。中斷服務(wù)處理完該事件以后,再回到原來被中止的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。
2、什么是保護(hù)現(xiàn)場,什么是恢復(fù)現(xiàn)場?
答:保護(hù)現(xiàn)場:當(dāng)CPU響應(yīng)中斷程序時(shí),硬件會(huì)自動(dòng)把斷點(diǎn)地址(16位程序計(jì)數(shù)器的值)壓入堆棧之外,用戶還須注意保護(hù)有關(guān)工作寄存器、累加器、標(biāo)志位等信息;
恢復(fù)現(xiàn)場:在完成中斷服務(wù)程序后,恢復(fù)原工作寄存器、累加器、標(biāo)志位等的內(nèi)容。
3、單片機(jī)80C51有哪些中斷源,對(duì)其中斷請(qǐng)求如何進(jìn)行控制?
答:80C51中斷系統(tǒng)有5個(gè)中斷源:
●INT0:外部中斷0請(qǐng)求,低電平有效。通過P3.2引腳輸入。
●INT1:外部中斷1請(qǐng)求,低電平有效。通過P3.3引腳輸入。
●T0:定時(shí)器/計(jì)數(shù)器0溢出中斷請(qǐng)求。
●T1:定時(shí)器/計(jì)數(shù)器1溢出中斷請(qǐng)求。
●TXD/RXD:串行口中斷請(qǐng)求。當(dāng)串行口完成一幀數(shù)據(jù)的發(fā)送或接收時(shí),便請(qǐng)求中斷。
4、簡述單片機(jī)809C51中斷的自然優(yōu)先級(jí)順序,如何提高某一中斷源的優(yōu)先級(jí)別。
答:中斷源(控制位) 自然優(yōu)先級(jí)
外部中斷0(PX0) 最 高
定時(shí)器/計(jì)數(shù)器0溢出中斷(PT0)
外部中斷1(PX1)
定時(shí)器/計(jì)數(shù)器1溢出中斷(PT1)
串行口中斷(PS) 最 低
若某幾個(gè)控制位為1,則相應(yīng)的中斷源就規(guī)定為高級(jí)中斷;反之,若某幾個(gè)控制位為0,則相應(yīng)的中斷源就規(guī)定為低級(jí)中斷。當(dāng)同時(shí)接收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),響應(yīng)哪個(gè)中斷源則取決于內(nèi)部硬件查詢順序(即自然優(yōu)先級(jí))。
5、簡述51系列單片機(jī)中斷響應(yīng)的條件。
答:●有中斷源發(fā)出中斷請(qǐng)求;
●中斷總允許位EA=1,即CPU開中斷;
●申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒有屏蔽;
●無同級(jí)或更高級(jí)中斷正在被服務(wù);
●當(dāng)前的指令周期已經(jīng)結(jié)束;
6、簡述定時(shí)/計(jì)數(shù)器4種工作模式中方式0、1、2的特點(diǎn)。
答:方式0:是13位的定時(shí)器/計(jì)數(shù)器,寄存器TLx存低5位,THx存高8位。
方式1:是16位的定時(shí)器/計(jì)數(shù)器;
方式2:把TL0(或TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器;
7、簡述80C51串口通信的四種方式及其特點(diǎn)。
方式0:同步移位寄存器輸入/輸出方式,常用于擴(kuò)展I/O口。波特率固定為振蕩頻率的1/12,并不受PCON寄存器中SMOD位的影響。
方式1:用于串行發(fā)送或接收,為10位通用異步接口。TXD與RXD分別用于發(fā)送與接收數(shù)據(jù)。收發(fā)一幀數(shù)據(jù)的格式為1位起始位、8位數(shù)據(jù)位(低位在前)、1位停止位,共10位。波特率由定時(shí)器T1的溢出率與SMOD值同時(shí)決定。
方式2:用于串行發(fā)送或接收,為11位通用異步接口。TXD與RXD分別用于發(fā)送與接收數(shù)據(jù)。收發(fā)一幀數(shù)據(jù)的格式為1位起始位、8位數(shù)據(jù)位(低位在前)、1位可編程的第9數(shù)據(jù)位和1位停止位,共11位。波特率取決于PCON中SMOD位的值:當(dāng)SMOD=0時(shí),波特率為 的1/64;當(dāng)SMOD=1時(shí),波特率為 的1/32。
方式3:用于串行發(fā)送或接收,為11位通用異步接口。TXD與RXD分別用于發(fā)送與接收數(shù)據(jù)。幀格式與方式2相同,波特率與方式1相同。
8、簡述在使用普通按鍵的時(shí)候,為什么要進(jìn)行去抖動(dòng)處理,如何處理。
鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次。為了確保CPU對(duì)鍵的一次閉合僅做一次處理,必須去除鍵抖動(dòng)。在鍵閉合穩(wěn)定時(shí),讀取鍵的狀態(tài),并且必須判別;在鍵釋放穩(wěn)定后,再作處理。按鍵的抖動(dòng),可用硬件或軟件兩種方法消除。
9、簡述LED數(shù)碼管動(dòng)態(tài)掃描的原理及其實(shí)現(xiàn)方式。
動(dòng)態(tài)掃描的原理是利用人的視覺暫留,讓人覺得各位LED同時(shí)點(diǎn)亮一樣。逐位輪流點(diǎn)亮各個(gè)LED,每一位保持1ms,在10~20ms之內(nèi)再一次點(diǎn)亮,重復(fù)不止,就可以實(shí)現(xiàn)動(dòng)態(tài)掃描。
五、編程題
1、用P1口控制LED單色燈實(shí)現(xiàn)流水燈顯示,單色燈0亮1滅,已知晶振12MHz,
2、用P0口控制LED單色燈實(shí)現(xiàn)走馬燈顯示,單色燈0亮1滅,已知晶振12MHz,
3、數(shù)碼管0~9的顯示。
4、用一個(gè)定時(shí)/計(jì)數(shù)器加軟件計(jì)數(shù)器的方式,實(shí)現(xiàn)一秒的時(shí)鐘基準(zhǔn)信號(hào),試寫出程序并加以說明。(設(shè)晶振頻率為12MHz,由P1.0口輸出秒信號(hào)。)
#include<reg51.h>
sbit P10 = P1^0;
unsigned char k;
void main()
{
TMOD = 0x01;
TL0 = 0xb0;
TH0 = 0x3c;
TR0 = 1;
ET0 = 1;
EA = 1;
P10 = 1;
while(1);
}
void t0_isr() interrupt 1
{
TL0 = 0xb0;
TH0 = 0x3c;
k++;
if(k==20)
{
k=0;
P10 = ~P10;
}