显然数组的定义初始化在函数体内、体外这个没有影响 再看不同之处,你的代码中数组定义有 code 这就是...
显然数组的定义初始化在函数体内、体外这个没有影响 再看不同之处,你的代码中数组定义有 code 这就是...
表示定义了一个变量,变量名为outdata,变量类型是unsigned char,变量的初值是0xfe
你不是用了(char)吗?它把a强制为char型了,而char型的范围是-128~+127,0xfe就是11111110,这个数的二进制最高位是1,自然按负数处理了,要对数据位取反+1,那就变成了10000010,你看这是不是-2?
0xfe=1111 1110b 0xfd=1111 1101b 0xfb=1111 1011b 0xf7=1111 0111b...看出规律来了吗 这是一个流水灯的程序吧!?P1=fang[i];就是说分别给单片机的P1的各个口赋值低电平,然后点亮LED灯!
unsigned char a = 0xfe; printf("%d",(char ) a) ; 你不是用了(char)吗?它把a强制为char型了,而char型的范围是-128~+127,0xfe就是11111110,这个数的二进制最高位是1,自然按负数处理了,要对数据位取反+1,那就变成了10000010,你看这是不是-2?
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} 我们知道,在单片机中一般都有两块存储区域,ROM和RAM,程序代码存储在ROM中,程序要用的变量存储在RAM中。而“code”的作用就是将其修饰过的变量存储在ROM中而非RAM。
0xfe=1111 1110b 0xfd=1111 1101b 0xfb=1111 1011b 0xf7=1111 0111b...看出规律来了吗 这是一个流水灯的程序吧!?(0的位置)
unsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf70xef,0xdf,0xbf,0x7f};定义数码管显示位选数组unsigned char code displaycode[]={0x3f,0x06,0x5b,0x4f0x66,0x6d,0x7d,0x070x7f,0x6f,0x77,0x7c0x39,0x5e,0x79,0x71,0x00,0x40};定义共阴极数码管显示编码数组unsigned char code dotcode...
unsigned code dis[] = {0xfe,0xfd,0xfb,0xf7};简单化成二进制 11111110 11111101 11111011 11110111 这是位选代码一般用于八位数码管(我只用过数码管)