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

QQ登錄

只需一步,快速開始

搜索
查看: 7913|回復(fù): 7
收起左側(cè)

直流電動(dòng)機(jī)轉(zhuǎn)速控制proteus仿真與代碼

  [復(fù)制鏈接]
ID:189640 發(fā)表于 2017-5-22 16:18 | 顯示全部樓層 |閱讀模式
直流電動(dòng)機(jī)轉(zhuǎn)速控制用C寫的程序

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

單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. sbit k1=P3^1;
  3. sbit k2=P3^0;
  4. sbit k3=P3^2;
  5. sbit k4=P3^3;
  6. sbit motor1=P1^1;
  7. unsigned int speed;
  8. unsigned int value;
  9. unsigned int T;
  10. unsigned char code ZF[]=" Speed= ";   //8個(gè)字符
  11. void INIT();
  12. void INIT0();
  13. void INIT1();
  14. void Timer();
  15. void Timer0();
  16. void delay(unsigned t);
  17. void init_lcd(void);
  18. void writecom(unsigned char com);
  19. void writedate(unsigned char date);
  20. void motor(int speed);
  21. main()
  22. {
  23.     int i;
  24.         T=0;        
  25.         speed=0;
  26.         INIT();
  27.         Timer();
  28.         init_lcd();
  29.        
  30.                 for(i=0;i<8;i++)
  31.                 {
  32.                         writedate(ZF[i]);
  33.                 }
  34.         while(1)
  35.         {       
  36.                  if(k1==0)
  37.                  {
  38.                          delay(10);
  39.                         if(k1==0)
  40.                         {        int a;
  41.                                 motor1=0;
  42.                                 while((a<50)&&k1==0)
  43.                                 {
  44.                                         delay(10);
  45.                                         a++;
  46.                                 }
  47.                                 a=0;
  48.                         }
  49.                         motor(speed);
  50.                         writecom(0x88);
  51.                         writedate('1');
  52.                  }
  53.                  else
  54.                  {
  55.                          if(k2==0)                       
  56.                         {
  57.                                 delay(10);
  58.                                 if(k2==0)
  59.                                 {        int b;
  60.                                         motor1=1;
  61.                                         while((b<50)&&k2==0)
  62.                                         {
  63.                                                 delay(10);
  64.                                                 b++;
  65.                                         }
  66.                                         b=0;
  67.                                 }
  68.                         }
  69.                         motor(speed);
  70.                         writecom(0x88);
  71.                         writedate('2');               
  72.                  }

  73.         }
  74. }

  75. void INIT()         //k2,k3外部中斷初始化
  76. {
  77.         IT0=1;
  78.         EX0=1;
  79.         IT1=1;
  80.         EX1=1;
  81.         EA=0;
  82. }

  83. void INIT0()interrupt 0         //外部中斷0服務(wù)函數(shù)
  84. {
  85.         delay(10);
  86.         if(k3==0)
  87.         {
  88.                 speed++;
  89.         }       
  90. }

  91. void INIT1()interrupt 2//外部中斷1服務(wù)函數(shù)
  92. {
  93.         delay(10);
  94.         if(k4==0)
  95.         {
  96.                 if(speed>0)
  97.                 {
  98.                         speed--;       
  99.                 }
  100.                 else
  101.                 speed=0;
  102.         }
  103. }

  104. void Timer()          //定時(shí)器初始化
  105. {
  106.         TMOD=0x01;
  107.         TH0=0xfc;          //初值fc18---1ms
  108.         TL0=0x18;
  109.         EA=1;
  110.         ET0=1;
  111.         TR0=1;
  112. }

  113. ……………………

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

所有資料51hei提供下載:
直流電機(jī)實(shí)驗(yàn).rar (69.69 KB, 下載次數(shù): 143)


評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
shaox1a + 5 c程序里加上一些注釋就更好了

查看全部評(píng)分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:193628 發(fā)表于 2017-5-24 22:52 | 顯示全部樓層
這個(gè)仿真設(shè)計(jì)可用
回復(fù)

使用道具 舉報(bào)

ID:190944 發(fā)表于 2017-5-30 18:11 | 顯示全部樓層
可以給我一份嗎?下載積分不夠
回復(fù)

使用道具 舉報(bào)

ID:674265 發(fā)表于 2019-12-27 09:33 | 顯示全部樓層
很棒,但是加上解釋就更好了
回復(fù)

使用道具 舉報(bào)

ID:749636 發(fā)表于 2020-5-14 09:16 | 顯示全部樓層
程序里有些還是看不太懂
回復(fù)

使用道具 舉報(bào)

ID:495287 發(fā)表于 2020-5-14 11:00 | 顯示全部樓層
這個(gè)需要學(xué)習(xí),多謝通過(guò)。
回復(fù)

使用道具 舉報(bào)

ID:787078 發(fā)表于 2020-6-24 10:18 | 顯示全部樓層
請(qǐng)問(wèn)液晶顯示速度不變是怎么回事?
回復(fù)

使用道具 舉報(bào)

ID:495287 發(fā)表于 2020-6-24 21:18 | 顯示全部樓層
看著代碼工整度,猜測(cè)樓主就是一個(gè)規(guī)矩人。
回復(fù)

使用道具 舉報(bào)

9#
無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

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