找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1734|回复: 0
打印 上一主题 下一主题
收起左侧

我的单片机程序—直流电机的变速

[复制链接]
跳转到指定楼层
楼主
ID:595086 发表于 2019-8-4 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序是我写了三四天参考了一些前辈的程序,完成的,是我的新手作。部分程序如下:

单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. typedef unsigned int u8;
  4. typedef unsigned char u16;
  5. sbit moto=P1^0;
  6. sbit key=P3^2;//开关
  7. sbit sud=P3^3;//调速
  8. u8 y=1;
  9. int gao_y,di_y;
  10. void delay(u8 i)
  11. {
  12.         while(i--);
  13. }

  14. void init0()
  15. {
  16.         EA=1;
  17.         IT0=0;
  18.         EX0=1;
  19. }
  20. /*void init1()
  21. {
  22.         EA=1;
  23.         IT1=0;
  24.         EX1=1;
  25. }*/
  26. int sudu()
  27. {
  28.         if(sud==0)
  29.         {
  30.                 delay(5);
  31.                 while(!sud)
  32.                 {
  33.                         if(sud==0)
  34.                         {
  35.                                 y=y+1;
  36.                                 if(y==3)
  37.                                 {
  38.                                         y=1;
  39.                                 }
  40.                         }
  41.                         return y;
  42.                 }
  43.         }
  44. }
  45. void chuli(int y)
  46. {
  47. switch(y)
  48. {
  49.         case 1:
  50.                 moto=1;delay(500);break;
  51.   case 2:
  52.                 moto=1;delay(500); moto=0; delay(500);break;
  53.         case 3:
  54.                 moto=1;delay(500);moto=0;delay(1000);break;
  55. }
  56. }
  57. /*void chuli(int y)
  58. {

  59. if(y==1)
  60. {
  61.         moto=1;
  62.          delay(500);
  63.          
  64. }
  65. if(y==2)
  66. {
  67.                 moto=1;
  68.          delay(500);
  69.          moto=0;
  70.          delay(500);
  71.        
  72. }
  73. if(y==3)
  74. {
  75.         moto=1;
  76.          delay(500);
  77.          moto=0;
  78.          delay(500);
  79.          
  80. }
  81. }
  82. */
  83. void main()
  84. {
  85.         moto=0;
  86.         delay(20);
  87.        
  88. while(1)
  89.        
  90. {       

  91.         init0();
  92.         delay(10);
  93.         sudu();
  94.         chuli(y);
  95. }
  96. }
  97. void int0() interrupt 0
  98. {
  99.         if(key==0)
  100.         {
  101.                 delay(10);
  102.                 if(key==0)
  103.                 {
  104.                 moto=0;
  105.                 }
  106.                 while(sud==0);
  107.         }
  108. }
  109. /*void int1() interrupt 2
  110. {
  111.   if(y==1)
  112. {
  113.         moto=1;
  114. }
  115. if(y==2)
  116. {
  117.                 moto=1;
  118.          delay(200);
  119.          moto=0;
  120.          delay(200);
  121. }
  122. if(y==3)
  123. {
  124.         moto=1;
  125.          delay(200);
  126.          moto=0;
  127.          delay(300);
  128. }
  129.          }*/
复制代码

所有资料51hei提供下载:
成功变速的直流电机.zip (22.02 KB, 下载次数: 13)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表