项目二单片机硬件及指令系统应用.ppt_第1页
项目二单片机硬件及指令系统应用.ppt_第2页
项目二单片机硬件及指令系统应用.ppt_第3页
项目二单片机硬件及指令系统应用.ppt_第4页
项目二单片机硬件及指令系统应用.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目二、单片机硬件及指令系统应用,能力目标 1.能用Proteus构建单片机最小系统 2.能运用并行I/O接口 3.能学会程序编写的基本方法并用Keil C进行调试 4.能进行灯亮控制电路综合调试 学习内容 1.了解指令的概念 2.掌握寻找方式 3.掌握传送、位操作等指令 4.了解并行I/O接口,一、任务要求 用单片机来实现对一个发光二极管实现点亮的功能。 二、任务分析 1.一个普通二极管被点亮的条件 R1在此电路中的选择范围为3301K,2.用单片机的I/O口的其中一位来控制二极管的 点亮问题 给P1.0送一低电平,则二极管就可以被点亮,送一高电平,则二极管就熄灭。,三、学习知识,(一)了解指令的概念 1、指令的表示法:由操作码和操作数两大部分组成 MCS-51指令格式: 标号:操作助记符操作数1,操作数2,操作数3 其中操作码助记符一般由25个英文字母组成。 51系列单片机共有111条指令。,2、指令的分类: 按指令在存储器中所占用的存储单元分: 单字节 NOP 双字节 ADD A,#05H 三字节 LJMP 8000H 按指令功能分: 数据传送类 MOV A,#04 算术运算类 ADD A,#05H 逻辑运算类 ANL A,#05H 控制类 LJMP 8000H 位操作类 SETB 90H,3、指令中操作数的描述 Rn 工作寄存器R0R7。 Ri 间接寻址寄存器R0、R1。 Direct 直接地址,包括内部128B RAM单元地址、21个SFR地址。 #data 8位常数。 #data 16 16位常数。 addr 16 16位目标地址。 addr 11 11位目标地址。 rel 8位带符号的偏移地址。 DPTR 16位外部数据指针寄存器。 bit 可直接位寻址的位。,A 累加器。 B 寄存器B。 C 进、借位标志位,或位累加器。 间接寄存器或基址寄存器的前缀。 / 指定位求反。 (x) x中的内容。 (x) x中的地址中的内容。 当前指令存放的地址。 A B 累加器A和B寄存器组成的寄存器对,常出现在乘除法指令中。,(二)掌握寻找方式 1、立即数寻址 MOV A,#40H 2、直接寻址 MOV A,40H 3、寄存器寻址 MOV A,R2 4、寄存器间接寻址 MOV A,R0,(1)采用R0或R1作为寄存器间接寻址,可寻址的片内片外的RAM的低256字节的存储空间。 (2)采用DPTR作寄存器间接寻址,可寻址的片外的数据存储器的整个64KB的空间。 5、变址寻址 操作数地址=变地址+基地址 如MOVC A,A+DPTR,例:累加器A的内容为20H,DPTR的值为2000H,程序存储器2020H单元内容为47H,则执行该指令后累加器A的值为47H。 MOVC A,A+DPTR 6、相对寻址 如JC 60H;设(PC)=2000H为基址,相对偏移量为60H; 则当C=1时,转移的目的地址=2000H+2+60H,7、位寻址 位寻址是指指令的操作数为8位二进制数的某一位,指令中给出的是操作数的位地址。可用于位寻址的区域是片内RAM20H2FH单元和部分特殊功能寄存器。 (1)可直接使用位地址。 (2)对特殊寄存器也可进行位寻址。,(三)掌握传送、位操作等指令 1、片内数据传送指令 单片机在逻辑上分为三个空间,分别是程序空间、片内数据存储器空间、片外数据存储器空间。,(1)以A为目标地址的传送指令,(2)以直接地址为目标地址的传送指令,(3)以Rn为目标地址的传送指令,(4)以间接地址为目标地址的传送指令,(5)十六位数传送(以DPTR为目标地址)传送指令,2、累加器A与片外RAM之间传送指令MOVX(4条) MOVX A,DPTR;A(DPTR) MOVX DPTR,A;(DPTR)A MOVX A,Ri;A(Ri) MOVX Ri,A;(Ri)A 1、3两条指令完成了将外部数据读入单片机,此时单片机的RD为低电平 2、4两条指令完成了将单片机数据写入外部设备,此时单片机的WR为低电平,3、程序存储器向累加器A传送指令MOVC(2条) MOVC A,A+PC MOVC A,A+DPTR 这种指令可用来实现查表程序,不同之处在于: 第一条指令只能在256位中查表, 第二条指令可在64KB范围中查表。,例:试编写一程序,实现将片外RAM的0FAH单元中的内容传送到外RAM的04FFH单元中。 分析:根据图2-6可以看到,外部存储单元之间是不能相互传递的,所以只有将外部数据通过传向片内,再将片内的数据传向片外来进行操作。具体在操作过程中要考虑如下事宜: 定义起始地址、目标地址。 源操作数A。 A目标操作方式。,ORG 1000H MOV R0,#0FAH;定义源操作数地址 MOV DPTR,#04FFH;定义目标地址 MOVX A,R0;源操作数先送至A MOVX DPTR,A;A目标地址 END,4、位操作指令 (1)位传送指令(2条) MOV C,bit MOV bit,C (2)位修正指令(6条) CLR C CLR bit CPL C CPL bit SETB C SETB bit,四、任务实施 (一)用Proteus构建单片机最小系统硬件,图2-7 单片机控制的二极管点亮电路,(二)编写程序并进行调试 在任务分析中得知,给P1.0赋个低电平,发光二极管就被点亮。 程序如下:,(三)进行二极管点亮电路仿真调试,图2-8 单片机控制的二极管点亮仿真电路,五、总结与提高 完成了二极管点亮的任务,大家考虑一下: 1、能否用两个按钮来控制二极管的点亮与熄灭,一个按钮定义为点亮功能,另一个按钮定义为熄灭。 2、能否采用一个按钮来实现二极管的点亮与熄灭,按一下按钮,二极管被点亮,再按一下后,熄灭,再按下点亮,再按下熄灭。,能力目标 1.能编写和用Keil C调试简单的延时子程序 2.能用Keil C进行单步,连续调试 3.能进行单灯闪烁电路综合调试 学习内容 1.学习转移指令的运用 2.掌握子程序的编写方法,项目二、单片机硬件及指令系统应用 任务2. 单灯闪烁,一、任务要求 要求二极管亮灭闪烁的时间为200ms,控制端口仍然采用P1.0口。 二、任务分析 在任务一中我们已成功将二极管点亮,本任务与任务一所不同的是要由P1.0产生的时序信号如图2-9所示。,图2-9 单灯闪烁控制时序,三、学习知识 (一)主程序和子程序的概念 所谓主程序就是根据设计者的要求完成主要功 能的程序。 子程序的概念:主程序中反复用到的一些重复的功能模块程序,如果都放在主程序中,会让主程序显得冗长,所以常将这种需要频繁使用的基本操作设计成相对独立的程序段。,1、子程序的调用与返回 子程序的调用: 短调用指令ACALL addr11, 长调用指令LCALL addr16, 不同的是前者跳转的范围为2K后者跳转的范围为64K。 返回指令:RET从子程序返回到主程序,RETI从中断服务程序返回到主程序,2、子程序设计 (1)每个子程序都有一个唯一的入口(唯一的名称),并以标号作为标识,以便主程序的正确调用,子程序通常以RET指令作为结束。 (2)为了使子程序具有通用性,子程序的操作对象通常采用寄存器或寄存器间址等寻址方式。,(3)为了使子程序不论存放在存储器的任何区域都能被正确执行,在子程序中如有转移指令,应使用相对转移指令而不能用绝对转移指令。 (4)进入子程序时,应对那些主程序中使用并在子程序中继续需要使用的寄存器的内容进行保护(即保护主程序现场),在返回主程序时应恢复它们的原来的状态。,子程序设计的基本步骤如下: (1)确定子程序的名称(入口标号)。 (2)确定子程序的入口参数及出口参数。 (3)确定所使用的寄存器和存储单元机器使用目的。 (4)确定子程序的算法,编写源程序。,例、设内部RAM20H、21H单元中有两个数a和b,编程求c=a2+b2,并把c送入内存单元22H中。 该程序由两部分组成:主程序和子程序。 主程序通过累加器A传送入口参数a和b,子程序用于求平方并将结果通过累加器A传送给主程序,主程序再求两平方和。,(二)循环转移指令 DJNZ Rn,rel;( Rn)(Rn)1 若(Rn)0,则PC+2+ rel,跳转至目标地址 若(Rn)=0, PC+2 跳转到本指令的下一条指令去执行 DJNZ direct,rel;(direct)(direct)1 若(direct)0,则PC+2+ rel,跳转至目标 地址 若(direct)=0, PC+2 跳转到本指令 的下一条指令去执行,DJNZ指令主要用来实现计数功能,一旦计数完毕, 立即退出循环体,否则继续在循环体中循环。,例:将8031内部的RAM40H4FH单元置为#00H。 解:,(三)延时子程序的设计 1、机器周期 当振荡脉冲频率为12MHZ,一个机器周期为1us。 当振荡脉冲频率为6MHZ,一个机器周期为2us。 2、指令周期 执行一条指令所需的时间叫指令周期,一般指令需1、2、4个机器周期。 3、单循环程序运用,图2-10 延时子程序(5.135ms),考虑在此单循环程序外再嵌套一层循环,见下方第27部分,以内部(36行)产生延时时间为5ms为重复操作对象,重复操作的次数由外循环来进行参数设置,由外部循环中R7设定为20,这样重复20次1ms的操作后延时约为100ms,考虑到晶振会带来点误差。,图2-11 延时子程序(102ms),四、任务实施 (一)硬件电路同任务一。 (二)100ms延时子程序的调试。 这已在延时子程序的设计中完成。 (三)编写完整的主程序和子程序。,(四)进行单灯闪烁综合调试。 将上述生成的单灯闪烁.hex文件加载到用Proteus绘制的硬件电路CPU后台,点击运行,可以观察到二极管以200ms闪烁的结果,图2-12 单灯闪烁电路仿真,五、总结与提高 1、纯粹的硬件电路设计: 硬件定时不占CPU时间,但需通过改变电路的元件参数来调节定时时间,在使用上不方便。 2、延时子程序:像本次任务中,CPU大量的时间停留在延时程序中增加了开销,所以软件定时时间不宜过长。 3、可编程定时器:通过对系统时钟脉冲的计数来实现,计数值通过改变计数值程序设定。可以不占用CPU的开销。,项目二、单片机硬件及指令系统应用 任务3. 跑马灯,能力目标 1.能通过程序的编写使灯从上依次向下轮流点亮,或从下往上依次轮流点亮。 2.能用Keil C进行单步,连续调试 3.能进行跑马灯电路综合调试 学习内容 1.学习向左或向右转指令的运用 2.状态计数器的设计 3.程序流程图的画法,一、任务要求 P1口的8位分别接着二极管,通过编程依次实现P1口8个二极管由低位到高位依次点亮和熄灭,依次点亮的时间为100ms。 二、任务分析 通过任务要求分析,需要在P1口产生如下时序:见图2-13所示。,P1.0,2,3,4,5,6,图2-13 跑马灯要求P1口产生的时序,通过任务分析,要解决如下问题: (1)100ms的延时子程序,前面任务二中已会运用,更可以直接拿来运用。 (2)状态转移的实现。 (3)一个时序周期中8个状态的记忆问题。,三、学习知识 (一)状态转移的实现,1、RL A ;round left a助记 例:(A)=81H , RL A 后 A7移至A0的后边,其它位向左移1位,执行结果(A)=03H。 将累加器A的内容左移1位,位A7循环移入A0,不影响其它的标志位。,2、RLC A 和RL A 指令一样都使A中内容逐位左移一位,但RLC A将使CY连同A中的内容一起左移循环,A7进入CY,CY进入A0。,例:(A)=81H,CY=0执行RLC A后,(A)=02H,CY=1,3、RR A ; round right A,RR A指令的异同点类似于RL A,仅是A中数据位移方向向右。 例:(A)=81H RR A 执行结果(A)=0C0H,4、RRC A指令的异同点类似于RLC A 仅是A中数据位移方向向右。,例:(A)=81H,CY=0 执行RRC A (A)=40H,CY=1,(二)一个时序周期中8个状态的记忆问题 在本任务中我们可以将Rn设为08H,然后进行一次状态转移,Rn就减1,直至减到Rn为0,(三)跑马灯程序周而复始的实现 学习指令:无条件转移指令(4条) 1、AJMP addr11 低11位 这条指令的实现过程: 首先将当前PC指针加2。 然后用addr11位的地址替换PC指针的低11位,形成新的PC指针而转移到新的地址。 跳转的范围为2K。,例:ZHUAN:AJMP addr11 设addr11=001,0000,0011B 标号ZHUAN的值为16位地址1230H PC+2 1230H+02H=1232H=0001,0010,0011,0010B 替换低11位新的PC值为0001,0001,0000,0011B=1103H,2、长转移指令(长跳转指令) LJMP addr16 执行完该条指令时,无条件转移到指令所提供的16位地址去,所以转移地址可在64K程序空间内跳转。 例:LJMP 9000H 执行完该条指令后,将使程序转移到9000H单元继续执行。,3、相对转移指令相对寻址 SJMP rel rel 取值范围-128+127(向前向后) 采用的是跳转两量的补码(向下为正,向上为负求补) 最终跳转的目的地为PC+2+rel 4、间接转移指令 JMP A+DPTR 该指令是无条件的间接转移(散转)指令,一般用于程序的多种出口的实现。,例:根据累加器A的数值设计散转表程序 MOV A,#data MOV DPTR,#TABLE ADD A, #data JMP A+DPTR TAB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论