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

標題: 單片機直流電機的調速與控制程序+Proteus仿真 [打印本頁]

作者: q5573829    時間: 2019-4-26 13:40
標題: 單片機直流電機的調速與控制程序+Proteus仿真
設計一個直流伺服電機電機控制系統,控制功能要求實現電機的啟動、停止控制、正轉、反轉、加速、減速共六種功能,為了能實現人機交互,需要用到按鍵和數碼管。
具體要求如下:K0為啟動/停止控制、K1正轉、K2反轉;K3加速,K4減速,用3個發光二極管顯示狀態:正轉時紅燈亮,反轉時黃燈亮,不轉時綠燈亮。并利用4位LED數碼管顯示電機轉速。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit IN1=P1^6;
  5. sbit IN2=P1^7;
  6. sbit ENA=P1^5;
  7. sbit KEY0=P2^0;
  8. sbit KEY1=P2^1;
  9. sbit KEY2=P2^2;
  10. sbit KEY3=P2^3;
  11. sbit KEY4=P2^4;
  12. sbit R=P2^5;
  13. sbit Y=P2^6;
  14. sbit G=P2^7;
  15. sbit LED1=P1^0;
  16. sbit LED2=P1^1;
  17. sbit LED3=P1^2;
  18. sbit LED4=P1^3;
  19. sbit led=P1^4;

  20. bit flag=0;
  21. bit sign=1;
  22. uint num=0;
  23. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};



  24. void delay(uint n)
  25. {
  26.          uint i,j;
  27.         for(i=n;i>0;i--)
  28.         for(j=0;j<110;j++);
  29. }


  30. void initial()
  31. {
  32.         IN1=0;
  33.         IN2=0;
  34.         ENA=0;
  35.         num=0;
  36.         TMOD=0X01;
  37.         TL0=0XFF;
  38.         TH0=0XFF;
  39.         EA=1;
  40.         EX0=1;
  41.         ET0=1;
  42.         IT0=1;
  43.         TR0=1;
  44. }



  45. void display(bit flag,uint n)
  46. {
  47.         uint v;
  48.         uchar qian,bai,shi,ge;
  49.         v=(uint)(n*535.0/255);
  50.         qian=v/1000;
  51.         bai=(v-1000*qian)/100;
  52.         shi=v%100/10;
  53.         ge=v%10;
  54.        
  55.         LED1=0;
  56.         if(flag==1)
  57.                 P0=table[0];
  58.         else
  59.                 P0=0X40;
  60.         delay(10);
  61.         LED1=1;
  62.        
  63.         LED2=0;
  64.         P0=table[bai];
  65.         delay(10);
  66.         LED2=1;
  67.        
  68.         LED3=0;
  69.         P0=table[shi];
  70.         delay(10);
  71.         LED3=1;
  72.        
  73.         LED4=0;
  74.         P0=table[ge];
  75.         delay(10);
  76.         LED4=1;
  77. }


  78. void main()
  79. {
  80.         initial();
  81.         while(1)
  82.         {
  83.                 display(sign,num);
  84.         }
  85. }

  86. void int0() interrupt 0
  87. {
  88.         if(KEY0==0)
  89.         {
  90.                 delay(10);
  91.                 if(KEY0==0)
  92.                 {
  93.                         flag=~flag;
  94.                         if(flag==0)
  95.                         {
  96.                                 num=0;
  97.                                 P2=0xff;
  98.                                 ENA=0;
  99.                                 IN1=0;
  100.                                 IN2=0;
  101.                                 G=0;
  102.                                 sign=1;
  103.                         }
  104.                         else
  105.                         {
  106.                                 P2=0xff;
  107.                                 num=100;
  108.                                 IN1=0;
  109.                                 IN2=1;
  110.                                 R=0;
  111.                                 sign=1;
  112.                         }
  113.                         while(!KEY0);
  114.                 }
  115.         }
  116.         if(KEY1==0)
  117.         {
  118.                 delay(10);
  119.                 if(KEY1==0)
  120.                 {
  121.                         P2=0XFF;
  122.                         //ENA=1;
  123.                         IN1=0;
  124.                         IN2=1;
  125.                         R=0;
  126.                         sign=1;                       
  127.                 }
  128.                 while(!KEY1);
  129.         }
  130.                 if(KEY2==0)
  131.         {
  132.                 delay(10);
  133.                 if(KEY2==0)
  134.                 {
  135.                         P2=0XFF;
  136.                         //ENA=1;
  137.                         IN1=1;
  138.                         IN2=0;
  139.                         Y=0;
  140.                         sign=0;                       
  141.                 }
  142.                 while(!KEY2);
  143.         }
  144.                 if(KEY3==0)
  145.         {
  146.                 delay(10);
  147.                 if(KEY3==0)
  148.                 {
  149.                         num+=5;
  150.       if(num>=255)
  151.          num=255;                               
  152.                 }
  153.                 while(!KEY3);
  154.         }
  155.                         if(KEY4==0)
  156.         {
  157.                 delay(10);
  158. ……………………

  159. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
直流電機的調速與控制.zip (860.5 KB, 下載次數: 173)



作者: 二狼神666    時間: 2019-4-29 18:06
你這個轉速怎么測出來的
作者: 1233333dhsfd    時間: 2019-6-28 01:52
你好 我想問一下這個附件里有沒有proteus匯編程序?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成年免费视频 | 国产精品1区 | 台湾a级理论片在线观看 | 一级a性色生活片久久毛片波多野 | av片免费观看 | 久久久国产精品 | 欧美日韩亚洲一区 | 91精品久久久久久久久久 | 黑人巨大精品 | japan25hdxxxx日本| 在线观看av免费 | www.蜜桃av.com| 盗摄精品av一区二区三区 | 九九综合 | 国产精品99免费视频 | 99久久精品免费视频 | 国产精品一区二区三级 | 欧美一区二区久久 | 九九亚洲 | 黄色片亚洲 | av一区二区在线观看 | 欧美电影网| 亚洲免费在线 | 欧美xxxx在线| 日韩欧美精品 | 中文字幕在线一区二区三区 | 久久精品亚洲精品国产欧美 | 国产精品久久久久久久久污网站 | 99久久亚洲| 日韩成人免费视频 | av在线视 | 婷婷福利 | 欧美精品在线免费观看 | 成人午夜网站 | 日韩不卡一区二区 | 亚洲国产精久久久久久久 | 天天看夜夜 | 久久综合一区二区三区 | 色秀网站 | 国产精品美女视频 | 美国十次成人欧美色导视频 |