標(biāo)題: 給大家分享下單片機(jī)獨(dú)立按鍵控制花樣流水燈程序Proteus仿真 [打印本頁]

作者: jijkf    時(shí)間: 2020-5-22 09:10
標(biāo)題: 給大家分享下單片機(jī)獨(dú)立按鍵控制花樣流水燈程序Proteus仿真
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <REG52.H>
  2. #define        uint        unsigned int
  3. #define        uchar        unsigned char
  4. sbit k1=P1^0;
  5. uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED從低位往高位移
  6. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED從高位往低位移
  7. uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED從1個(gè)亮到8個(gè)都點(diǎn)亮(從低位往高位)
  8. uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED從1個(gè)亮到8個(gè)都點(diǎn)亮(從高位往低位)
  9. uchar i,tm;
  10. uchar num=0;
  11. void disp1();
  12. void disp2();
  13. void disp3();
  14. void disp4();
  15. void delay_ms(unsigned int tim);  //延時(shí)函數(shù)
  16. void t0isr() interrupt 1
  17. {
  18. TH0=(65536-50000)/256;
  19. TL0=(65536-50000)%256;
  20. tm++;
  21. if(tm>=10)
  22. {
  23.     tm=0;
  24.          
  25.                         switch(num)
  26.                         {
  27.                           case 1: disp1();delay_ms(100);break;
  28.                                 case 2: disp2();delay_ms(100);break;
  29.                                 case 3: disp3();delay_ms(100);break;
  30.                                 case 4: disp4();delay_ms(100);num=0;break;
  31.        
  32.                                 default:break;
  33. }
  34. }
  35. }
  36. void delay(uchar time)
  37. {
  38.         uchar j,k;
  39.         for(j=time;j>0;j--)
  40.         for(k=125;k>0;k--);
  41. }
  42. void delay_ms(unsigned int tim)   //延時(shí)函數(shù)
  43. {
  44.         unsigned int i,j;
  45.         for(i=0;i<tim;i++);
  46.                 for(j=0;j<120;j++);
  47. }                                  
  48. void disp1()                        //狀態(tài)1 LED順時(shí)針轉(zhuǎn)一圈
  49. {


  50.                
  51.         for(i=0;i<8;i++)
  52.         {
  53.                 P2=table0[i];
  54.                 delay(1000);
  55.         }
  56.         P2=0xff;
  57.         for(i=0;i<8;i++)
  58.         {
  59.                 P0=table0[i];
  60.                 delay(1000);
  61.         }
  62.         P0=0xff;
  63.        
  64. }
  65. void disp2()                        //狀態(tài)2 LED逆時(shí)針轉(zhuǎn)一圈
  66. {



  67.        
  68.         for(i=0;i<8;i++)
  69.         {
  70.                 P0=table1[i];
  71.                 delay(1000);
  72.         }
  73.         P0=0xff;
  74.         for(i=0;i<8;i++)
  75.         {
  76.                 P2=table1[i];
  77.                 delay(1000);
  78.         }
  79.         P2=0xff;
  80. }

  81. void disp3()                        //狀態(tài)3 LED自上而下逐漸點(diǎn)亮(一半點(diǎn)亮一半不亮)
  82. {


  83.         delay(1000);       
  84.         if(k1==1)
  85.         {
  86.         for(i=0;i<8;i++)
  87.         {
  88.                 P0=table2[i];
  89.                 P2=table2[i];
  90.                 delay(1000);
  91.         }

  92. }
  93.         }
  94. void disp4()                        //狀態(tài)4 LED自下而上逐漸點(diǎn)亮(直到全部點(diǎn)亮)
  95. {

  96.         for(i=0;i<8;i++)
  97.         {
  98.                 P0=table3[i];
  99.                 P2=table3[i];
  100.                 delay(1000);
  101.         }
  102.                 P0=0xff; P2=0xff;
  103.         }

  104. void main()
  105. {
  106. TMOD=0x01;
  107. TH0=(65536-50000)/256;
  108. TL0=(65536-50000)%256;
  109. TR0=1;
  110. ET0=1;
  111. EA=1;

  112.         while(1)
  113.         {
  114.                 if(k1==0)
  115.                 {
  116.                         delay_ms(500);                 //消抖
  117. //    while(!k1);                  //等待按鍵松開
  118.                         if(k1==0)
  119.                         { num++;
  120.                  while(!k1);
  121.                         }
  122.                 }
  123.         }
  124. }
復(fù)制代碼

所有資料51hei提供下載:
流水燈.rar (68.44 KB, 下載次數(shù): 57)



作者: 京津冀123    時(shí)間: 2020-7-7 18:34
請(qǐng)問哪個(gè)是protues文件呀
作者: 京津冀123    時(shí)間: 2020-7-7 18:34
請(qǐng)問哪個(gè)protues文件




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