標(biāo)題: 如何用單片機(jī)產(chǎn)生一個(gè)方波 [打印本頁(yè)]

作者: 木木丸    時(shí)間: 2017-7-17 21:34
標(biāo)題: 如何用單片機(jī)產(chǎn)生一個(gè)方波
             請(qǐng)問(wèn)各位大佬,如何用單片機(jī)產(chǎn)生一個(gè)100KHZ的方波,占空比50%

作者: 木木丸    時(shí)間: 2017-7-17 21:38
最好是32單片機(jī)
作者: pdwdzz    時(shí)間: 2017-7-18 09:29
定時(shí)5ms,端口反轉(zhuǎn)一次

作者: comit    時(shí)間: 2017-7-18 13:48
用cubemx軟件先設(shè)置GPIO口,然后再在特定的區(qū)域使用HAL庫(kù)里的翻轉(zhuǎn)函數(shù)Trogger就好拉~

作者: asdavjsdlk    時(shí)間: 2017-7-18 14:29
快速pwm?
作者: 劉文倩    時(shí)間: 2017-7-18 14:57
PWM輸出,根據(jù)例程稍作改動(dòng)就好了
作者: hren    時(shí)間: 2017-7-18 15:54
定時(shí)25ms,交替輸出高低電平,最好用STM32
作者: yzwzfyz    時(shí)間: 2017-7-19 06:56
勸樓主改學(xué)CEO專(zhuān)業(yè)。
作者: adfhjkkll;    時(shí)間: 2017-7-19 09:50
單片機(jī)腳位交替輸出0 1就是方波 這個(gè)也不會(huì)的話就別學(xué)單片機(jī)了
作者: 張小跳    時(shí)間: 2017-7-19 11:53
定時(shí)25ms,交替輸出高低電平,
作者: dzbj    時(shí)間: 2017-7-19 12:31
樓上前輩們 為什么是25ms啊 100KHz/s是1000ms里100000個(gè) 一高一低是一個(gè) 那不應(yīng)該是5ns翻轉(zhuǎn)一次嗎

誰(shuí)教我一下啊
作者: fangxiao802    時(shí)間: 2017-7-20 14:09
pwm, 這個(gè)不難吧
作者: ltyasdfghjkl    時(shí)間: 2017-7-20 16:53
使用K60單片機(jī)的一個(gè)FTM模塊,頻率和占空比都可以設(shè)置啦
作者: 關(guān)中小河    時(shí)間: 2017-7-20 17:02
很有用的資料,感謝
作者: breeze1993    時(shí)間: 2017-7-20 17:05
PWM脈沖寬度調(diào)節(jié)
作者: iiiiis    時(shí)間: 2017-7-20 17:16
可以用PWM波調(diào)速
作者: insightx    時(shí)間: 2017-7-20 17:54
單片機(jī)IO以一定時(shí)間間隔輸出高低電平。
作者: wulin    時(shí)間: 2017-7-20 19:03
dzbj 發(fā)表于 2017-7-19 12:31
樓上前輩們 為什么是25ms啊 100KHz/s是1000ms里100000個(gè) 一高一低是一個(gè) 那不應(yīng)該是5ns翻轉(zhuǎn)一次嗎

誰(shuí)教 ...

你說(shuō)的5ns翻轉(zhuǎn)一次是對(duì)的,說(shuō)25ms朋友沒(méi)有走心。
作者: lv0817    時(shí)間: 2017-7-20 19:36
設(shè)置PWM輸出,或者簡(jiǎn)單反轉(zhuǎn)高低電平
作者: 快滅了他    時(shí)間: 2017-7-20 20:26
這個(gè)方式非常多,建議你現(xiàn)在先學(xué)習(xí)定時(shí)器中斷,可以使用定時(shí)器中斷的方式進(jìn)行pwm輸出,也可以使用定時(shí)器的查詢(xún)方式進(jìn)行pwm輸出,上述是常規(guī)的方法,你最好查詢(xún)你手上有的單片機(jī)的手冊(cè),有些單片機(jī)也許會(huì)自帶脈沖串輸出功能,只需要對(duì)幾個(gè)寄存器進(jìn)行設(shè)置即可進(jìn)行脈沖的輸出。
作者: 小胖子aaa    時(shí)間: 2017-7-21 11:51
用PWM控制輸出方波

作者: chenzvip123    時(shí)間: 2017-7-21 14:30
pwm輸出
作者: abcd123.    時(shí)間: 2017-7-21 15:31
用stm32 pwm 想輸出多少就多少
作者: jicjic111    時(shí)間: 2017-7-21 16:31
正電平
作者: wxy2000    時(shí)間: 2017-7-21 21:24
簡(jiǎn)單一點(diǎn)的就用51單片機(jī)的定時(shí)器做,啟動(dòng)定時(shí)器0中斷,在中斷中啟動(dòng)定時(shí)器1,定時(shí)器0定時(shí)產(chǎn)生高電平的時(shí)間,定時(shí)器1定時(shí)產(chǎn)生低電平的時(shí)間就行了
作者: dtian2010    時(shí)間: 2017-7-21 23:04
歷害了,學(xué)習(xí)下
作者: omgmagic    時(shí)間: 2017-7-21 23:08
pwm輸出
作者: cxm    時(shí)間: 2017-7-21 23:16
用stm32的通用定時(shí)器設(shè)置,32做的話比較方便
作者: yzl893    時(shí)間: 2017-7-22 00:38
就是PWM吧,網(wǎng)上搜 例程很多的
作者: 721231    時(shí)間: 2017-7-22 01:38
用PCF8591T實(shí)現(xiàn)DA功能    能產(chǎn)生方波 正弦波 三角波 鋸齒波
作者: ccithqh@126.com    時(shí)間: 2017-7-22 05:13
用STM32的定時(shí)器中斷或者硬件PWM輸出實(shí)現(xiàn)。
作者: SIMPLE千堆雪    時(shí)間: 2017-7-22 08:36
PWM脈沖寬度調(diào)節(jié)

作者: 冰葑世紀(jì)    時(shí)間: 2017-7-22 12:31
采用定時(shí)器交替輸出高低電平即可
作者: sampan    時(shí)間: 2017-7-22 15:09

 定時(shí)一定時(shí)間,端口反轉(zhuǎn)一次
作者: houhuicong123    時(shí)間: 2017-7-22 15:32
用pwn,很簡(jiǎn)單的
作者: liuduanqing    時(shí)間: 2017-7-22 15:36
利用定時(shí)器PWM輸出 功能  PWM占空比可設(shè)置為50%
作者: 趣多多    時(shí)間: 2017-7-22 16:49
你用什么單片機(jī),產(chǎn)生周期方波的方法很多,基本都要用到定時(shí)器,比如51可以用定時(shí)器中斷的方法(或查詢(xún)),在中斷服務(wù)函數(shù)內(nèi)把某個(gè)端口取反。另外如果你用stm32的話,stm32的定時(shí)器本身就可以設(shè)置產(chǎn)生PWM波
作者: zl2168    時(shí)間: 2017-7-22 17:54
本帖最后由 zl2168 于 2017-7-22 21:46 編輯

實(shí)例69  輸出周期脈沖方波(示波器顯示)
Proteus仿真一下,確認(rèn)有效。
實(shí)例69 輸出周期脈沖方波.rar (34.2 KB, 下載次數(shù): 30)
實(shí)例70 輸出矩形脈沖波.rar (34.07 KB, 下載次數(shù): 13)

以上摘自張志良編著《單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版.。書(shū)中電路和程序設(shè)計(jì)有詳細(xì)說(shuō)明,程序語(yǔ)句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費(fèi)下載,程序源代碼只能到書(shū)上看了。到圖書(shū)館借,或到新華書(shū)店翻閱,或到網(wǎng)上書(shū)店打折購(gòu)買(mǎi)。

作者: 15897677561    時(shí)間: 2017-7-22 19:28
用定時(shí)器或者PWM
作者: 諾炎    時(shí)間: 2017-7-22 22:22
#include"reg52.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
uint num,t;
sbit led1=P1^0;
//void yanshi(uint xms)
//{
//        uint i,j;
//        for(i=xms;i>0;i--)
//                for(j=110;j>0;j--);
//}
void chuzhi()
{
        TMOD=0x01;//éèÖö¨ê±Æ÷0Îa1¤×÷·½ê½1
        TH0=(65536-45872)/256;//45872=ËùÇóμ¥λ걼ä50ms/(12/11.0592MHZ),11.0592MHZÎa¾§ÕñμÄÕeμ′ÖüÆú
        TL0=(65536-45872)%256;
        EA=1;//′ò¿a×üÖD¶Ï
        TR0=1;//′ò¿a¶¨ê±0
        ET0=1;//ÔêDí¶¨ê±Æ÷0ÖD¶Ï
}
void T0_0() interrupt 1
{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;//֨װ3õÖμ
        num++;//ÿ1y50msTH0òçÂúò»′Î,num×Ô¼óò»′Î
        t=10;
        if(num==t){led1=~led1;}//μ±num=tμÄê±oòè¡·′ò»′Î
  if(num==20){num=0;led1=~led1;}//20¸ö50ms′ú±í×Å1sò2¾íêÇ1sÎaÖüÆúÿμ½ò»¸öÖüÆúled1óÖè¡·′ò»′Π ¾íDÎ3éáËò»¸ö2¨
}
void main()
{
        chuzhi();
        while(1);
}

作者: moon84523    時(shí)間: 2017-7-23 11:27
用定時(shí)器(高電平間和低電平時(shí)間相同),周期輸出高低電平就可以了。
作者: DiorLou    時(shí)間: 2017-7-23 17:08
pwm波本質(zhì)就是切換高低電平,就像燈亮和燈滅一樣,每隔一段時(shí)間改變io口電平就好
作者: halo2489    時(shí)間: 2017-7-24 09:11
不是很難,簡(jiǎn)單的pwm波就可以實(shí)現(xiàn),你這樣的應(yīng)該從一開(kāi)始學(xué)起





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