找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2342|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

LED趣味作品 8*8數(shù)字轉(zhuǎn)換及循環(huán) 有實物和仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:208989 發(fā)表于 2017-6-7 22:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機做的8*8數(shù)字轉(zhuǎn)換及循環(huán)實物圖:


仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):




單片機源程序如下:
  1. #include<reg52.h>
  2. void delay();
  3. unsigned char code digittab[88]={ //行選通
  4. 0x00,0x00,0x00,0x00,//緩沖下,0從右端出來啦!!
  5. 0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,//0
  6. 0x00,0x00,0x00,0x00,0x84,0xfe,0x80,0x00,/*1*/
  7. 0x00,0x00,0xe4,0xa2,0xa2,0xa2,0x9c,0x00,/*2*/
  8. 0x00,0x00,0x44,0x92,0x92,0x92,0x6c,0x00,/*3*/
  9. 0x00,0x00,0x30,0x28,0x24,0xfe,0x20,0x00,/*4*/
  10. 0x00,0x00,0x4e,0x8a,0x8a,0x8a,0x72,0x00,/*5*/
  11. 0x00,0x00,0x7c,0x92,0x92,0x92,0x64,0x00,/*6*/
  12. 0x00,0x00,0x02,0x02,0x02,0xf2,0x0e,0x00,/*7*/
  13. 0x00,0x00,0x6c,0x92,0x92,0x92,0x6c,0x00,/*8*/
  14. 0x00,0x00,0x4c,0x92,0x92,0x92,0x7c,0x00,/*9*/
  15. 0x00,0x00,0x00,0x00//讓9繼續(xù)滾動完
  16. };
  17. unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,}; //列選通  
  18. unsigned char code lie[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  19. unsigned char code ssy[]={0xff,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
  20. unsigned char code zjl[]={0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e};
  21. unsigned char code ssz[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};

  22. void delay(int z)       //延時函數(shù)  
  23. {       
  24.         int x,y;   
  25.         for(x=z;x>0;x--)
  26.         for(y=156;y>0;y--);  }

  27. void ss(void)       
  28. {       
  29.         unsigned char i;
  30.     P0=0xff;
  31.         for(i=0;i<8;i++)
  32.         {
  33.                 P2=ssy[i];
  34.                  delay(100);
  35.                  P2=0xff;
  36.                  delay(100);
  37.         }
  38.         for(i=0;i<8;i++)
  39.         {
  40.                 P2=ssz[i];
  41.                 delay(100);
  42.                 P2=0XFF;
  43.                 delay(100);
  44.         }
  45. }
  46.        
  47. void zh(void)
  48. {       
  49.         unsigned char i;
  50.     P0=0xff;
  51.         for(i=0;i<7;i++)
  52.         {P2=zjl[i];
  53.         delay(100);}
  54. }       

  55. void lsy(void)
  56. {       
  57.         unsigned char j,i,k;
  58.         for(k=8;k>0;k--)
  59.         {       
  60.                 P0=lie[i];
  61.                 i++;
  62.                 if(i%2==0)
  63.                 {       
  64.                         for(j=8;j>0;j--)
  65.                          {
  66.                                 P2=tab[j-1];
  67.                                 delay(100);
  68.                         }
  69.                 }
  70.                 else
  71.                 {
  72.                         for(j=0;j<8;j++)
  73.                           {
  74.                                 P2=tab[j];
  75.                                  delay(100);
  76.                         }
  77.                 }
  78.                  if(i==8)
  79.                 {i=0;}
  80.         }
  81. }

  82. void lsl(void)
  83. {       
  84.         unsigned char j,i,k;
  85.         for(k=8;k>0;k--)
  86.         {       
  87.                 P2=tab[7-i];
  88.                 i++;
  89.                 if(i%2==0)
  90.                 {       
  91.                         for(j=8;j>0;j--)
  92.                          {
  93.                                 P0=lie[j-1];
  94.                                 delay(100);}
  95.                         }
  96.                 else
  97.                 {
  98.                         for(j=0;j<8;j++)
  99.                           {       
  100.                                 P0=lie[j];
  101.                                  delay(100);
  102.                         }
  103.                 }
  104.                  if(i==8)
  105.                 {i=0;}
  106.          }
  107. }

  108. void xh(void)
  109. {       
  110.         int j,i;
  111.         for(i=0;i<8;i++)
  112.         {       
  113.                 P0=lie[i];
  114.                   for(j=0;j<8;j++)
  115.                   {        
  116.                         P2=tab[7-j];
  117.                     delay(200);
  118.                 }
  119.         }
  120. }

  121. void main()
  122. {
  123.         unsigned char i=1,x=0,j=0,tcount=0;
  124.         unsigned int ledroll[8];
  125.         for(j=0;j<8;j++)
  126.         ledroll[j]=digittab[j];
  127.         zh();
  128.         ss();
  129.         lsl();
  130.         P0=0X00;
  131.         lsy();
  132.         while(1)
  133. ……………………

  134. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
led趣味作品 - 副本.rar (16.05 MB, 下載次數(shù): 20)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表