新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)的指令系統(tǒng)及試驗(yàn)

        51單片機(jī)的指令系統(tǒng)及試驗(yàn)

        作者: 時(shí)間:2013-04-03 來源:網(wǎng)絡(luò) 收藏

        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指令,只能對位操作,不可以對字節(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) 控制及轉(zhuǎn)移指令
        LJMP 長跳轉(zhuǎn)指令
        指令格式: LJMP 標(biāo)號;程序?qū)⑻D(zhuǎn)到標(biāo)號處執(zhí)行。
        LCALL長調(diào)用子程序指令,常與RET配合使用。
        指令格式: LCALL 標(biāo)號;調(diào)用為標(biā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)號為LOOP的地方去執(zhí)行。
        例:
        MOV R7,#3;送循環(huán)次數(shù)。
        CLR A;對A清零。
        LOOP:INC A;對A加1。
        DJNZ R7,LOOP;先讓R7自減1,后判斷是否等于0。
               ;不等于0跳轉(zhuǎn),等于零往下執(zhí)行。
        END
        運(yùn)行上面的程序后累加器A的值是多少?
        答案:A=03H

        學(xué)完了現(xiàn)在我們來實(shí)戰(zhàn)一下,一個(gè)單片機(jī)最小系統(tǒng)的制作

        單片機(jī)最小系統(tǒng)制作

        一、確定任務(wù)
        開發(fā)單片機(jī)最小系統(tǒng)
        二、任務(wù)分析:
        該系統(tǒng)具有的功能:
        (1)具有2位LED顯示功能。
        (2)具有八路發(fā)光二極管顯示各種流水燈。
        (3)可以完成各種奏樂,報(bào)警等發(fā)聲音類實(shí)驗(yàn)。
        (4)具有復(fù)位功能。
        三、功能分析
        (1)兩位LED顯示功能,我們可以利用單片機(jī)的P0口接兩個(gè)來現(xiàn)這個(gè)功能;
        (2)八路發(fā)光二極管顯示可以利用P1口接八個(gè)發(fā)光二極管實(shí)現(xiàn)這個(gè)功能;
        (3)各種奏樂、報(bào)警等發(fā)聲功能可以采用P2.0這個(gè)引腳接一蜂鳴器來實(shí)現(xiàn)。
        (4)利用單片機(jī)的第9腳可以設(shè)計(jì)成復(fù)位系統(tǒng),我們采用按鍵復(fù)位;利用單片機(jī)的18、19腳可以設(shè)計(jì)成時(shí)鐘電路,我們利用單片機(jī)的內(nèi)部振蕩方式設(shè)計(jì)的。

        蜂鳴器相關(guān)文章:蜂鳴器原理


        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 论坛| 西乡县| 淮安市| 安徽省| 古田县| 通州区| 新源县| 南木林县| 兴宁市| 乳山市| 浦县| 林口县| 腾冲县| 桃园市| 桦南县| 广西| 敦煌市| 阿图什市| 犍为县| 湘潭市| 乡宁县| 吴桥县| 三台县| 东台市| 临夏县| 长寿区| 普陀区| 道孚县| 襄垣县| 堆龙德庆县| 峡江县| 阿鲁科尔沁旗| 青河县| 巴南区| 佛教| 上高县| 京山县| 平南县| 巴林右旗| 富源县| 凌海市|