51单片机的查表法的原理是什么?

51单片机的查表法的原理是什么?,第1张

查表法,就是将你的一些固定的数据存储到程序存储器中,当你的程序中需要这些数据时,movc指令读取这些数据。举例假设你的液悉系统要用数码管显示0-9这10个数字,而假设这10个数字各自的断码(点亮时io口相应的电平)分别为\x0d\x0a0xC0,//"0"\x0d\x0a0xF9,//"1"\x0d\x0a0xA4,//"2"\x0d\x0a0xB0,//"3"\x0d\x0a0x99,//"4"\x0d\x0a0x92,//"5"\x0d\x0a0x82,//"6"\x0d\x0a0xF8,//"7"\x0d\x0a0x80,//"8"\x0d\x0a0x90,//"9"\x0d\x0a你有两种方法存储这时个数据,一种是在数据区用十个字弊轿节存储这些数据(数据常量),但这会占用你的数据存储器空间。另外一种方法就是把这些不变的数放到程序空间中,到需要租埋肆的时候到程序空间中读取,这便是查表。也就是在程序空间中建立一个表,假设你需要就9这个数值的断码,就去表中查看一下9对应的数据。

查表,其实就是字面上的意思,先用c语言的形式解释比如用查表法计算平方根,你应该知道用单片机去求平方根的速度肯定是很慢的,但是当我们只需要求1到9的平方根时,我们可以把1到9的平方根直接保存在sqrt[]这个数组里,sqrt[1]=1sqrt[2]=1.414这样类推。需要用到那个数的平方根睁嫌直接sqrt[]里面放上那个数就行了,这就是查表了。这样速度就会快很多。单片机查表用的最多的是数码管的译码工作,就是把0-9的数字转换成对应数码管的段码。还有就是一些需要计算的值。因为单片机的运行速度问题,稿镇为了提高速度常用查表法悉敬手。如果是汇编其实就是把表放在数据区了,通过地址来查表。原理是一样的。希望对你有所帮助。

基本原理是:在K位信息码后橘森档再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设要发送的信息用多春差项式C(X)表示,将C(x)左移R位(可表示成C(x)*xR),这样C(x)的右边就会空出R位,这就是校验码的位置。用 C(x)*xR 除以生成多项式G(x)得到的余数就是校验码。

任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:圆乱代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12535364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存