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

標題: 51單片機成功產生PWM波的方法 含源代碼 [打印本頁]

作者: 51hei學習技術中    時間: 2017-4-4 03:58
標題: 51單片機成功產生PWM波的方法 含源代碼
PWM 是“脈沖寬度調制”的意思。
PWM 實際上是在單片機的某個引腳輸出一系列的矩形波,其周期一般是固定的;而其高電平、低電平所占用的時間,是可以受控調整的。
高電平與周期占用的時間之比,稱為占空比,其值為0~1之間。
PWM 的應用很廣,簡單的說,它可以控制燈光的亮度、可以控制直流電機的轉速,甚至還可以輸出語音信號。
新型的單片機,往往都含有硬件的 PWM 模塊,編寫程序就很簡單;而老式的MCS-51系列,就不具備這個條件。
其實,在沒有 PWM 硬件的單片機上實現 PWM,也并不難,只需一個定時器,令其工作在中斷方式即可。

題目:AT89C52單片機輸出可調 PWM 波。
要求:
1。單片機的晶振是12MHz,輸出周期為1s。
2。用兩個開關控制占空比的增加和減少,分20等級。
針對這個題目,做而論道設計了一個簡單的實驗電路:
 在 P2 口的 8 條線輸出 PWM 波形;
 在 /INT1、/INT0 外接了兩個按鍵,用來調整占空比;
 在 P0 口外接了兩個 BCD 數碼顯示器,用來顯示當前的占空比的等級。
 實驗的時候,可以使用示波器來觀察 P2 口輸出的波形。
 如果把 PWM 波形的頻率提高,也可以用 LED 觀察到漸亮漸暗的效果,目前看,只是閃爍的時間發生變化。

電路以及仿真效果如下圖:



//程序如下:
  1.     #include<reg52.h>
  2.     unsigned int a, b;
  3.     //------------------------------------------
  4.     void main()
  5.     {
  6.              TMOD = 0x01;                 //T0定時方式1
  7.              TH0 = (65536-50000) / 256;   //50ms@12MHz
  8.              TL0 = (65536-50000) % 256;
  9.              TR0 = 1;

  10.              ET0 = 1;
  11.              EX0 = 1; EX1 = 1;
  12.              IT0 = 1; IT1 = 1;
  13.              EA = 1;

  14.              a = 0;
  15.              b = 10;
  16.              while(1);
  17.     }
  18.     //------------------------------------------
  19.     void time0() interrupt 1
  20.     {
  21.              TL0 = (65536-50000) % 256;
  22.              TH0 = (65536-50000) / 256;   //50ms@12MHz
  23.              a++;
  24.              if(a == 20) a = 0;           //在這里調整周期.
  25.              if(a < b) P2 = 0xff;        //在這里調整占空比.
  26.              else   P2 = 0x00;
  27.              P0 = ((b / 10) << 4) + b % 10; //顯示占空比等級
  28.     }
  29.     //------------------------------------------
  30.     void X0_INT() interrupt 0
  31.     {
  32.              b++;
  33.              if(b > 19) b = 19;           //占空比等級最大為19
  34.     }
  35.     //------------------------------------------
  36.     void X1_INT() interrupt 2
  37.     {
  38.              b--;
  39.              if(b < 1) b = 1;             //占空比等級最小為1.
  40.     }
復制代碼

以上代碼下載:
代碼.rar (516 Bytes, 下載次數: 401)



作者: 925302604    時間: 2017-4-4 11:03
看了帖子有點啟發,感謝分享
作者: 淺憶,汐辰!    時間: 2017-9-27 14:19
能不能把所有的代碼發給我看看
作者: buck198    時間: 2018-1-24 19:12
第一次,多謝啦
作者: buck198    時間: 2018-1-24 20:43
哥,代碼不全啊,附件
作者: Toda    時間: 2018-3-9 10:39
附件的代碼不全啊

作者: December    時間: 2018-3-28 15:15
感謝樓主
作者: December    時間: 2018-4-3 16:56
請問為什么我生成的方波是斜的?


作者: hellopp2008    時間: 2018-6-12 13:30
不錯學習了呀
作者: 萌木頭    時間: 2018-7-2 10:56
這b太黑了就差兩行
作者: mhxbyl    時間: 2018-7-6 19:28
樓主請問怎么把占空比的值顯示在液晶屏內
作者: mhxbyl    時間: 2018-7-6 21:28
萌木頭 發表于 2018-7-2 10:56
這b太黑了就差兩行

就差一黑幣,難受
作者: mhxbyl    時間: 2018-7-6 22:46
樓主,占空比等級怎么顯示到1602里?求教。。
作者: mhxbyl    時間: 2018-7-8 15:28
若改成lcd顯示欲望比什么
作者: 趙逗逗    時間: 2018-10-31 09:33
看了帖子有點啟發,感謝分享
作者: 套你猴子    時間: 2018-12-5 09:02
stc89c51
作者: Marlboro    時間: 2019-1-22 00:15
你好,在仿真電機在最大的占空時的速度看起來有點慢,怎樣可以調快點

作者: Duo2048    時間: 2019-4-15 22:16
看看看看,嘿嘿  不錯哦
作者: 懶惰的家伙    時間: 2019-7-8 19:23
請問接lcd又該如何接呢

作者: baggio84    時間: 2019-7-19 11:37
學習大神
作者: 249449417@qq.co    時間: 2019-7-19 14:22
代碼不全,沒看就損失幾個幣
作者: zhxc531    時間: 2019-7-19 22:54
我用STC15的硬件PWM可以做到帶加減速緩沖帶動2DM556的驅動2000的細分空轉工作在1000RPM,快還是慢啊?
作者: 職業業余玩家    時間: 2020-11-22 14:19
感謝樓主,很有啟發
作者: 了解@    時間: 2020-12-11 13:26
就這水平,坑我5黑幣,就一個框架,還不如自己寫的
作者: 夏一    時間: 2020-12-11 19:10
mhxbyl 發表于 2018-7-6 21:28
就差一黑幣,難受

有幣也是白給的程序包里啥都沒有
作者: 夏一    時間: 2020-12-11 19:13
能退幣嗎!最后5個幣給他收走了
作者: 15802426785    時間: 2020-12-11 22:06
液晶屏顯示怎么做的啊
作者: gxslxxm    時間: 2020-12-12 08:55
額 想法是好的。這種事情我也做過,但是后邊很少做這種事情,原因下邊解釋。
凡是利用定時器io口翻轉的方式實現了PWM,頻率越高,頻繁的中斷會占用alu。
如果框架搭的不好,可能會有一定的影響。真的除非是你真的只用單片機實現一個功能。
想法有兩種。
1。短時間的定時器,中斷時間是 100us,甚至更短,中斷一個周期計數,一個占空比計數。
2。調整中斷時間,也就是定時器,code主體中,調整進入中斷的時間。
無論是怎么樣,只要是用定時器中斷做的pwm。理解之后code怎么實現是看個人的編程習慣,但是本質是一樣的東西。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 9191在线播放 | 一区二区三区四区av | 97精品超碰一区二区三区 | 黄色大全免费看 | 亚洲福利网 | 无人区国产成人久久三区 | 欧美日韩亚洲在线 | 精品久久久久久18免费网站 | 久久久精品久久久 | 亚洲成人在线免费 | 国产一区二区免费 | 日韩一区中文字幕 | 国产成人精品一区二区 | 国产一区二区三区四区区 | 一区二区三区日韩精品 | 特黄小视频 | 国产中文字幕av | 免费黄色网址视频 | www天天操| 一区二区视频在线 | 麻豆一区二区三区精品视频 | 国产日韩精品在线 | 日韩五月天 | 91在线视频播放 | 黄色av网站在线免费观看 | 精品免费国产一区二区三区 | 色免费在线视频 | 一级网站| h视频在线看 | 天天曰天天干 | 欧洲视频一区 | 国产成人免费视频网站高清观看视频 | 日韩欧美在线播放 | 国产成人亚洲精品 | 一区二区三区四区在线视频 | 久久综合久久自在自线精品自 | 中文字幕不卡一区 | 欧洲精品在线观看 | 国产精品1区| 狠狠干狠狠操 | 国产视频精品区 |