发布网友 发布时间:2022-05-23 19:01
共1个回答
热心网友 时间:2023-11-10 19:08
ad转换的数据是对基准电压的一个比例值,如果你的基准电压是5v,ad转换后就通过把你转换得出的值乘以你的最小刻度,就是分辨率了,如果你是8为ad,基准5v的话,分辨率就是5/256.在数据处理的时候,你就用你ad后的值乘以5/256。实际处理的时候,先乘以5,然后再除以256,除以256,实际上可以利用右移来实现。右移一位就是相当于除以2。256就要右移8为。右移的时候不能用循环右移,需要借助cy位。然后就可以分离出数据了。就你上面的2.5v,你就是1000,0000*101=10,1000,0000,然后右移8位,就得出整数2,把右移的通过进位转到另一个寄存器,这样就能分离出整数和小数。追问您说的这个我是知道的,我不明白的是我如何把我现在处理得到的10位AD值,如何去乘于分辨率,得到实应的模拟量,8位的话我是知道的,直接拿转换的结果乘以分辨率就行了,但十位的我如何处理先,举例来说,我现在10位AD值为1111 1111(高位)0000 0011(低位)我现在该如何运算得到模拟量5V,因为我在运算的时候,只能一个寄存器一个寄存器的乘,那二个寄存器我的该如何做