- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
注意:只有累加器A才能把数据传到外部RAM,或接收从外 部数据存储器传回的数据。 比如:MOVX 20H, @DPTR MOVX @DPTR,SBUF MOVX @DPTR,R2 MOVX @DPTR,@R1 都是错误的 思考:如果要将内部RAM中40H单元中的数据传递到外部RAM的2000H单元中,应如何解决?试写出相应程序。 MOV DPTR,#2000H MOV A,40H MOVX @DPTR,A 四、查表指令 指令格式: MOVC A, @A+DPTR ;A ←((A)+(DPTR)) MOVC A, @A+PC ;A ←((A)+(PC)) 3055H 相加=3055H A 66H DPTR 3000H 取出 地址 A 55H 66H Eg:MOV DPTR, #3000H MOV A, #55H MOVC A, @A+DPTR (ROM数据传送指令)2条 例:在累加器A中存放有0~9间的某个数,现要求查出该数的7段共阴显示代码,并将代码传回累加器。 解决方案:在程序存储器中划出一个区域用于存放0~9的7段共阴显示代码,比如将代码存放在0400H开始的地方。程序如下: …… MOV DPTR, #0400H MOVC A , @A+DPTR …… ORG 0400H DB 3FH ;0的7段共阴显示代码 DB 06H ;1的7段共阴显示代码 DB 5BH ; 2的7段共阴显示代码 DB 4FH ; 3的7段共阴显示代码 DB 66H ; 4的7段共阴显示代码 …… 注意:我们只能将程序存储器中的数据传出(读出),而不能将数据传入(写入)程序存储器。因此,语句: MOVC @A+DPTR , A MOVC @A+PC , A 都是错误的。 思考题:MCS-51单片机的运算能力比较差,想想能不能够利用查表方式进行函数y=sin(x)的运算? 五、堆栈操作指令 堆栈操作指令包含入栈(PUSH)和出栈(POP)。在使用堆栈之前要首先给堆栈指针SP赋值。 指令格式:PUSH direct POP direct 注意:先入后出原则 程序举例: MOV SP , #30H PUSH SBUF; SP ← (SP)+1, 31H←(SBUF) PUSH 60H ; SP ← (SP)+1, 32H←(60H) …… POP 60H ; 60H ←( 32H), SP ← (SP)-1 POP SBUF;SBUF ←(31H), SP ←(SP)-1 六、字节交换指令 字节交换指令指内部RAM中的某个单元和累加器A之间进行数据交换,可以是整个字节,也可以是半个字节。包含3种交换方式: 1、整字节交换指令: XCH A, Rn ; (A) ← →(Rn) XCH A, direct ; (A) ← →(direct) XCH A, @Ri ; (A) ← →((Ri)) A 内部RAM单元 2、半字节交换指令 XCHD A, @Ri ; (A) 3~0 ← →((Ri))3~0 指令执行后 A0 A1 A2 A3 D4 D5 D6 D7 (Ri) D0 D1 D2 D3 A4 A5 A6 A7 A D0 D1 D2 D3 D4 D5 D6 D7 (Ri) A0 A1 A2 A3 A4 A5 A6 A7 A
文档评论(0)