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

QQ登錄

只需一步,快速開始

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

單片機(jī)鍵控Led程序+仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:237529 發(fā)表于 2017-10-13 12:56 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
自己做的51單片機(jī)鍵控Led試驗(yàn),有喜歡的可以互相交流。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. sbit S1=P1^0;
  3. sbit S2=P1^1;
  4. sbit S3=P1^2;
  5. sbit S4=P1^3;
  6. unsigned char keyval;
  7. void key_scan(void);
  8. void  forward(void);
  9. void backward(void);
  10. void Alter(void);
  11. void  blink(void);
  12. void led_delay(void);
  13. void delay10ms(void);
  14. void main(void)
  15. {
  16.      keyval=0;
  17.      while(1)
  18.      {
  19.         key_scan( );
  20.         switch(keyval)
  21.         {  
  22.            case 1:forward();
  23.                  break;
  24.            case 2:backward();
  25.                  break;
  26.            case 3:alter();
  27.                  break;
  28.            case 4:blink();
  29.                  break;
  30.          }
  31.     }
  32. }

  33. void key_scan(void)
  34. {
  35.    
  36.     P1=0xff;
  37.     if((P1&0x0f)!=0x0f)
  38. {
  39.     delay10ms();
  40. if(S1==0)
  41.     keyval=1;
  42. if(S2==0)
  43.     keyval=2;
  44. if(S3==0)
  45.     keyval=3;
  46. if(S4==0)
  47.     keyval=4;
  48.    }
  49. }
  50. void  forward(void)
  51. {
  52. P3=0xfe;
  53.    led_delay();
  54. P3=0xfd;
  55.    led_delay();
  56. P3=0xfb;
  57.    led_delay();
  58. P3=0xf7;
  59.    led_delay();
  60. P3=0xef;
  61.    led_delay();
  62. P3=0xdf;
  63.    led_delay();
  64. P3=0xbf;
  65.    led_delay();
  66. P3=0x7f;
  67.    led_delay();
  68. }
  69. void backward(void)
  70. {
  71. P3=0x7f;
  72.    led_delay();
  73. P3=0xbf;
  74.    led_delay();
  75. P3=0xdf;
  76.    led_delay();
  77. P3=0xef;
  78.    led_delay();
  79. P3=0xf7;
  80.    led_delay();
  81. P3=0xfb;
  82.    led_delay();
  83. P3=0xfd;
  84.    led_delay();
  85. P3=0xfe;
  86.    led_delay();
  87. }
  88. void Alter(void)
  89. {
  90.    P3=0x0f;
  91.    led_delay;
  92.    P3=0xf0;
  93.    led_delay;
  94. }
  95. void  blink(void)
  96. {
  97. P3=0xff;
  98.    led_delay;
  99.    P3=0x00;
  100.    led_delay;
  101. ……………………

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

所有資料51hei提供下載:
鍵控led.zip (55.13 KB, 下載次數(shù): 13)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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