当前位置: 代码迷 >> 单片机 >> C51语法求解,该如何处理
  详细解决方案

C51语法求解,该如何处理

热度:223   发布时间:2016-04-28 16:34:38.0
C51语法求解
tmp = (led_7219_addr[i-1]<<8) | led_7219_data[i-1];
求大牛给我解释下这句语句;

整体程序段:void out_led(void)
{
uchar i,j;
uint tmp;

LOAD = 0;
CLK = 0;
_nop_();
for(i=2; i>=1; i--) //送每块7219某一LED的数据,先送最后一块
{
tmp = (led_7219_addr[i-1]<<8) | led_7219_data[i-1];
for(j=0; j<16; j++)
{
if((tmp & 0x8000) == 0x8000)
DIN = 1;
else
DIN = 0;
_nop_();
CLK = 1;
_nop_();
CLK = 0;
tmp <<= 1;
}
_nop_();
}
LOAD = 1;
}


------解决方案--------------------
这???????????
不就是一个变量左移8位和另一个变量或一下(加也可以),组成一个16位数存在一个变量中么。
与下面结果是一样的
tmp = (led_7219_addr[i-1]*256) + led_7219_data[i-1];

  相关解决方案