#include
void main(void)
{
unsigned char m,n;
unsigned int s;
m=64;
n=71;
s=m*n;
P1=s>>8; //这样写你应该可以理解了
P0=s; //一个16位数直接赋值给8位变量,潜规则就是只取低八位。
}
看第一句注释应该是 s=m*n;(应该不能直接写m n的吧)
也就是s=4544,二进制就是0001 0001 1100 0000,高八位就是0001 0001,低八位就是1100 0000
P1=s/256,s/256就是去掉后八位的意思(256是2的八次方,除以256就是去掉后八位),也就是0001 0001,然后把这0001 0001赋值给P1口,那么P1口的P1.0和P1.4就是高电平灭,其他是低电平亮。
P0=s%256,s%256是只留后八位(取模嘛,前面的都舍弃了)
高8位显示的数值,要乘以256,才能与低8位相加。
因为高8位的1相当于256.
备注不要太认真去看,各人的理解方式不同,
程序猿也是会进化的,只要记住公式,慢慢的你会有自己的理解方式。
另外,程序里面低8位的1口应该是亮的。