0522单片机实训教程电子教案第3章.ppt
文本预览下载声明
3.3.4 实训器材 MCS-51单片机开发系统3.3.5 程序流程及实训参考程序 实训程序流程如图3-2所示。实训参考程序如表3-5所示。 1.第4行指令 RL A 的作用是什么?它和哪一条指令相关联? 2.设单片机晶振频率为6MHz,试计算延时子程序的延时时间。修改延时时间对数字显示会有什么影响? 3.第7行指令 AJMP A0的转移范围是多少?将其翻译成机器码。 4.将程序修改成十个分支程序,在显示器上分别显示0~9十个数字。 5.分析第25行指令 LCALL DELY 的堆栈使用情况。 6.第35行指令 DJNZ R7,L1的转移条件是什么?将其翻译成机器码。提示: 执行本程序,应仔细分析每一条指令的执行过程。 结合共阴极型和共阳极型LED七段显示器,分析字形码形成过程。 3 .4 实训11 循环程序设计训练 3.4.1 实训目的 通过本节实训,主要学习下面内容: 循环程序的结构。 循环程序设计的编程方法。 循环结构程序的调试方法。 固定次数循环和非固定次数循环程序的实现。 3.4.2 实训要求 1.编制将片内RAM从30H开始的五十个单元置数据88H的程序。2.编制数组排序程序:将片内RAM50H单元开始的十个单元内数据从小到大排序。3.4.3 实训预习 进行循环程序设计,要掌握循环程序的结构。其结构一般包括以下四个部分:1.循环的初始化: 这是循环的准备部分。用于循环过程的工作单元,在这一部分设置初始值。2.循环的工作体: 它是完成处理任务的核心部分。随具体问题而定。3.循环的修改部分: 主程序调用子程序时,要注意选择调用指令,注意调用指令的调用范围。 同一个应用系统中,可能有多个子程序,每个子程序都应有唯一的入口。 子程序应具有通用性。子程序的操作对象通常采用寄存器或寄存器间接寻址方式,不采用立即寻址方式。 子程序应具有浮动性。(即子程序放在任何存储空间都能正确运行)。若子程序中有转移指令,应使用相对转移指令,不用绝对转移指令。 3.4 简答题 1.MCS-51单片机汇编语言中有哪些常用的伪指令?它们各起什么作用? 2.基本程序结构有哪几种?各有什么特点? 3.循环程序由哪几部分组成? 3.5 编写程序段,完成下列功能 1.编程将片内RAM40H~4FH单元清0。 2.编程将片内RAM 50H~5FH单元内容传送到片外RAM5000H~500FH单元。 SJMP BB1 27 80F9 203E RL A 26 23 203D 延时 LCALL DELY 25 122050 203A BB1:MOVX @R1,A 24 F3 2039 位置号 MOV A,#01H 23 7401 2037 MOVX @R0,A 22 F2 2036 8155字形口地址 MOV R1,#21H 21 7921 2034 8155字位口地址 MOV R0,#22H 20 7822 2032 BB: MOV A,20H 19 E520 2030 LJMP BB 18 022030 202D END 39 RET 38 22 205F DJNZ R5,L3 37 DDF3 205D DJNZ R6,L2 36 DEF7 205B DJNZ R7,L1 35 2059 NOP 34 00 2058 NOP 33 00 2057 L1: NOP 32 00 2056 L2: MOV R7,#100 31 7F64 2054 L3: MOV R6,#250 30 7EFA 2052 延时子程序 DELY:MOV R5,#4 29 7D04 2050 ORG 2050H 28 2050 3.3.6 实训步骤 (1)理解程序,弄清程序执行过程。 (2)将机器码送入单片机系统中,并检查是否正确。 (3)运行程序前,将00H~03H四个数中任意一个数送入20H单元中。 (4)单步执行程序,逐条分析指令,看转移指令的条件是否满足,判断是否转移或不转。 (5)观察数字在LED显示器上的移动方向,说明是程序中哪条指令控制转移的方向。 3.3.7 思考与讨论 每进行一次循环,循环的工作体部分都要作相应的修改。为使循环的操作对象按要求改变,应对每次循环的控制变量进行必要修改,以便为下次循环处理做好准备。 4.循环的控制部分: 这一部分判别和控制循环的结束与否。 3.4.4 实训器材 MCS-51单片机开发系统 3.4.5 实训参考程序 1.
显示全部