单片机习题00.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机习题00

3-2传送类指令: 4、将外部ram2000h单元内容和内部ram20h单元内容互相交换 MOV DPTR,#2000H;MOVX A,@DPTR;XCH A,20H; MOVX @DPTR,A 5、编程将片内50h单元存放的1~9的数转换成相应的ASC2码。 (1)MOV A , #30H;XCHD A , 50H;OV 50H , A (2) MOV A,50H;ADD A,#30H ;MOV 50H , A 4-1伪指令 例:查找内部ram20h-50h单元中出现00h的次数,结果保存在r1中。 mov r0,#20h;mov r2,#31h;mov r1,#0h;bb:mov a,@r0;cjne a,#0,aa;inc r1;aa:inc r0 djnz r2,bb;mov a,r1;sjmp $ CJNE A,#0,feiling ;MOV 20H,#0FFH;sjmp $ feiling: jnc zheng;MOV 20H,#0FFH;SJMP JS;ZHENG: MOV 20H,#0 JS: SJMP $ (1)已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后,( 40H ) =____。 MOV @R0 , #11H ;(20h)=11h MOV A , R2 ;(a)=20h ADDC A , 20H ;(a)=31h MOV PSW , #80H ;cy=1 SUBB A , P0 ;(a)-30h-1=0 XRL A , #45H ;(a)=45h MOV 40H , A ;(40h)=45h 4-2分支程序 例1、编写程序把A中的二进制数转换为3为BCD码,百位十位和各位分别存入30H开始的3个存放单元。(流程图) 如(A)=167 则程序执行后: (30H)=1, (31H)=6, (32H)=7. 167如何分离出1、6、7三个数字? MOV B,#100;DIV AB;MOV 30H,A;MOV A,B;MOV B,#10H;DIV AB MOV 31H,A;MOV 32H,B 例2、编程实现将A中两位压缩BCD码转换为ASC2码存入30h和31H单元。 org 0000;mov r0,#30h;mov b,a;start:anl a,#0fh;ADD A,#30H;MOV @R0,A;MOV A,B ANL A,#0F0H;SWAP A;ADD A,#30H;INC R0;MOV @R0,A;SJMP $;end 2`、编程实现将A中一位16进制数转换为ASC2码存入30h单元。 org 0000;mov b,a;start:anl a,#0fh;mov r1,a;clr c;subb a,#0ah;jc aa mov a,r1;add a,#37h;mov 30H,a;sjmp $;aa:mov a,r1;add a,#30h mov 30H,a;sjmp $;end 例3:求双字节数的补码:该数存放于内部RAM 20H和21H两个单元,高地址存放高字节。要求读出补码后存于30H和31H单元。(流程图)先讲解单字节? 思路:先对低字节求补(即取反加1),判定其结果是否为0,若是(即低字节取反加1后有产生进位),则高字节取补(取反加1),否则,高字节取反,不加1。 ORG 0000;MOV A,21H;JB ACC.7,START;MOV 30H,20H MOV 31H,21H;AJMP JIESU START:MOV A,20h;CPL A;Add A,#01 MOV 30h,A;低八位取反加1,A中存放 MOV A,21h ;表示要加进位的情况;CPL A;addc A,#00h BB:SETB ACC.7;MOV 31h,A;JIESU:sjmp $; END 例5:设变量X存放于R2中,函数值Y存放于R3中。试按下式要求给Y赋值。 方法1: ORG 0100H MOV A,R2 ;X→A CJNE A,#00H,L1 ;(A)与0比较,不等则转移 MOV R3,#00H ;若相等,0→R3 SJMP L3 L1:JB ACC.7,L2 ;X<0,则转移 MOV R3,#01H ;X>0,1→R3 SJMP L3 L2:MOV R3,#0FFH ;X<0,?

文档评论(0)

pengyou2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档