找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1894|回復: 2
收起左側(cè)

關于單片機LED交通燈程序邏輯的一個小問題

[復制鏈接]
ID:910079 發(fā)表于 2021-11-19 23:49 | 顯示全部樓層 |閱讀模式
就是按照我的思路敲了一個代碼,實現(xiàn)兩路通行的,但是我的黃燈閃爍5次,只閃爍了3次就執(zhí)行下一個函數(shù)了,為什么啊,賦值循環(huán)次數(shù)已經(jīng)是5次了啊,是哪里沖突了嗎?求大佬解答一下
單片機代碼如下:

#include<reg51.h>
sbit P01=P0^1;
sbit P04=P0^4;

void delay1ms()
{
   unsigned char i,j;        
         for(i=0;i<10;i++)
          for(j=0;j<33;j++)
           ;                 
}

void delay(unsigned char n)
{
   unsigned char i;
        for(i=0;i<n;i++)
           delay1ms();
}

void Level_Yellow()   //水平黃燈閃爍
{        unsigned char k1;
        
         P0=0XF5;               //1111 1001 - 1111 1010閃爍
        for(k1=0;k1<5;k1++)     //  閃爍5次
        { P01=~P01;
         delay(200);               
        }        
}
void Level_Pass()     //水平通行
{
        unsigned char k3;
        
        P0=0XF3;
        for(k3=0;k3<10;k3++)
        delay(200);

}

void Vertical_Pass()   //垂直通行
{
        unsigned char k4;
        
        P0=0Xde;
        for(k4=0;k4<10;k4++)
        delay(200);

}

void Vertical_Yellow()  //垂直黃燈閃爍
{        unsigned char k2;
        
         P0=0XEE;
        for(k2=0;k2<5;k2++)
        { P04=~P04;
         delay(200);               
        }        
}
void main(void)
{
while(1)
{
        Level_Pass();
        Level_Yellow ();
        
        Vertical_Pass();
        Vertical_Yellow();
        
}        


}

到這里就閃3次

到這里就閃3次

這里是函數(shù)段,已經(jīng)賦值5次了啊

這里是函數(shù)段,已經(jīng)賦值5次了啊

這里是主程序部分

這里是主程序部分

led交通.zip

59.68 KB, 下載次數(shù): 5

回復

使用道具 舉報

ID:624769 發(fā)表于 2021-11-20 01:12 | 顯示全部樓層
你對閃爍的定義沒有明白,還是對 P01=~P01; 這代碼的意思沒有明白?
閃爍3次是亮了三次, 亮三次最少的操作是:  亮,滅,亮,滅,亮
P01 =~P01的定義是P01取反, 默認0的話5次: 1, 0, 1, 0, 1
那么…… 你覺得,到底,有什么問題呢?
回復

使用道具 舉報

ID:910079 發(fā)表于 2021-11-20 10:43 | 顯示全部樓層
188610329 發(fā)表于 2021-11-20 01:12
你對閃爍的定義沒有明白,還是對 P01=~P01; 這代碼的意思沒有明白?
閃爍3次是亮了三次, 亮三次最少的操 ...

啊我知道錯那里了,謝謝指導
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表