微機原理試題及答案
一、填空題(每空1分,共15分)
1、 在計算機中,對帶符號數的運算均採用補碼。帶符號負數1100 0011的補碼為_10111101_。
2、微控制器通常採用“三匯流排”的應用模式,晶片內部設有單獨的地址匯流排、資料匯流排_ 和控制匯流排。
3、當使用80C51微控制器時,需要擴充套件外部程式儲存器,此時EA應為_0__。
4、若(A)=B3H,(R0)=A8H,執行指令XRL A,R0之後,(A)=_1BH__。
5、在80C51微控制器中,帶借位減法SUBB指令中,差的D7需借位時,_CY_=1,差的D3需借位時,AC_=1。
6、80C51微控制器中,在呼叫子程式前,用_PUSH__指令將子程式中所需資料壓入堆疊,進入執行子程式時,再用___POP__指令從堆疊中彈出資料。
7、在十六進位制數與ASCII碼值的轉換過程中,當十六進位制數在0~9之間時,其對應的ASCII碼值為該十六進位制數加___30H______。
8、外部中斷INT0和INT1有兩種觸發方式:___電平觸發方式_____和__邊沿觸發方式__。
9、在微控制器序列通訊中,依傳送與接收裝置時鐘的配置情況,序列通訊可以分為 __非同步通訊___和__同步通訊_。
10、若累加器A中的資料為0111 0010B,則PSW中的P=__0___。
二、選擇題(每題1分,共15分)
1、微控制器是在一片積體電路晶片上集成了以下部分,除了( D )
A、微處理器 B、儲存器 C、I/O介面電路 D、串列埠通訊介面
2、一個機器週期包含多少個晶振週期(D )
A、2 B、6 C、8 D、12
3、80C51微控制器有21個特殊功能暫存器,其中與序列口相關的有以下幾個,除了( B )
A、SBUF B、TCON C、SCON D、PCON
4、80C51系列微控制器具有4個8位的並行I/O口,其中哪個口工作時需要外接上拉電阻(A )
A、P0 B、P1 C、P2 D、P3
5、暫存器中的內容為地址,從該地址去取運算元的定址方式稱為( C )
A、暫存器定址 B、直接定址 C、暫存器間接定址 D、變址定址
6、源地址為1005H。目的地址為0F87H。當執行指令“JC rel”時,rel為( B )。
A、7EH B、80H C、82H D、84H
7、若(R0)=30H,(30H)=75H,(75H)=90H,執行指令MOV A,@R0後,(A)=__B____。
A、30H B、75H C、90H D、00H
8、下列哪個語句是起始地址設定偽指令( A )。
A、ORG B、END C、DW D、EQU
9、在80C51微控制器中,各中斷優先順序最低的是( D )。
A、外部中斷0 B、外部中斷1 C、定時器0 D、計數器1
10、80C51微控制器的中斷響應時間至少需要( C )個完整的機器週期。
A、1 B、2 C、3 D、5
11、在80C51微控制器中,在不帶進位加法ADD指令中,當___B______時,溢位標誌位OV=1。
A、D7、D6都向前進位 B、只有D7向前進位 C、D7、D6都沒有向前進位 D、只有D3向前進位
12、當累加器A中的低4位(高4位),出現了非BCD碼時,需要用十進位制調整指令DA A,即在相應的低4位(高4位)加___C___,以產生正確的BCD結果。
A、2 B、4 C、6 D、8
13、若(P0)=1011 1100B。執行指令SETB P0.1後,(P0)=___B____。
A、1011 1101 B、1011 1110 C、1111 1100 D、0011 1100
14、80C51復位後,PC與SP的值分別為(B )。
A、0000H ,00H B、0000H ,07H C、0030H ,07H D、0030H ,00H
15、下列哪條指令是正確的(D )。
A、 PUSH R2 B、 ADD R0,A C、 MOVX A,@DPTR D、 MOV @R0,A
三、問答題(每題10分,共20分)
1、簡述什麼是堆疊?堆疊中入棧、出棧的過程?(10分)
堆疊是在內部RAM中按“後進先出”的規則組織的一片儲存區。
入棧操作時,先將SP的內容加1,然後將指令指定的直接地址單元的內容存入SP指向的單元;出棧操作時,先將SP指向的單元內容傳送到指令指定的直接地址單元,然後SP的內容減1
2、列舉出80C51微控制器的.5種定址方式,寫出每一種方式相應的一條指令?(10分)
第一、暫存器定址,MOV A,R0
第二、直接定址,MOV A,50H
第三、暫存器間接定址,MOV A,@R0
第四、立即定址,MOV A,#50H
第五、變址定址,MOV A,@A+DPTR
第六、相對定址,JC 50H
第七、位定址,CLR ACC.0
四、程式閱讀題(15分)
1、 設(A)=38H,R0=28H,(28H)=18H,執行下列程式後,((A))=__E7H______。(5分)
ORL A,#27H
ANL A,28H
XCHD A,@R0
CPL A
2、閱讀下列程式段,寫出每條指令執行後的結果,並說明此程式段完成什麼功能?(10分) MOV R1,#30H; (R1)=___30H_____,
MOV A,#64H; ((A))=___64H____,
ADD A,#47H; ((A))=___ABH____,(CY)=____0____,(AC) =____0____,
DA A ; ((A))=___11H____,(CY)=_____1___,(AC) =___1_____,
MOV @R1,A; (R1)=____30H___,(30H)=___11H_____。
五、計算題(10分)
若要求定時器T0工作方式1,定時時間為1ms,當晶振為6MHz時,求送入TH0和TL0的計數器初值各為多少?
解:由於晶振為6MHz,所以機器週期Tcy=112=2μs。 -6610
N=t/Tcy=110-3/210-6=500
X=216-N=65536-500=65036=FE0CH
即應將FEH送入TH0中,0CH送入TL0中。
所以,TH0和TL0的計數器初值各為FEH和0CH。
六、程式設計題(25分)
1、若微控制器的晶振頻率為12MHz,試用迴圈轉移指令編寫延時100ms的延時子程式。(10分)
答:分析:一個機器週期=12個晶振週期=1μs,執行一條DJNZ指令需要2個機器週期,即2μs。採用迴圈計數法實現延時,迴圈次數可以透過計算獲得,並選擇先執行後判斷的迴圈程式。
彙編程式如下:
DEL: MOV R7,#400 ;1μs
DEL1: MOV R6,#123 ;1μs
NOP ;1μs
DEL2: DJNZ R6,DEL2 ;2μs,共(2*123)μs
μs, DJNZ R7,DEL1 ;2μs,共((2*123+2+2)*400+1)即100.01ms
2、有一變數存放在片內RAM的30H單元,其取值範圍為00H~04H。要求編制一段程式,根據變數值求其平方值,並存入片內RAM的31H單元。(15分)
程式如下:
ORG 1000H
START: MOV DPTR,#2000H
MOV A,30H
MOVC A,@A+DPTR
MOV 31H,A
SJMP $
ORG 2000H
TABLE: DB 00,01,04,09,16