单片机实用程序.docx

  1. 1、本文档共125页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1.1.1 两个半字节数合并成一个一字节数字程序RZD-YZD

1.功能

将两个半字节数存放于内部RAM的40H、41H单元,两个半字节数合并成一个一字节数后,结果存入50H单元中。

2.程序清单

RZD-YZD:

MOV

R1,#40H

设置R1为数据指针

MOV

A,@R1

取出第一单元中的内容

ANL

A,#0FH

取第一数的低半字节

SWAP

A

移至高半字节

INC

R1

修改数据指针

MOV

A,@R1

取第二个单元中的内容

ANL

A,#0FH

取第二个数的低半字节

ORL

A,@R1

拼字

MOV

50H,A

存放结果

RET

1.1.2双字节数取补子程序D-QBSUB

1.功能

把R0寄存器所指的NUMB1二字节数取补后返送到R0寄存器所指的二单元中。

该程序使用了A累加器和R0寄存器等资源。

2.程序清单

D-QBSUB:

MOV

R0,#NUMB1

设置起始地址

MOV

A,@R0

读低位字节且取反加1

CPL

A

ADD

A,#01H

MOV

@R0,A

INC

R0

MOV

A,@R0

读高位字节且取反加进位位

CPL

A

ADDC

A,#00H

MOV

@R0,A

RET

1.1.3双字节补码(或原码)加法子程序D-BYJSUB

功能

把R0寄存器所指的NUMB1二字节补码(或原码)数与R1寄存器所指的NUMB2二字节补码(或原码)数对应相加后,

送回R0寄存器所指的二单元中。

2.程序清单:

D-BYJSUB:

MOV

R0,#NUMB1

设置被加数起始地址(低位字节)

MOV

R1,#NUMB2

设置加数起始地址(低位字节)

MOV

A,@R0

读被加数低位字节

ADD

A,@R1

加低位字节

MOV

@R0,A

INC

R0

INC

R1

MOV

A,@R0

读被加数高位字节

ADDC

A,@R1

加高位字节及进位位

MOV

@R0,A

RET

1.1.4两个无符号双字节数相加子程序DW-ADD1

1.功能

将被加数存放于内部RAM的40H(高位字节)、41H(低位字节)单元中,加数存放于50H(高位字节)、51H(低位字节

)单元中,结果(和数)回送到40H(高位字节)和41H(低位字节)单元中。

该程序使用了A累加器和R0、R1寄存器等资源。

2.程序清单

QW-ADD1:

CLR

C

进位标志位CY清0

MOV

R0,#41H

被加数地址送数据指针R0

MOV

R1,#51H

加数地址送数据指针R1

MOV

A,@R0

被加数低位字节的内容送入A

ADD

A,@R1

两个低字节相加

MOV

@R0,A

低字节的和存入被加数低字节中

DEC

R0

指向加数高位字节

DEC

R1

指向加数高位字节

MOVADDCMOVRET

A,@R0A,@R1@R0,A

; 被加数高位字节

; 两个高位字节带CY相加

; 高位字节的和送被加数高位字节

1.1.5多字节无符号加法子程序D-WADD11.功能

在条工程序前,被加数放在以R0位起始地址的单元(低字节在前)中,加数放在以R1为起始地址的单元(低字节在前)中,字节数放在R3中。

该程序使用了A累加器和R0、R1、R3寄存器等资源。

2.程序清单

D-WADD1:

PUSH

PSW

保护标志寄存器内容

CLR

C

进位位清0

MOV

R3,#00H

ADD10:

MOV

A,@R0

相加

ADDC

A,@R1

MOV

@R0,A

INC

R0

地址值增1

INC

R1

INC

R3

字节数增1

DJNZ

R2,ADD10

所有字节未加完继续,否则向下执行

JNC

ADD20

无进位去ADD20,有进位向下执行

MOV

@R0,#01H

和的最高字节地址内容为01H

INC

R3

字节数增1

ADD20:

POP

PSW

恢复标志寄存器内容

RET

返回主程序

1.1.6多字节无符号整数加法子程序D-WADD2

1.功能

将(R0)指出的n字节无符号整数和(R1)指出的n字节无符号整数相加,和数存放于(R0)所指的RAM单元中,其中低位字节在前,R3中位字节数n。

该程序使用了A累加器与R0、R1、R3、R4、R7寄存器及进位标志位CY等资源。

2.程序清单

D-WADD2:

MOV

A,R0

将指针R0暂存到R4中

MOV

A,R3

MOV

R7,A

CLR

C

SA20I

MOV

A,@R0

执行加法运算

ADDC

A,@R1

文档评论(0)

dqy118 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海海滋实业有限公司
IP属地上海
统一社会信用代码/组织机构代码
91310115MA7DL1JF2N

1亿VIP精品文档

相关文档