授课日期ppt模版课件

上传人:tia****nde 文档编号:66965680 上传时间:2019-01-06 格式:PPT 页数:19 大小:327.81KB
返回 下载 相关 举报
授课日期ppt模版课件_第1页
第1页 / 共19页
授课日期ppt模版课件_第2页
第2页 / 共19页
授课日期ppt模版课件_第3页
第3页 / 共19页
授课日期ppt模版课件_第4页
第4页 / 共19页
授课日期ppt模版课件_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《授课日期ppt模版课件》由会员分享,可在线阅读,更多相关《授课日期ppt模版课件(19页珍藏版)》请在金锄头文库上搜索。

1、授课日期 班次 授课时数 2 课题: 任务八 LED显示电路(二) 教学目的:掌握子程序调用和保护现场的问题 熟悉两条专门的查表指令 重点: 子程序调用和保护现场的问题 以及查表指令 难点: 现场保护的问题 教具: 多媒体 作业: 4.23 4.24 自用参考书:单片机原理及应用李朝青主编、单片机应用技术郑毛祥主编 教学过程:一、复习提问 1.描述任务LED显示电路 2.分支程序和循环程序的设计 二、新授 由任务八LED显示电路的控制程序引入本次课内容 1.子程序的概念(由实际应用中遇到带有通用性的问题引出子程序的概念) 2.子程序的结构 3.如何保护现场?(根据生活中的具体实例提出现场保护的

2、问题) 4.参数的传递方法 可利用累加器或寄存器、利用存储器、利用堆栈指针 5.两条专门的查表指令 用DPTR作基地址的查表步骤、用PC内容作基地址的查表步骤 6.程序设计举例 7.课堂小结 课后小结:,4.2 任务八 LED显示电路,4.2.4 相关知识,子程序的概念 通常把这些基本操作功能编制为程序段作为独立的子程序, 以供不同程序或同一程序反复调用。在程序中需要执行这种操作的地方放置一条调用指令, 当程序执行到调用指令, 就转到子程序中完成规定的操作, 并返回到原来的程序继 续执行下去。,子程序结构 能供调用的子程序,其结构应具备: 必须标明子程序的入口地址,又称首地址,以便程序调用 必

3、须以返回指令RET结束子程序。,4.2 任务八 LED显示电路,4.2.4 相关知识,参数传递 在使用调用指令不附带任何参数时,参数的互相传递要由设计者通过程序安排。一般可采用以下方法: 传递数据。将需传递的参数通过工作寄存器Rn或累加器A传递给子程序。即在主程序调用子程序前将参数差额主选定的工作寄存器组R0R7、累加器A中,供子程序读取或者将参数在调用前先压入堆栈,进入子程序后再从堆栈中读出。 传递地址。将要传递的参数存放在数据存储器中,将其地址通过工作寄存器R0、R1或数据指针DPTR传递,供子程序读取参数。,4.2 任务八 LED显示电路,4.2.4 相关知识,现场保护 主程序的现场保护

4、和恢复。子程序(包括中断服务程序)是个独立的程序段,在子程序执行过程中常需用到通用单元,例如:工作寄存器R0R7、累加器A、数据指针DPTR,以及有关标志、状态位等。而这个单元中的原内容在调用子程序结束之后 的主程序中仍有用,需进行保护,称现场保护。在执行完子程序并返回继续执行主程序前应恢复其原内容,称现场恢复。一般有两种现场保护/恢复方式:,4.2 任务八 LED显示电路,4.2.4 相关知识,调用前保护、返回后恢复。这种方式是在主程序逻辑的调节器用指令前进行现场保护,在调用指令之后,即返回原断点处进行恢复现场。其程序结构如下所示:,主程序 PUSH PSW ;将PSW、A、DPTR等入栈保

5、护 PUSH A PUSH B PUSH DPL PUSH DPH PUSH PSW,#10H ;选用工作寄存器组2,将0组保护,4.2 任务八 LED显示电路,4.2.4 相关知识,LCALL addr16 ;调用子程序addr16 POP DPH ;出栈 POP DPL POP B POP A POP PSW 这种结构灵活,可根据实际需要实现现场保护/恢复。,调用后保护、返回前恢复。这种结构是在子程序的开始部分进行现场保护,而在子程序的结束部分、返回指令前恢复。其程序结构如下所示:,4.2 任务八 LED显示电路,4.2.4 相关知识,;子程序 ADDR:PUSH PSW 现场保护 PUS

6、H A PUSH B PUSH DPL PUSH DPH MOV PSW,#08H ;选用工作寄存器组1,0组保护 ;子程序主体 POP DPH 现场恢复 POP DPL POP B,4.2 任务八 LED显示电路,4.2.4 相关知识,POP A POP PSW RET ;返回 这是子程序标准格式,现场保护/恢复内容固定,但程序规范、清晰。 上述两种方式可由设计者任选。,4.2 任务八 LED显示电路,4.2.4 相关知识,子程序特性 随着汇编语言程序设计技术的发展,子程序的应用越显重要。因此,对子程序的设计具有较高要求,除通常在程序设计中应遵循的原则外,还应具备以下特性: 通用性 严格讲,

7、子程序有通用和专用两种。前者如数制转换、浮点运算等子程序可广泛应用于同系列单片机的任何应用系统,后者仅限用于同一个应用系统中。特别是前者,都应注意子程序的通用性。 为了使子程序具有通用性,在设计中要解决的一个重要问题,就是确定哪些变量作为参量以及何传递参量。,4.2 任务八 LED显示电路,4.2.4 相关知识,可浮动性 可浮动性是指子程序段可安置在程序存储器的任何区域。为此,在子程序中应避免选用绝对转移地址。 可递归和可重入性 子程序能自己调用自己和同时能被多个任务(或多个用户程序)调用的特性,分别称之为子程序的可递归性和可重入性。这类子程序常在庞大而复杂的程序中应用,在单片机应用程序设计中

8、较少用到。,4.2 任务八 LED显示电路,4.2.4 相关知识,子程序说明文件 对于通用子程序,为便于各种应用程序的选用,要求在子程序编制、调试完成后应提供一个说明文件。其内容应包含以下内容。 子程序名。标明子程序功能的名称。 子程序功能。简要说明子程序能完成的主要功能,包括重要算法、参量要求及有关存储单元配置等。 子程序调用。指明本子程序还需调用哪些子程序。 附子程序流程图及程序清单。 由于子程序结构在程序设计中应用极为普遍,因此,一般在指令集中均设有子程序调用指令。AT89S系列的指令集中,考虑到程序存储器空间的限制和节省,特设置了绝对调用和长调两条指令,供实际应用时选择。,4.4 任务

9、八 LED显示电路,4.2.4 相关知识,查表程序结构 查表程序是一种常用程序, 它广泛使用于 LED显示控制、 打印机打印控制、数据补偿、数值计算、转换等功能程序中, 这类程序具有简单、执行速度快等特点。 所谓查表法, 就是预先将满足一定精度要求的表示变量与函数值之间关系的一张表求出, 然后把这张表存于单片机的程序存储器中, 这时自变量值为单元地址, 相应的函数值为该地址单元中的内容。查表, 就是根据变量 X在表格中查找对应的函数值 Y, 使 Y=f(X)。,4.4 任务八 LED显示电路,4.2.4 相关知识,两条查表指令: MOVC A, A+PC MOVC A, A+DPTR 选用DP

10、TR为首地址指针时表格参量可存放在64KB范围内的任何区段,可供无限次查表,选用PC当前值为首地址指针时表硌参量必须设置在紧跟查表指令(MOVC)之后,基本上只能一次性查表,编程时应根据实际情况进行选择,一般以选择DPTR为基址指针的查表指令灵活、方便,可省去一些麻烦。,4.4 任务八 LED显示电路,4.2.4 相关知识,选用DPTR作为基地址的查表指令时,其操作可分3步进行: 将待查表格的首地址置入DPTR基址寄存器; 将待查的表格具体项数值置入变址寄存器A中; 执行指令 MOVC A,A+DPTR 将查表结果值读入累加器A中。,4.4 任务八 LED显示电路,4.2.4 相关知识,选用P

11、C当前值作为基地址的查表指令时,由于PC的当前值正是查表指令的下一条指令的第一个字节的地址值,亦即表格数据串的首地址,当执行完查表指令,读取到表格数据后仍需从这个PC的当前值继续往下执行,显然两者发生重叠,为解决这个矛盾,势必将表格下移若干个字节,以便设置一条跳转指令跳过表格串继续安排顺序往下执行的程序。把表格串下移的字节数加到变址寄存器A中,即在查表指令前加一条指令。 ADD A,#data A中为经动态运算得到的待查表格数的项数。Data为表格串下移的字节数,亦即PC的当前值到下移后的表格串首地址的距离数。这个距离数显然不宜太大,因为它将影响表格串的长度,两者之和不能超过565B,这种表格

12、一般属一次性查找,因为PC的当前值随程序的执行而改变,4.4 任务八 LED显示电路,程序设计举例,【例4.8 】 4位BCD码整数转换成二进制整数 入口参数:BCD码字节地址指针R0,位数存于R2中。 出口参数:二进制数存于R3R4中。 算法:A=103a3+102a2+10a1+a0 程序流程如7.7所示。 子程序清单如下: BCDA:PUSH PSW ;现场保护 PUSH A PUSH B MOV PSW,#08H MOV R3,#00H MOV R2,#3 ;BCD码D的位数 MOV A,R0 ; a0-R4,4.4 任务八 LED显示电路,程序设计举例,MOV R4,A BCKB:M

13、OV A,R3 ;(R3R4)10 MOV B,#10 ;R4 MUL AB MOV R4,A XCH A,B MOV B,#10 XCH A,R3 MUL AB ADD A,R3 XCH A,R4 INC R0 ;(R0)+1-R0 ADD A,R0 ;( R3R4)- (R0)-RR3R4,4.4 任务八 LED显示电路,程序设计举例,XCH A,R4 ADDC A,#0 MOV R3,A DJNZ R2,BCDB ;循环n-1次 POP B ;恢复现场 PIP A POP PSW RET ;返回 上例中的R2内容是BCD码的位数n,本例中n=4,即两个字节4位BCD码,在程序中作为循环控制寄存器的计数值为n-1=4-1=3,即本例循环3次即完成二次字节的BCD码转换。 本例采用乘10运算,也可采用除2运算进行转换。,课堂小结: 1、什么是子程序? 2、子程序的结构 3、如何保护现场和传递参数? 4、查表指令的查表步骤? 作业: 1、预习LED接口实验实训项目,完成预习报告、编写控制程序 2、P106 4.23 4.24,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号