1.在mcu中都是以二进制的形式进行计算的.
2.在编程时,我们通常用到的有十进制的数值形式和十六进制的数值形式,如52,0xfe;
3.数值的大小由数据的类型来决定。
4.常用的有“unsigned int”和“unsigned char”.
unsigned char的范围是0-255, 与单片机端口的8位的最大值(0xff)相对应。
unsigned int的范围是0-65535,与之对应的是0xffff。
5.数值的写入:
在51单片机中,写入的数值可以是十进制和十六进制,但不能是二进制。
比如:p1=4; p1=0x04;
当写语句p1=4;时
p1^0——p1^7的电平依次为 “0010 0000”
当写语句p1=65;时
p1^0——p1^7的电平依次为 1000 0010; 65的十六进制码为:0x41
从以上两个数值可以发现,端口的低位对应的是数值的低位,端口的高位对应的是数值的高位。
6.在用数码管显示数字的时候,是一个位数字,一位数字的写入,比如说26,先写2,再写6.
以用数码管写2为例:将数码管的断选abcdefgdp分别接到p1^0,p1^1……p1^7;
若要显示2,则要求abcdefgdp依次为:1101 1010
如果按照端口的对应,写p1=0xda,那就错了。
二进制也是高位在前,低位在后,所以端口写数据时也要低对低,高对高,所以要将1101 1010为
0101 1011
所以数码管显示2的十六进制码为p1=0x5b
同理可算出0-9的十六进制码依次为0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f