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