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