強化指令20:清零指令
1,CLR A ;A中內容清零
2,CLR C ;進位標誌位清零
3,CLR bit;直接尋址位清零
小知識點補充65
1,在變址尋址(基址寄存器+變址寄存器間接尋址)中,以累加器A作爲變址寄存器,以DPTR或PC作爲基址寄存器
2,串行口擴展並行口時,串口工作在方式0
3,51單片機並行I/O口信息有讀I/O口和讀鎖存器兩種方式,讀改寫操作是針對並行口中的鎖存器進行的
4,在中斷服務程序中,至少有一條中斷返回指令
5,定時器1有**三**種工作模式
6,定時器0工作在方式3時,分爲兩個獨立的8位計數器,且TH0佔用T1的狀態控制位TR1和TF1(此時T0不能作爲外部計數模式)
7,設 MCS-51單片機晶振頻率爲 12MHz,定時器作計數器使用時,其最高的輸入計數頻率爲 500KHz
8,主程序中調用子程序後返回主程序,堆棧指針 SP的值不變
9,單片機中使用 MOVX A,@R1指令, C與 P2口配合能尋址數據存儲器 1111H單元(前文有專門的例題講解)
10,下列指令判斷若 P1 口最低位爲高電平就轉 L00P,否則就執行下一句的是JB P1.0 ,L00P
11,MCS-51單片機在執行 MOVX A,@DPTR指令時,其尋址單元的地址是由P0口送低 8 位,P2口送高 8 位
12,使累加器 A的最高位置 1 的是:ORL A,#80H
13,使 R0的最高位置 0 的是:ANL R0,#7FH
14,使 R1的最高位取反的是XRL R1,#80H
15,MCS-51指令系統中,格式爲: ORG 16位地址 的指令功能是用來定義彙編程序的起始地址
16,指令 ANL A,R0的功能是:將 A與寄存器 R0的內部容按位邏輯與
17,LJMP跳轉空間最大可達到:64KB
18,在編程中使用僞指令的目的是指示和引導彙編程序進行彙編
19,8051單片機的定時器 T1用作定時方式時是由內部時鐘頻率定時,一個機器週期加1
20,8051單片機的定時器 T0用作計數方式時是由外部計數脈衝計數,下降沿加1
程序閱讀填空題22
執行下列程序後,累加器 A的內容爲:
ORG 0000H
MOV A , #00H
ADD A , #02H
MOV DPTR, #0030H
MOVC A, @A+DPTR
MOV @R0, A
SJMP $
ORG 0030H
TAB: DB 00H ,08H,51H,6H,09H,0CH
END
強化指令21:傳送指令
1,MOV @Ri,direct
2,MOV @Ri,A
3,MOV @Ri,#data
例題1:
執行如下三條指令後, 30H和31H單元的內容分別是
MOV R1,#30H
CLR A
MOV 66H,#66H
MOV 40H,#0EH
MOV @R1,40H
MOV A,R1
ADDC A,#66H
INC R1
MOV @R1,A
答案:
(30H)=0EH (31H)=96H
小知識點補充66
判斷溢出方法:最高位進位狀態異或次高位進位狀態=1,則結果溢出
程序閱讀填空題23
執行下列程序後,內部 RAM 40H單元的內容是?,A中的內容是?
ORG 0000H
MOV 40H,#00H
MOV R0,#40H
MOV A,40H
ADD A,#07H
MOVC A,@A+PC
MOV @R0,A
ORL A,#0AAH
SJMP $
TDB:DB 00H ,01H ,02H,03H,05H
END
強化指令22:LJMP跳轉指令
LJMP add16 無條件長轉移 3 2
執行過程:
add16 -> PC
例題:
MCS-51指令系統中,執行下列程序後,程序計數器 PC的內容爲:
ORG 000H
MOV DPDR,#1000
MOV A , #00H
MOV 20H ,A
LJMP 1500
END
答案:(PC)=1500
小知識點補充67
1,8051單片機的定時器 T1用作計數方式時計數脈衝是由 T1(P3.5)輸入
2,8051 單片機的機器週期爲1.5μs, 則其晶振頻率 fosc爲8MHz
3,用 8051 的定時器,若用軟啓動,應使 TOMD中的GATE位置 0
4,MCS-51單片機在同一級別裏除 INT0 外,級別最高的中斷源是定時器 T0
5,用8051的定時器T0 定時,用模式 2,則應啓動T0前向TH0、TL0置入相同的計數初值,以後不再置入
6,MCS-51單片機定時器 T0的溢出標誌 TF0,若計滿數在 CPU響應中斷後由硬件清零
7,8051響應中斷後,中斷的一般處理過程是關中斷,保護現場,開中斷,中斷服務,關中斷,恢復現場,開中斷,
中斷返回
8,執行中斷處理程序最後一句指令 RETI後程序返回到響應中斷時一句的下一句
9,MCS-51單片機響應中斷矢量地址是中斷服務程序的入口地址
10,ADC 0809芯片是 m路模擬輸入的 n 位 A/D轉換器, m=8,n=8
11,當 DAC 0832 D/A轉換器的 CS接 8031 的 P2.0 時,程序中 0832 的地址指針DPTR寄存器應置爲:
0832H或FE00H或FEF8H等
12,8051的定時 /計數器 T0 的有幾種工作模式,對各工作模式作簡單的敘述:
答:
定時/計數器 T0 的模式 :
0:13 位計數器;
1:16 位計數器;
2:8 位循環計數器;
3:2 個獨立的 8 位計數器 串行通信模式
13,8051的串行通信的有幾種工作模式,請對各工作模式作簡單的敘述:
答:
串行通信共有 4 種工作模式 ,分別是:
模式 0:同步移位寄存器;
模式 1:波特率可變的8位兩機異步通信;
模式 2:波特率固定的9位可多機的異步通信;
模式 3:波特率可變的9位可多機的異步通信
程序閱讀填空題24
執行下列程序段後:
ORG 0000H
MOV 10H,#5AH
MOV 2EH,#1FH
MOV 40H,2EH
MOV 60H,#3DH
MOV 20H,60H
MOV R1,20H
MOV A,40H
XCH A, R1
XCH A,60H
XCH A,@R1
MOV R0,#10H
XCHD A, @R0
END
問:
(A)= (10H)= (2EH)=
(40H)= (60H)=
強化指令23:取反指令
CPL A:累加器取反
CPL C:進位標誌位取反
CPL bit:直接尋址位取反
強化指令24:置1指令
1,SETB C
2,SETB bit
強化指令25:比較指令
1,CJNE A,direct,rel
2,CJNE A,#data,rel
3,CJNE Rn,#data,rel
4,CJNE @Ri,#data,rel
強化指令26:轉移指令
1,AJMP addr11
2,SJMP rel
3,LJMP addr16
4,JMP @A+DPTR
程序閱讀填空題25
已知(A)=83H,(R0)=17H,(17H)=34H,執行下列程序段後:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
問:(A)= (R0)= (17H)=
程序閱讀填空題26
ORG 0000H
MOV B,#3
MOV R0,#20H
MOV A,#0FH
INC A
MUL AB
MOV @R0,A
SETB 00H
MOV DPTR,#3000H
MOV A,@R0
MOVX @DPTR,A
DEC B
MOV DPH,B
SETB 03H
MOV A,@R0
SWAP A
DEC A
END
上述程序執行完後,回答如下問題:
(A)= (Cy)=
(DPTR)= (3000H)= (R0)=
程序閱讀填空題27
ORG 0000H
LJMP START
ORG 30H
START:
MOV SP,#66H
CLR A
MOV R2,#16
MOV R0,#20H
LOOP:
MOV @R0,A
DEC A
INC R0
DJNZ R2,LOOP
SETB 03H
MOV A,R2
MOV R0,#20H
SETB C
SUBB A,@R0
MOV P1,A
PUSH ACC
PUSH 23H
POP 23H
END
上述程序執行完後,回答如下問題:
(P1)= (Cy)=
(R0)= (23H)= (SP)=
程序閱讀填空題28
ORG 0000H
MOV SP,#65H
CLR A
MOV R0,#21H
CPL A
MOV @R0,A
DEC @R0
MOV DPTR,#1200H
DEC 21H
MOV A,@R0
MOV B,#4
INC A
DIV AB
INC B
MOV DPH,B
MOVX @DPTR,A
PUSH ACC
POP DPL
MOV A,@R0
MOVX @DPTR,A
END
上述程序執行完後,回答如下問題:
(A)= (R0)= P=
(DPTR)= (0300H)= (SP)=
題76
8051 單片機應用系統的晶體振盪器頻率爲 6MHz,請利用定時器 T1 編程實現在 P1.0 和 P1.1 引腳輸出互補(互爲反相)的、頻率爲 20Hz的方波。要求:採用中斷方式, T1 工作在方式 2 下。
解析: 20Hz方波的半週期爲 25ms,一個機器週期=2us。設定時器時間爲500us,即定時器初值=256-250=6,設置一個變量保存定時器溢出次數,當定時器溢出次數達到50次進行電平翻轉,從而實現50ms的波形輸出。
程序源碼:
PULSE BIT P1.0
PULSENOT BIT P1.1
ORG 0000H
LJMP START
ORG 001BH
LJMP ADDRT1
ORG 0030H
START:
MOV SP,#66H
MOV R7,#50
MOV TMOD,#20H
MOV TL1,#6
MOV TH1,#6
SETB ET1
SETB EA
SETB PULSE
CLR PULSENOT
SETB TR1
SJMP $
ADDRT1:
MOV TL1,#6
MOV TH1,#6
DEC R7
CJNE R7,#00,RETURN
CPL PULSE
CPL PULSENOT
MOV R7,#50
RETURN:
RETI
END
仿真圖: