c8051f单片机汇编语言,51单片机的汇编程序库

下面是一些51单片机汇编语言编程常用到的子程序代码库

9eacd4938c5326896dce195824e94023.png

1、片内RAM初始化子程序

2、片外RAM初始化子程序

3、片外RAM初始化子程序(双字节个单元)

4、内部RAM数据复制程序

5、外部RAM数据复制程序

6、外部RAM数据复制程序

7、外部RAM数据复制到内部RAM程序

8、限幅滤波程序

9、中位值滤波程序

10、N点算术平均滤波

11、N点加权平均滤波

12、一阶加权滞后滤波程序

13、双字节取补程序

14、N节取补程序

15、双字节无符号数加法程序

16、N字节无符号数加法程序

17、双字节无符号数减法程序

18、N字节无符号数减法程序

19、单字节无符号数乘法程序

20、单字节无符号数乘法程序

21、单字节无符号数乘法程序

22、双字节无符号数乘法程序

23、双字节无符号数乘法程序

24、N字节无符号数乘法程序

25、单字节无符号除法程序

26、单字节无符号除法程序

27、双字节无符号除法程序

28、N字节无符号除法程序(组合)

29、N字节无符号除法程序

30、N字节数据左移程序

31、原码有符号双字节减法程序

32、原码有符号双字节加法程序

33、原码有符号双字节乘法程序

34、原码有符号双字节除法程序

35、单字节顺序查找程序

36、单字节顺序查找程序

37、双字节字符串顺序查找程序

38、双字节字符串顺序查找程序

39、N字节字符串顺序查找程序

40、单字节最值查找程序

41、浮点数顺序查找程序

42、浮点数最值查找程序

43、单字节折半查找程序

;片内RAM初始化子程序

IBCLR :MOV A,R0

MOV R1,A

CLR A

IBC1 :MOV @R1,A

INC R1

DJNZ R7,IBC1

RET

;片外RAM初始化子程序

EBCLR1 :MOV A,ADDPL

MOV DPL,A

MOV A,ADDPH

MOV DPH,A

CLR C

EBC11 :MOVX @DPTR,A

INC DPTR

DJNZ R7,EBC11

RET

;片外RAM初始化子程序(双字节个单元)

EBCLR2 :MOV A,ADDPL

MOV DPL,A

MOV A,ADDPH

MOV DPH,A

MOV A,R7

JZ EBC21

INC R6

EBC21 :CLR A

MOVX @DPTR,A

INC DPTR

DJNZ R7,EBC21

DJNZ R6,EBC21

RET

;内部RAM数据复制程序

;入口 :R0,R7

;占用资源:A

;堆栈需求:2字节

;出口 :R1

IBMOV :MOV A,R0

ADD A,R7

MOV R0,A

MOV A,R1

ADD A,R7

MOV R1,A

IBM1 :DEC R0

DEC R1

MOV A,@R0

MOV @R1,A

DJNZ R7,IBM1

RET

;外部RAM数据复制程序

;入口 :ADDPH,ADDPL,R7

;占用资源:ACC

;堆栈需求:2字节

;出口 :R0,R1

EBMOV1 :MOV A,ADDPL

ADD A,R7

MOV DPL,A

CLR A

ADDC A,ADDPH

MOV DPH,A

MOV A,R7

ADD A,R1

XCH A,R0

ADDC A,#00H

MOV P2,A

EBM11 :DEC R0

CJNE R0,#0FFH,EBM12

DEC P2

EBM12 :DEC DPL

MOV A,DPL

CJNE A,#0FFH,EBM13

DEC DPH

EBM13 :MOVX A,@R0

MOVX @DPTR,A

DJNZ R7,EBM11

RET

;外部RAM数据复制程序

;入口 :ADDPH,ADDPL,R6,R7

;占用资源:ACC

;堆栈需求:2字节

;出口 :R0,R1

EBMOV2 :MOV A,ADDPL

ADD A,R7

MOV DPL,A

MOV A,R6

ADDC A,ADDPH

MOV DPH,A

MOV A,R7

ADD A,R1

XCH A,R0

ADDC A,R6

MOV P2,A

MOV A,R7

JZ EBM21

INC R6

EBM21 :DEC R0

CJNE R0,#0FFH,EBM22

DEC P2

EBM22 :DEC DPL

MOV A,DPL

CJNE A,#0FFH,EBM23

DEC DPH

EBM23 :MOVX A,@R0

MOVX @DPTR,A

DJNZ R7,EBM21

DJNZ R6,EBM21

RET

;外部RAM数据复制到内部RAM程序

;入口 :ADDPH,ADDPL,R7

;占用资源:ACC

;堆栈需求:2字节

;出口 :R0

ITEMOV :MOV A,ADDPL

ADD A,R7

MOV DPL,A

MOV A,ADDPH

ADDC A,#00H

MOV DPH,A

MOV A,R0

ADD A,R7

MOV R0,A

ITEM1 :DEC R0

DEC DPL

MOV A,DPL

CJNE A,#0FFH,ITEM2

DEC DPH

ITEM2 :MOVX A,@DPTR

MOV @R0,A

DJNZ R7,ITEM1

RET

;限幅滤波程序

;入口 :A,SDAT,DELTY

;占用资源:B

;堆栈需求:2字节

;出口 :A

JUGFILT :MOV B,A

CLR C

SUBB A,SDAT

JNC JUGFT1

CPL A

INC A

JUGFT1 :SETB A

SUBB A,#DELTY

JNC JUGFT3

MOV A,SDAT

RET

JUGFT3 :MOV A,B

MOV SDAT,A

RET

;中位值滤波程序

;入口 :ADDPH,ADDPL,N

;占用资源:ESELSORT

;堆栈需求:4字节

;出口 :A

MEDFILT :LCALL ESELSORT

MOV A,N

CLR C

RRC A

ADD A,ADDPL

MOV DPL,A

MOV A,ADDPH

MOV DPH,A

JNC MEDFT1

INC DPH

MEDFT1 :MOVX A,@DPTR

RET

;N点算术平均滤波

;入口 :ADDPH,ADDPL,N

;占用资源:B,R3,R4

;堆栈需求:2字节

;出口 :A

AVFILT :MOV A,ADDPL

MOV DPL,A

MOV A,ADDPH

MOV DPH,A

CLR A

MOV R3,A

MOV R4,A

MOV R7,N

AVFT1 :MOVX A,@DPTR

INC DPTR

ADD A,R4

MOV R4,A

JNC AVFT2

INC R3

AVFT2 :DJNZ R7,AVFT1

MOV R7,N

MOV R2,#00H

LCALL NDIV31

MOV A,R4

RET

;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 :MOVC A,@A+DPTR

MOV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值