173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

51单片机无法和成24位数据

htxw 2023-03-15 资讯中心 16 ℃

怎么用8位51单片机读取24位的ADCS1210?

这个要看adzc1210是串行还是并行,前者可用串口或者io模拟串口来依次读取,注意数据头尾即可。后者可以分配4个地址,一次保存,依次读取。

您好 请问8位的51单片机能和24位的hx711模块相连么

可以的,hx711用的是串口同步通信,可以用单片机的普通IO管脚模拟同步串口通信

即使并行接口的AD器件,也不会傻到用24根数据线和单片机相连, 一都是8根线多次读取

51单片机怎么处理24位数据?

3字节二进制数范围为0-16777215,所以需要8位数码管来显示这个数

假如我们收到的三字节数为0E23456H=14824534(十进制)

那么,若想将其显示出来,我们需分别求出1,4,8,2,4,5,3,4 这8个数,

分别将其放入相应的内存单元,供显示程序读取。

现在的关键问题就是如何从0E23456H得到1,4,8,2,4,5,3,4

我们知道,0E23456H=14824534=1*10000000+4*1000000+8*100000+2*10000+4*1000+5*100+3*10*4*1

这就是十进制

所以,我们只需将14824534除以10000000,商即为10000000的权值,结果是1;余数为4824534,再除以1000000,商即为

1000000的权值,结果是4;余数为824534,再除以100000,....;余数为34,再除以10,得3,为10的权值;余数为4,为

1的权值.

8个数都求出来了

ok

如果你觉得3字节除以3字节的子程序比较难编,我这有个4字节除以2字节的子程序,你可以先把14824534除以10000得到

1482,然后用1482除以1000得1,余数除以100得4,再余数除以10得8,再余数为2。然后用14824534-1482*10000得到4534,

同样的方法得到4,5,3,4

HOHO~

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;函数名称:无符号32位被除数除以16位除数子程序

;说明: 除数不能为0,适用于商不大于2字节的除法

;入口参数:BCS4,BCS3,BCS2,BCS1; CS2,CS1 (4字节被乘数和2字节乘数,高字节在前)

;出口参数:BCS4,BCS3,BCS2,BCS1 (BCS4BCS3为余数;BCS2BCS1为商,高字节在前)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

BCS4 EQU 60H

BCS3 EQU 61H

BCS2 EQU 62H

BCS1 EQU 63H

CS2 EQU 64H

CS1 EQU 65H

DIV32: MOV B,#16

DIV32LOOP1:CLR C

MOV A,BCS1

RLC A

MOV BCS1,A

MOV A,BCS2

RLC A

MOV BCS2,A

MOV A,BCS3

RLC A

MOV BCS3,A

XCH A,BCS4

RLC A

XCH A,BCS4

MOV PSW.5,C

CLR C

SUBB A,CS1

MOV 66H,A

MOV A,BCS4

SUBB A,CS2

JB PSW.5,DIV32LOOP2

JC DIV32LOOP3

DIV32LOOP2:MOV BCS4,A

MOV A,66H

MOV BCS3,A

INC BCS1

DIV32LOOP3:DJNZ B,DIV32LOOP1

CLR PSW.5

DIV32DONE:RET

DIV32LOOP4:SETB PSW.5

SJMP DIV32DONE

51单片机无法和成24位数据的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:51单片机无法和成24位数据

<