|
|
- void WR_Buf (void)
- {
- static uchar w_hang = 0;
- EX0 = 0;
- EX1 = 0;
- if(W_S_Buf[w_hang][6] == 0xff ) // 地址位是 0xFF 意味著是第一次進(jìn)入本行
- {
- W_S_Buf[ w_hang ][ 0 ] = 1;
- W_S_Buf[ w_hang ][ 6 ] = 1;
- W_S_Buf[ w_hang ][ 1 ] = T0_buf;
- T0_buf = 0; //定時(shí)器計(jì)時(shí)時(shí)間
- }
- // else if ( W_S_Buf[w_hang][6] == 5 )
- // {
- // return ;
- // }
- else //多次進(jìn)入中斷
- {
- W_S_Buf[ w_hang ][ 6 ] = W_S_Buf[ w_hang ][ 6 ] + 1; //寫(xiě)入位數(shù) +1
- W_S_Buf[ w_hang ][ W_S_Buf[ w_hang ][ 6 ] ] = T0_buf; //按照最新位數(shù) 寫(xiě)入最新數(shù)據(jù)
- T0_buf = 0;
- }
-
- if( W_S_Buf[ w_hang ][ 6 ] == 5 ) //判斷本行是否寫(xiě)滿
- {
- w_hang = w_hang + 1;
- // T0_buf = 0;
- }
-
- if( w_hang == 5 ) // 判斷行數(shù)是否用完
- {
- w_hang = 0;
- }
- EX1 = 1;
- EX0 = 1;
- }
- /*****************************************
- 函數(shù)名 void SE_Buf ( void )
- 作用 將數(shù)組發(fā)送出去
- 輸入 無(wú)
- 輸出 無(wú)
- ****************************************/
- void SE_Buf ( void)
- {
-
- static uchar s_hang = 0;
- static uchar i = 0;
-
- if( W_S_Buf[ s_hang ][ 6 ] == 5 )
- {
- // EX0 = 0;
- // EX1 = 0;
-
- LED = ~LED;
- SBUF = 0xff;
- while ( !TI );
- TI = 0;
- for(; i < 7; i++ )
- {
- SBUF = W_S_Buf[ s_hang ][ i ];
- while( !TI );
- TI = 0;
- // W_S_Buf[ s_hang ][ 6 ] = W_S_Buf[ s_hang ][ i ] + W_S_Buf[ s_hang ][ 6 ];
- W_S_Buf[ s_hang ][ i ] = 0xff;
- }
- i = 0;
- s_hang = s_hang + 1;
- }
- if ( s_hang == 5 )
- {
- s_hang = 0;
- }
-
- // EX0 = 0;
- // EX1 = 0;
- }
復(fù)制代碼 |
|