单片机实验报告一.pdf

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

单片机课程实验报告

汇编程序

班级:

姓名:

学号:

一、实验名称

实验1:数据排列仿真实验

二、实验目的

1、掌握仿真软件keil51的使用

2、熟练使用指令编写调试程序

3、掌握算法,程序结构

三、使用工具

1、硬件:笔记本电脑

2、软件:keil51仿真系统

四、软件使用方法

(1)界面

(2)建立工程

1.打开Keil4,新建一个工程。

2.新建一个文件,并将之另存为扩展名为.asm的文件,然后将之

添加到当前的工程中。

(3)编程

1.编辑该文件,输入汇编程序源代码。

2.对该文件进行汇编,如有错误转入步骤1进行修改。

3.对整个工程进行二进制文件生成,如有错误转入步骤1进行修改。

(4)调试

调试该工程,可用单步、单步跟踪、非全速断点、全速断点、连

续执行功能调试该程序,直到符合程序设计要求为止。

五、算法原理

先利用循环结构把数字写入地址,然后利用冒泡排序对数字进行排序。冒泡

排序的原理:程序重复地走访过要排序的元素列,依次比较两个相邻的元素,如

果顺序错误(错误指降序排列,如z排在a前面)就把他们交换过来。走访元素

的工作要重复地进行直到没有相邻元素需要交换,此时元素就是按升序排列了。

数字比较过程由一个循环嵌套完成,即一个外循环,一个内循环。

六、程序结构框图

七、源程序

;题目要求:30H~43H存20个数,编程实现升序排列,30h存最小,43h存最大,

ORG0000H

MOVR0,#30H;30h-r0

MOVR7,#20D;20d-r7

MOVA,#56H;56h-a

LOOP:MOV@R0,A;a-((r0))

DECA;a-1

INCR0;r0+1

DJNZR7,LOOP;r7-1!=0,跳转loop。以上为循环给数程序

START:

MOVR7,#19D;外循环初始值

LOOP0:MOVR0,#30H;数字存储起始单元

MOVA,R7;将外循环的次数写入A

MOVR6,A;A的内容给r6,r6为内循环次数

LOOP1:MOVA,@R0;r0指向的内容给A

INCR0;r0加一

CLRC;进位标志清零(没有指令CJNEA,@R0,REL0)

MOVR1,A;保护A的内容

SUBBA,@R0;累加器-R0指向内容,带借位(已清0)

JNCjxj;进位为0跳转到jxj(低字节地址内容小于高字节地址

内容时不进行换位)

LOOP2:DJNZR6,LOOP1;内循环计数减一,不为0跳转LOOP1

DJNZR7,LOOP0;外循环减一,不为0跳转LOOP0

SJMP$

jxj:MOVA,R1;取出r1保护的内容(换位程序,jxj是我名字首字母缩写)

MOVR2,A;把A的内容(大数)送r2保护

MOVA,@R0;将r0指向的内容(小数)给A

DECR0;r0存的地址减一

MOV@R0,A;将A的内容(小数)给r0所存地址指向的内容

INCR0;r0所存地址加一

MOVA,R2;将r2(大数)给A

MOV@R0,A;将A(大数)给r0指向地址的内容

AJMPLOOP2;跳转loop2

END

八、程序调试方式

1、汇编

在keil中将文本后缀改为.asm程序即可自动识别汇

文档评论(0)

各类考试卷精编 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档