/*74HC595是硅結構的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標準。 74HC595是具有8位移位寄存器和一個存儲器,三態輸出功能。 移位寄存器和存儲器是分別的時鐘。時鐘線sck在上升沿將數據輸入(即由低電平編導高電平), 數據在si的上升沿輸入,在si的上升沿進入到存儲寄存器中去。如果兩個時鐘連在一起,則 移位寄存器總是比存儲寄存器早一個脈沖。 移位寄存器有一個串行移位輸入(Ds), 和一個串行輸出(Q7’),和一個異步的低電平復位,存儲寄存器有一個并行8位的, 具備三態的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線。 8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻關斷狀態。 */ #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit rck=P0^0;//對輸出存儲器鎖存時鐘線的位定義 sbit sck=P0^1;//對數據輸入時鐘線的位定義 sbit si=P0^2;//對數據線的位定義 uchar code num[]={0x80,0xed,0x42,0x48,0x2c,0x18,0x10,0xcc,0x00,0x08};//0~9的數字顯示 void delay(uint time)//延時函數 { while(--time); } void write_date(uchar temp)//移位寄存器 { uint i; for(i=0;i<8;i++) { temp>>=1;//把輸進來的8位數據右移一位,從而最右端的一位溢出 sck=0;//輸入時鐘位低電平 si=CY;//把移位溢出來的數據賦給最高位 sck=1;//輸入時鐘位高電平 } } void main()//主函數 { uint i,j; for(i=0;i<10;i++) for(j=0;j<10;j++) { write_date(num[i]); write_date(num[j]); rck=0;//數據線低電平 rck=1;//數據線高電平 delay(100000);//調用延時函數,使時間變長 } }