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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機PWM波調速-按鍵實現速度加減 程序+視頻

[復制鏈接]
跳轉到指定樓層
樓主
ID:523178 發表于 2020-5-5 11:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  51單片機是可以輸出PWM的,相對麻煩。此時需要用到內部定時器來實現,可用兩個定時器實現,也可以用一個定時器實現。

  用兩個定時器的方法是用定時器T0來控制頻率,定時器T1來控制占空比。大致的的編程思路是這樣的:T0定時器中斷讓一個I0口輸出高電平,在這個定時器T0的中斷當中起動定時器T1,而這個T1是讓IO口輸出低電平,這樣改變定時器T0的初值就可以改變頻率,改變定時器T1的初值就可以改變占空比。

  下面重點介紹用一個定時器的實現PWM的方法。以周期為0.1ms(10KHz)為例,要產生其它頻率的PWM波,程序中只需作簡單修改即可。用一個定時器時(如定時器T0),首先要確定PWM的周期T和占空比D,確定了這些以后,就可以用定時器產生一個時間基準t,比如定時器溢出n次的時間是PWM的高電平的時間,則D*T=n*t,類似的可以求出PWM低電平時間需要多少個時間基準n。

下面的程序讓51單片機產生一個100KHz的PWM方波,使用按鍵加減速度,在實際調試中,發現占空比D達到17%時即可轉動,但是需要外力啟動,此時轉速最慢;在沒有外力的情況下,占空比需要達到75%才可以轉動,此時轉速已經非常快;通過按鍵將占空比D調節到%17或%16時停止轉動。占空比的值是LCD1602顯示的。附上代碼和演示視頻鏈接:鏈接:https://pan.baidu.com/s/1BqV4morVQeHN2uTd89DRWw

提取碼:kqew


單片機源程序如下:


  1. //12MHz的晶振,產生頻率10KHz,占空比為x的PWM波
  2. #include "reg52.h"
  3. #include "lcd.h"
  4. typedef unsigned int u16;
  5. typedef unsigned char u8;

  6. sbit PWM_LED = P1^0;
  7. sbit KeyUp   = P2^0;
  8. sbit KeyDown = P2^1;
  9. u8 value = 1;
  10. u8 Br, Sr, Gr;
  11. u8 str[] = {"Moto Speed Trim"};
  12. u8 str1[] = {"PWM:"};
  13. void delay(u16 i)
  14. {
  15.         while(i--);
  16. }
  17. void Timer0_Init(void)
  18. {
  19.         TMOD |= 0x01;
  20.         TH0 = 0xFF;
  21.         TL0 = 0x9C;         //定時0.01ms
  22.         TR0 = 1;
  23.         ET0 = 1;
  24.         EA  = 1;
  25. }
  26. void datapros(u8 val)
  27. {
  28.         Br = val / 100 + 0x30;
  29.         Sr = val % 100 / 10 + 0x30;
  30.         Gr = val % 10 + 0x30;
  31. }

  32. void main(void)
  33. {
  34.         PWM_LED = 0;
  35.         Timer0_Init();
  36.         LcdInit();
  37.         while(1)
  38.         {
  39.                 if(KeyUp != 1)
  40.                 {
  41.                          delay(1000);
  42.                         if(KeyUp != 1)
  43.                         {
  44.                                
  45.                         }
  46.                         while(!KeyUp);
  47.                         value++;
  48.                         if(value == 100)
  49.                         {
  50.                                  value = 1;
  51.                         }
  52.                 }
  53.                 if(KeyDown != 1)
  54.                 {
  55.                          delay(1000);
  56.                         if(KeyDown != 1)
  57.                         {

  58.                         }
  59.                         while(!KeyDown);
  60.                         value--;
  61.                         if(value == 0)
  62.                         {
  63.                                  value = 1;
  64.                         }
  65.                 }
  66.                 datapros(value);
  67.                 LcdShowStr(0,0,str);
  68.                 LcdShowStr(0,1,str1);
  69.                 DisplayOneChar(5,1,Br);
  70.                 DisplayOneChar(6,1,Sr);
  71.                 DisplayOneChar(7,1,Gr);
  72.                 DisplayOneChar(8,1,'%');               
  73.         }        
  74. }
  75. void Timer0() interrupt 1
  76. {
  77.         static u8 time = 0;

  78.         TR0 = 0;  //關閉定時器
  79.         TH0 = 0xFF;
  80.         TL0 = 0x9C;        //重裝初值
  81.         TR0 = 1;
  82.         time++;
  83.         if(time > 100)
  84.         {
  85.                  time = 0;
  86.         }
  87.         if(time < value)
  88.         {
  89.                  PWM_LED = 1;
  90.         }
  91.         else
  92.                 PWM_LED = 0;
  93. }
復制代碼

所有程序51hei提供下載:

PWM波-按鍵控制電機速度.rar (18.75 KB, 下載次數: 44)




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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久九七 | 在线免费观看黄色av | 99精品一区二区三区 | 99精品一区二区 | 国产在线一区二 | 欧美精品一区二区三区四区五区 | 欧美久久久久 | 欧美不卡一区二区 | 国产精品夜间视频香蕉 | 中文字幕第十五页 | 在线观看av不卡 | 久久久久久久久久久91 | 亚洲风情在线观看 | 国产精品精品视频一区二区三区 | 国产精品高潮呻吟久久aⅴ码 | 日韩在线综合网 | av在线成人 | 91亚洲国产亚洲国产 | 亚洲精品大全 | 亚洲午夜网 | 国产欧美精品一区二区三区 | 美女一级毛片 | 香蕉久久a毛片 | 亚洲精品久久久久久久久久吃药 | 波多野结衣在线观看一区二区三区 | 黄网站免费在线 | 国产精品久久久爽爽爽麻豆色哟哟 | 在线播放亚洲 | 久久的色 | 欧产日产国产精品视频 | 欧美一区在线视频 | 免费午夜剧场 | 亚洲一区中文字幕 | 国产婷婷色综合av蜜臀av | 中文字字幕一区二区三区四区五区 | 亚洲精品一区二区在线观看 | 欧美日韩三级在线观看 | 成人免费网站 | 国产欧美精品在线观看 | 99久久国产综合精品麻豆 | 野狼在线社区2017入口 |