【程序範例】
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,數據就一直緩存在晶片中不輸出。