MCS51单片机实验指导书实验4-6讲义.doc
文本预览下载声明
实验四 一般程序设计(三): 循环程序
一、 实验目的
1. 通过循环程序的设计,进一步熟悉指令系统、寻址方式。
2. 掌握循环程序的编写方法,学会合理使用不同的循环条件。
3. 进一步掌握程序调试的手段和基本方法。
二、 实验前的准备工作
1. 认真复习指令系统以及程序设计等章节。
2. 根据要求编写好源程序,并人工汇编成机器码,正确计算相对转移指令的偏移量,并分配好存储单元地址。
3. 复习实验一的内容,熟悉实验系统的操作方法。
三、 实验内容和步骤
分别手工输入实验程序的机器码(实验前已完成人工汇编),再检查程序输入是否有错,在确认无错的情况下执行程序。当执行结果不对时,应该可以比较熟练地利用设置断点和单步执行方法进行查错。
1. 求一组无符号数中的最大值
要求:该组无符号数据块的长度存放在LENGTH单元,数据块从DATA1存储单元开始存放;找出的最大值存放在MAX存储单元中。
参考程序1: 无符号数据块查找最大值程序。
ORG 2400H
MAX EQU 2FH
2400 SEAMAX: MOV DPTR,# LENGTH
24 MOVX A,@DPTR
24 MOV R7,A
24 DEC R7
24 INC DPTR
24 NEXT: MOVX A,@DPTR
24 MOV 2AH,A
24 INC DPTR
24 MOVX A,@DPTR
24 CJNE A,2AH,CHK
24 CHK: JNC LOOP
24 MOV A,2AH
24 LOOP: DJNZ R7,NEXT
24 MOV MAX,A
24 WAIT: SJMP WAIT
ORG 3000H
3000 LENGTH: DB 0AH
3001 DATA1: DB 67H,79H,15H,0E3H,72H
3006 DB 95H,0D4H,23H,0C6H,09H
END
⑴ 读懂程序,画出程序流程框图。
⑵ 完成人工汇编。
⑶ 输入目标程序和相应片内RAM单元数据。
⑷ 执行程序,并记录结果。
⑸ 如何修改程序,找出其中最小数?
*⑹ 编写一个求一组带符号数最大值的程序,并上机验证。(选做)
2. 自编一个无符号数据块排序程序
要求:编写无符号数据块排序程序,该组无符号数据块的长度存放在片内RAM LENGTH单元,紧接着,数据块从 DATA1 存储单元依次存放了 10 个无符号数;用冒泡法对该数据块进行从小到大排序。
自编程序: 无符号数据块升序排序程序
⑴ 按要求编写好源程序,并完成人工汇编和分配好存储单元地址:
ORG 2420H
LENGTH EQU 4FH
DATA1 EQU 50H
2420 SORT:
24
24
24
显示全部