一段C51的二进制转十进制的程序

LOOP1:
  CLR A                   ;二转十子程序MOV R2,TH0  MOV R3,TL0

MOV R4,A                ;将R4R5R6分别清零
MOV R5,A
MOV R6,A

MOV R7,#10H           ;R7=(#10H)=16


LOOP2:
 
  CLR C               ;请进为标志位,为循环移位做准备
MOV A,R3              ;低八位循环左移 最高位数据给了C 最低位补零                  
RLC A
MOV R3,A

MOV A,R2              ;高八位左移。 C中的值移进R2的最低位(即高八位的最低位)
RLC A
MOV R2,A

MOV A,R6              ;将R6中的值乘以2(带进位位的)
ADDC A,R6
DA A                  ;十进制调整指令
MOV R6,A              

MOV A,R5              ;同理R5乘以二
ADDC A,R5
DA A
MOV R5,A

MOV A,R4              ;同理R4乘以二
ADDC A,R4
DA A
MOV R4,A

DJNZ R7,LOOP2         ;该段程序循环16次 ,因为总共有16个位的数据

RET

你可能感兴趣的:(单片机,51单片机)