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

QQ登錄

只需一步,快速開始

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

菜鳥請(qǐng)教:STC89C55RD+單片機(jī)做流水燈效果無(wú)法點(diǎn)亮LED燈,問(wèn)題出在哪里?

[復(fù)制鏈接]
ID:706724 發(fā)表于 2021-4-13 11:07 | 顯示全部樓層 |閱讀模式
各位,大神好。
                   本菜,利用普中學(xué)習(xí)板,想實(shí)現(xiàn)3個(gè)LED流水燈的效果,LED1不亮,LED2亮,LED3不亮------LED1亮,LED2不亮,LED3亮!如此循環(huán),編譯后,沒(méi)有提示錯(cuò)誤,但下載到學(xué)習(xí)板上,LED燈沒(méi)有任何反應(yīng),測(cè)試對(duì)應(yīng)的單片機(jī)管腳未見(jiàn)有電壓輸出!現(xiàn)在還不知曉問(wèn)題出在哪里?向各位大神們請(qǐng)教!以下為代碼:

#include <reg51.h>

void delay(unsigned int i);
sbit led1=P2^2;
sbit led2=P2^3;
sbit led3=P2^4;
main()
{
  unsigned char led1,led2,led3;
            
led1=  0xff  ;

  delay(600);

  led2=0x00 ;


  delay(600);

led3=0xff ;
        
         delay(600);
        
        led1=  0x00  ;
        
          delay(600);
        
        led2=0xff ;
        
          delay(600);
               
        led3=0x00 ;
        
          delay(600);
return 0;

}


void delay(unsigned int i)
{
    unsigned char j;
    for(i; i > 0; i--)   
        for(j = 255; j > 0; j--);
}


回復(fù)

使用道具 舉報(bào)

ID:706724 發(fā)表于 2021-4-13 11:14 | 顯示全部樓層
creating hex file from ".\Objects\LEDNO2"...
".\Objects\LEDNO2" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:02
回復(fù)

使用道具 舉報(bào)

ID:586577 發(fā)表于 2021-4-13 11:36 | 顯示全部樓層
sbit  位定義   是操作P2口   2/3/4、位的   賦值1和0 應(yīng)該就能控制燈的狀態(tài)   
回復(fù)

使用道具 舉報(bào)

ID:586577 發(fā)表于 2021-4-13 11:41 | 顯示全部樓層
本帖最后由 liu--2019 于 2021-4-13 14:12 編輯

#include <reg51.h>
        
void delay(unsigned int i);

sbit led1=P2^2;
sbit led2=P2^3;
sbit led3=P2^4;
void main()
{
     while(1)
     {
           led1=1;
           led2=led3=0;
           delay(600);
           led2=1;
           led1=led3=0;
           delay(600);
           led3=1;
           led1=led2=0;
           delay(600);       }  

}

void delay(unsigned int i)
{
    unsigned char j;
    for(i; i > 0; i--)   
        for(j = 255; j > 0; j--);
}
回復(fù)

使用道具 舉報(bào)

ID:706724 發(fā)表于 2021-4-13 21:49 | 顯示全部樓層
感謝指導(dǎo),有一點(diǎn)沒(méi)有想明白,用while語(yǔ)句的用意是什么?
回復(fù)

使用道具 舉報(bào)

ID:900662 發(fā)表于 2021-4-13 22:23 | 顯示全部樓層
while語(yǔ)句就是讓單片機(jī)一直保持運(yùn)行,想要單片機(jī)一直工作,就需要給它一個(gè)無(wú)限循環(huán)(C語(yǔ)言中叫死循環(huán),一般不能出現(xiàn),但單片機(jī)中必須要有)來(lái)讓他保持工作,完成你的各種指。
回復(fù)

使用道具 舉報(bào)

ID:894154 發(fā)表于 2021-4-14 08:45 | 顯示全部樓層
你都說(shuō)要如此循環(huán)了,為何程序里面卻沒(méi)有循環(huán).
回復(fù)

使用道具 舉報(bào)

ID:847788 發(fā)表于 2021-4-14 11:45 | 顯示全部樓層
#include <reg51.h>
        
void delay(unsigned int i);


void main()
{

sbit led1=P2^2;
sbit led2=P2^3;
sbit led3=P2^4;
     while(1)
     {
           led1=1;
           led2=led3=0;
           delay(600);
           led2=1;
           led1=led3=0;
           delay(600);
           led3=1;
           led1=led2=0;
           delay(600);       }  

}

void delay(unsigned int i)
{
    unsigned char j;
    for(i; i > 0; i--)   
        for(j = 255; j > 0; j--);
}
試試這個(gè)程序
回復(fù)

使用道具 舉報(bào)

ID:342911 發(fā)表于 2021-4-14 12:55 來(lái)自手機(jī) | 顯示全部樓層
無(wú)操作系統(tǒng)時(shí)主程序里多是一個(gè)while(1)死循環(huán)在跑
Screenshot_20210414-125342_Chrome.jpg

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:706724 發(fā)表于 2021-4-14 21:20 | 顯示全部樓層
jfmdam 發(fā)表于 2021-4-13 22:23
while語(yǔ)句就是讓單片機(jī)一直保持運(yùn)行,想要單片機(jī)一直工作,就需要給它一個(gè)無(wú)限循環(huán)(C語(yǔ)言中叫死循環(huán),一般 ...

回復(fù)

使用道具 舉報(bào)

ID:706724 發(fā)表于 2021-4-14 21:21 | 顯示全部樓層
muzhi 發(fā)表于 2021-4-14 12:55
無(wú)操作系統(tǒng)時(shí)主程序里多是一個(gè)while(1)死循環(huán)在跑

感謝指導(dǎo)
回復(fù)

使用道具 舉報(bào)

ID:706724 發(fā)表于 2021-4-14 21:22 | 顯示全部樓層
teared 發(fā)表于 2021-4-14 11:45
#include
        
void delay(unsigned int i);

這個(gè)程序是可以 的
回復(fù)

使用道具 舉報(bào)

ID:706724 發(fā)表于 2021-4-14 21:33 | 顯示全部樓層
感謝打大家的幫助,經(jīng)過(guò)這兩天學(xué)習(xí),我發(fā)的程序里面有3出錯(cuò)誤,雖然編譯無(wú)誤,但實(shí)際無(wú)法操作:1.sbit 的值域只有,0或1.所以LED=0XFF,是錯(cuò)誤的,雖然語(yǔ)法沒(méi)有錯(cuò)誤。2.少了while語(yǔ)句。3.unsigned char led1,led2,led3;  事實(shí)上前面已經(jīng)定義了LED的對(duì)應(yīng)的管腳,就沒(méi)有必要再定義了。經(jīng)過(guò)修改上面3處錯(cuò)誤后,可以點(diǎn)亮LED燈了,算是自己學(xué)習(xí)的總結(jié)吧。
     接下來(lái),想把這三種效果,做成一個(gè)軟件:開機(jī)----LED亮------斷電5S內(nèi),再上電------LED閃爍-----斷電5S內(nèi),再上電----LED流水效果,如此循環(huán)。如果斷電>5S,則運(yùn)行當(dāng)前的程序。
  希望各位,大神不吝指導(dǎo)!謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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