所以采用下面的写法效果也是一样的,而且更容易理解
- /**************** 向HC595发送一个字节函数 ******************/
- void Send_595(u8 dat)
- {
- u8 i;
- for(i=0; i<8; i++)
- {
- dat <<= 1;
- P_HC595_SER = CY;
- P_HC595_SRCLK = 0;
- P_HC595_SRCLK = 1;
- }
- }
- /********************** 显示扫描函数 ************************/
- void DisplayScan(void)
- {
- Send_595(t_display[LED8[display_index]]); //输出段码
- Send_595(~T_COM[display_index]); //输出位码
- P_HC595_RCLK = 0;
- P_HC595_RCLK = 1;
- if(++display_index >= 8) display_index = 0; //8位结束回0
- }
- /********************** Timer0 1ms中断函数 ************************/
- void timer0 (void) interrupt 1
- {
- DisplayScan(); //1ms扫描显示一位
- B_1ms = 1; //1ms标志
- }
|