专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

pic单片机8位点阵的字母滚动

作者:佚名   来源:本站原创   点击数:  更新时间:2011年06月16日   【字体:

   因为程序内存的原因不能用2维数组,所以只好定义8个数组来显示字母,也就只有8个字母可以显示了,听何家伟说往数组前面加一个code就可以定义了,不过不知道PIC里面能不能用,先把还不算太完善的作品贴出来再慢慢改吧。本来想把视频传上来还要黄钻,晕。算了。

#include <pic.h>
void delay();
void init();
unsigned char table[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char  scan[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char  A[8]={0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44};//A
unsigned char  B[8]={0x00,0x3C,0x44,0x44,0x3C,0x44,0x44,0x3C};//B
unsigned char  C[8]={0x00,0x78,0x04,0x04,0x04,0x04,0x04,0x78};//C
unsigned char  D[8]={0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C};//D
unsigned char  E[8]={0x00,0x7C,0x04,0x04,0x7C,0x04,0x04,0x7C};//E
unsigned char  F[8]={0x00,0x7C,0x04,0x04,0x7C,0x04,0x04,0x04};//F
unsigned char  G[8]={0x00,0x38,0x44,0x04,0x04,0x74,0x44,0x38};//G
unsigned char  H[8]={0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44};//H


unsigned char i,j,k,temp,m,x,y,z,n;
main()
{

 TRISC=0X00;
 TRISB=0X00;
 while(1)
 {
  init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=A<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=A>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
  init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=B<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=B>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
  init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=C<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=C>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
  init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=D<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=D>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
    init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=E<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=E>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
    init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=F<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=F>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
    init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=G<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=G>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
    init();
  while(k)
  {
   for(m=0;m<8;m++)
   {
    table=H<<k;
   }
   for(temp=1;temp<=200;temp++)
   {
    for(i=0;i<8;i++)
    {
     PORTB=~table[i];
     PORTC=scan[i];
     delay();
     PORTC=0X00;
    }
   }
   if(temp>200)temp==1;
   k--;
  }
  if(!k)
  {
   for(x=0;x<8;x++)
   {
    for(m=0;m<8;m++)
    {
     table=H>>x;
    }
    for(temp=1;temp<=200;temp++)
    {
     for(i=0;i<8;i++)
     {
      PORTB=~table[i];
      PORTC=scan[i];
      delay();
      PORTC=0X00;
     }
    }
    if(temp>200)temp==1;
   }
  }
 }
}

void init()
{
 k=5;x=0;
}


void delay()
{
 for(j=1;j<100;j++);
}

 

 
关闭窗口

相关文章