久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

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

新手關(guān)于單片機(jī)呼吸燈PWM程序的調(diào)試問題

[復(fù)制鏈接]
ID:848140 發(fā)表于 2020-12-9 22:59 | 顯示全部樓層 |閱讀模式
   新手仿照網(wǎng)上教程寫了個(gè)PWM點(diǎn)亮一個(gè)LED小燈(sbit led = P1^2)程序。當(dāng)我把一個(gè)LED小燈換成直接換成整個(gè)P1(連接8個(gè)led小燈)口,結(jié)果只有P1.0口的小燈由暗到亮,再從亮到暗,其余7個(gè)燈常亮,PWM一次只能驅(qū)動(dòng)一位嗎?還望高手指教。

單片機(jī)源程序如下:
/***********************
PWM-呼吸燈
*************************/
#include<reg52.h>

//sbit led = P1^2;

unsigned char t_count ; //累計(jì)每個(gè)周期中斷次數(shù)的個(gè)數(shù),滿20清零,20*100us=2ms(pwm的周期)
unsigned int count ;  //累計(jì)占空比需要修改(增加還是減少)的中斷次數(shù)的個(gè)數(shù)        1200*100us=120ms
unsigned char t ;  //累計(jì)高電平的個(gè)數(shù)
bit flag ; //標(biāo)志位 0增加,1減少

void timer0init(void)
{
    EA = 1;
        TMOD = 0X02;
        TH0 = 0Xa3;
        TL0 = 0Xa3;
        ET0 = 1;
        TR0 = 1;
}

void main(void)
{
        t_count = 0;
        count = 0;
        t =10;           //占空比總50%開始
//        led = 1;

        timer0init();
    while(1);
}
/*每100us進(jìn)入一次中斷*/
void timer0() interrupt 1
{
   t_count++;
   count++;

   if(t_count == t)        
    {
             P1 = 0;
    }
        if(t_count == 19)
        {
           t_count = 0;
           P1 = 1;
        }


        if((count == 1200)&&(flag == 0))
         {
               count = 0;
               t++;
               if(t == 19)        //增加最大占空比 95%
                 {
                   flag = 1;
                 }
         }

        if((count ==1200)&&(flag == 1))
         {
                count = 0;
                     t--;
                    if(t ==10)        //減小到最低占空比 50%
                   {
                         flag = 0;
                   }
     }

}
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2020-12-10 05:37 | 顯示全部樓層
錯(cuò)誤寫法:P1 = 0; P1 = 1;
正確寫法:P1 = 0x00; P1 = 0xff;
回復(fù)

使用道具 舉報(bào)

ID:517466 發(fā)表于 2020-12-10 10:10 | 顯示全部樓層
本帖最后由 suncat0504 于 2020-12-10 10:14 編輯

樓上正解。樓主沒搞懂P1口賦值和P1口的位賦值的區(qū)別;
led=1,表示對(duì)P1口Bit2管腳賦值1。
P1=1,表示對(duì)整個(gè)P1口賦值,二進(jìn)制值=00000001B,相當(dāng)于對(duì)P1口的Bit0管腳賦值1,其它位賦值0。
回復(fù)

使用道具 舉報(bào)

ID:293363 發(fā)表于 2020-12-10 15:40 | 顯示全部樓層
1樓正解,P1指的是8位,也就是P1.0-P1.7  正確的賦值是 P1=0x00;P1=0xff;
回復(fù)

使用道具 舉報(bào)

ID:848140 發(fā)表于 2020-12-10 22:47 | 顯示全部樓層
對(duì)一位賦值和對(duì)一個(gè)字節(jié)賦值確實(shí)不一樣,修改后跟預(yù)期的效果一樣,感謝樓上幾位的回復(fù)。
回復(fù)

使用道具 舉報(bào)

ID:390416 發(fā)表于 2020-12-31 15:23 | 顯示全部樓層
這是我分享到51hei的  STC89單片機(jī) 定時(shí)器做PWM程序, http://www.zg4o1577.cn/bbs/dpj-200820-1.html
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人欧美在线 | 精品免费在线观看 | 国产黄色在线播放 | 亚洲视频免费观看 | 国产一区在线看 | 亚洲欧美中文字幕 | 国产精品国产精品国产专区不卡 | 亚洲永久免费视频 | 黄色成人免费网站 | 国产精品一区二 | 国产成人亚洲精品自产在线 | 一区二区免费视频 | 国产欧美日韩在线视频 | 国产伦精品一区二区三区在线 | a在线免费观看 | 久久久久久综合 | 黄色网址在线免费观看 | 成人国产精品一区二区 | aaa级片| 日本黄色中文字幕 | 日韩在线免费观看视频 | 伊人亚洲综合 | 天天操狠狠干 | 91视频观看| www日韩| 亚洲福利一区 | 欧美日韩精品在线 | 久久er99热精品一区二区 | 国产精品一区在线观看 | 人人干人人艹 | 国产精品成人一区 | 天天燥日日燥 | 亚洲无av在线中文字幕 | aaa亚洲 | 中文字幕在线免费播放 | 嫩草久久 | av免费观看在线 | 久久一区二区三区四区 | 欧美区一区二 | 亚洲国产欧美日韩在线 | 国产精品国产精品国产专区不片 |