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

QQ登錄

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

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

跪求大佬講解51單片機(jī)做呼吸燈,定時(shí)器模擬PWM 求幫助

[復(fù)制鏈接]
ID:482395 發(fā)表于 2019-2-28 20:50 | 顯示全部樓層 |閱讀模式
求51單片機(jī)做呼吸燈,定時(shí)器模擬PWM。。!跪求。!

回復(fù)

使用道具 舉報(bào)

ID:412827 發(fā)表于 2019-2-28 22:15 | 顯示全部樓層
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char

sbit PWM=P2^0;//  P2.0輸出pwm
uchar time;  // 定義占空比的變量

void main()
{
        TMOD=0x01;//定時(shí)器0工作方式1
        TH0=0xff;//(65536-10)/256;//賦初值定時(shí)
        TL0=0xf7;//(65536-10)%256;//0.01ms
        EA=1;//開(kāi)總中斷
        ET0=1;//開(kāi)定時(shí)器0中斷
        TR0=1;//啟動(dòng)定時(shí)器0
        while(1)
        {                       
        }                       
}

void tim0() interrupt 1
{
        TR0=0;//賦初值時(shí),關(guān)閉定時(shí)器
        TH0=0xff;//(65536-10)/256;//賦初值定時(shí)
        TL0=0xf7;//(65536-10)%256;//0.01ms
        TR0=1;//打開(kāi)定時(shí)器

        time++;
        if(time>=100)  //1khz
          time=0;   
        if(time<=30)   //占空比%30,可改
          PWM=1;  
        else PWM=0;
}

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:473159 發(fā)表于 2019-3-1 01:56 | 顯示全部樓層
不要開(kāi)口就跪求跪求地,壇子里一大把例程,先找一下。沒(méi)黑幣就多上來(lái)發(fā)一下看法就有了
回復(fù)

使用道具 舉報(bào)

ID:164602 發(fā)表于 2019-3-1 08:14 | 顯示全部樓層
我這里有一個(gè)學(xué)習(xí)視頻,只有七天期限哦。
鏈接:https://pan.baidu.com/s/1Haue97fPfAbQWzRFcibB1Q
提取碼:s1gh
回復(fù)

使用道具 舉報(bào)

ID:62762 發(fā)表于 2019-3-1 10:52 | 顯示全部樓層
搜一下郭天祥單片機(jī),看看第6,7集,應(yīng)該是關(guān)于延時(shí)和中斷的,就會(huì)自己寫(xiě)自己的代碼了。
回復(fù)

使用道具 舉報(bào)

ID:480842 發(fā)表于 2019-3-3 10:14 | 顯示全部樓層
#include<reg51.h> #include<intrins.h> sbit  K1 =P3^4 ;           //PWM?????? sbit  K2 =P3^5;           //PWM?????? sbit  BEEP =P3^6;         //?????? unsigned char PWM=0x7f ;   //????? void Beep(); void delayms(unsigned char ms); void delay(unsigned char t); /*********************************************************/ void main() {        P1=0xff;     TMOD=0x21 ;         TH0=0xfc ;           //1ms???????     TL0=0x66 ;           //??????     TH1=PWM ;            //???????     TL1=0 ;         EA=1;         ET0=1;         ET1=1;          TR0=1 ;    while(1)    {         do{             if(PWM!=0xff)                   {PWM++ ;delayms(10);}         else Beep() ;            }     while(K1==0);         do{       if(PWM!=0x02)             {PWM-- ;delayms(10);}       else Beep() ;            }     while(K2==0);   } } /*********************************************************/ // ?????0?ж???????  ?????? /*********************************************************/ void timer0() interrupt 1  {       TR1=0 ;     TH0=0xfc ;     TL0=0x66 ;     TH1=PWM ;     TR1=1 ;     P1=0x00 ;      //?????? } /*********************************************************/ // ?????1?ж??????? ??????? /*********************************************************/ void timer1() interrupt 3  {      TR1=0 ;     P1=0xff ;     //??????? } /*********************************************************/ //??????????? /*********************************************************/ void Beep()        {     unsigned char i  ;     for (i=0  ;i<100  ;i++)       {         delay(100)  ;         BEEP=!BEEP  ;                //Beep???       }      BEEP=1  ;                        //????????         delayms(100);   }  /*********************************************************/ // ???????? /*********************************************************/   void delay(unsigned char t)  {     while(t--)   ;  } /*********************************************************/ // ???????? /*********************************************************/ void delayms(unsigned char ms)  {    unsigned char i ;    while(ms--)     {       for(i = 0 ; i < 120 ; i++) ;     } }
回復(fù)

使用道具 舉報(bào)

ID:480842 發(fā)表于 2019-3-3 10:14 | 顯示全部樓層
這個(gè)不知道用得著不,你參考下,共同學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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