- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【例】:将外部数据RAM中地址单元在256字节范围内的一个数据块传送到内部数据RAM中,两者的首地址分别为DATA1和TATA2,遇到传送的数据为0时停止。 解:外部RAM向内部RAM的数据传送一定要借助于累加器A,利用累加器判零转移指令正好可以判别是否要继续传送或者终止。 MOV R0,#DATA1 ;外部数据块首地址 MOV R1,#DATA2 ;内部数据块首地址 LOOP:MOVX A,@R0 ;外部数据送给A HERE:JZ HERE ;为0则终止 MOV @R1,A ;不为0传送内部RAM数 据 INC R0 ;修改地址指针 INC R1 SJMP LOOP ;继续循环 4.空操作指令(1条) 指令格式:NOP 这条指令除了使PC加1,消耗一个机器周期外,不执行任何操作。常用于短时间的延时,以匹配时序。 3.8 位操作类指令 布尔变量即开关变量,它是以位(bit)为单位进行操作的,所以也叫位操作。位操作是MCS-51系列单片机的一个重要特征,共17条。在物理结构上,MCS-51单片机有一个布尔处理机,它以进位标志作为累加器,以内部RAM可寻址的128个位及部分SFR为操作对象。 4.位控制转移指令(5) 【例】:完成(Z)=(X)⊕(Y)异或运算,其中:X、Y、Z表示位地址。 解:异或运算可表示为(Z)=(X)(/Y)+(/X )(Y),参考程序如下: MOV C,X ;CY←(X) ANL C,/Y ;CY←(X)∧/(Y) MOV Z,C ;暂存Z中 MOV C,X ;CY←(X) ANL C,/X ;CY←(X)∧/(X) ORL C,Z ;CY←(X)∧/(X)+(X) ∧/(Y) MOV Z,C ;保存异或结果 实 践 题目:广告灯控制系统 内容:做宣传广告时,为了使广告内容醒目,引人注意,往往用灯光闪烁或明暗对比等手段。设有8个广告字,每次亮一个字,亮10ms,依次左移,然后依次右移,循环不止。 要求:以LED发光二极管代替广告字,程序延时。 硬件:画出硬件电路原理图,考虑LED的驱动问题。 软件:画出程序流程图,编写源程序。 调试:记录调试过程,分析调试结果。 【例】: 设内部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。 3.以直接地址为目的操作数的传送指令(5条) 这组指令的功能是把源操作数送到由直接地址direct所选定的片内RAM中。有直接、立即、寄存器和寄存器间接4种寻址方式 注意:MOV direct1,direct2,翻译成机器码时,源地址在前,目的地址在后。 这组指令的功能是把源操作数送到以Ri中的内容为地址的片内RAM中。有直接、立即和寄存器3种寻址方式。 这组指令的功能是对存放于程序存储器中的数据表格进行查找传送,使用变址寻址方式。 【例】:编一查表程序将内部RAM40H单元内的数(0~9)的平方存入内部RAM50H单元。 先作一个0~9的平方表,存入TAB中。然后用查表指令实现上述功能。 MOV A,40H ;40H单元的数送A MOV DPTR,#TAB ;DPTR指向表头 MOVC A, @A+DPTR ;查表 MOV 50H,A ;查表得到的平方值 存50H SJMP $ ;等待 TAB:0,1,4,9, ……81 思考问题:如何用PC来实现?有什么区别? 这4条指令的功能是实现累加器A与片外RAM间的数据传送。使用寄存器寻址方式 堆栈操作有进栈和出栈,即可以压入和弹出数据,常用于保存或恢复现场。进栈指令用于保存片内RAM单元(低128字节)或特殊功能寄存器SFR的内
文档评论(0)