
授课日期 班次 授课时数2 课题: 任务二:P1口外接8只LED发光二极管模拟彩灯(二)》 教学目的:掌握MCS-51指令的寻指方式以及指令在CPU内部的执行过程 重点: MCS-51指令的寻指方式 难点: MCS-51指令的导指方式、指令在CPU内部的执行过程 教具: 多媒体 作业: 3.13.5 自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编 教学过程: 复习提问 1描述任务二并画出其硬件电路。 2.MCS-51的有哪些数据传送类指令? 新授 由上节课任务二控制彩灯数据有的直接在指令中提供了,但如何在片内传送? 以生活中如找东西来引入本节内容 1寻址的概念 2指令的寻址方式 直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址导址 位寻址、相对寻址 3指令在CPU内部的执行过程 4.应用举例 5课堂小结 课后小结:
授课日期 班次 授课时数 2 课题: 任务二: P1口外接8只LED发光二极管模拟彩灯(二) 教学目的:掌握MCS-51指令的寻指方式以及指令在CPU内部的执行过程 重点: MCS-51指令的寻指方式 难点: MCS-51指令的寻指方式、指令在CPU内部的执行过程 教具: 多媒体 作业: 3.1 3.5 自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编 教学过程: 一、复习提问 1.描述任务二并画出其硬件电路。 2. MCS-51的有哪些数据传送类指令? 二、新授 由上节课任务二控制彩灯数据有的直接在指令中提供了,但如何在片内传送? 以生活中如找东西来引入本节内容 1.寻址的概念 2.指令的寻址方式 直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址 位寻址、相对寻址 3.指令在CPU内部的执行过程 4.应用举例 5.课堂小结 课后小结:

3.1任务二P1口外接8只1D发光二极管模拟彩灯 31.4相关知识 2、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式? >直接寻址 指令中操作数直接以单元地址形式出现,例如: MOV A,68H 这条指令的意义是把内部RAM中的68H单元中的数据内容传送到 累加器A中。值得注意的是直接寻址方式只能使用8位二进制地址, 因此这种寻址方式仅限于内部RAM进行寻址。低128位单元在指令中 直接以单元地址的形式给出。对于特殊功能寄存器可以使用其直接 地址进行访问,还可以以它们的符号形式给出,只是特殊功能寄存 器只能用直接寻址方式访问
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 2、什么是指令的寻址方式? MCS-51单片机指令系统采用了哪几种寻址方式? ➢直接寻址 指令中操作数直接以单元地址形式出现,例如: MOV A,68H 这条指令的意义是把内部RAM中的68H单元中的数据内容传送到 累加器A中。值得注意的是直接寻址方式只能使用8位二进制地址, 因此这种寻址方式仅限于内部RAM进行寻址。低128位单元在指令中 直接以单元地址的形式给出。对于特殊功能寄存器可以使用其直接 地址进行访问,还可以以它们的符号形式给出,只是特殊功能寄存 器只能用直接寻址方式访问

3.1任务 P1口外接8只四发光三极管模拟彩灯 3.14相关知识 2、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式? >寄存器寻址 寄存器寻址对选定的8个工作寄存器R0-R7进行操作,也就是操作数 在寄存器中,因此指定了寄存器就得到了操作数,寄存器寻址的指令 中以寄存器的符号来表示寄存器,例如: MOV A,RI 这条指令的意义是把所用的工作寄存器组中的R3的内容送到累加器 A中。 值得一提的是工作状态寄存器的选择是通过程序状态字寄存器来控 制的,在这条指令前,应通过PSW设定当前工作寄存器组
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 2、什么是指令的寻址方式? MCS-51单片机指令系统采用了哪几种寻址方式? ➢寄存器寻址 寄存器寻址对选定的8个工作寄存器R0-R7进行操作,也就是操作数 在寄存器中,因此指定了寄存器就得到了操作数,寄存器寻址的指令 中以寄存器的符号来表示寄存器,例如: MOV A,R1 这条指令的意义是把所用的工作寄存器组中的R3的内容送到累加器 A中。 值得一提的是工作状态寄存器的选择是通过程序状态字寄存器来控 制的,在这条指令前,应通过PSW设定当前工作寄存器组

3.1任务 p1口外接8只即发光二极管模拟彩灯。 31.4相关知识 2、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式? >寄存器间接寻址 寄存器寻址方式,寄存器中存放的是操作数,而寄存器间接寻址方式, 寄存器中存放的则为操作数的地址,也即操作数是通过寄存器指向的地 址单元得到的,这便是寄存器间接寻址名称的由来。 例如指令: MOV A,@RO 这条指令的意义是R0寄存器指向地址单元中的内容送到累加器A中。 假如R0=#56H,那么是将56H单元中的数据送到累加器A中。 寄存器间接寻址方式可用于访问内部RAM或外部数据存储器。访问内 部RAM或外部数据存储器的低256字节时,可通过R0和R1作为间接寄存 器。然而有必要指出,内部RAM的高128字节地址与专用积存器的地址 是重叠的,所以这种寻址方式不能用于访问特殊功能寄存器
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 2、什么是指令的寻址方式? MCS-51单片机指令系统采用了哪几种寻址方式? ➢寄存器间接寻址 寄存器寻址方式,寄存器中存放的是操作数,而寄存器间接寻址方式, 寄存器中存放的则为操作数的地址,也即操作数是通过寄存器指向的地 址单元得到的,这便是寄存器间接寻址名称的由来。 例如指令: MOV A,@R0 这条指令的意义是R0寄存器指向地址单元中的内容送到累加器A中。 假如R0=#56H,那么是将56H单元中的数据送到累加器A中。 寄存器间接寻址方式可用于访问内部RAM或外部数据存储器。访问内 部RAM或外部数据存储器的低256字节时,可通过R0和R1作为间接寄存 器。然而有必要指出,内部RAM的高128字节地址与专用积存器的地址 是重叠的,所以这种寻址方式不能用于访问特殊功能寄存器

3.任务二P1口外接8只1D发光二极管模拟彩灯 314相关知识 2、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式? >立即寻址 立即寻址就是把操作数直接在指令中给出,即操作数包含在指令中, 指令操作码的后面紧跟着操作数,一般把指令中的操作数称为立即数, 因此而得名。为了与直接寻址方式相区别,在立即数前加上“#”符号, 例如: MOVX A,#0EH 这条指令的意义是将OEH这个操作数送到累加器A中
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 2、什么是指令的寻址方式? MCS-51单片机指令系统采用了哪几种寻址方式? ➢立即寻址 立即寻址就是把操作数直接在指令中给出,即操作数包含在指令中, 指令操作码的后面紧跟着操作数,一般把指令中的操作数称为立即数, 因此而得名。为了与直接寻址方式相区别,在立即数前加上“#”符号, 例如: MOVX A,#0EH 这条指令的意义是将0EH这个操作数送到累加器A中

3 任务 P1口外接8只D发光一极管模拟彩灯 31.4相关知识 2、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式? >变址寻址 变址寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄 存器,将两寄存器的内容相加形成16位地址形成操作数的实际地址。 例如: MOV A.@A+DPTR MOVX A,@A+PC JMP @A+DPTR 在这三条指令中,A作为偏移量寄存器,DPTR或PC作为变址寄存 器,A作为无符号数与DPTR或PC的内容相加,得到访问的实际地址。 其中前两条是程序存储器读指令,后一条是无条件转移指令
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 2、什么是指令的寻址方式? MCS-51单片机指令系统采用了哪几种寻址方式? ➢变址寻址 变址寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄 存器,将两寄存器的内容相加形成16位地址形成操作数的实际地址。 例如: MOV A,@A+DPTR MOVX A,@A+PC JMP @A+DPTR 在这三条指令中,A作为偏移量寄存器,DPTR或PC作为变址寄存 器,A作为无符号数与DPTR或PC的内容相加,得到访问的实际地址。 其中前两条是程序存储器读指令,后一条是无条件转移指令

3.1任务 p1口外接8只的发光二极管模拟彩灯 31.4相关知识 2、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式? >位寻址 在MCS-51单片机中,RAM中的2OH一2FH字节单元对应的位地址为 00H一7FH,特殊功能寄存器中的某些位也可进行为寻址,这些单元既可 以采用字节方式访问它们,也可采用位寻址的方式访问它们。 >相对寻址 相对寻址方式是为了程序的相对转移而设计的,其夜里是以P℃的内 容为基址,加上给出的偏移量作为转移地址,从而实现程序的转移。转 移的目的地址可参见如下表达式: 目的地址=转移指令地址+转移指令字接数+偏移量 值得注意的是,偏移量是有正负号之分的,偏移量的取值范围是当 前PC值的-128一+127之间
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 2、什么是指令的寻址方式? MCS-51单片机指令系统采用了哪几种寻址方式? ➢位寻址 在MCS-51单片机中,RAM中的20H—2FH字节单元对应的位地址为 00H—7FH,特殊功能寄存器中的某些位也可进行为寻址,这些单元既可 以采用字节方式访问它们,也可采用位寻址的方式访问它们。 ➢相对寻址 相对寻址方式是为了程序的相对转移而设计的,其夜里是以PC的内 容为基址,加上给出的偏移量作为转移地址,从而实现程序的转移。转 移的目的地址可参见如下表达式: 目的地址=转移指令地址+转移指令字接数+偏移量 值得注意的是,偏移量是有正负号之分的,偏移量的取值范围是当 前PC值的-128—+127之间

3.1任务二P1口外接8只1D发光二极管模拟彩灯 3.1.4相关知识 3、指令在CPU内部的执行过程? 指令是以二进制的形式存放在程序存储器中的,CPU执行指令的过程是 不断的从程序存储器取指令,指令译码器对指令进行译码,并发出与指 令相应的微操作信号,完成指令的执行。在这一过程当中,需要根据相 应的时序进行操作,程序存储器操作时序如图所示 核荡脉沖UUU A 操作码读操行码(无效) 读下一字节 S1 S2 S3S4 S5 S6 读染作码 读第二字艺 读下一字节 2字节 1同期射指冬 s1s253S45556 读操什码 读操作码(元效) 读下一字节 1字节 2周期指令 315230543550513030543530
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 3、指令在CPU内部的执行过程? 指令是以二进制的形式存放在程序存储器中的,CPU执行指令的过程是 不断的从程序存储器取指令,指令译码器对指令进行译码,并发出与指 令相应的微操作信号,完成指令的执行。在这一过程当中,需要根据相 应的时序进行操作,程序存储器操作时序如图所示

3. 任务 P1口外接8只D发光一极管模拟彩灯 3.14相关知识 4、应用举例 【例3.1】 在程序存储器中从而2000H单元开始依次存放置09的平方 值:0、1、4、9、、81,要求依据累加器A中的值(09)来查找所对 应的平方值,分析下述程序的结果。 MOV DPTR,#2000H MOV A,#09H MOVC A,@A+DPTR 执行结果:(DPTR)=2000H,(A)=51H
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 4、应用举例 【例3.1】 在程序存储器中从而2000H单元开始依次存放置0~9的平方 值:0、1、4、9、…、81,要求依据累加器A中的值(0~9)来查找所对 应的平方值,分析下述程序的结果。 MOV DPTR,#2000H MOV A,#09H MOVC A,@A+DPTR 执行结果:(DPTR)=2000H,(A)=51H

3 任务 P1口外接8只D发光二极管模拟彩灯 3.1.4相关知识 4、应用举例 【例3.2】 仍以上例程序存储器中2000H单元开始存放09的平方值,以P℃ 作为基址寄存器进行查表,设MOVC指令所在地址(PC)=1FFOF。 解:偏移量=2000H一(1FF0H+1)=0FH 相应的程序如下: MOV A,#09H ADD A,#OFH MOVC A.@A+PC 执行结果:(PC)=1FF1H,(A)=51H 这是以PC作为基址寄存器,CPU取完该指令操作码时PC会自动加工厂,指向下 一条指令的第一个字节地址,即此时是用(PC)+1作为基址的,目标地址为 (A)+(PC)+1。另外,由于累加器A中的内容为8位无符号整数,这不使得本 指令查表范围只能在以P℃当前值开始后256个字节范围内(即(PC) +1矿100H),使表格地址空间分配受到限制。同时编程时还需进行偏移量的计 算,即MOVC A,@A+PC指令所在地址与表格存放首地址间的距离量计算,并需要 条加法指令ADD进行地址调整(ADD指令将在下节介绍)。偏移量计算公式为: 偏移量=表首地址一(MOVC指令所在地址+1)
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯 3.1.4 相关知识 4、应用举例 【例3.2】 仍以上例程序存储器中 2000H单元开始存放0~9的平方值,以PC 作为基址寄存器进行查表,设MOVC指令所在地址(PC)=1FF0F。 解:偏移量=2000H—(1FF0H+1)=0FH 相应的程序如下: MOV A,#09H ADD A,#0FH MOVC A,@A+PC 执行结果:(PC)=1FF1H,(A)=51H 这是以PC作为基址寄存器,CPU取完该指令操作码时PC会自动加工厂,指向下 一条指令的第一个字节地址,即此时是用(PC)+1作为基址的,目标地址为 (A)+(PC)+1。另外,由于累加器A中的内容为8位无符号整数,这不使得本 指令查表范围只能在以 PC 当前值开始后 256个字节范围内 (即(PC) +1H~100H),使表格地址空间分配受到限制。同时编程时还需进行偏移量的计 算,即MOVC A,@A+PC指令所在地址与表格存放首地址间的距离量计算,并需要 一条加法指令ADD进行地址调整(ADD指令将在下节介绍)。偏移量计算公式为: 偏移量=表首地址—(MOVC指令所在地址+1)