找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

有人知道單片機怎么產(chǎn)生PWM波嗎?

[復(fù)制鏈接]
ID:907024 發(fā)表于 2022-12-6 20:46 | 顯示全部樓層 |閱讀模式
有人知道怎么讓兩個端口產(chǎn)生方波嗎?比如我示波器兩端連P2^2和P2^3,然后波形是方波?用STC15F2K60S2,程序不會寫啊
回復(fù)

使用道具 舉報

ID:25310 發(fā)表于 2022-12-7 08:35 | 顯示全部樓層
對你這個沒啥要求的搞個延時程序就行了:

void Delay200ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        i = 2;
        j = 103;
        k = 147;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


void while(1)  
{
P2^2=1;P2^3=0;
Delay200ms();
P2^2=0;P2^3=1;
Delay200ms();
}
回復(fù)

使用道具 舉報

ID:1034262 發(fā)表于 2022-12-7 11:16 | 顯示全部樓層
使用帶PWM的單片機。
回復(fù)

使用道具 舉報

ID:77589 發(fā)表于 2022-12-7 11:54 | 顯示全部樓層
一、如果單片機有PWM外設(shè)模塊,直接配置PWM外設(shè)模塊;
二、如果單片機沒有PWM外設(shè)模塊,就用Timer中斷在普通IO上模擬PWM輸出。
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2022-12-7 14:31 | 顯示全部樓層
說一個吧:P22。
1、做個定時中斷,例10ms。
2、在中斷服務(wù)程序中:讓P22反轉(zhuǎn)。
這樣在P22口上就得到一個50Hz的方波。
回復(fù)

使用道具 舉報

ID:1045489 發(fā)表于 2022-12-8 08:50 | 顯示全部樓層
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(ZQ)// 周期
{
ZQ--;
if(ZKB)//占空比
{
ZKB--;
IO = 1;//控制占空比的單片機輸出口
}
else IO = 0;
}
else
{
ZQ=100;//如果你需要ZQ和ZKB可調(diào)可以定義一個變量a,b;ZQ=a;ZKB=b;
ZKB=30;//注意ZKB要小于ZQ
}
}
用定時器做的
回復(fù)

使用道具 舉報

ID:1055954 發(fā)表于 2022-12-8 08:59 來自手機 | 顯示全部樓層
單片機有PWM外設(shè)模塊,可以直接配置PWM外設(shè)模塊使用
回復(fù)

使用道具 舉報

ID:890642 發(fā)表于 2022-12-10 18:46 來自手機 | 顯示全部樓層
yzwzfyz 發(fā)表于 2022-12-7 14:31
說一個吧:P22。
1、做個定時中斷,例10ms。
2、在中斷服務(wù)程序中:讓P22反轉(zhuǎn)。

請問大師STC15W408-16腳芯片,3.7腳可以輸出PWM嗎?波形帶不動光耦817是怎么回事
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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