MCS单片机的结构和原理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS单片机的结构和原理

参考程序如下: START: MOV R0 ,#30H MOV R2 , #10H MOV R4 , #00H MOV R5 , #00H LOOP: MOV A , R5 ADD A , @R0 MOV R5 , A MOV A , #00H ADDC A , R4 MOV R4 , A INC R0 DJNZ R2 , LOOP END 【例3-13】 将内部数据存贮器30H~4FH单元中的内容传送至外部数据存贮器2000H开始的单元中。 解:编程说明: 内部数据区首址: R0←30H 外部数据区首址: DPTR←2000H 循环次数: R2←32H 程序流程如图3-9所示。 参考程序如下: START: MOV R0 , #30H MOV DPTR , #2000H MOV R2 , #32H LOOP: MOV A , @R0 MOVX @DPTR , A INC R0 INC DPTR DJNZ R2 , LOOP END 【例3-14】试将内部数据存储器中连续存放的N个数据由小到大进行排列。 设:数据区首地址存于寄存器R0中,数据个数N存于寄存器R6中。程序流程如图3-10所示。 参考程序如下: MOV 30H , R0 L1: DEC R6 MOV A , R6 MOV R3 , A MOV R2 , A MOV A , R0 MOV R1 , A INC R1 L2: MOV A , @R0 CLR C SUBB A , @R1 JC L3 MOV A , @R0 XCH A , @R1 MOV @R0 , A L3: INC R1 DJNZ R2 , L2 INC R0 DJNZ R3 , L1 MOV R0 , 30H END 3.3.8 查表程序设计 【例3-15】利用查表的方法编写Y= X2 (X=0,1,2…9 )的程序。 编程说明: 设变量X的值存放在内存30H单元中,变量Y的值存入内存31H单元。先用远查表指令MOVC A, @A+DPTR 编写程序(参考程序1);再用近查表指令MOVC A , @A+PC 编写程序(见参考程序2)。 参考程序1: ORG 1000H START: MOV A , 30H MOV DPTR , #TABLE MOVC A , @A+DPTR MOV 31H , A TABLE: DB 0 , 1 , 4 , 9 , 16 DB 25 , 36 , 49 , 64 , 81 END 参考程序2: ORG 1000H START: MOV A , 30H ADD A , 02H MOVC A , @A+PC MOV 31H , A DB 0 , 1 , 4 , 9 , 16 DB 25 , 36 , 49 , 64 , 81 END 【例3-16】 将1位十六进制数,转换成相应ASCⅡ码。用计算求解和查表求解,进行比较。 (1) 计算求解: 编程说明: 设待转换的一位十六进制数存放在40H 单元中,转换后的ASCⅡ码仍存放在40H 中。 编程思路: 十六进制数0~9 的ASCⅡ为41H~46H.,当待转换的数≤9时,加30H,既是其对应的ASCⅡ码;当待转换的数9时,加37H。程序流程如图3-11所示。 参考程序如下: ORG 0100 H MOV A , 40 H ANL A , # 0F H CLR C SUBB A, # 0AH JC NEXT ADD A , #0AH ADD A , #37H SJMP SAVE NEXT: ADD A , #0AH ADD A , #30H SAVE: MOV 40H , A END (2) 查表求解: ORG 0100H MOV A , 40H ANL A , #0FH ADD A , 02H

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档