RSS

PIC单片机应算子程序

来源: 作者: 时间:2007-01-05 Tag: 点击:


    ADDWF     ACCBLO
    RETURN        ;子程序返回
;****************************************
PUSH    MOVWF      S_W    ;保护W寄存器
    MOVF    STATUS,0    ;保护STATUS寄存器
    MOVWF    S_STATUS
    RETURN        ;子程序返回
;****************************************
POP    MOVF        S_STATUS,0    ;恢复STATUS寄存器
    MOVWF    STATUS
    MOVF    S_W,0    ;恢复W寄存器
    RETURN    ;子程序返回
;****************中断服务子程序区************************
AD        BCF            PIR1,ADIF    ;清AD中断标志
    ……                   ;     ;中断服务主体程序
    RETURN                    ;子程序返回
            END
 2  四则运算子程序
 2.1  16×16位定点数加、减法子程序
以下子程序实现2个16×16位有符号数加、减运算,其和或差用一个16位数表示。在子程序中,减法是通过对减数求补后再与被减数相加来实现的。因此,当程序从D_sub进入子程序时为减法,当从D_add进入子程序时为加法。
子程序的入口条件和出口条件如下:
入口条件:16位被加数/被减数存放在ACCBHI、ACCBLO中;
              16位加数/减数存放在ACCAHI、ACCALO中;
出口条件:16位和/差存放在ACCBHI和ACCBLO中。
以下为16×16位有符号数加、减法子程序。
注意:在以下注释程序中均以ACCA代替ACCAHI、ACCALO两个字节,以ACCB代替ACCBHI、ACCBLO两个字节。

    LIST            p=16f877
    INCLUDE        p16f877.inc
    ACCALO     EQU     20    ;存放加数或减数低8位
    ACCAHI     EQU     21    ;存放加数或减数高8位
    ACCBLO     EQU     23    ;存放被加数或被减数低8位
    ACCBHI     EQU     24    ;存放被加数或被减数高8位
    ORG    0X0000
START    GOTO     MAIN
;***双字节减法子程序,入口地址ACCB-ACCA,出口地址ACCB***
D_sub    CALL    NEG_A    ;求ACCA的补码
;***双字节加法子程序,入口地址ACCB+ACCA,出口地址ACCB***
D_add      MOVF     ACCALO,0    ;ACCB和ACCA低半字节相加
    ADDWF     ACCBLO
    BTFSC     STATUS,C    ;有进位否?
    INCF     ACCBHI    ;有,ACCB高字节加1,再加ACCAHI
    MOVF     ACCAHI,0    ;ACCA、ACCB高半字节相加
    ADDWF     ACCBHI
    RETURN    ;子程序返回
;************** ACCA取补子程序*****************
NEG_A    COMF     ACCALO    ;ACCALO取反加1
    INCF     ACCALO
    BTFSC     STATUS,Z    ;低8位有进位吗?
    DECF     ACCAHI    ;有,ACCAHI减1,再取反
    COMF     ACCAHI    ;否则ACCAHI直接取反
    RETURN    ;子程序返回
【校验举例1】 19531+(-16594)=2937(十进制)
化为十六进制数:4C46H+BF2EH
结果:0B79H(十六进制)
【校验举例2】 26222+3000=29222(十进制)
化为十六进制数: 666EH+0BB8H
结果:7226H(十六进制)
【例程】
MAIN    MOVLW      0X6E    ;被加数666EH送ACCB
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载