久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2776|回復: 2
打印 上一主題 下一主題
收起左側

我的單片機按鍵控制電機轉動時間轉向的源碼(有注釋)

[復制鏈接]
跳轉到指定樓層
樓主
ID:319321 發表于 2018-4-30 13:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是我們做機械創新比賽時編寫的按鍵電機控制程序
簡單易懂,按不同的按鍵電機會正轉或反轉,且時間不同
可以直接帶入自己的程序進行調試

單片機源程序如下:
  1. #include<reg52.h>
  2. typedef unsigned int u16;
  3. typedef unsigned char u8;

  4. sbit k1=P3^0;       
  5. sbit k2=P3^1;
  6. sbit k3=P3^2;
  7. sbit k4=P3^3;
  8. sbit k5=P3^4;


  9. sbit ENA=P2^0;
  10. sbit IN1=P2^1;
  11. sbit IN2=P2^2;
  12. sbit IN3=P2^3;
  13. sbit IN4=P2^4;
  14. sbit ENB=P2^5;

  15. void delayed(unsigned int x); //延時xms
  16. void revolve1();//車位轉動60
  17. void revolve11();//反轉60
  18. void revolve2();
  19. void revolve22();
  20. void revolve3();
  21. void clockwise();//順時針
  22. void delayed (unsigned int x)//延時xms
  23. {
  24.         unsigned int i,j;
  25.         for(i=x; i>0; i--)
  26.   {
  27.       for(j=113;j>0;j--);
  28.         }
  29. }

  30. void revolve1()//正轉60度
  31. {
  32.         ENB=1;
  33.         IN3=0;
  34.         IN4=1;
  35. }
  36. void revolve11()//反轉60度
  37. {
  38.         ENB=1;
  39.         IN3=1;
  40.         IN4=0;
  41. }       
  42. void revolve2()//正轉120度
  43. {
  44.         ENB=1;
  45.         IN3=0;
  46.         IN4=1;
  47. }
  48. void revolve22()//反轉120度
  49. {
  50.         ENB=1;
  51.         IN3=1;
  52.         IN4=0;
  53. }
  54. void revolve3()//正轉180度
  55. {
  56.         ENB=1;
  57.         IN3=0;
  58.         IN4=1;
  59. }
  60. void main()
  61. {

  62.         int i;
  63.         if(k1==0)                  //檢測按鍵K1是否按下
  64.         {       
  65.                 delayed(10);   //消除抖動 一般大約10ms
  66.                 if(k1==0)         //再次判斷按鍵是否按下
  67.                 {
  68.                         revolve1();
  69.                         for(i=6;i>0;i--)   //延時5s
  70.                           {
  71.                       delayed(1000);
  72.               }
  73.                                 IN3=0;
  74.                                 IN4=0;
  75.                                 while(1);//
  76.                 }
  77.         }       
  78.   if(k2==0)                  //檢測按鍵K2是否按下
  79.         {       
  80.                 delayed(10);   //消除抖動 一般大約10ms
  81.                 if(k2==0)         //再次判斷按鍵是否按下
  82.                 {
  83.                         revolve2();
  84.                         for(i=12;i>0;i--)   //延時10s
  85.                           {
  86.                       delayed(1000);
  87.               }
  88.             IN3=0;
  89.             IN4=0;
  90.             while(1);
  91.                 }
  92.         }       
  93.           if(k3==0)                  //檢測按鍵K3是否按下
  94.         {       
  95.                 delayed(10);   //消除抖動 一般大約10ms
  96.                 if(k3==0)         //再次判斷按鍵是否按下
  97.                 {
  98.                         revolve11();
  99.                         for(i=6;i>0;i--)   //延時5s
  100.                           {
  101.                       delayed(1000);
  102.               }
  103.             IN3=0;
  104.             IN4=0;
  105.             while(1);
  106.                 }
  107.         }       
  108.         if(k4==0)                  //檢測按鍵K4是否按下
  109.         {       
  110.                 delayed(10);   //消除抖動 一般大約10ms
  111.                 if(k4==0)         //再次判斷按鍵是否按下
  112.                 {
  113.                         revolve22();
  114.                         for(i=12;i>0;i--)   //延時10s
  115.                           {
  116.                       delayed(1000);
  117.               }
  118.             IN3=0;
  119.             IN4=0;
  120.             while(1);
  121.                 }
  122.         }       
  123.         if(k5==0)                  //檢測按鍵K5是否按下
  124.         {       
  125.                 delayed(10);   //消除抖動 一般大約10ms
  126.                 if(k5==0)         //再次判斷按鍵是否按下
  127.                 {
  128.                         revolve3();
  129.                         for(i=18;i>0;i--)   //延時15s
  130.                           {
  131.                       delayed(1000);
  132.               }
  133.             IN3=0;
  134.             IN4=0;
  135.             while(1);
  136.                 }
  137.         }
  138. }
復制代碼

所有資料51hei提供下載:
KEY.zip (761 Bytes, 下載次數: 20)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:130231 發表于 2018-4-30 18:10 | 只看該作者
可以分享有電路圖嗎。我想學一下。
回復

使用道具 舉報

板凳
ID:470843 發表于 2019-1-21 12:59 | 只看該作者
有沒有原理圖啊,想學一下
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区二区三区精品 | 韩日一区二区三区 | 久久久精品网站 | 91久久久久久久久久久久久 | 黄色欧美在线 | 日韩精品视频中文字幕 | 久久久免费在线观看 | 色婷婷久久久久swag精品 | 狠狠操狠狠干 | 国产精品精品视频一区二区三区 | 91毛片网 | 一区二区在线 | 日韩在线免费视频 | 91精品在线看 | 国产精品久久久久不卡 | 男女视频免费 | 国产欧美精品一区二区三区 | av男人天堂影院 | 亚洲国产成人精品女人久久久 | 国产在线一区二区 | 激情五月婷婷在线 | 日韩欧美中文字幕在线观看 | 伊人超碰 | 成人免费视屏 | 91在线观看视频 | 日韩一级免费电影 | 久久这里有精品 | 在线久草 | 久久精品欧美一区二区三区麻豆 | 国产在线1区 | 99re热精品视频国产免费 | av一区二区三区 | 欧美一级黄色片 | 国产精品久久性 | 在线中文视频 | 国产精品久久久久久久久 | 久草视频在线看 | 亚洲精品久久久一区二区三区 | 精品日韩在线 | 成人av鲁丝片一区二区小说 | 成年人在线视频 |