您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 技能训练3 单片机指令的执行
技能实训3单片机指令的执行实训内容介绍–硬件–软件相关的知识点–指令系统–存储器配置–程序结构程序讲解练习实训3简介利用单片机的输出端口控制LED发光管的亮灭,只要修改程序就可以让发光管产生各式各样的彩灯变化组合。P24P20P21P22P25P20P21P22P23P24P25P26P27P26P27P23XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1STC89C52X112MHzC130pFC230pFVCCC3104R010kVCCD1D2D3D4D5D6D7D8R1500R2500R3500R4500R5500R6500R7500R8500VCC程序基本结构延时程序程序的实现ORG0000HMAIN:MOVA,#0FEHLOOP1:MOVP2,A;发送到P2口RLA;左移指令CALLDELAY;调用软件延时子程序LJMPLOOP1;反复执行执行的效果延时程序代码尽可能短CPU执行时间延时程序代码ORG0100HDELAY:MOVR5,#5;(R5)=5DEL01:MOVR6,#200;(R6)=100DEL02:MOVR7,#250;(R7)=250DEL03:DJNZR7,DEL03;[(5*200*250)*2]*12*1/12MHz=0.5SDJNZR6,DEL02DJNZR5,DEL01RET知识点1:3.2单片机运行的基本特点MCS-51系统单片机的一个机器周期由12个时钟振荡周期构成。假设时钟振荡电路采用12MHz的晶振,则:时钟频率fosc=12MHz时钟周期Tosc=1/fosc=1/12MHz机器周期Tm=12*Tosc=12/12MHz=1us指令周期指执行一条指令所需要的时间知识点2:3.3单片机指令及其周期MCS-51系列单片机指令系统共有指令111条,分为五大类:–数据传送类指令(29条);–算术运算类指令(24条);–逻辑运算与移位类指令(24条);–控制转移类指令(17条);–位操作类指令(17条)。要在使用时熟悉,不可能一下子熟悉。知识点3:3.4单片机存储器配置单片机应用必须熟悉单片机内部有哪些资源,单片机最重要的资源是存储器。内内=1EA内内EA=1内内内内内内内00H7FH80HFFH内内0000HFFFFH内内内内内内内内内内内内内内内内内内内0000H0FFFH0000H0FFFH内内1000HFFFFH知识点4:3.5程序的典型结构程序是由指令构成,按指令执行的顺序,可以把程序的基本结构分为顺序程序、分支程序、循环程序。这三种基本的程序结构构成了各种更复杂的程序。正确熟练使用三种程序结构是编写程序的基础之一。更详细的知识点2:3.3.1数据传送类指令使用最多的指令;三个区域之间进行操作Rn@A+DPTR@A+PC@RiA#data@DPTR@PCdirect内内内内内内内内内内内内内内内内MOV内内内内MOVC内内内内MOVX实例:初始化存储器数据ORG0100HDELAY:MOVR5,#5;(R5)=5DEL01:MOVR6,#200;(R6)=100DEL02:MOVR7,#250;(R7)=250DEL03:DJNZR7,DEL03;[(5*200*250)*2]*12*1/12MHz=0.5SDJNZR6,DEL02DJNZR5,DEL01RET延时程序代码实例:初始化存储器数据ORG0000HMAIN:MOVA,#0FEHLOOP1:MOVP2,A;发送到P2口RLA;左移指令CALLDELAY;调用软件延时子程序LJMPLOOP1;反复执行主程序的实现实例:要求把程序存储区的地址为(0100)16单元的数据传送到P2口具体实现方法:MOVDPTR,#0100H;设置读取程序存储区数据的单元地址MOVCA,@DPTR;通常用这条指令可以读取程序存储区的数据MOVP2,A;送到P2口要注意有哪些指令可以使用,若没有相应的指令,则需要综合使用多条指令来实现。更详细的知识点4:3.5.3循环程序:一般的结构图3-8循环程序就是重复执行同一段的指令,如图3-8,一般包括如下四个部分:(1)初始化部分:为循环程序做准备,如规定循环次数、给各变量和地址指针预置初值。(2)处理部分:为反复执行的程序段,是循环程序的实体,也是循环程序的主体。(3)循环控制部分:这部分的作用是修改循环变量和控制变量,并判断循环是否结束,直到符合结束条件时,跳出循环为止。(4)结束部分:这部分主要是对循环程序的结果进行分析、处理和存放。实例:3.5.4延时程序DEL03:DJNZR7,DEL03–这条指令执行了多少次?DELAY:MOVR5,#5;(R5)=5DEL01:MOVR6,#200;(R6)=100DEL02:MOVR7,#250;(R7)=250DEL03:DJNZR7,DEL03;[(5*200*250)*2]*12*1/12MHz=0.5SDJNZR6,DEL02DJNZR5,DEL01RET外循环中循环内循环软件延时程序纯粹利用执行指令来让耗费CPU运行时间,让CPU等一段时间之后再执行后续程序。循环执行内循环的指令,可以用极短的指令实现很多次循环次数、且可控制循环次数的程序,常用于软件延时。如何改变延时程序的延时时间?3.3.3逻辑运算与移位类指令80C51有逻辑运算与移位类指令共有24条,如表3-4。其中包括与、或、异或三种逻辑运算指令18条,移位指令4条,取反指令1条,清零指令1条。主程序中的移位指令:–RLA–实现流水灯效果的数据处理学会没有?实训提高会不会做?3.6技能提高:改变彩灯闪动的速度练习讲解:一、填空半导体存储器中有一类存储器在掉电后不会丢失数据,称之为_________,有一类存储器掉电后会丢失数据,称之为____________。单片机的存储器空间从物理上分为4个存储空间,分别是___、___、____、__。MOVA,#14H执行后,A中的数值为____。数据传送类指令的操作码有_______、___________、_________。四、程序题1、观察指令,判断执行结果MOVA,#10H;A=__________MOVR0,#20H;R0=_________MOV17H,R0;(17H)=________MOV@R0,A;(R0)=_________MOV22H,A;(17H)=________MOVR1,#17H;R0=_________MOVA,@R1;A=_________MOV22H,A;(17H)=________MOV11H,22H;(11H)=________四、程序题2、观察指令段,判断执行结果MOVDPTR,#2314HMOVR0,DPHMOV14H,#22HMOVR1,DPLMOV23H,#56HMOVA,@R0XCHA,DPH执行以上指令后A=___________四、程序题3、观察指令段,判断执行结果MOVR0,#2MOVA,R0MOVDPTR,#TABMOVCA,@A+DPTRTAB:DB13H,22H,33H,44H,67H执行以上指令后A=___________小结认识数据传送指令、算术运算指令、逻辑运算指令、控制转移指令、位操作指令,掌握MCS-51指令系统的大概情况。认识指令周期,单片机执行一条指令的时间。熟悉单片机存储器配置的基本情况。认识程序的基本结构,学习循环程序的编写及其结构特点,学会使用多重循环编写延时程序,会估算其延时时间。
本文标题:技能训练3 单片机指令的执行
链接地址:https://www.777doc.com/doc-3460172 .html