新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機第五次作業

        單片機第五次作業

        作者: 時間:2016-11-25 來源:網絡 收藏
        作業:將4位二進制數轉換為ASCII碼
        入口:R2=4位二進制數,只取低四位。
        出口:R2=轉換后的ASCII碼
        1、先fileànew建asm文件20.asm
        BIN2ASC:MOV 10H,R2
        ANL 10H,#0FH
        PUSH 10H
        MOV A,10H
        CLR C
        SUBB A,#0AH
        POP 10H
        MOV A,10H
        JC LOOP
        ADD A,#07H
        LOOP:ADD A,#30H
        MOV R2,A
        RET
        END
        為了調試時看數據,預先在R2中賦值為7CH,所以程序前加:

        MOV R2,#7CH
        程序變為:
        MOV R2,#7CH
        BIN2ASC:MOV 10H,R2
        ANL 10H,#0FH
        PUSH 10H
        MOV A,10H
        CLR C
        SUBB A,#0AH
        POP 10H
        MOV A,10H
        JC LOOP
        ADD A,#07H
        LOOP:ADD A,#30H
        MOV R2,A
        RET
        END
        2、建新工程,Projectànewproject,選AtemlàAT89C51,導入文件20.asm。
        注意,對初學者,一個工程里只能有本程序20.asm,無關的程序要刪除,新試驗一個程序最好重新建工程,以保證一個工程里只有你要試驗的那一個程序。
        3、可見程序




        4、編譯通過后,點debug下的start/stop開始調試,step和stepover都是單步調試,step是遇到子程序或中斷也要進入進行單步調試,stepover是遇到子程序或中斷當一句一次執行完。本程序物子程序,二者是一樣的。我們執行一句得到:


        可見:R2值變為7ch.繼續執行:
        點view àmemory windows,再輸入D:10h回車,得到:





        10H處值為7CH.下一步:

        可見,10H值變為0ch,下一步:



        A中值變為0CH,下一步:


        把A與0AH相減,并使10H出棧,此時CY并未改變,仍為0。所以不跳轉。繼續執行:





        可見A中值變為13H,繼續往下執行:



        A中值變為43h,下一步:


        可見R2中值變為43h,即為0ch轉換后的ACSII碼值.


        關鍵詞: 單片機ASCII

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 阳原县| 荆门市| 浑源县| 临邑县| 安达市| 信丰县| 永昌县| 巫山县| 平安县| 上虞市| 化州市| 天等县| 永昌县| 轮台县| 皮山县| 漠河县| 玉树县| 德令哈市| 鸡东县| 台南县| 蕉岭县| 芦溪县| 抚州市| 长子县| 乃东县| 芜湖市| 囊谦县| 泰州市| 银川市| 梅河口市| 南充市| 黄山市| 水富县| 铁力市| 黄石市| 海丰县| 汕尾市| 邵东县| 洛宁县| 恩施市| 南川市|