实验三:数据区传送子程序设计
院(系):电子工程学院
课程名称:单片机原理及应用 日期:
4.3.1 实验目的
1. 掌握汇编语言指令的使用规范。
2. 掌握汇编语言程序设计方法。
3. 掌握MCS-51单片机的存储器结构。
4. 掌握单片机中数据存储形式。
4.3.2 实验预习
1.熟悉Keil 集成编译环境的使用方法。
2. 复习单片机指令系统。
3. 复习利用Keil 集成编译环境查看单片机存储器状态的方法。
4.3.3 实验原理
本实验需完成数据块的移动,用循环和分支程序完成,循环次数控制可用DJNZ 指令,分支可用条件判断指令。 4.3.4 预作实验任务
1. 补全程序以完成程序功能。
程序功能:根据R6的值给R7赋值:
?????<-=>=0
61060
0617R R R R MOV A,R6
;取出R6 COMP
;R6=0则转移到COMP ACC.7,POSI
;R6>0则转移到POSI MOV A,
;R6<0则R7=-1(0FFH ) SJMP COMP
POSI:MOV A,
;R6>0则R7=1
COMP:MOV R7, ;保存结果
2. 补全程序以完成程序功能。
程序功能:求1~10的累加和,结果存放到R7:
MOV A, ;A清零
MOV R0,#01H ;R0赋初值
MOV R7, ;设置循环次数
NEXT: ADD A,
INC
DJNZ ,NEXT
MOV R7, ;保存结果
3. 编写程序,将内部数据存储器20H~3FH这32个字节奇数地址的数据全部设为55H;偶数地址的数据全部设为0AAH。
4. 在项目3的基础上,编写程序,将20H~3FH的数据按顺序存放到40H~5FH。
5. 在项目3的基础上,编写程序,将20H~3FH的数据按逆序存放到
5FH~40H。
4.3.5 实验任务
编写程序,用伪操作指令给程序存储器0200H~023FH这32个字节任意赋值,然后从0200H单元开始查找,将找到的正数按顺序存放到内部数据存储器20H开始的存储区,将找到的负数按顺序存放到40H开始的存储区。
4.3.6 实验步骤
1.使用Keil C51软件建立工程,编辑、编译程序,程序代码如下:
3.用Keil软件运行程序,并查看内部数据存储器的状态。4.运行程序,排除程序错误。
5.记录实验结果并分析。