51单片机汇编程序集.docx

上传人:b****5 文档编号:2866859 上传时间:2022-11-16 格式:DOCX 页数:45 大小:21.35KB
下载 相关 举报
51单片机汇编程序集.docx_第1页
第1页 / 共45页
51单片机汇编程序集.docx_第2页
第2页 / 共45页
51单片机汇编程序集.docx_第3页
第3页 / 共45页
51单片机汇编程序集.docx_第4页
第4页 / 共45页
51单片机汇编程序集.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

51单片机汇编程序集.docx

《51单片机汇编程序集.docx》由会员分享,可在线阅读,更多相关《51单片机汇编程序集.docx(45页珍藏版)》请在冰豆网上搜索。

51单片机汇编程序集.docx

51单片机汇编程序集

51单片机汇编程序集

1、片内RAM初始化子程序

2、片外RAM初始化子程序

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

4、内部RAM数据复制程序

5、外部RAM数据复制程序

6、外部RAM数据复制程序

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

8、限幅滤波程序

9、中位值滤波程序

10、N点算术平均滤波

;片内RAM初始化子程序

IBCLR:

MOVA,R0

MOVR1,A

CLRA

IBC1:

MOV@R1,A

INCR1

DJNZR7,IBC1

RET

;片外RAM初始化子程序

EBCLR1:

MOVA,ADDPL

MOVDPL,A

MOVA,ADDPH

MOVDPH,A

CLRC

EBC11:

MOVX@DPTR,A

INCDPTR

DJNZR7,EBC11

RET

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

EBCLR2:

MOVA,ADDPL

MOVDPL,A

MOVA,ADDPH

MOVDPH,A

MOVA,R7

JZEBC21

INCR6

EBC21:

CLRA

MOVX@DPTR,A

INCDPTR

DJNZR7,EBC21

DJNZR6,EBC21

RET

;内部RAM数据复制程序

;入口:

R0,R7

;占用资源:

A

;堆栈需求:

2字节

;出口:

R1

IBMOV:

MOVA,R0

ADDA,R7

MOVR0,A

MOVA,R1

ADDA,R7

MOVR1,A

IBM1:

DECR0

DECR1

MOVA,@R0

MOV@R1,A

DJNZR7,IBM1

RET

;外部RAM数据复制程序

;入口:

ADDPH,ADDPL,R7

;占用资源:

ACC

;堆栈需求:

2字节

;出口:

R0,R1

EBMOV1:

MOVA,ADDPL

ADDA,R7

MOVDPL,A

CLRA

ADDCA,ADDPH

MOVDPH,A

MOVA,R7

ADDA,R1

XCHA,R0

ADDCA,#00H

MOVP2,A

EBM11:

DECR0

CJNER0,#0FFH,EBM12

DECP2

EBM12:

DECDPL

MOVA,DPL

CJNEA,#0FFH,EBM13

DECDPH

EBM13:

MOVXA,@R0

MOVX@DPTR,A

DJNZR7,EBM11

RET

;外部RAM数据复制程序

;入口:

ADDPH,ADDPL,R6,R7

;占用资源:

ACC

;堆栈需求:

2字节

;出口:

R0,R1

EBMOV2:

MOVA,ADDPL

ADDA,R7

MOVDPL,A

MOVA,R6

ADDCA,ADDPH

MOVDPH,A

MOVA,R7

ADDA,R1

XCHA,R0

ADDCA,R6

MOVP2,A

MOVA,R7

JZEBM21

INCR6

EBM21:

DECR0

CJNER0,#0FFH,EBM22

DECP2

EBM22:

DECDPL

MOVA,DPL

CJNEA,#0FFH,EBM23

DECDPH

EBM23:

MOVXA,@R0

MOVX@DPTR,A

DJNZR7,EBM21

DJNZR6,EBM21

RET

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

;入口:

ADDPH,ADDPL,R7

;占用资源:

ACC

;堆栈需求:

2字节

;出口:

R0

ITEMOV:

MOVA,ADDPL

ADDA,R7

MOVDPL,A

MOVA,ADDPH

ADDCA,#00H

MOVDPH,A

MOVA,R0

ADDA,R7

MOVR0,A

ITEM1:

DECR0

DECDPL

MOVA,DPL

CJNEA,#0FFH,ITEM2

DECDPH

ITEM2:

MOVXA,@DPTR

MOV@R0,A

DJNZR7,ITEM1

RET

;限幅滤波程序

;入口:

A,SDAT,DELTY

;占用资源:

B

;堆栈需求:

2字节

;出口:

A

JUGFILT:

MOVB,A

CLRC

SUBBA,SDAT

JNCJUGFT1

CPLA

INCA

JUGFT1:

SETBA

SUBBA,#DELTY

JNCJUGFT3

MOVA,SDAT

RET

JUGFT3:

MOVA,B

MOVSDAT,A

RET

;中位值滤波程序

;入口:

ADDPH,ADDPL,N

;占用资源:

ESELSORT

;堆栈需求:

4字节

;出口:

A

MEDFILT:

LCALLESELSORT

MOVA,N

CLRC

RRCA

ADDA,ADDPL

MOVDPL,A

MOVA,ADDPH

MOVDPH,A

JNCMEDFT1

INCDPH

MEDFT1:

MOVXA,@DPTR

RET

;N点算术平均滤波

;入口:

ADDPH,ADDPL,N

;占用资源:

B,R3,R4

;堆栈需求:

2字节

;出口:

A

AVFILT:

MOVA,ADDPL

MOVDPL,A

MOVA,ADDPH

MOVDPH,A

CLRA

MOVR3,A

MOVR4,A

MOVR7,N

AVFT1:

MOVXA,@DPTR

INCDPTR

ADDA,R4

MOVR4,A

JNCAVFT2

INCR3

AVFT2:

DJNZR7,AVFT1

MOVR7,N

MOVR2,#00H

LCALLNDIV31

MOVA,R4

RET

11、N点加权平均滤波

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

13、双字节取补程序

14、N节取补程序

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

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

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

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

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

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

;N点加权平均滤波

;入口:

ADDPH,ADDPL,N

;占用资源:

B,R3,R4

;堆栈需求:

2字节

;出口:

A

QAVFILT:

CLRA

MOVR3,A

MOVR4,A

MOVR7,N

MOVP2,ADDPH

MOVR1,ADDPL

MOVDPTR,#QAVTAB

QAVFT1:

MOVCA,@A+DPTR

MOVB,A

MOVXA,@R1

INCDPTR

INCR1

MULAB

ADDA,R4

MOVR4,A

MOVA,B

ADDCA,R3

MOVR3,A

DJNZR7,QAVFT1

MOVA,R4

JNBACC.7,QAVFT2

INCR3

QAVFT2:

MOVA,R3

RET

QAVTAB:

DB

;一阶加权滞后滤波程序

;入口:

A,DELTY

;占用资源:

B,R3,R4

;堆栈需求:

2字节

;出口:

A

BQFILT:

MOVB,A

CLRA

MOVDPTR,#ABTAB

MOVCA,@A+DPTR

MULAB

MOVR4,A

MOVR3,B

MOVA,#01H

MOVCA,@A+DPTR

MOVB,DELTY

MULAB

ADDA,R4

MOVR4,A

MOVA,B

ADDCA,R3

MOVR3,A

MOVA,R4

JNBACC.7,FT1

INCR3

FT1:

MOVA,R3

MOVDELTY,A

RET

BQTAB:

DB80H,80H

;双字节取补程序/(R3R4)=(R3R4)

;入口:

R3,R4

;占用资源:

ACC

;堆栈需求:

2字节

;出口:

R3,R4

CMPT:

MOVA,R4

CPLA

ADDA,#01H

MOVR4,A

MOVA,R3

CPLA

ADDCA,#00H

MOVR3,A

RET

;N节取补程序/([R0])=([R0])

;入口:

R0,R7

;占用资源:

ACC,B

;堆栈需求:

2字节

;出口:

R0

NCMPTN:

MOVB,R0

SETBC

NCPT1:

MOVA,@R0

CPLA

ADDCA,#00H

MOV@R0,A

INCR0

DJNZR7,NCPT1

MOVR0,B

RET

;双字节无符号数加法程序(R3R4+R6R7)=(R3R4)

;入口:

R3,R4,R6,R7

;占用资源:

ACC

;堆栈需求:

2字节

;出口:

R3,R4,CF

NADD:

MOVA,R4

ADDA,R7

MOVR4,A

MOVA,R3

ADDCA,R6

MOVR3,A

RET

;N字节无符号数加法程序([R0]+[R1])=([R0])

;入口:

R0,R1,R7

;占用资源:

ACC,B

;堆栈需求:

2字节

;出口:

R0,CF

NADDN:

MOVB,R0

CLRC

NADN1:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR7,NADN1

MOVR0,B

RET

;双字节无符号数减法程序(R3R4-R6R7)=(R3R4)

;入口:

R3,R4,R6,R7

;占用资源:

ACC

;堆栈需求:

2字节

;出口:

R3,R4

NSUB:

MOVA,R4

CLRC

SUBBA,R7

MOVR4,A

MOVA,R3

SUBBA,R6

MOVR3,A

RET

;N字节无符号数减法程序([R0]-[R1])=([R0])

;入口:

R0,R1,R7

;占用资源:

ACC,B

;堆栈需求:

2字节

;出口:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1