找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2818|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)查表輸出SPWM

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:321404 發(fā)表于 2018-5-3 17:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#define uInt unsigned int
#define uchar unsigned char
uchar t_max = 10;                       //一個(gè)周期
static uchar t = 0,i = 0;        //PWM計(jì)數(shù)
/*
uchar code SinParam[40]={  
0,3,6,9,13,16,19,22,25,28,31,34,37,40,43,45,
48,51,54,56,59,61,64,66,68,71,73,75,77,79,81,83,
84,86,88,89,90,92,93,94,95,96,97,98,98,99,99,100,
100,100,100,100,100,100,99,99,98,98,97,96,95,94,93,92,
90,89,88,86,84,83,81,79,77,75,73,71,68,66,64,61,
59,56,54,51,48,45,43,40,37,34,31,28,25,22,19,16,
13,9,6,3
};
*/
uchar code SinParam[20]={  
  5,5,6,7,7,8,9,9,9,9,10,9,9,9,9,8,
7,7,6,5
};


// 200點(diǎn)正弦波樣本值

void main(void)
{
        TMOD = 0x02;                                //定時(shí)器0,工作模式2,8位定時(shí)模式
        TH0 = 146;                                //寫入預(yù)置初值(取值1-255,數(shù)越大PWM頻率越高)
        TL0 = 146;                                //寫入預(yù)置值(取值1-255,數(shù)越大PWM頻率越高)
        TR0 = 1;                                        //啟動(dòng)定時(shí)器
        ET0 = 1;                                        //允許定時(shí)器0中斷
        EA = 1;                                        //允許總中斷

        P2 = 0xff;                                //初始化P1

        while(1)
        {
                ;
        }
}


timer0()interrupt 1 using 2
{
        t++;                                //每次定時(shí)器溢出加1

        if(t < t_max && t >= SinParam[i])        //PWM周期                                          5
                {                                
                        P2 = 0x00;                        //使LED燈亮
                }
                else if( t >= t_max)
                {
                        t = 0;        //使t=0,開(kāi)始新的PWM周期
                        i++;                        
                        P2 = 0xff;        
                }               
   if(i >= 20) i = 0;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:321404 發(fā)表于 2018-5-3 17:09 | 只看該作者
求問(wèn)這樣寫對(duì)吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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