51單片機的指令系統(tǒng)及試驗
SUBB帶借位的減法類指令
指令格式:SUBB A,#DATA;把累加器A的內(nèi)容減去立即數(shù)DATA再減去進位標志C得到的值存放到累加器A中。A-DATA-C→A
例:
SETB C; 讓累加器C置1
MOV A,#03H; A=03H
SUBB A,#01H; A=01H
INC加一指令
指令格式:INC A ;把A的內(nèi)容加1再存儲到A中。
例:
MOV A,#01H;A=01H
INC A ;A=02H
DEC 減1指令
指令格式:DEC A ;把A的內(nèi)容減1再存儲到A中。
例:
MOV A,#03H ;A=03H
DEC A ;A=02H
(3) 邏輯運算指令
CLR 清零指令
指令格式:CLR A ;把A的內(nèi)容清零再存儲到A中,A=00H。
MOV A,#00000001B;A=00000001B
CLR A ;A=00000000B
CPL 按位取反
指令格式:CPL A ;把A的內(nèi)容按位取反后再存儲到A中。
例:
MOV A,#00000001B;A=00000001B
CPL A ;A=11111110B
ANL 按位取與
指令格式:ANL A ;把A的內(nèi)容按位取與后再存儲到A中。
例:
MOV A,#01000001B ; A=00000001B
ANL A,#01001111B ; A=01000001B
ORL 按位取或
指令格式:ORL A ;把A的內(nèi)容按位取或后再存儲到A中。
例:
MOV A,#00000001B ;A=00000001B
ORL A,#10001111B ;A=10001111B
XRL 按位取異或,相同為0,不同為1。
指令格式:XRL A ;把A的內(nèi)容按位取異或后再存儲到A中。
例:
MOV A,#00000001B;A=00000001B
XRL A,#00001111B ;A=00001110B
RL左移位指令
指令格式:RL A ;把A的內(nèi)容按位左移后再存儲到A中。
例:
MOV A,#00000001B;A=00000001B
RL A ;A=00000010B
RL A ;A=00000100B
RL A;A=00001000B
RR右移位指令
指令格式:RR A ;把A的內(nèi)容按位右移后再存儲到A中。
例:
MOV A,#00000001B ;A=10000000B
RR A ;A=01000000B
RR A ;A=00100000B
RR A ;A=00010000B
(4) 位操作指令
SETB 置1指令,只能對位操作,不可以對字節(jié)操作。
指令格式:SETB BIT ;對位BIT置1。
例:
SETB P1.0 ;P1.0=1
CLR 清零指令,可對位操作,也可對字節(jié)操作。
指令格式:CLR BIT ;對位BIT置0。
SETB C
MOV A,#11110000B
CLR C
CLR A
CPL 取反,可對位操作,也可對字節(jié)操作。
指令格式:CPL BIT ;對位BIT取反。
SETB C
MOV A,#11110000B
CPL C
CPL A
(5) 控制及轉移指令
LJMP 長跳轉指令
指令格式: LJMP 標號;程序將跳轉到標號處執(zhí)行。
LCALL長調(diào)用子程序指令,常與RET配合使用。
指令格式: LCALL 標號;調(diào)用為標號的子程序去執(zhí)行。
RET子程序返回指令。
DJNZ 條件轉移類指令(自減一指令)
指令格式: LOOP:DJNZ R7,LOOP
執(zhí)行分兩步:
(1) 將R7的內(nèi)容減一后再送到R7中。
(2) 判斷R7是不是等于0
如果是等于0,順序執(zhí)行下面的程序。
如果不等于0,跳轉到標號為LOOP的地方去執(zhí)行。
例:
MOV R7,#3;送循環(huán)次數(shù)。
CLR A;對A清零。
LOOP:INC A;對A加1。
DJNZ R7,LOOP;先讓R7自減1,后判斷是否等于0。
;不等于0跳轉,等于零往下執(zhí)行。
END
運行上面的程序后累加器A的值是多少?
答案:A=03H
學完了指令系統(tǒng)現(xiàn)在我們來實戰(zhàn)一下,一個單片機最小系統(tǒng)的制作
單片機最小系統(tǒng)制作
一、確定任務
開發(fā)單片機最小系統(tǒng)
二、任務分析:
該系統(tǒng)具有的功能:
(1)具有2位LED數(shù)碼管顯示功能。
(2)具有八路發(fā)光二極管顯示各種流水燈。
(3)可以完成各種奏樂,報警等發(fā)聲音類實驗。
(4)具有復位功能。
三、功能分析
(1)兩位LED數(shù)碼管顯示功能,我們可以利用單片機的P0口接兩個數(shù)碼管來現(xiàn)這個功能;
(2)八路發(fā)光二極管顯示可以利用P1口接八個發(fā)光二極管實現(xiàn)這個功能;
(3)各種奏樂、報警等發(fā)聲功能可以采用P2.0這個引腳接一蜂鳴器來實現(xiàn)。
(4)利用單片機的第9腳可以設計成復位系統(tǒng),我們采用按鍵復位;利用單片機的18、19腳可以設計成時鐘電路,我們利用單片機的內(nèi)部振蕩方式設計的。
評論