3.3 数据传送类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂

| 25页
| 154人阅读
| 1人下载
精品

内容正文:

单片机技术与应用 -第12课时- 高教版第二版 数据传送类指令 教学目标 了解数据传送类指令的数量、特点及分类 掌握各类数据传送指令的格式、操作功能、字节数和机器周期数 能够运用数据传送类指令进行编程,并分析程序执行结果 教学重难点 各类数据传送指令的功能和使用方法 不同数据传送指令在实际编程中的应用 访问程序存储器的数据传送指令中偏移量的计算 让我们一起开启单片机的学习之旅。 导入新课 在单片机编程中,数据传送是最基本也是最常用的操作。 MCS - 51 系列单片机有哪些数据传送类指令呢? 它们各自的功能和特点是什么? 如何正确使用这些指令进行数据传送? 让我们一起开启单片机的学习之旅。 新知讲授 概述 数据传送类指令是使用频率最高的一类指令。主要用来给单片机系统的内部和外部资源 赋值、进行堆栈的存取操作等。这些指令通常用于将数据从一个位置移动到另一个位置,或者从内存中加载数据到寄存器,反之亦然。 特点 数据传送类指令通常不会直接影响标志寄存器的状态。这意味着当执行数据传送指令时,标志寄存器中的条件码通常不会被修改。 数据传送类指令有 29 条,是使用频繁的指令类,属于 “复制” 类型。 数据传送类指令执行前后,对程序状态字PSW一般不产生影响。 按其操作方式,又可把它们分为3种:数据传送、数据交换和栈操作。 数据传送类指令 新知讲授 数据传送类指令分类 为便于找到规律以理 解、记忆指令,对数据传送类指令再进行如下分类: 访问片内数据存储器的一般数据传送指令 访问片内特殊传送指令 访问片外数据存储器的数据传送指令 数据传送类指令 访问片内数据存储器的一般数据传送指令 指令助记符 操作功能 字节数 机器周期数 MOV A,#data A←data 2 1 MOV Rn,#data Rn←data,n = 0,1,…,7 2 1 新知讲授 访问片内特殊传送指令 访问片内数据存储器的一般数据传送指令 指令助记符 操作功能 字节数 机器周期数 MOV DPTR,#data16 DPTR←data16 3 2 MOV A,Rn A←(Rn),n = 0,1,…,7 1 1 MOV Rn,A Rn←(A) 1 1 MOV A,@Ri A←((Ri)),i = 0,1 1 1 MOV A,direct A←(direct) 2 1 MOV direct,A direct←(A) 2 1 MOV Rn,direct Rn←(direct),n = 0,1,…,7 2 2 新知讲授 访问片内特殊传送指令 访问片内数据存储器的一般数据传送指令 指令助记符 操作功能 字节数 机器周期数 MOV direct,Rn direct←(Rn) 2 2 MOV @Ri,direct (Ri)←(direct),i = 0,1 2 2 MOV direct,@Ri direct←((Ri)) 2 2 MOV direct1,direct2 direct1←(direct2) 3 2 MOV @Ri,#data (Ri)←data,i = 0,1 2 1 MOV direct,#data direct←data 3 2 新知讲授 访问片内数据存储器的一般数据传送指令 - 示例 例 3 - 1:设内部 RAM (30H)=40H,(40H)=10H,(10H)=00H,(P1)=0CAH, 分析以下程序执行后各单元及寄存器、P2 口的内容。 访问片内特殊传送指令 MOV R0,#30H ;(R0)←30H MOV A,@R0 ;(A)←((R0)) MOV R1,A ;(R1)←(A) MOV B,@R1 ;(B)←((R1)) MOV @R1,P1 ;(R1)←(P1) MOV P2,P1 ;(P2)←(P1) MOV 10H,#20H ;(10H)←20H 执行结果:(R0)=30H,(R1)=(A)=40H,(B)=10H,(40H)=(P1)=(P2)=0CAH,(10H)=20H。 新知讲授 访问片内特殊传送指令 - 堆栈操作指令 堆栈操作分为进栈和出栈,用于保存或恢复现场。 进栈保存片内 RAM 单元或特殊功能寄存器内容,出栈恢复其内容。 访问片内特殊传送指令 指令名称 指令助记符 操作功能 字节数 机器周期数 堆栈操作指令 PUSH direct POP direct SP←(SP)+1,(SP)←(direct) direct-((SP)),SP←(SP)-1 2 2 2 2 新知讲授 访问片内特殊传送指令 - 数据交换指令 数据交换指令进行数据双向传送,传送双方互为源地址和目的地址,操作数不丢失。 访问片内特殊传送指令 指令名称 指令助记符 操作功能 字节数 机器周期数 数据交换指令 XCH A,direct XCH A,@Ri XCH A,Rn XCHD A,@Ri SWAP A (A)←→ (direct) (A)←→ ((Ri)) (A)←→ (Rn) (A)₃-0→ ((Ri))3-0 (A)7-4→ (A)3-0 2 1 1 1 1 1 1 1 1 1 新知讲授 访问片内特殊传送指令 - 示例 例 3 - 2:设 (R0)=30H,(30H)=4AH,(A)=28H。 例 3 - 3:已知 (20H)=24H,(24H)=0BCH, SP = 1FH,(1FH)=39H,(39H)=67H, 外部 RAM (1000H)=10H,ROM (1010H)=0FFH。 访问片内特殊传送指令 例 3 - 2程序结果为: 执行 XCH A,@R0 后 ,(A)=4AH,(30H)=28H。 执行 XCHD A,@R0 后 ,(A)=2AH,(30H)=48H。 执行 SWAP A 后 ,(A)=82H。 MOV A,1FH MOV R0,20H XCH A,39H PUSH ACC MOV DPTR,#1000H MOVX A,@DPTR MOVC A,@A+DPTR XCHD A,@R0 POP 1FH 例 3 - 3运行结果:(A)=0FCH,(R0)=24H,(1FH)=67H,(20H)=67H,(24H)=0BFH, (39H)=39H, 其余不变。 新知讲授 访问片内特殊传送指令 - 数据交换指令 MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,采用寄存器间接寻址,通过累加器 A 完成。前两条为输入指令,执行时 P3.7 输出 RD 读有效信号;后两条为输出指令,执行时 P3.6 输出 WR 写有效信号。 访问片外数据存储器的数据传送指令 指令助记符 操作功能 字节数 机器周期数 MOVX A,@DPTR A←((DPTR)) 1 2 MOVX A,@Ri A←((Ri)) 1 2 MOVX @DPTR,A (DPTR)←(A) 1 2 MOVX @Ri,A (Ri)←(A) 1 2 MOV DPTR,#0203H ;(DPTR)=0203H MOVX A,@DPTR ;(A)=((DPTR))=0FFH MOV 30H,A ;(30H)=(A)=0FFH MOV A,#0FH ;(A)=0FH MOVX @DPTR,A ;((DPTR))=(A),(0203H)=0FH 新知讲授 访问片外数据存储器的数据传送指令 - 示例 例 3 - 4:设外部 RAM (0203H)=0FFH。 例 3 - 5:将外部 RAM 2000H 中的内容,传送到内部 RAM 30H 中。 访问片外数据存储器的数据传送指令 例 3 - 4 执行结果: (DPTR)=0203H,(30H)=0FFH,(0203H)=(A)=0FH。 MOV DPTR,#0203H ;(DPTR)=0203H MOVX A,@DPTR ;(A)=((DPTR))=0FFH MOV 30H,A ;(30H)=(A)=0FFH MOV A,#0FH ;(A)=0FH MOVX @DPTR,A ;((DPTR))=(A),(0203H)=0FH MOV     DPTR,#2000H MOVX    A,@DPTR MOV     30H,A 例 3 - 5执行结果: 新知讲授 访问程序存储器的数据传送指令 访问程序存储器的数据传送指令又称查表指令,采用基址寄存器加变址寄存器间接寻址,将程序存储器中表格数据读出传送到累加器 A。 访问程序存储器的数据传送指令 指令助记符 操作功能 字节数 机器周期数 MOVC A,@A+DPTR A←((A)+(DPTR)) 1 2 MOVC A,@A+PC PC←(PC)+1,A←((A)+(PC)) 1 2 MOV DPTR,#0203H ;(DPTR)=0203H MOVX A,@DPTR ;(A)=((DPTR))=0FFH MOV 30H,A ;(30H)=(A)=0FFH MOV A,#0FH ;(A)=0FH MOVX @DPTR,A ;((DPTR))=(A),(0203H)=0FH 新知讲授 访问程序存储器的数据传送指令 - 示例 例 3 - 6:(A)=30H, 执行地址 1000H 处的指令: 例 3 - 7:(DPTR)=8000H,(A)=40H 执行如下指令: 访问程序存储器的数据传送指令 例 3 - 6 指令为: 1000H:MOVC A,@A+PC MOVC A,@A+DPTR 例 3 - 7 指令为: 本指令占用 1 字节,执行结果为将程序存储器中 1031H 的内容送入 A。 执行结果为 (A)=(8040H)。 新知讲授 访问程序存储器的数据传送指令 - 特点 MOVC A,@A+DPTR:采用 DPTR 作为基址寄存器,可实现 64KB 程序存储器单元到累加器 A 的数据传送,数据表格可存于 64KB 地址范围任意处。 MOVC A,@A+PC:以 PC 作为基址寄存器,CPU 取完指令操作码时 PC 自动加 1,用 (PC)+1 作为基址。查表范围在 256 字节内,表格地址空间分配受限,编程需计算偏移量。偏移量 = 表首地址 -(MOVC 指令所在地址 + 1)。 访问程序存储器的数据传送指令 新知讲授 在实际编程中,合理选择数据传送指令可以优化程序。例如,尽量使用单字节、单机器周期的指令,减少指令执行时间和存储空间。同时,注意指令的顺序和组合,避免不必要的数据传送。 数据传送指令的优化 拓展知识 数据传送与系统性能 数据传送指令的使用频率和效率直接影响系统性能。频繁的数据传送可能导致系统响应变慢,因此需要合理规划数据存储和传送方式,提高系统的整体性能。 随堂检测1 数据传送类指令有多少条,属于什么类型的指令? 答案:数据传送类指令有 29 条,属于 “复制” 类型的指令。 访问片内数据存储器的 MOV A,#data 指令的功能和字节数分别是什么? 答案:功能是将立即数 data 送入累加器 A,字节数是 2。 练一练 随堂检测2 堆栈操作指令 PUSH direct 和 POP direct 的作用分别是什么? 答案:PUSH direct 的作用是将 direct 单元内容压入堆栈,即 SP←(SP)+1,(SP)←(direct);POP direct 的作用是将堆栈内容弹出到 direct 单元,即 direct←((SP)),SP←(SP)-1。 数据交换指令 XCHD A,@Ri 的功能是什么? 答案:将累加器 A 的低 4 位与 @Ri 所指单元的低 4 位进行交换。 练一练 随堂检测3 访问片外数据存储器的数据传送指令 MOVX A,@DPTR 的字节数和机器周期数是多少? 答案:字节数是 1,机器周期数是 2。 访问程序存储器的数据传送指令 MOVC A,@A+PC 的查表范围是多少? 答案:查表范围只能在 256 字节范围内 [即 (PC)+1H~(PC)+100H]。 练一练 随堂检测3 已知 (DPTR)=5000H,(A)=20H,执行 MOVC A,@A+DPTR 指令后,(A) 的值是多少? 答案:(A)=(5020H)。 在访问片内数据存储器的指令中,MOV Rn,A 和 MOV A,Rn 的区别是什么? 答案:MOV Rn,A 是将累加器 A 的内容传送到工作寄存器 Rn 中;MOV A,Rn 是将工作寄存器 Rn 的内容传送到累加器 A 中。 练一练 师生互动 1 请各小组讨论,在实际编程中,如何根据不同的数据传送需求选择合适的数据传送类指令,以提高程序的执行效率和可读性。 课题小结 1. 访问片内数据存储器的一般数据传送指令 数据传送类指令 2. 访问片外数据存储器的数据传送指令 堆栈操作指令 数据交换指令 示例 特点 示例 3. 访问程序存储器的数据传送指令 谢谢观看 THANKS Lavf58.46.101 $

资源预览图

3.3  数据传送类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第1页
1
3.3  数据传送类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第2页
2
3.3  数据传送类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第3页
3
3.3  数据传送类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第4页
4
3.3  数据传送类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第5页
5
3.3  数据传送类指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第6页
6

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。