关于C51的问题

hanbing841208   2010-3-13 13:40 楼主
请问一下
例如:code unsigned char TAB[]={。。。}

{。。。}这里面的数值要怎么确定啊?

回复评论 (11)

值不大于255的非负数,即单字节数或字符串。
点赞  2010-3-13 14:40
引用: 引用 1 楼 zdxin 的回复:
值不大于255的非负数,即单字节数或字符串。


还是不太懂。。。
例如
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

那这个里面的数值是怎么确定的呢?还是随机选取?
点赞  2010-3-13 14:42
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

1.在单片机或计算机中存取字符或数字都是以数字进行存储的,字符在数据存储器中存储的是字符的ASCII码。
  整数好像是存储的是补码。
2.因为char 在单片机中用8个二进制位表示,即一个字节(Byte)。
3.又因为unsigned char 是无符号型,所以其表示的最大范围为十进制数(0-255);
  十六进制数(0x00 - 0xff)。
由以上三点我们可得:
当我们要定义一个整数数组,元素为 1,2,3;因为1,2,3小于255所以为了节约存储空间
我们可以定义为:unsigned char code table[]={0x01,0x02,0x03};

当我们定义一个字符数组,元素为 a b c
我们可以定义为:unsigned char code table[]={0x61,0x62,0x63};

其中的code 表示数组存储在ROM中。
点赞  2010-3-13 14:57
你提供的数据是数码管的7段码码表值,这里面的数据是根据电路的连接以及所选用的硬件的性质决定的,不是随机数。
另外,那句是用于定义一个数组,当然数组中的数据一开始可能就是已知的。
点赞  2010-3-13 21:27
学习UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
点赞  2010-3-13 21:56
那是一个表格,是按照你的需要存储的一些常数
点赞  2010-3-13 22:41
{。。。}这里面的数值要怎么确定啊?

你怎么用怎么定。。。

它主要是为了避免单片机要进行过多的运算而提前计算好放在存储器里面的

在用到单片机计算的时候,就可以省略,直接把答案查表出来即可
点赞  2010-3-13 23:38
楼主这是0~9和A~F的共阳极数码管的段码,鉴定完毕
点赞  2010-3-14 10:09
就是为了 节约一些计算,不用相关算法,
自己先人工把相关数值 计算好,放在那里面,
然后采用查表的方法实现。





点赞  2010-3-14 10:21
查表用的,像用户手册,让程序跑得更简单些,更快些.
点赞  2010-3-14 14:34
大哥是uchar code table[]={不大于255得数}
点赞  2010-3-14 18:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复