欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機定時器流水燈程序問題 [打印本頁]

作者: 1746722427    時間: 2021-7-10 14:38
標題: 單片機定時器流水燈程序問題
小白剛學用定時寫了個1秒閃燈沒問題,可是寫流水單就出現問題了,圖片是程序運行狀態,麻煩大家指教一下

單片機源程序如下:
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
void main()
{
        uint cnt;
        uchar sec=0;
        TMOD=0x01;
        TH0=0xB8;
        TL0=0x00;
        TR0=1;
        while(1)
        {
                if(TF0==1)
                {
                        TF0=0;
                        TH0=0xB8;
                        TL0=0x00;
                        cnt++;
                        if(cnt>=50)
                        {
                                cnt=0;
                                P0=_crol_(sec,1);
                                sec++;
                                if(sec>=8)
                                {
                                        sec=0;
                                }
                        }
                }
        }
}

9.png (33.66 KB, 下載次數: 39)

9.png

1.png (14.76 KB, 下載次數: 46)

1.png

2.png (13.46 KB, 下載次數: 29)

2.png

3.png (9.54 KB, 下載次數: 33)

3.png

4.png (9.1 KB, 下載次數: 35)

4.png

5.png (8.38 KB, 下載次數: 34)

5.png

6.png (10.68 KB, 下載次數: 33)

6.png

7.png (8.68 KB, 下載次數: 37)

7.png

8.png (8.84 KB, 下載次數: 42)

8.png

作者: hoodieboi    時間: 2021-7-10 16:00
1.燈是低電平亮2.移位那里有錯,你對sec進行移位有錯。
作者: wulin    時間: 2021-7-10 21:43
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
void main()
{
        uint cnt;
        uchar sec=0;
        TMOD=0x01;
        TH0=0xB8;
        TL0=0x00;
        TR0=1;
        P0=0xfe;
        while(1)
        {
                if(TF0==1)
                {
                        TF0=0;
                        TH0=0xB8;
                        TL0=0x00;
                        cnt++;
                        if(cnt>=50)
                        {
                                cnt=0;
                                P0=_crol_(P0,1);
                        }
                }
        }
}
作者: sadv    時間: 2021-7-14 11:47
光看你的圖就知道問題在哪里了,你的sec這個變量在循環里累加,一開始是0,然后是1,2,3.....但是你要轉換為二進制去看啊,其實你的sec是0000,0001,0010,0011,0100......這樣子變化的,所以根本沒有流水燈的效果嘛,要通過移位操作才行,不能累加。
作者: npn    時間: 2021-7-14 12:12
P0=~_crol_(1,sec);
作者: gain    時間: 2021-7-14 14:52
兄弟的你sec進行移位有錯,是移位操作,不是累加




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1