《單片機原理與應(yīng)用》習題集(上)
第一章 計算機基礎(chǔ)
1-1 什么是二進制?為什么在數(shù)字系統(tǒng)、計算機系統(tǒng)中采用二進制?
1-2 將下列各數(shù)按權(quán)展開為多項式:
(1) 110110B(2) 5678.32D
(3) 1FB7H
1-3 把下列十進制數(shù)轉(zhuǎn)化為二進制、十六進制和8421 BCD碼:
(1) 135.625(2) 548.75
(3) 376.125(4) 254.25
1-4 什么是原碼、反碼和補碼?微型計算機中的數(shù)為什么常用補碼表示?
1-5 寫出下列十進制數(shù)原碼、反碼和補碼(用8位二進制表示):
(1) + x = + 65(2) + x = + 115
(3) - x = - 65(4) - x = - 115
1-6 計算下列兩組二進制數(shù)內(nèi)部式子的邏輯“與”,“或”及“異或”的結(jié)果:
(1)10100101和00001111
(2)10011101和10100101
1-7 什么是單片機?它與一般微型計算機在結(jié)構(gòu)上有何區(qū)別?
1-8 新型8位單片機主要在哪些方面有所發(fā)展?給應(yīng)用系統(tǒng)帶來什么好處?
第二章 單片機系統(tǒng)組成原理
2-1 什么是單片機?它與一般的微型計算機在結(jié)構(gòu)上有何區(qū)別?
2-2 MSC-51單片機內(nèi)部有哪些主要的邏輯部件?
2-3 MSC-51單片機程序存儲器和數(shù)據(jù)存儲器各有什么功用?其內(nèi)部RAM區(qū)功能結(jié)構(gòu)如何分配?
2-4 在內(nèi)部RAM中,4組工作寄存器使用時如何選用?位尋址區(qū)域的字節(jié)地址范圍是多少?
2-5 程序狀態(tài)字PSW的作用是什么?常用標志有哪些位?作用是什么?
2-6 簡述定時器的四種工作模式的特點,如何選擇和設(shè)定?
2-7 當定時器T0用作模式3時,由于TR1位已被T0占用,如何控制定時器T1的開啟和關(guān)閉?
2-8 已知8051單片機的fosc=12MHz用T1定時。試編程由P1.0和P1.1引腳分別輸出周期為2ms和500us的方波。
2-9 什么是中斷?其主要功能是什么?
2-10 什么是中斷優(yōu)先級?中斷優(yōu)先處理的原則是什么?
2-11 試編寫一段對中斷系統(tǒng)初始化的程序,使之允許,,T0,串行口中斷,且使T0中斷為高優(yōu)先級中斷。
第三章 單片機指令系統(tǒng)
3-1 設(shè)內(nèi)部RAM中59H單元的內(nèi)容為50H,寫出當執(zhí)行下列程序段后寄存器A,R0和內(nèi)部RAM中50H,51H單元的內(nèi)容為何值?
MOVA, 59H
MOVR0, A
MOVA, #00H
MOV@R0, A
MOVA, #25H
MOV51H, A
MOV52H, #70H
3-2 已知(A)=83H,(R0)=17H,(17H)=34H。請寫出執(zhí)行完下列程序段后A的內(nèi)容。
ANLA,#17H
ORL17H, A
XRLA, @R0
CPLA
3-3 使用位操作指令實現(xiàn)下列邏輯操作,要求不得改變未涉及位的內(nèi)容。
(1)使ACC.0置1;
(2)清除累加器高4位;
(3)清除ACC.3,ACC.4, ACC.5, ACC.6。
3-4 試編寫程序,將內(nèi)部RAM的20H,21H,22H三個連續(xù)單元的內(nèi)容依次存入2FH,2EH,和2DH中。
3-5 編寫兩個16位數(shù)的減法:6F5DH-13B4H,結(jié)果存入內(nèi)部RAM的30H,31H單元,30H存差的低八位。
3-6 兩個四位BCD碼相加,被加數(shù)和加數(shù)分別存于50H,51H,52H,53H單元中(次序為千位、百位在低地址中,十位、個位在高地址中),和數(shù)存放在54H,55H和56H中(56H用來存放最高位的進位),試編寫加法程序。
3-7 設(shè)指令SJMP rel中的rel=7EH,并假設(shè)該指令存放在2114H和2115H單元中。當該條指令執(zhí)行后,程序?qū)⑻D(zhuǎn)到何地址?
3-8 已知SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26H)=56H。問此時執(zhí)行“RET”指令以后,SP=? PC=?
3-9 簡述轉(zhuǎn)移指令AJMP addr11,SJMP rel, LJMP addr16及JMP @A+DPTR的應(yīng)用場合。
3-10 試分析下列程序段,當程序執(zhí)行后,位地址00H,01H中的內(nèi)容為何值?P1口的8條I/0線為何狀態(tài)?
CLRC
MOVA,#66H
JCLOOP1
CPLC
SETB01H
LOOP1:ORLC,ACC.0
JBACC.2,LOOP2
CLR00H
LOOP2:MOVP1,A
┇
第四章 匯編語言程序設(shè)計
4-1 從內(nèi)部存儲器20H單元開始,有30個數(shù)據(jù)。試編一個程序,把其中的正數(shù)、負數(shù)分別送5H和71H開始的存儲單元,并分別記下正數(shù)、負數(shù)的個數(shù)送50H和70H單元。
4-2 以BUF1為起始地址的外存儲區(qū)中,存放有16個單字節(jié)無符號二進制數(shù),試編一程序,求其平均值并送BUF2單元
4-3 在DATA1單元中有一個帶符號8位二進制數(shù)x。編一程序,按以下關(guān)系計算y值,送DATA2單元。
Y=x+5,x>0 Y=x,x=0 Y=x-5,x<0 4-4 試編寫延時2ms的程序
4-5 用查表程序求0~8之間整數(shù)的立方。
4-6 編寫有6個命令鍵的散轉(zhuǎn)程序。鍵號為0、1、2、3、4、5;
6個鍵A、B、C、D、1、2的ASCII碼放在累加器A中。
評論