找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

如何用單片機(jī)產(chǎn)生一個(gè)方波

  [復(fù)制鏈接]
ID:189881 發(fā)表于 2017-7-17 21:34 | 顯示全部樓層 |閱讀模式
             請問各位大佬,如何用單片機(jī)產(chǎn)生一個(gè)100KHZ的方波,占空比50%
回復(fù)

使用道具 舉報(bào)

ID:189881 發(fā)表于 2017-7-17 21:38 | 顯示全部樓層
最好是32單片機(jī)
回復(fù)

使用道具 舉報(bào)

ID:146878 發(fā)表于 2017-7-18 09:29 | 顯示全部樓層
定時(shí)5ms,端口反轉(zhuǎn)一次
回復(fù)

使用道具 舉報(bào)

ID:219856 發(fā)表于 2017-7-18 13:48 | 顯示全部樓層
用cubemx軟件先設(shè)置GPIO口,然后再在特定的區(qū)域使用HAL庫里的翻轉(zhuǎn)函數(shù)Trogger就好拉~
回復(fù)

使用道具 舉報(bào)

ID:219467 發(fā)表于 2017-7-18 14:29 | 顯示全部樓層
快速pwm?
回復(fù)

使用道具 舉報(bào)

ID:220552 發(fā)表于 2017-7-18 14:57 | 顯示全部樓層
PWM輸出,根據(jù)例程稍作改動(dòng)就好了
回復(fù)

使用道具 舉報(bào)

ID:220574 發(fā)表于 2017-7-18 15:54 | 顯示全部樓層
定時(shí)25ms,交替輸出高低電平,最好用STM32
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2017-7-19 06:56 | 顯示全部樓層
勸樓主改學(xué)CEO專業(yè)。
回復(fù)

使用道具 舉報(bào)

ID:220714 發(fā)表于 2017-7-19 09:50 | 顯示全部樓層
單片機(jī)腳位交替輸出0 1就是方波 這個(gè)也不會(huì)的話就別學(xué)單片機(jī)了
回復(fù)

使用道具 舉報(bào)

ID:220771 發(fā)表于 2017-7-19 11:53 | 顯示全部樓層
定時(shí)25ms,交替輸出高低電平,
回復(fù)

使用道具 舉報(bào)

ID:47286 發(fā)表于 2017-7-19 12:31 | 顯示全部樓層
樓上前輩們 為什么是25ms啊 100KHz/s是1000ms里100000個(gè) 一高一低是一個(gè) 那不應(yīng)該是5ns翻轉(zhuǎn)一次嗎

誰教我一下啊
回復(fù)

使用道具 舉報(bào)

ID:220946 發(fā)表于 2017-7-20 14:09 | 顯示全部樓層
pwm, 這個(gè)不難吧
回復(fù)

使用道具 舉報(bào)

ID:221127 發(fā)表于 2017-7-20 16:53 | 顯示全部樓層
使用K60單片機(jī)的一個(gè)FTM模塊,頻率和占空比都可以設(shè)置啦
回復(fù)

使用道具 舉報(bào)

ID:160725 發(fā)表于 2017-7-20 17:02 | 顯示全部樓層
很有用的資料,感謝
回復(fù)

使用道具 舉報(bào)

ID:221132 發(fā)表于 2017-7-20 17:05 | 顯示全部樓層
PWM脈沖寬度調(diào)節(jié)
回復(fù)

使用道具 舉報(bào)

ID:221135 發(fā)表于 2017-7-20 17:16 | 顯示全部樓層
可以用PWM波調(diào)速
回復(fù)

使用道具 舉報(bào)

ID:221145 發(fā)表于 2017-7-20 17:54 | 顯示全部樓層
單片機(jī)IO以一定時(shí)間間隔輸出高低電平。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2017-7-20 19:03 | 顯示全部樓層
dzbj 發(fā)表于 2017-7-19 12:31
樓上前輩們 為什么是25ms啊 100KHz/s是1000ms里100000個(gè) 一高一低是一個(gè) 那不應(yīng)該是5ns翻轉(zhuǎn)一次嗎

誰教 ...

你說的5ns翻轉(zhuǎn)一次是對的,說25ms朋友沒有走心。
回復(fù)

使用道具 舉報(bào)

ID:221165 發(fā)表于 2017-7-20 19:36 | 顯示全部樓層
設(shè)置PWM輸出,或者簡單反轉(zhuǎn)高低電平
回復(fù)

使用道具 舉報(bào)

ID:61582 發(fā)表于 2017-7-20 20:26 | 顯示全部樓層
這個(gè)方式非常多,建議你現(xiàn)在先學(xué)習(xí)定時(shí)器中斷,可以使用定時(shí)器中斷的方式進(jìn)行pwm輸出,也可以使用定時(shí)器的查詢方式進(jìn)行pwm輸出,上述是常規(guī)的方法,你最好查詢你手上有的單片機(jī)的手冊,有些單片機(jī)也許會(huì)自帶脈沖串輸出功能,只需要對幾個(gè)寄存器進(jìn)行設(shè)置即可進(jìn)行脈沖的輸出。
回復(fù)

使用道具 舉報(bào)

ID:221305 發(fā)表于 2017-7-21 11:51 | 顯示全部樓層
用PWM控制輸出方波
回復(fù)

使用道具 舉報(bào)

ID:221349 發(fā)表于 2017-7-21 14:30 | 顯示全部樓層
pwm輸出
回復(fù)

使用道具 舉報(bào)

ID:221379 發(fā)表于 2017-7-21 15:31 | 顯示全部樓層
用stm32 pwm 想輸出多少就多少
回復(fù)

使用道具 舉報(bào)

ID:221405 發(fā)表于 2017-7-21 16:31 | 顯示全部樓層
正電平
回復(fù)

使用道具 舉報(bào)

ID:220355 發(fā)表于 2017-7-21 21:24 | 顯示全部樓層
簡單一點(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í)間就行了
回復(fù)

使用道具 舉報(bào)

ID:221483 發(fā)表于 2017-7-21 23:04 | 顯示全部樓層
歷害了,學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

ID:221484 發(fā)表于 2017-7-21 23:08 | 顯示全部樓層
pwm輸出
回復(fù)

使用道具 舉報(bào)

ID:221486 發(fā)表于 2017-7-21 23:16 | 顯示全部樓層
用stm32的通用定時(shí)器設(shè)置,32做的話比較方便
回復(fù)

使用道具 舉報(bào)

ID:221499 發(fā)表于 2017-7-22 00:38 | 顯示全部樓層
就是PWM吧,網(wǎng)上搜 例程很多的
回復(fù)

使用道具 舉報(bào)

ID:221001 發(fā)表于 2017-7-22 01:38 | 顯示全部樓層
用PCF8591T實(shí)現(xiàn)DA功能    能產(chǎn)生方波 正弦波 三角波 鋸齒波
回復(fù)

使用道具 舉報(bào)

ID:219625 發(fā)表于 2017-7-22 05:13 | 顯示全部樓層
用STM32的定時(shí)器中斷或者硬件PWM輸出實(shí)現(xiàn)。
回復(fù)

使用道具 舉報(bào)

ID:221507 發(fā)表于 2017-7-22 08:36 | 顯示全部樓層
PWM脈沖寬度調(diào)節(jié)
回復(fù)

使用道具 舉報(bào)

ID:221571 發(fā)表于 2017-7-22 12:31 | 顯示全部樓層
采用定時(shí)器交替輸出高低電平即可
回復(fù)

使用道具 舉報(bào)

ID:189104 發(fā)表于 2017-7-22 15:09 | 顯示全部樓層

 定時(shí)一定時(shí)間,端口反轉(zhuǎn)一次
回復(fù)

使用道具 舉報(bào)

ID:221606 發(fā)表于 2017-7-22 15:32 | 顯示全部樓層
用pwn,很簡單的
回復(fù)

使用道具 舉報(bào)

ID:221605 發(fā)表于 2017-7-22 15:36 | 顯示全部樓層
利用定時(shí)器PWM輸出 功能  PWM占空比可設(shè)置為50%
回復(fù)

使用道具 舉報(bào)

ID:221628 發(fā)表于 2017-7-22 16:49 | 顯示全部樓層
你用什么單片機(jī),產(chǎn)生周期方波的方法很多,基本都要用到定時(shí)器,比如51可以用定時(shí)器中斷的方法(或查詢),在中斷服務(wù)函數(shù)內(nèi)把某個(gè)端口取反。另外如果你用stm32的話,stm32的定時(shí)器本身就可以設(shè)置產(chǎn)生PWM波
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 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)
輸出周期脈沖方波.jpg 矩形脈沖波.jpg
以上摘自張志良編著《單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版.。書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費(fèi)下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。
回復(fù)

使用道具 舉報(bào)

ID:221618 發(fā)表于 2017-7-22 19:28 | 顯示全部樓層
用定時(shí)器或者PWM
回復(fù)

使用道具 舉報(bào)

ID:219197 發(fā)表于 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);
}
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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