- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验二 简单程序设计与调试1.doc
实验二 简单程序设计与调试
一 、实验目的与要求
本次实验的目的是通过给出的程序流程图,用MCS-51汇编语言编写程序,然后上机调试、执行程序。要求自己动手独立思考编程序。
二、 验验设备
Dais单片机仿真实验仪一台,计算机一台,导线若干条.
三、实验内容
1、查找相同数的个数程序设计: 在2000H~200FH查出有几个相同的数(例如可事先在2000H~200FH中设定几个零或其它数据),把统计的相同数据的个数放在2100H单元中。程序框图如图1所示。根据程序框图自己动手编写程序,然后上机编译、调试、执行。
图2 查找相同数个数程序流程图
2、无符号双字节快速乘法子程序 算法:两个双字节无符号数被分别存放在R2R3和R6R7中。可把被乘数和乘数分解为:
(R2)(R3)=(R2)?+(R3); (R6)(R7)=(R6)?+(R7)
(R2R3)(R6R7)=((R2)×+(R3))((R6)×+(R7))
=(R2)(R6)×+(R2)(R7)×+(R3)(R6)×+(R3)(R7)
将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4 R5 R6 R7中。在R2R3和R6R7中输入无符号整数,以0970H为起始地址连续或单步运行本实验程序后检查R4 R5 R6 R7中内容。程序流程见图3所示。
图2 单字节乘法
参考程序
==== 查找相同数的个数 ====
ORG 0AA0H
L5800: MOV R0,#10H ;查找16个字节
MOV R1,#00H
MOV DPTR,#2000H
L5811: MOVX A,@DPTR
CJNE A,#00H,L5816 ;取出内容与00H相等吗?
INC R1 ;取出个数加1
L5816: INC DPTR
DJNZ R0,L5811 ;未完继续
MOV DPTR,#2100H
MOV A,R1
MOVX @DPTR,A ;相同数个数送2100H
L581E: SJMP L581E
END
; ===无符号双字节快速乘法子程序 ===
ORG 0970H
QKUL: MOV A,R3
MOV B,R7
MUL AB ;R3*R7
XCH A,R7 ;R7=(R3*R7)低字节
MOV R5,B ;R5=(R3*R7)高字节
MOV B,R2
MUL AB ;R2*R7
ADD A,R5
MOV R4,A
CLR A
ADDC A,B
MOV R5,A ;R5=(R2*R7)高字节
MOV A,R6
MOV B,R3
MUL AB ;R3*R6
ADD A,R4
XCH A,R6
XCH A,B
ADDC A,R5
MOV R5,A
MOV PSW.5,C ;存CY
MOV A,R2
MUL AB ;R2*R6
ADD A,R5
MOV R5,A
CLR A
MOV ACC.0,C
MOV C,PSW.5 ;加上次加法的进位
ADDC A,B
M
文档评论(0)