//
//下面是壹個595輸出的程序,供參考。
//
/********************************************************/
/*
*/
/*將顯示數據送入74HC595內部移位寄存器
*/
/*
*/
/********************************************************/
void WR_595(uchar temp)
{
uchar j;
for (j = 8; j > 0; j--) {
SDATA_595 = (temp & 0x80);
SCLK_595 = 0;
//上升沿發生移位
temp = temp << 1;
SCLK_595 = 1;
}
}
/********************************************************/
/*
*/
/*將移位寄存器內的數據鎖存到輸出寄存器並顯示
*/
/*
*/
/********************************************************/
void OUT_595(void)
{
RCK_595 = 1;
//上升沿將數據送到輸出鎖存器
_nop_(); _nop_();
RCK_595 = 0;
}
/********************************************************/
/*
*/
/*主函數
*/
/*
*/
/********************************************************/
main()
{
uchar tem;
uchar i, m;
SCLK_595 =0;
RCK_595 = 0;
oe_595 = 0;
for(i = 0; i < 8; i++) {
tem = DAT[i];
//取顯示數據
WR_595(tem);
OUT_595();
delay(1000);
}
while(1);
}