51单片机怎么拆分一个十进制字节的高四位与低四位,

例如MOV 26H,#20 ;把十进制数20载入26H
然后提取出26H的高四位来送去P1.0 P1.1 P1.2 P1.3口 ,低四位送去P2.0 P2.1 P2.2 P2.3口,
实际是用到数码管的显示,是三段的数码管,

您的“把十进制数20载入26H”这个说法有些糊涂。
数的本身是无所谓“进制”的。一个数就是一个数,所谓“进制”只不过是一种表示方式而已。

您的这一条指令,不过就是把“这个数”送入26H单元。
这个指令中,数字20,只不过是您的程序里写成10进制的样子了,但并不是要求CPU也按照“这个样子”来载入存储单元。
这个指令中,你把20改写成14H,CPU来说,含义完全一样。因为这仍然是同一个数。这个数如果化为二进制就是00010100。

至于CPU实际载入存储单元时只可能是按二进制:00010100。
所谓“字节”,就是指8位二进制的存储单元存放的数据。
一般说一个字节的高四位、低四位,都是指二进制形式中的位。

所以,您的题目中的措辞“十进制字节的高四位与低四位”非常糊涂。
何谓“十进制字节”?何谓“位”?是哪个进位制的“位”?

顺便指出:楼上DMF_WYW的解答,是“二进制的高四位与低四位”。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-27

拆分高四位和低四位分别送P1和P2程序如下(假如存在26H中):

DATDL:
    MOV A,26H
    ANL A,#0F0H
    SWAP A
    MOV B,A
    MOV A,P1
    ANL A,#0F0H
    ORL A,B
    MOV P1,A
    MOV A,26H
    ANL A,#0FH
    MOV B,A
    MOV A,P2
    ANL A,#0F0H
    ORL A,B
    MOV P2,A
    RET

本回答被网友采纳
第2个回答  2011-05-05
拆分一个字节的高四位与低四位,除以16,即可。
MOV A, 26H
MOV B, #16
DIV AB ;分解成功
MOV P1, B
MOV P2, A

SJMP $本回答被提问者采纳
第3个回答  2011-05-05
MOV A,26H
ANL A,#0FH
ANL P2,#0F0H
ORL P2,A
MOV A,26H
ANL A,#0F0H
SWAP A
ANL P1,#0F0H
ORL P1,A

51单片机怎么拆分一个十进制字节的高四位与低四位,
您的这一条指令,不过就是把“这个数”送入26H单元。这个指令中,数字20,只不过是您的程序里写成10进制的样子了,但并不是要求CPU也按照“这个样子”来载入存储单元。这个指令中,你把20改写成14H,CPU来说,含义完全一样。因为这仍然是同一个数。这个数如果化为二进制就是00010100。至于CPU实际...

51单片机如何拆分一个十进制字节的高四位与低四位?
1.除法:除16,模是高4位,余是地4位 2.右移4位:

在单片机里什么叫低四位,低八位和高八位?
低四位,意味着还高四位,就是说有1个字节,比如说ACC占据1个字节,它是01100011,高四位是0110,低四位是0011 高八位,低八位,就是说这个寄存器有2个字节,比如说DPTR,如果它是01111101 10111110,高八位就是01111101,就是DPH,低八位是10111110,是DPL ...

单片机中高四位和低四位是什么意思。能用恰当的比喻表达出来吗?_百度...
你把一个字节的数据假设成0~99 高四位就是十位 低四位就是个位,二进和十进制的数据没有多大差别,类比一下就行 实在不理解 12345678 十进制数 高四位就是1234 低四位就是5678 比如0xaa这个十六进制数 转化为二进制是1010 1010,高低位很明显换成十进制是170 ...

MCS-51单片机,逻辑与和高低位指令SWAP的问题?
情况一:假如你要将A的高四位和另一个4位(0000$%&@)的数作比较,那就应该选用上面程序那样,使用SWAP。因为你直接把低4位屏蔽而直接取高4位,这样的结果是A=***0000,其中前面的4位星是代表你原来A中的高4位。但要比较一个数,不能是0000***与另一个数0000$%&@比较,而应该是0000***...

单片机中如何把高四位与低四位进行转换
假设a为原来的数 b储存高4位 c存低四位 b=a>>4; \/\/右移4位使高4位存在低位 c=a<<4; \/\/左移4位使低4位存在高位 a=b|c; \/\/高低4位 或 组成新的 简化 b=a>>4;a=(a<<4)|b;简化 a=(a<<4)|(a>>4);

51单片机 高位低位
所谓高位,一般是指单字节的最高位或高4位,或双字节中的高字节。所谓低位,一般是指单字节的最低位或低4位,或双字节中的低字节。例如:十进制的100用二级制表示为01100100,最高位为0,高四位为0110。最低位为0,低四位为0100.

单片机中高8位是什么,低8位又是什么,还有高四位低四位的,求解
(1)之所以要分低8位和高8位的原因是,普通51单片机(其实基本上简单的单片机都这样)的寄存器只能放下8个字(位,bit),即1 byte(1字节)(2)高低八位其实就是把一个数拆开来。如果一个数高于0xff,小于0xffff就会出现放不进1个寄存器但却能拆开来放在2个寄存器的情况(这种情况很普遍)。

加a的高四位和低的四位互换用一条单片机指令实现的是什么?
如果你是指51单片机,那么通过 SWAP A 指令即可实现高低4位的互换。这条指令是配合BCD运算用的。

...RAM2000H单元到2020H单元的数据的高四位和低四位互换的程序?_百度...
Mov dptr,#2000h Movx a,@dptr Mov 20h,a 供参考。

相似回答