【程序范例】
void SerIn(unsigned char dat)
{
unsigned char i;
for (i = 0; i < 8; i++)
{
SHCLK = 0;
if (dat & 0x80)
SDAT = 1;
else
SDAT = 0;
dat <<= 1;
SHCLK = 1;
}
}
void ParOut(void)
{
STCLK = 0;
STCLK = 1;
}
int main(void)
{
SerIn(0xfe); // 选中第1列
SerIn(0xf1); // 第一列的内容
ParOut();
SerIn(~BIT(1));
SerIn(0xf2);
delay(1000); // 等待1秒
ParOut(); // 输出
while (1);
}
可见,虽然SerIn输入了数据,但是如果不执行ParOut,数据就一直缓存在芯片中不输出。