全球旧事资料 分类
实验七循环程序设计
一、实验目的1.进一步熟悉MCS51指令系统,了解汇编语言程序设计的基本结构。2.掌握循环结构程序设计的方法,弄清单重及多重循环控制过程。3.通过设计软件延时程序,学会计算内外循环次数以及循环体的循环时间。二、实验内容1.设计一个循环程序具体要求:将内部RAM中30H至32H的内容右移四位,程序流程图如图23所示。2.设计循环程序:冒泡法排序。具体要求:设单片机8031外部RAM从3600H单元开始存放10个无符号数,试编写程序能使它们按从大到小的顺序排列(最大数存放在3600H单元)程序流程图如图24所示。。3.自选题目设计。三、实验步骤1.输入预先编好的程序,汇编成功;2.用自动单步方式执行程序,观察循环计数器的变化情况。3.用断点运行方式调试排序程序,记录排序过程。四、实验报告要求1.编出相应的循环结构程序,列出程序清单,并且会计算循环体的循环时间。2.写出自选题目的设计内容、程序清单及运行结果。五、思考题1.程序中循环时间由什么来控制?答:循环的时间由循环块内每一条命令的周期共同来确定。2.若用DJNZ或CJNE指令来控制循环,编写程序有什么不同?答:DJNZ命令是减1判别命令,需要在循环次数上加1来完成循环控制;CJNE不需要。六、参考流程图
开始
4→R73→R60→CY30H→R0R0→A右移A一次A→R0R01→R0NR610YNR710Y结束
f图23循环结构程序流程图
七、循环结构程序参考清单:循环结构程序参考清单:1.三个字节右移四位:.三个字节右移四位:赋初值:赋初值:分类MOVRR30MOVCLRMOV30HRR31MOVRRCMOVINCDJNZRR31AR0,AR0R6,减1判别跳转到DJNZ命令,减1判别是否为零。为零则进行下名的命令,不为零则跳转到其他命令行命令行R7,4R6,3CR0,A,R0命令结果备注PC指针C0x0000C0x0002C0x0004C0x0005C0x0007C0x0008C0x0009C0x000A
C0x000B
命令行
循环中间结果
C0x0007C0x000B
循环最终结果DJNZRR30R7,减1判别跳转到DJNZ命令,减1判别是否为零。为零则进行下名的命令,不为零则跳转到其他命令行
C0x000C
C0x000D
命令行
循环中间结果
C0x0002C0x000C
循环最终结果
C0x000D
fSJMP

C0x000F
1冒泡法排序:冒泡法排序:赋值:赋值:分类命令行MOV00HMOV36HMOV101LOOP0:MOV00HMOV01HMOVR2CLRLOOP1MOVXMOVMOVXPSW,P2,R2,R0,R1,03H,7FHA,R030H,AA,R1进行下面的语句判断A累加器内容与30H内内容是否相等,不等则跳转到LOOP2命令行;相r
好听全球资料 返回顶部