首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
51单片机汇编程序集(2)
来源:本站整理  作者:佚名  2011-02-05 21:35:50



  11、N点加权平均滤波
      12、一阶加权滞后滤波程序
      13、双字节取补程序
      14、N节取补程序
      15、双字节无符号数加法程序
      16、N字节无符号数加法程序
      17、双字节无符号数减法程序
      18、N字节无符号数减法程序
      19、单字节无符号数乘法程序
      20、单字节无符号数乘法程序
      ;N点加权平均滤波
      ;入口    :ADDPH,ADDPL,N
      ;占用资源:B,R3,R4
      ;堆栈需求:2字节
      ;出口    :A
      QAVFILT  :CLR    A
                 MOV     R3,A
                 MOV     R4,A
                 MOV     R7,N
                 MOV     P2,ADDPH
                 MOV     R1,ADDPL
                 MOV     DPTR,#QAVTAB
      QAVFT1   : MOV C   A,@A+DPTR
                 MOV     B,A
                 MOV X   A,@R1
                INC    DPTR
                INC    R1
                MUL    AB
                ADD    A,R4
                 MOV     R4,A
                 MOV     A,B
                ADDC   A,R3
                 MOV     R3,A
                DJNZ   R7,QAVFT1
                 MOV     A,R4
                JNB    ACC.7,QAVFT2
                INC    R3
      QAVFT2   : MOV     A,R3
                RET
      QAVTAB   :DB
      ;一阶加权滞后滤波程序
      ;入口    :A,DELTY
      ;占用资源:B,R3,R4
      ;堆栈需求:2字节
      ;出口    :A
      BQFILT   : MOV     B,A
                CLR    A
                 MOV     DPTR,#ABTAB
                 MOV C   A,@A+DPTR
                MUL    AB
                 MOV     R4,A
                 MOV     R3,B
                 MOV     A,#01H
                 MOV C   A,@A+DPTR
                 MOV     B,DELTY
                MUL    AB
                ADD    A,R4
                 MOV     R4,A
                 MOV     A,B
                ADDC   A,R3
                 MOV     R3,A
                 MOV     A,R4
                JNB    ACC.7,FT1
                INC    R3
      FT1      : MOV     A,R3
                 MOV     DELTY,A
                RET
      BQTAB    :DB     80H,80H
       
      ;双字节取补程序 /(R3R4)=(R3R4)
      ;入口    :R3,R4
      ;占用资源:ACC
      ;堆栈需求:2字节
      ;出口    :R3,R4
      CMPT     : MOV     A,R4
                CPL    A
                ADD    A,#01H
                 MOV     R4,A
                 MOV     A,R3
                CPL    A
                ADDC   A,#00H
                 MOV     R3,A
                RET
      ;N节取补程序 /([R0])=([R0])
      ;入口    :R0,R7
      ;占用资源:ACC,B
      ;堆栈需求:2字节
      ;出口    :R0
      NCMPTN   : MOV     B,R0
                SETB   C
      NCPT1    : MOV     A,@R0
                CPL    A
                ADDC   A,#00H
                 MOV     @R0,A
                INC    R0
                DJNZ   R7,NCPT1
                 MOV     R0,B
                RET
      ;双字节无符号数加法程序 (R3R4+R6R7)=(R3R4)
      ;入口    :R3,R4,R6,R7
      ;占用资源:ACC
      ;堆栈需求:2字节
      ;出口    :R3,R4,CF
      NADD     : MOV     A,R4
                ADD    A,R7
                 MOV     R4,A
                 MOV     A,R3
                ADDC   A,R6
                 MOV     R3,A
                RET
      ;N字节无符号数加法程序 ([R0]+[R1])=([R0])
      ;入口    :R0,R1,R7
      ;占用资源:ACC,B
      ;堆栈需求:2字节
      ;出口    :R0,CF
      NADDN    : MOV     B,R0
                CLR    C
      NADN1    : MOV     A,@R0
                ADDC   A,@R1
                 MOV     @R0,A
                INC    R0
                INC    R1
                DJNZ   R7,NADN1
                 MOV     R0,B
                RET
      ;双字节无符号数减法程序 (R3R4-R6R7)=(R3R4)
      ;入口    :R3,R4,R6,R7
      ;占用资源:ACC
      ;堆栈需求:2字节
      ;出口    :R3,R4
      NSUB     : MOV     A,R4
                CLR    C
                SUBB   A,R7
                 MOV     R4,A
                 MOV     A,R3
                SUBB   A,R6
                 MOV     R3,A
                RET
      ;N字节无符号数减法程序 ([R0]-[R1])=([R0])
      ;入口    :R0,R1,R7
      ;占用资源:ACC,B
      ;堆栈需求:2字节
      ;出口    :R0,CF
      NSUBN    : MOV     B,R0
                 MOV     R7,N
                CLR    C
      NSUBN1   : MOV     A,@R0
                SUBB   A,@R1
                 MOV     @R0,A
                INC    R0
                INC    R1
                DJNZ   R7,NSUBN1
                 MOV     R0,B
                RET
      ;单字节无符号数乘法程序 (R3R4*R7)=(R2R3R4)
      ;入口    :R3,R4,R7
      ;占用资源:ACC,B
      ;堆栈需求:2字节
      ;出口    :R2,R3,R4
      NMUL21   : MOV     A,R4
                 MOV     B,R7
                MUL    AB
                 MOV     R4,A
                 MOV     A,B
                XCH    A,R3
                 MOV     B,R7
                MUL    AB
                ADD    A,R3
                 MOV     R3,A
                CLR    A
                ADDC   A,B
                 MOV     R2,A
                CLR    OV
                RET
      ;单字节无符号数乘法程序 (R2R3R4*R7)=(R5R2R3R4)
      ;入口    :R2,R3,R4,R6,R7
      ;占用资源:ACC,B
      ;堆栈需求:2字节
      ;出口    :R5,R2,R3,R4
      NMUL31   : MOV     A,R4
                 MOV     B,R7
                MUL    AB
                 MOV     R4,A
                 MOV     A,B
                XCH    A,R3
                 MOV     B,R7
                MUL    AB
                ADD    A,R3
                 MOV     R3,A
                CLR    A
                ADDC   A,B
                XCH    A,R2
                 MOV     B,R7
                MUL    AB
                ADD    A,R2
                 MOV     R2,A
                CLR    A
                ADDC   A,B
                 MOV     R5,A
                CLR    OV
                RET
      ;单字节无符号数乘法程序 (R5R2R3R4*R7)=(R7R5R2R3R4)
      ;入口    :R5,R2,R3,R4,R7
      ;占用资源:ACC,B
      ;堆栈需求:2字节
      ;出口    :R7,R5,R2,R3,R4
      NMUL41   : MOV     A,R4
                 MOV     B,R7
                MUL    AB
                 MOV     R4,A
                 MOV     A,B
                XCH    A,R3
                 MOV     B,R7
                MUL    AB
                ADD    A,R3
                 MOV     R3,A
                CLR    A
                ADDC   A,B
                XCH    A,R2
                 MOV     B,R7
                MUL    AB
                ADD    A,R2
                 MOV     R2,A
                CLR    A
                ADDC   A,B
                XCH    A,R5
                 MOV     B,R7
                MUL    AB
                ADD    A,R5
                 MOV     R5,A
                CLR    A
                ADDC   A,B
                 MOV     R7,A
                CLR    OV
                RET

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:235,414.10000 毫秒