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

QQ登錄

只需一步,快速開始

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

單片機(jī)定時(shí)器流水燈程序問題

[復(fù)制鏈接]
ID:820198 發(fā)表于 2021-7-10 14:38 | 顯示全部樓層 |閱讀模式
小白剛學(xué)用定時(shí)寫了個(gè)1秒閃燈沒問題,可是寫流水單就出現(xiàn)問題了,圖片是程序運(yùn)行狀態(tài),麻煩大家指教一下

單片機(jī)源程序如下:
#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
1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
回復(fù)

使用道具 舉報(bào)

ID:914633 發(fā)表于 2021-7-10 16:00 | 顯示全部樓層
1.燈是低電平亮2.移位那里有錯(cuò),你對(duì)sec進(jìn)行移位有錯(cuò)。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 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);
                        }
                }
        }
}
回復(fù)

使用道具 舉報(bào)

ID:887202 發(fā)表于 2021-7-14 11:47 | 顯示全部樓層
光看你的圖就知道問題在哪里了,你的sec這個(gè)變量在循環(huán)里累加,一開始是0,然后是1,2,3.....但是你要轉(zhuǎn)換為二進(jìn)制去看啊,其實(shí)你的sec是0000,0001,0010,0011,0100......這樣子變化的,所以根本沒有流水燈的效果嘛,要通過移位操作才行,不能累加。
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2021-7-14 12:12 | 顯示全部樓層
P0=~_crol_(1,sec);
回復(fù)

使用道具 舉報(bào)

ID:950257 發(fā)表于 2021-7-14 14:52 | 顯示全部樓層
兄弟的你sec進(jìn)行移位有錯(cuò),是移位操作,不是累加
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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