標(biāo)題: 單片機(jī)控制直流電機(jī)調(diào)速proteus仿真與源碼 [打印本頁]

作者: hi_sea    時間: 2017-5-19 12:44
標(biāo)題: 單片機(jī)控制直流電機(jī)調(diào)速proteus仿真與源碼
用51單片機(jī)控制直流電機(jī) 實現(xiàn)調(diào)速等功能
電路原理圖如下:


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




單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit key2=P3^2;
  5. sbit key1=P3^1;
  6. sbit CLOCK=P2^4;
  7. sbit ST=P2^5;
  8. sbit EOC=P2^6;
  9. sbit OE=P2^7;
  10. sbit PWM=P3^7;
  11. uint temp;
  12. uchar start;

  13. void keyscan();
  14. void delay(uint zz);
  15. void main()
  16. {       
  17.         P3=0;P0=0xff;
  18.         TMOD=0x02;
  19.         TH0=0x01;
  20.         TL0=0X00;
  21.         IE=0x82;
  22.         TR0=1;
  23.         start=0;
  24.         while(1)
  25.                 {
  26.                        
  27.                         keyscan();                       
  28.                         while(start)
  29.                                 {

  30.                                         ST=0;ST=1;ST=0;        //啟動ADC0809
  31.                                         while(!EOC);                //查詢EOC是否為1;
  32.                                         OE=1;
  33.                                         temp=P1;                                //讀取A/D轉(zhuǎn)化的結(jié)果
  34.                                         OE=0;
  35.                                         PWM=1;                                //PWM輸出高電平
  36.                                         keyscan();
  37.                                         delay(temp);                //正脈沖寬度
  38.                                         PWM=0;                                //PWM輸出低電平
  39.                                         keyscan();
  40.                                         delay(255-temp);        //低脈沖寬度

  41.                                 }               
  42.                 }
  43. }

  44. void keyscan()
  45. {

  46.         key2=1;
  47.         key1=1;

  48.         if(!key1)
  49.                 {
  50.                         delay(5);
  51.                         if(!key1)
  52.                                 {
  53.                                         start=1;
  54.                                 }
  55.                         while(!key1);
  56.                         delay(5);
  57.                         while(!key1);
  58.                 }

  59.         key2=1;
  60.         key1=1;
  61.         if(!key2)
  62.                 {
  63.                         delay(5);
  64.                         if(!key2)
  65.                                 {
  66.                                        
  67.                                         if(!PWM)PWM=1;
  68.                                                 else PWM=0;
  69.                                         if(start)PWM=0;
  70.                                         start=0;
  71.                                 }
  72.                         while(!key2);
  73.                         delay(5);
  74.                         while(!key2);
  75.                 }
  76. }

  77. void clockwave() interrupt 1
  78. {       
  79. ……………………

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

所有資料51hei提供下載:
直流電機(jī)控制proteus仿真.rar (291.46 KB, 下載次數(shù): 142)



作者: hhy961228    時間: 2017-6-15 10:30
可以請問一下程序里的頭文件reg51在哪兒找嘛?
作者: longjb55    時間: 2017-7-3 15:21
hhy961228 發(fā)表于 2017-6-15 10:30
可以請問一下程序里的頭文件reg51在哪兒找嘛?

雙擊頭文件reg51.h就可以了
作者: 宮商角徵羽smile    時間: 2018-5-3 16:24
雖說調(diào)速,但是在運(yùn)行時,電機(jī)正負(fù)端的電壓一直是在一定范圍內(nèi)變化,再按按鈕,也不變
作者: 碩爺    時間: 2018-7-10 16:04
這個H橋的工作原理是什么呢

作者: 江白圭    時間: 2019-12-6 11:22
你這個可以正反轉(zhuǎn)嗎,應(yīng)該沒法反轉(zhuǎn)吧
作者: 江白圭    時間: 2019-12-6 11:23
還有你用的什么版本的Proteus,我下下來打開運(yùn)行有錯誤啊




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1