|
2片74HC595級聯(lián),連續(xù)送2個8位或一次送16位數(shù)據(jù)。
- /**************** 向HC595發(fā)送一個字節(jié)函數(shù) ******************/
- void Send_595(unsigned char dat)
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- dat <<= 1;
- P_HC595_SER = CY; //溢出位賦值數(shù)據(jù)輸出端
- P_HC595_SRCLK = 1; //移位時鐘
- P_HC595_SRCLK = 0;
- }
- // P_HC595_RCLK = 1;//鎖存輸出數(shù)據(jù)
- // P_HC595_RCLK = 0;
- }
- /**************** 向HC595連續(xù)發(fā)送2-N個字節(jié) ******************/
- void DisplayScan(unsigned char x,y)
- {
- Send_595(x);
- Send_595(y);
- // Send_595(z);
- P_HC595_RCLK = 1;//鎖存輸出數(shù)據(jù)
- P_HC595_RCLK = 0;
- }
- /**************** 向HC595一次發(fā)送16位數(shù)據(jù) ******************/
- void Send_595(unsigned int dat)
- {
- unsigned char i;
- for(i=0;i<16;i++)
- {
- dat <<= 1;
- P_HC595_SER = CY; //溢出位賦值數(shù)據(jù)輸出端
- P_HC595_SRCLK = 1; //移位時鐘
- P_HC595_SRCLK = 0;
- }
- P_HC595_RCLK = 1;//鎖存輸出數(shù)據(jù)
- P_HC595_RCLK = 0;
- }
復(fù)制代碼 |
|