新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51指令系統(2)

        51指令系統(2)

        作者: 時間:2016-11-26 來源:網絡 收藏
        編程1:將存于內部RAM地址20H~25H的6位非壓縮BCD碼轉換為對應的ASCII碼依次存至30H開始的連續內部RAM單元中。

        本文引用地址:http://www.104case.com/article/201611/321801.htm

        分析:非壓縮BCD碼00H、01H、02H、…、09H對應ASCII碼30H、31H、32H、…、39H,兩者差為30H;

        程序如下:

        LL: MOV R0,#20H;源數據串開始地址裝入R0

        MOV R1,#30H;目的數據串開始地址裝入R1

        MOV R2,#6;循環次數裝入R2

        L0:MOV A,@R0;取一字節非壓縮BCD碼

        ORL A,30H;轉化為對應ASCII碼

        MOV @R1,A;保存至對應目的位置

        INC R0;修改源數據地址以指向下一位置

        INC R1;修改目的數據地址指向下一位置

        DJNZ R2,L0;循環進行下一字節的處理

        RET;處理結束,程序返回

        編程2:實現將0~49之間的偶數依次存于內部RAM地址20H開始的字節單元,將奇數依次存于內部RAM地址40H開始的字節單元。

        程序如下:

        LL: MOV R0,#20H;偶數存放開始地址裝入R0

        MOV R1,#40H;奇數存放開始地址裝入R1

        CLR A;起始數碼=0

        L0:MOV A,@R0;存放一個偶數

        INC A;數碼加1

        MOV A,@R1;存放一個奇數

        INC A;數碼加1

        INC R0;修改偶數存放地址指針指向下一位置

        INC R1;修改奇數存放地址指針指向下一位置

        CJNE A,#50,L0 ;是否所有數碼都已放完,未完則繼續循環

        RET;工作完成,程序返回

        編程3:實現5字節10位壓縮BCD碼加法。設兩個加數分別存放于內部RAM地址40H和45H開始的字節單元(低位字節在前),相加結果存放于內部RAM地址4AH開始的字節單元,不考慮超出5字節壓縮BCD碼存儲范圍以外的進位。

        程序如下:

        LL: MOV R0,#40H;加數A的開始地址裝入R0

        MOV R1,#45H;加數B的開始地址裝入R1

        MOV R2,#4AH;和數存放開始地址裝入R2

        MOV R3,#5;循環次數裝入R3

        CLR C;初始清零CY

        L0:MOV A,@R0;取加數A當前字節

        ADDC A,@R1;加上加數B當前字節,通過帶進位加法考慮低位字節可能的進位

        AD A;調整運算結果為BCD碼,可能的進位保存在CY中(以下的指令執行均不影響CY)

        XCH A,R2;以下三條交換指令交換和數指針到R1,加數B指針到R2

        XCH A,R1

        XCH A,R2

        MOV @R1,A;保存和數當前字節

        XCH A,R2;以下三條交換指令恢復加數B指針到R1,和數指針到R2

        XCH A,R1

        XCH A,R2

        INC R0;修改加數A存放地址指針指向下一位置

        INC R1;修改加數B存放地址指針指向下一位置

        INC R2;修改和數存放地址指針指向下一位置

        DJNZ R3,L0;循環次數減1,若不為0則繼續循環

        RET;工作結束,程序返回



        關鍵詞: 51指令系

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 右玉县| 巨鹿县| 大渡口区| 吕梁市| 女性| 洛阳市| 乌恰县| 公主岭市| 中山市| 荔波县| 崇文区| 宝清县| 上蔡县| 东明县| 沁阳市| 抚顺市| 温州市| 嘉义县| 西安市| 泽库县| 华蓥市| 竹山县| 三河市| 红河县| 旌德县| 读书| 普格县| 淮北市| 昌宁县| 射阳县| 宁远县| 栾城县| 闽清县| 洪江市| 门头沟区| 饶河县| 鲁山县| 开平市| 喜德县| 华蓥市| 德庆县|