找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

如何制作手動(dòng)流水燈以及控制蜂鳴器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:196772 發(fā)表于 2017-5-5 08:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如何制作手動(dòng)流水燈以及控制蜂鳴器
完整代碼下載:
實(shí)驗(yàn)六.docx (13.01 KB, 下載次數(shù): 7)


  1. 實(shí)驗(yàn)六 2.12  2.14
  2. 2.12
  3. 蜂鳴器改(按一下一直響 再按一下停止)
  4. #include "config.h"
  5. #define                BEEPCON                1<<7
  6. #define                KEY                        1<<20

  7. int main (void)
  8. {uint32        i;
  9.     int k=1;
  10.         PINSEL0=0x00000000;
  11.         IO0DIR=BEEPCON;
  12.         while(1)
  13.         {
  14.        
  15.         if((IO0PIN&KEY)==0)
  16.          {
  17.              k=!k;
  18.              
  19.            if(k==1)
  20.          {
  21.        
  22.         IO0CLR=BEEPCON;
  23.          }
  24.            if(k==0)
  25.          {
  26.        
  27.         IO0SET=BEEPCON;       
  28.      }
  29.     }
  30.     for(i=0;i<1000;i++);
  31.    }
  32.   return(0);
  33.   
  34. }


  35. 流水燈改(按一下向后進(jìn)一位)
  36. #include "config.h"
  37. #include "config.h"
  38. #define            KEY            1<<20
  39. #define                LED1        1<<16
  40. #define                LED2        1<<17     
  41. #define                LED3        1<<18      
  42. #define                LED4        1<<19      
  43. #define                LED5        1<<20
  44. #define                LED6        1<<21      
  45. #define                LED7        1<<22
  46. #define                LED8        1<<23      
  47. #define                LEDCON   0x00ff0000   

  48. const uint32        DISP_TAB[8]={0xff01ffff,0xff02ffff,0xff04ffff,0xff08ffff,
  49.                         0xff10ffff,0xff20ffff,0xff40ffff,0xff80ffff};   
  50.     void        DelayNS(uint32        dly)   
  51. {  
  52.     uint32        i;
  53.     for(;dly>0;dly--)
  54.     {
  55.      for(i=0;i<5000;i++);
  56.     }
  57.   }
  58. int main (void)
  59. {
  60.         uint8  i;
  61.           IO2DIR=LEDCON;
  62.           while(1)
  63.           {
  64.            for(i=0;i<8;)
  65.           {  
  66.                   if((IO0PIN&KEY)==0)
  67. {DelayNS(1);
  68. }
  69.         if((IO0PIN&KEY)==0)
  70.                   {
  71.                     DelayNS(10);
  72.                     IO2CLR=DISP_TAB[i++];
  73.            DelayNS(10);
  74.            IO2SET=0xffffffff;
  75. while((IO0PIN&KEY)==0)
  76.           }
  77.          
  78.       }
  79.         }
  80.     return 0;
  81. }

  82. 2.14
  83. #include "config.h"
  84. #define BEEPCON 1<<7 // P0.7
  85. void __irq IRQ_Eint3(void)
  86. { uint32 i;
  87. i = IO0SET;
  88. if( (i&BEEPCON)==0 )
  89. {
  90.   IO0SET = BEEPCON;
  91. }
  92. else
  93. {
  94.   IO0CLR = BEEPCON;
  95. }
  96. while( (EXTINT&1<<3)!=0 )
  97. {
  98. EXTINT = 1<<3;
  99. }
  100. VICVectAddr = 0;
  101. }
  102. int main(void)
  103. {
  104. IRQEnable();
  105. PINSEL1 = 3<<8;
  106. IO0DIR = BEEPCON;  
  107. VICIntSelect = 0x00000000;
  108. VICDefVectAddr = (int)IRQ_Eint3;
  109. EXTMODE = 0x00;
  110. EXTINT = 1<<3;
  111. VICIntEnable = 1<<17;
  112. while(1);   
  113. return(0);
  114. }  


復(fù)制代碼


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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