標題: 自己做的單片機心型燈 [打印本頁]

作者: 569079248    時間: 2018-3-25 22:23
標題: 自己做的單片機心型燈

單片機源程序如下:
  1. #include <REGX51.H>
  2. #include<intrins.h>
  3. void delay500ms()                //@12.000MHz
  4. {
  5.         unsigned char i, j, k;

  6.         _nop_();
  7.         i = 1;
  8.         j = 205;
  9.         k = 187;
  10.         do
  11.         {
  12.                 do
  13.                 {
  14.                         while (--k);
  15.                 } while (--j);
  16.         } while (--i);
  17. }

  18. void moshi1(void)
  19. {
  20.     char i=0;
  21.           for(i=0;i<5;i++)
  22.                 {
  23.                          P0=0X00;P1=0X00;P2=0X00;P3=0X00;
  24.                          delay500ms();
  25.                          P0=0Xff;P1=0Xff;P2=0Xff;P3=0Xff;
  26.                          delay500ms();
  27.     }
  28. }

  29. /// e d b 7 ---> 1110 1101  1011 0111
  30. unsigned char tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};
  31. void moshi2(void)
  32. {
  33.     char i;
  34.           for(i=0;i<8;i++)
  35.           {
  36.         P0=tab[i];P1=0XFF;P2=0XFF;P3=0XFF;delay500ms();
  37.     }
  38.           for(i=0;i<8;i++)
  39.           {
  40.         P0=0XFF;P1=tab[i];P2=0XFF;P3=0XFF;delay500ms();
  41.     }               
  42.           for(i=0;i<8;i++)
  43.           {
  44.         P0=0XFF;P1=0XFF;P2=tab[i];P3=0XFF;delay500ms();
  45.     }
  46.           for(i=0;i<8;i++)
  47.           {
  48.         P0=0XFF;P1=0XFF;P2=0XFF;P3=tab[i];delay500ms();
  49.     }                                
  50. }

  51. unsigned char code tab1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,};
  52. unsigned char code tab2[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,};
  53. void moshi3(void)   //0011 1111
  54. {
  55.     char i;
  56.           for(i=0;i<8;i++)
  57.           {
  58.         P0=tab1[i];P1=0XFF;P2=0XFF;P3=tab2[i];delay500ms();
  59.     }  

  60.           for(i=0;i<8;i++)
  61.           {
  62.         P1=tab1[i];P0=0X00;P3=0X00;P2=tab2[i];delay500ms();
  63.     }  
  64.           for(i=0;i<8;i++)
  65.           {
  66.         P1=tab1[7-i];P0=0X00;P3=0X00;P2=tab2[7-i];delay500ms();
  67.     }
  68.                 for(i=0;i<8;i++)
  69.           {
  70.         P0=tab1[7-i];P1=0Xff;P2=0Xff;P3=tab2[7-i];delay500ms();
  71.     }  
  72.                
  73. }
  74. void main(void)
  75. {


  76.         while(1)
  77.         {

  78.        moshi1();
  79.              moshi2();
  80.                    moshi3();
  81.         }
  82. }
復制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1