文档详情

单片机原理、接口及应用 习题程序集.doc

发布:2016-03-26约5.79千字共10页下载文档
文本预览下载声明
11 ANL A,#0FH SWAP A ANL P1,#0FH ORL P1,A SJMP $ 12 MOV A,R0 XCH A,R1 MOV R0,A SJMP $ 13.(1)利用乘法指令 MOV B,#04H MUL AB SJMP $ (2)利用位移指令 RL A RL A MOV 20H,A ANL A,#03H MOV B,A MOV A,20H ANL A,#0FCH SJMP $ (3)利用加法指令 ADD A,ACC MOV R0,A MOV A,#0 ADDC A,#0 MOV B,A MOV A,R0 ADD A,ACC MOV R1,A MOV A,B ADDC A,B MOV B,A MOV A,R1 SJMP $ 14 XRL 40H,#3CH SJMP $ 15 MOV A,20H ADD A,21H DA A MOV 22H,A MOV A,#0 ADDC A,#0 MOV 23H,A SJMP $ 16 MOV A,R0 JZ ZE MOV R1,#0FFH SJMP $ ZE:MOV R1,#0 SJMP $ 17 MOV A,50H MOV B,51H MUL AB MOV 53H,B MOV 52H,A SJMP $ 18 MOV R7,#0AH WOP:XRL P1,#03H DJNZ R7,WOP SJMP $ 19.单片机的移位指令只对A,且只有循环移位指令,为了使本单元的最高位移进下一单元的最低位,必须用大循环移位指令移位4次。 ORG 0 CLR C MOV A,20H RLC A MOV 20H,A MOV A,21H RLC A MOV 21H,A MOV A,22H RLC A MOV 22H,A MOV A,#0 RLC A MOV 23H,A SJMP $ 因为是多个单元操作,为方便修改地址使用间址操作。片外地址用DPTR指示,只能用MOVX指令取数到A,片内地址用R0或R1指示,只能用MOV指令操作,因此循环操作外部数据存储器→A→内部数据存储器。 ORG 0000H MOV DPTR,#1000H MOV R0,#20H LOOP:MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 CJNE R0,#71H,LOOP SJMP $ 要注意两高字节相加应加低字节相加时产生的进位,同时要考虑最高位的进位。 ORG 0 MOV A,R0 ADD A,R6 MOV 50H,A MOV A,R7 ADDC A,R1 MOV 51H,A MOV A,#0 ADDC A,ACC MOV 52H,A SJMP $ A中放小于14H(20)的数,平方表的一个数据占两个字节,可用BCD码或二进制数存放。(如A中放的是BCD码,则要先转换成二进制数再查表。) ORG 0 MOV DPTR,#TAB ADD A,ACC PUSH ACC MOVC A,@A+DPTR MOV R7,A POP ACC INC A MOV R6,A SJMP $ TAB:DB 00,00,00,01,00,04,00,09,00,16H,… DB …04H,00 先用异或指令判两数是否同号,在同号中判大小,异号中正数为大。 ORG 0 MOV A,20H XRL A,21H ANL A,#80H JZ CMP JB 20H.7,BG AG: MOV 22H,20H SJMP $ BG: MOV 22H,21H SJMP $ CMP: MOV A,20H CJNE A,21H,GR GR: JNC AG MOV 22H,21H SJMP $ 6.将待转换的数分离出高半字节并移到低4位加30H;再将待转换的数分离出低半字节加30H,安排好源地址和转换后数的地址指针,置好循环次数。 ORG 0000H MOV R7,#05H MOV R0,#20H MOV R1,#25H NET: MOV A,@R0 ANL A,#0F0H SWAP A ADD A,#30H MOV @R1,A INC R0 INC R1 DJNZ R7,NE SJMP $ END 7.片内RAM间址寄存
显示全部
相似文档