第一个dp-51程序实现拉幕效果

周立功的增强型80c51单片机速成与实践中的Hello代码,经过加工后,实现一个简单的拉幕效果很简单的代码,虽然只是一小步,同时也是一大步

 

#include < REG52.h >
#include
< stdio.h >
#include 
< intrins.h >
sbit    SDA
= P1 ^ 0 ;
sbit    CLK
= P1 ^ 1 ;

unsigned    
char     data    display_bit;
unsigned    
char     code    led[ 20 ] = { 0xC0 , 0xF9 , 0xA4 , 0xB0 , 0x99 , 0x92 , 0x82 , 0xF8 , 0x80 , 0x90 , 0x88 , 0x83 , 0xc6 , 0xa1 , 0x86 , 0x8e , 0xbf , 0x89 , 0x8C }; 

void     delay(unsigned  int  k)
{
    unsigned    
int  i,j;
for (i = 0 ;i < k;i ++ )
for (j = 0 ;j < 100 ;j ++ );
}
void     send(unsigned  char  a)
{
    unsigned 
char  i;
    
for (i = 0 ;i < 8 ;i ++ )
    {
        
if (_crol_(a,i) & 0x80 )
            SDA
= 1 ;
        
else
            SDA
= 0 ;
        CLK
= 0 ;
        CLK
= 1 ;
    }
}




main()
{   
    unsigned 
char  display_buffer[ 5 ] = { 0x00 , 0x0d , 0x12 , 0x05 , 0x01 };
    
int  counter;
    
while ( 1 )
    {
        unsigned    
char     i,k;
        
int  lay = 0 ;

          
for (lay = 0 ;lay < 100 ;lay ++ )
          {
            
for (i = 0 ;i < 5 ;i ++ )
            {   
                
int  discnt = (counter + i) % 5 ;
                k
= led[display_buffer[discnt]];
                send(k);
                P1
= display_bit;
                delay(
0x01 );
                P1
= 0xff ;
                display_bit
= _cror_(display_bit, 1 );
              }
             display_bit
= 0x7f ;
          }
           
            counter
++ ;   
           
//  delay(0x3f);
    }
}

你可能感兴趣的:(dp)