ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:254.73KB ,
资源ID:11765100      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11765100.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中职中专单片机原理电子教案3.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

中职中专单片机原理电子教案3.docx

1、中职中专单片机原理电子教案3课 题第3章 指令系统与汇编语言程序设计3.1 寻址方式学 时 2学时授课类型理论讲授授课班级14工业教学目标1知识目标了解单片机的指令格式,掌握MCS-51系列单片机的寻址方式。2能力目标通过直观教学和教师的具体讲解,培养学生的逻辑思维和抽象思维能力;培养学生归纳总结问题的能力。3情感目标通过对专业入门知识的生动形象的教学,使学生对本课程的产生浓厚兴趣,激发学生的学习热情。教学重点1MCS-51系列单片机的寻址方式。教 法采用“媒体演示分析概括巩固提高”的教学模式教学过程过程设计创设情景导入:一台计算机所能执行的指令集合就是它的指令系统。一般来说,不同系列CPU的

2、指令系统不同,本章主要讲解MCS-51系列单片机指令系统。单片机中主要使用机器语言和汇编语言,由于机器语言具有不易书写等缺点,所以单片机一般采用使用符号指令的汇编语言。本节主要讲述MCS-51系列单片机的寻址方式。理解MCS-51的各指令掌握各种寻址方式并理解它们的使用范围一、寻址方式 寻址方式是指在指令执行过程中,如何找到操作数有效地址的方法。MCS-51单片机指令系统提供了7种不同的寻址方式。1立即寻址方式 指令提供的操作数为直接参与操作的8位或16位数据。这种方式的操作数又称为立即数。书写时,在立即数面前加“#”标志。 例如:MOV A,#20H。MOV DPTR, # data16。第

3、一条指令是将立即数20H送累加器A,指令执行后A = 20H。第二条指令是将立即数data16送数据指针DPTR中,指令执行后DPTR= data16。2直接寻址方式 直接寻址是指在指令中直接给出操作对象的存储单元地址。直接寻址方式的寻址范围包括:内部RAM低128单元、特殊功能寄存器和一些程序控制指令。例如:MOV A,3AH。该指令将内部RAM中3AH单元的内容送给累加器A,若(3AH)=20H,执行示意图如图3.1。执行结果A=20H。图3.1 “MOV A,3AH”示意图3寄存器寻址方式寄存器寻址就是操作对象放在寄存器中,指令只提供存放操作对象的寄存器,执行时通过寻找寄存器得到操作对象

4、。书写时,用符号名称表示寄存器。 寄存器寻址方式的寻址范围包括:四个工作寄存器组共32个通用寄存器、部分特殊功能寄存器。例如:MOV A,R0。该指令把寄存器R0的内容送到累加器A中,若R0=20H,执行过程如图3.2。指令执行后A=20H。图3.2 “MOV A,R0”指令示意图4寄存器间接寻址方式 寄存器间接寻址就是操作对象的存储器单元地址存放在寄存器中,执行时通过寻找指定的寄存器,取出其内容作为存储单元地址,从而得到操作的对象。书写时,用“”和寄存器符号表示。寄存器间接寻址的寻址范围包括:内部RAM低128字节、外部RAM 64KB、堆栈操作指令。例如:设寄存器R1 = 60H,A =

5、20H,执行指令ADD A, R1。若(60H)=10H,执行过程如图3.3。执行结果A=30H。图3.4 “MOV A,R1”指令示意图5相对寻址方式 相对寻址是指以指令中给出的操作数作为程序转移的偏移量。书写时,以“rel”表示地址偏移量。目标地址表示为:目标地址= 转移指令首地址+ 转移指令字节数+ rel例如:JC 3AH。执行过程如图3.4。图3.4 “JC 3AH”指令示意图6变址寻址方式(又称基址寄存器加变址寄存器间接寻址) 指令提供了以DPTR或PC为基址、以累加器A 为变址的两种寄存器,通过将两种寄存器的内容相加形成的16位数据,作为操作对象存储单元的地址。 MCS - 51

6、系列单片机的变址寻址只能对程序存储器进行寻址,而且变址寻址指令只有三条: MOVC A, A + DPTRMOVC A, A + PCJMP A + DPTR例如:MOVC A, A + DPTR。若A=35H,DPTR=3F30H,那么操作对象存储单元的地址为3F65H,若(3F65H)=5CH,执行过程如图3.5。则执行结果为A=5CH。图3.5 “MOVC A,A+DPTR”指令示意图7位寻址方式 指令给出的操作数是内部数据存储器中的可寻址位。书写时,有四种表示方法:直接使用位地址、位名称表示法、单元地址加位表示法、专用寄存器名称加位表示法。 MCS- 51单片机的位寻址范围包括:内部R

7、AM中的位寻址区、特殊功能寄存器的可寻址位。 例如:ANL C,21H. 5。该指令将进位标志CY和内部RAM的21H单元的第5位进行逻辑与运算,结果保存到C中。总 结本节主要讲解如何通过寻找操作数的有效地址,来获得真正的操作对象。为汇编程序打基础。板书设计第3章 指令系统与汇编语言程序设计3.1 寻址方式一、立即寻址方式1、定义 2、举例二、直接寻址方式1、定义 2、举例三、寄存器寻址方式1、定义 2、举例四、寄存器间接寻址方式1、定义 2、举例五、相对寻址方式1、定义 2、举例六、变址寻址方式1、定义 2、举例七、位寻址方式1、定义 2、举例思 考 题名词解释:寻址方式、操作数、P74 3

8、.1 (5)课后反思课 题第3章 指令系统与汇编语言程序设计3.2 指令系统学 时 4学时授课类型理论讲授授课班级14工业教学目标1知识目标掌握MCS-51指令系统的数据传送指令、算术指令、逻辑运算指令、位操作指令和控制转移指令。2能力目标通过直观教学和教师的具体讲解,培养学生的逻辑思维和抽象思维能力;培养学生归纳总结问题的能力。3情感目标通过对专业入门知识的生动形象的教学,使学生对本课程的产生浓厚兴趣,激发学生的学习热情。教学重点1MCS-51指令系统的数据传送指令、算术指令、逻辑运算指令、位操作指令和控制转移指令。教 法采用“媒体演示分析概括巩固提高”的教学模式教学过程过程设计创设情景导入

9、:复习MCS-51单片机的指令和寻址方式,不同的指令助记符和不同的寻址方式的组合构成了MCS-51的指令系统,本节着重介绍MCS-51指令系统。熟记描述指令的符号通过举例来熟记29条数据传送指令的书写及其功能通过举例熟记算术指令的书写及其功能通过举例熟练掌握24条逻辑运算指令注意指令执行对位操作位的影响掌握程序控制指令各指令的功能及应用通过举例来掌握位操作指令 按指令的功能,MCS-51指令系统可分为五大类: 数据传送指令 算术运算指令 逻辑运算指令 程序控制指令 位操作指令 描述指令的一些符号的意义: R n (n = 07):表示当前工作寄存器组R0R7中的某一个寄存器。 R i(i= 0

10、7): 可以作间接寻址的寄存器,只能是R0和R1两个寄存器,“”是间接寻址标识符。 direct: 内部RAM的8位地址,可以是内部RAM的单元地址(00H7FH)或特殊功能寄存器地址。 # data:8位立即数,其中“#”是立即数标识符。 # data16:16位立即数。 addr11:11位目的地址。用于ACALL和AJMP指令中,转移范围为2KB。 addr16:16位目的地址。用于LCALL和LJMP指令中,转移范围为64KB。 rel:相对转移指令中的8位偏移地址,范围是-128+127。 DPTR:数据指针,用作16位的地址寄存器。 bit:内部RAM或特殊功能寄存器中的直接寻址位

11、。 rrr:在操作码中,表示R0R7寄存器的编码。 A:累加器,写作“A”时,是寄存器寻址;写作“ACC”时,是直接寻址。 B:特殊功能寄存器,用于MUL和DIV指令中。 / :位操作数的前缀,表示对该位操作数取反。 (存储单元地址):表示某存储单元的内容。 (间址寄存器):由寄存器间接寻址的单元中的内容。一、数据传送指令 功能是实现计算机内不同存储区域之间的信息传递。MCS-51数据传送如下图3.6:图3.6 数据传送示意图1内部RAM、特殊功能寄存器之间的数据传送 立即数传送指令 MOV A, # data ; AdataMOV direct, # data ; (direct)dataM

12、OV Rn, # data ; Rn dataMOV Ri, # data ; (Ri)dataMOV DPTR, # data16 ; DPH data 高8位,DPLdata 低8位例3.1 分析下列指令的寻址方式以及指令执行后存储单元和寄存器的内容。 MOV A, # 20H ;目的操作数采用寄存器寻址,A=20H MOV 32H, # 23H ;目的操作数采用直接寻址,(32H)=23H MOV R4, # 2FH ;目的操作数采用寄存器寻址,R4=2FH MOV R0, # 5AH ;目的操作数采用寄存器间接寻址,(R0)=5AH MOV DPTR, # 203FH ;目的操作数采用

13、寄存器寻址,DPTR=203FH内部RAM单元之间的数据传送指令 MOV direct1,direct2 ;(direct1)(direct2)MOV direct,Rn ;(direct)RnMOV Rn,direct ;Rn(direct)MOV direct, Ri ;(direct)(Ri)MOV Ri,direct ;(Ri)(direct) 例3.2 分析指令的寻址方式和执行结果 MOV P2,R2;目的操作数采用直接寻址,源操作数为寄存器寻址;P2 = R2,该指令等价于MOV 0A0H,R2MOV 2FH,30H;两个操作数均采用直接寻址,(2FH)= (30H)MOV 20H

14、, R1;目的操作数为直接寻址,源操作数为寄存器间接;寻址,执行结果:(20H)= (R1) 与累加器有关的数据传送指令 MOV A,Rn ;ARnMOV Rn,A ;RnA MOV A,direct ;A(direct)MOV direct,A ;(direct)AMOV A, Ri ;A(Ri)MOV Ri,A ;(Ri)A 例3.3 分析下列指令的寻址方式和执行结果 MOV A,R5 ;两操作数均采用寄存器寻址,A=R5 MOV A,0F0H ;原操作数为直接寻址,A=(0F0H) MOV A, R1 ;源操作数为寄存器间接寻址,A=(R1)2累加器与外部RAM之间的数据传送 MOVX

15、A, DPTR ;A(DPTR)MOVX DPTR,A ;(DPTR)AMOVX A, Ri ;A (Ri)MOVX Ri,A ;(Ri)A 例3.4 已知DPTR=2000H,片外RAM (2000H)=05H,R1=0F0H,片外RAM (0F0H)=0A0H。 MOVX A, DPTR ;指令执行后,A=05H MOVX R1,A ;指令执行后,片外RAM (0F0H)=05H3程序存储器中的数据传送到累加器A的指令 只能从程序存储器向累加器传送数据。 MOVC A,A+DPTR ;A(ADPTR) MOVC A,A+PC ;A(APC) 例3.5 把累加器A中的十六进制数字00H0FH

16、转换成ASCII码。 INC A ;调整偏移量(数据表的首地址与MOVC指令间隔1个单元)MOVC A, A + PC ;查表取数RET ;子程序返回DB 30H,31H,32H,33H,34H ;在程序存储器中顺序存放DB 35H,36H,37H,38H,39H ;0F的ASCII码DB 41H,42H,43H,44H,45H,46H 假如上述指令代码在程序存储器的存储如下图3.7所示。如果累加器A=0FH,则执行INC A 后,A = 10H,程序存储器取出MOVC指令后,PC = 2001H,则A + PC=2011H,于是执行 MOVC 指令后A=(2011H)=46H,即将累加器A

17、中十六进制数字F 转换成相应的ASCII 码46H。图3.7 例3.5程序存储器数据分布图4内部RAM单元与累加器A之间数据交换指令 字节交换指令 XCH A,Rn ; A RnXCH A,direct ; A (direct)XCH A, Ri ; A (Ri) 半字节交换指令XCHD A, Ri ;A(D3 D0) (Ri)(D3 D0),即累加器A的低4位与Ri间址的内部RAM单元的低4位交换。 累加器A 的高4 位与低4 位交换指令SWAP A ; A(D3 D0) A(D7 D4) 例3.6 设A=4FH,R1=20H,内部RAM中(20H)=35H,则 XCH A, R1 ;执行指

18、令后,A=35H,(20H)=4FH 例3.7 设R0=50H,A=3FH,内部RAM中(50H)=21H,则 XCHD A, R0 ;指令执行后,A=31H,(50H)=2FH5堆栈操作指令 进栈指令PUSH direct ;SPSP + 1,(SP)(direct) 出栈指令POP direct ; (direct)(SP),SPSP 1 例3.8 已知SP = 3AH,DPTR= 1234H,则 PUSH DPL ;SPSP + 1=3BH,(3BH)=34H POP DPH ;SPSP + 1=3CH,(3CH)=12H 执行指令后,SP=3CH,(3CH)=12H,(3BH)=34H

19、 例3.9 设SP=4FH,内部RAM的(4FH)=45H,(4EH)=01H 则 POP PSW ;PSW(4FH)= 45H,SPSP-1 = 4EHPOP ACC ;ACC(4EH)= 01H,SPSP1 = 4DH 执行结果为:SP = 4DH,ACC = 01H,PSW = 45H 例3.10 堆栈操作指令常用于子程序中 子程序入口处,保护现场的指令:PUSH ACCPUSH PSW子程序返回时,恢复现场的指令:POP PSWPOP ACC注:1内部RAM的前128字节、特殊功能寄存器之间可以互相传送数据,但最多只允许一个操作数使用寄存器间接寻址。2访问特殊功能寄存器必须采用直接寻址

20、,不能采用寄存器间接寻址,否则会引起错误。3MCS51指令系统没有提供B寄存器寻址方式(乘法指令例外)。4注意累加器A 和ACC 两种写法的区别:A 为寄存器寻址方式,ACC 为直接寻址方式。二、算术运算指令1加减运算指令 加减运算指令的目的操作数是累加器A,源操作数可以是立即数、通用寄存器、内部RAM或特殊功能寄存器和Ri 间址的内部RAM。 加法指令 ADD功能:将累加器和源操作数相加,结果送累加器A,源操作数不变。形式:ADD A, Rn ;A+RnA ADD A, direct ;A+(direct)A ADD A, Ri ;A+(Ri)A ADD A, #data ;A+dataA注

21、:ADD 指令影响程序状态字PSW 的CY、AC、OV 位。例如,A=0C0H,R1=0AEH,执行 ADD A,R1 指令。 11000000 + 10101111 01101111运算结果:A=6FH,AC=0,CY=1,OV=1。带进位加法指令 ADDC功能:将累加器A、源操作数以及进位标志CY相加,结果送累加器A。形式:ADD A, Rn ;A+Rn+CYA ADD A, direct ;A+(direct) +CYA ADD A, Ri ;A+(Ri) +CYA ADD A, #data ;A+data+CYA注:ADDC 指令影响程序状态字PSW 的CY、AC、OV 位。带借位减法

22、指令SUBB 功能:将累加器和源操作数相减,结果送累加器A,源操作数不变。 形式: SUBB A, Rn ;A-Rn-CYA SUBB A, direct ;A-(direct)-CYA SUBB A, Ri ;A-(Ri)-CYA SUBB A, #data ;A-data-CYA注:SUBB 指令影响程序状态字PSW 的CY、AC、OV 位。 加1指令 INC 功能:该指令只有一个操作数,执行时把操作数的内容加1,结果送回原单元。 形式: INC A ;A + 1AINC Rn ;Rn + 1RnINC direct ;(direct)+ 1(direct)INC Ri ;(Ri)+ 1(

23、Ri)INC DPTR ;DPTR + 1DPTR注:加1指令主要用于修改地址指针和计数次数,它对CY、AC、OV 没有影响。 减1指令 DEC 功能:该指令只有一个操作数,执行时把操作数的内容减1,结果送回原单元。 形式:DEC A ;A-1A DEC Rn ;Rn1Rn DEC direct ;(direct)-1(direct) DEC Ri ;(Ri)-1(Ri)注:该指令不影响CY、AC、OV。2乘除法指令 乘法指令 MUL功能:把累加器A 和寄存器B 中的无符号数相乘,所得16 位乘积的低位字节存入A中,高位字节存入B 中。形式:MUL AB例如:A=1AH,B=20H,执行指令M

24、UL AB执行结果为A=40H,B=03H,OV = 1,CY = 0 除法指令 DIV 功能:用A 中8 位无符号数除以B 中8 位无符号数,所得商存入A 中,余数存入B中,并将CY 和OV 置0。 形式:DIV AB 例如:A=0F4H,B=0AH,执行指令DIV AB执行结果为A=18H,B=04H,OV=0,CY=03十进制调整指令 功能:把A 中的数作为两个BCD 数相加之和进行调整,得到两位正确的BCD数。 形式:DA A 例如:73-54=19 先执行9AH-54H,得到补熟46H,再执行73H+46H=0B9H,最后执行调整指令将0B9H加上60H得到19H,即得到正确的BCD

25、数。三、逻辑运算指令1逻辑与运算指令 逻辑与运算指令常用作字节清零或位清零。共有6条指令:ANL A,Rn ;ARnA ANL A,direct ; A(direct)AANL A,Ri ;A(Ri)AANL A, # data ;AdataA ANL direct,A ;(direct)A(direct) ANL direct, # data ;(direct)data(direct)例如:若A=0A6H,R1=0A4H,执行ANL A,R1 后,A=0A4H2逻辑或运算指令 逻辑或运算可以实现对某个单元的某些位置1,其余位不变。共有6条指令: ORL A, Rn ;ARnAORL A, d

26、irect ;A(direct)AORL A, Ri ;A(Ri)AORL A, # data ;AdataAORL direct, A ;(direct)A(direct)ORL direct, # data ;(direct)data(direct)3逻辑异或运算 逻辑异或运算可以用来比较两个数据是否相等。当两个数据异或结果为0,则表示相等,否则表示不相等。共有6条指令。 XRL A,Rn ;A RnAXRL A,direct ;A (direct)AXRL A,Ri ;A (Ri)AXRL A, # data ;A dataAXRL direct,A ;(direct) A(direct

27、)XRL direct, # data ;(direct) data(direct)例如:若A=7FH,R1=0A5H,则执行指令 XRL A,R1后,A=0DAH。4累加器清0和取反指令 累加器清0指令: CLR A ;0A 累加器按位取反指令:CPL A ;A 例如:若 A=55H,则执行指令: CPL A ;执行结果A=0AAH CLR A ;执行结果A=00H5循环移位指令 循环右移指令:RR A 功能:将累加器A的内容逐位循环右移一位。如图所示: 例如,若A=6AH=01101010B,执行RR A 指令后,A=35H。 循环左移指令:RL A功能:将累加器A的内容逐位左移一位,如图

28、所示:例如,若A=0A3H=10100011B,执行 RL A 指令后,A=47B。 带进位循环右移指令:RRC A 功能:将累加器A的内容和进位位一起逐位循环右移一位,如图所示: 例如,若A=4BH=01001011B,CY=1,执行 RRL A 指令后,A=0A5H,CY=1。注:此操作影响CY位。 带进位循环左移指令:RLC A功能:将累加器A的内容和进位位一起逐位循环左移一位,如图所示:注:此操作影响CY位。四、程序控制指令程序控制指令完成程序的转移、子程序的调用与返回、中断返回等功能。指令运行的实质是改变程序计数器PC 的值,使程序不按顺序执行,从而实现程序的分支、循环等功能。1无条

29、件转移指令 相对转移指令:SJMP rel执行指令时,先将PC+2,再把指令中带符号的偏移量rel加到PC上,得到转移目标地址。绝对转移指令:AJMP addr11 指令执行时,先将PC+2,然后将addr11送入PC10PC0,而PC15PC11保持不变。这样就得到转移目标地址。注:绝对转移范围是以AJMP指令的下一条指令高5位地址所确定的2KB范围内。长转移指令:LJMP addr16 ;addr16PC 执行指令时,把16位地址addr16装入程序计数器PC,转移范围可达64KB。间接转移指令:JMP A+DPTR ; A+DPTRPC 执行指令时,数据指令DPTR和累加器A的内容相加装入程序计数器PC。2条件转移指令 累加器判零转移指令JZ rel ;若A=0,则PC+2+relPC,否则PC+2PCJNZ rel ;若A0,则PC+2+relPC,否则PC+2PC 比较转移指令CJNE A,direct,rel ;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1