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

標題: 一個LED燈閃滅的程序,錯在哪里 [打印本頁]

作者: yang0011102    時間: 2014-8-7 11:56
標題: 一個LED燈閃滅的程序,錯在哪里
#include <reg51.h>          
void delay(unsigned int i);  
void main()
{
        while(1)
        {
                P2  = 0x00;
                delay(600);
                P2  = 0xff;
                delay(600);
        }
}
void delay(unsigned int i)
{
        unsigned char j;
        for(i; i > 0; i--)  
                for(j = 255; j > 0; j--);
}
輸出以下
Build target 'Target 1'
assembling STARTUP.A51...
compiling led2.c...
linking...
BL51 BANKED LINKER/LOCATER V6.22 - SN: K1RMC-724WNC
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009
*** ERROR: COMMAND-FILE 'led' NOT FOUND
Target not created
錯在哪里哇
作者: dingygc    時間: 2014-8-7 13:15
void delay(unsigned int i)
{
        unsigned char j;
        for(i; i > 0; i--)  
                for(j = 255; j > 0; j--);
}




這一段有問題


void delay(unsigned int x)
{
        unsigned char i,j;
        for(i; i > 0; i--)  
                for(j = 255; j > 0; j--);
}
這樣就ok啦
作者: zycheng    時間: 2014-8-7 13:45
delay函數里
作者: yang0011102    時間: 2014-8-7 17:26
dingygc 發表于 2014-8-7 13:15
void delay(unsigned int i)
{
        unsigned char j;

Build target 'Target 1'
assembling STARTUP.A51...
compiling led2.c...
LED2.C(13): warning C280: 'x': unreferenced local variable
linking...
BL51 BANKED LINKER/LOCATER V6.22 - SN: K1RMC-724WNC
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009
*** ERROR: COMMAND-FILE 'led' NOT FOUND
Target not created
作者: slamdunk_czt    時間: 2014-8-7 18:23
程序沒有問題,

無標題.png (25.49 KB, 下載次數: 206)

無標題.png

作者: slamdunk_czt    時間: 2014-8-7 18:24

作者: xiaojuan    時間: 2014-8-7 20:20
zycheng 發表于 2014-8-7 13:45
delay函數里

zychen 大牛說的對,就是這個問題
作者: 明白    時間: 2014-8-7 20:29
程序沒有錯誤
作者: yang0011102    時間: 2014-8-8 09:28
zycheng 發表于 2014-8-7 13:45
delay函數里

求改正
作者: XUSHENG    時間: 2014-8-8 09:58
yang0011102 發表于 2014-8-8 09:28
求改正

學習學習~~
作者: bianzhu    時間: 2014-8-8 22:36
傳遞函數i 沒有過度函數
作者: NB沒B    時間: 2014-8-21 12:03
dingygc 發表于 2014-8-7 13:15
void delay(unsigned int i)
{
        unsigned char j;


void delay(unsigned int x)
{
         unsigned char j;
         for(i=x; i > 0; i--)  
                 for(j = 255; j > 0; j--);
}
這樣才對

作者: NB沒B    時間: 2014-8-21 12:04
yang0011102 發表于 2014-8-7 17:26
Build target 'Target 1'
assembling STARTUP.A51...
compiling led2.c...

void delay(unsigned int x)
{
         unsigned char j;
         for(i=x; i > 0; i--)  
                 for(j = 255; j > 0; j--);
}
這樣才對
作者: NB沒B    時間: 2014-8-21 12:04
yang0011102 發表于 2014-8-8 09:28
求改正

void delay(unsigned int x)
{
         unsigned char j;
         for(i=x; i > 0; i--)  
                 for(j = 255; j > 0; j--);
}
作者: NB沒B    時間: 2014-8-21 12:05
slamdunk_czt 發表于 2014-8-7 18:23
程序沒有問題,

void delay(unsigned int x)
{
         unsigned char j;
         for(i=x; i > 0; i--)  
                 for(j = 255; j > 0; j--);
}
作者: liaolinhui    時間: 2014-8-21 12:29
本帖最后由 liaolinhui 于 2014-8-21 12:48 編輯

程序沒有問題,說延時函數有問題的人也不怎么懂,void delay(unsigned int i)這句可以直接給 i 賦值的,i 稱為delay的形參,當用delay(600)這樣的語句調用delay函數時,會自動給 i 賦值為600,不需要再定義一個x,再讓i=x沒那必要,看你的錯誤提示應該是文件led不存在,你要把文件保存為led.c文件再把文件添加到工程,列如5樓的工程左邊哪里就是加了個1.c文件,又或者是你寫好程序了,沒保存一下
作者: liaolinhui    時間: 2014-8-21 12:34
本帖最后由 liaolinhui 于 2014-8-21 12:36 編輯

我把代碼復制過來了,完全沒問題
創建目標 '目標 1'
PA51匯編 STARTUP.A51 ...
編譯 1.c ...
連接 ...
Program Size: data=9.0 xdata=0 code=58
創建 HEX 文件 "1" ...
"1" - 0 個錯誤, 0 個警告。

1.JPG (103.33 KB, 下載次數: 206)

1.JPG

作者: liaolinhui    時間: 2014-8-21 12:39
給你看一下我實驗板上的程序,跟你的一樣。

/**************************************************************************************
*                              LED閃爍的簡單試驗                                                                                                  *
*       
*     連接方法: JP11(P2)和JP1用8PIN排線連接起來                                                                      *
*                                                                                                                                                                          *
***************************************************************************************/

#include <reg51.h>           //此文件中定義了51的一些特殊功能寄存器

void delay(unsigned int i);  //聲明延時函數

main()
{
   
  P2  = 0x00; //置P0口為低電平
  
  delay(600); //調用延時程序

  P2  = 0xff; //置P0口為高電平
  

  delay(600); // 調用延時程序


}

/*******延時函數*************/
void delay(unsigned int i)
{
    unsigned char j;
    for(i; i > 0; i--)   //循環 600*255 次
        for(j = 255; j > 0; j--);
}












作者: highffff    時間: 2014-8-21 14:25
*** ERROR: COMMAND-FILE 'led' NOT FOUND--錯誤提示沒找到led文件,查看下keil創建程序的步驟對不對,保存路徑對不對
作者: a110    時間: 2014-8-21 22:21
看你們討論得熱火朝天 氣氛很不錯 ,讓我學到了很多知識 謝謝!
作者: wo_sxc    時間: 2014-8-29 19:26
學習啦!!!!!!
作者: 黑暗主宰    時間: 2014-8-31 21:41
delay函數里面的char形變量改成int型就行了
作者: heweli888    時間: 2014-9-2 06:36
呵呵和我一樣,新手
作者: highffff    時間: 2014-9-2 17:16
沒有導入C文件,
作者: clfpc    時間: 2014-9-3 22:00
程序沒問題不代表執行結果是你想要的,12#正解
作者: 349362187    時間: 2014-9-3 22:03
C文件   沒有保存  好像是這樣
作者: tianzhiguo0629    時間: 2014-9-4 02:04
程序沒有問題程序
作者: 老菜鳥    時間: 2014-9-5 15:39
i沒置數啊
作者: wuchuang    時間: 2014-9-13 23:35
學習了,要上機試下。
作者: 向前看zk    時間: 2014-9-18 11:59
延時函數需要聲明
作者: 向前看zk    時間: 2014-9-18 12:02
向前看zk 發表于 2014-9-18 11:59
延時函數需要聲明

看錯,不好意思
作者: 1134761078    時間: 2014-9-22 19:46
學習學習~~
作者: 1134761078    時間: 2014-9-22 19:47
學習學習~~
作者: nojiya88    時間: 2014-9-27 21:35
看不明白,但不是要學學
作者: 小LJ    時間: 2014-9-30 08:27
把delay(600)改成60000,delay這么寫也行
void delay(unsigned int i)
{
         for(; i > 0; i--);  
  }
或者說在主函數里定義個i,把delay換掉,直接寫個for(i=0;i<60000;i++);也可以
作者: skyhanfeng    時間: 2014-9-30 12:55
void delay(unsigned int i)
{
        unsigned char j;
        for(i; i > 0; i--)  
                for(j = 255; j > 0; j--);
}
i沒有給值。for(i=10;i>0;i--)
作者: 天天好心情親    時間: 2014-10-1 05:21
可以試試把延遲函數改一下
作者: 騎著毛驢的小帥    時間: 2014-10-5 08:13
延遲函數
作者: yezio    時間: 2014-10-5 10:19
void delay(unsigned int i)
{
         unsigned char j;
         for(i; i > 0; i--)  
                 for(j = 255; j > 0; j--);
}


這一段,把 i 刪除也可以的,就這樣就行了。 for(    ; i > 0; i--)  
作者: 804534944    時間: 2014-10-5 13:13
yezio 發表于 2014-10-5 10:19
void delay(unsigned int i)
{
         unsigned char j;

用  
void delayms(unsigned char x )

     while(x--);

更簡單
作者: gaozhaohong    時間: 2014-10-5 17:35
程序沒有問題。
作者: yiyiyi11    時間: 2014-10-6 20:57
寫得很棒,,,
作者: yezio    時間: 2014-10-8 10:28
804534944 發表于 2014-10-5 13:13
用  
void delayms(unsigned char x )

,換思路了,這里是找錯,呵呵

作者: 時尚小飛俠    時間: 2014-10-10 15:57
在一個文件里創建了兩個.c的文件,就會出現這種情況
作者: 時尚小飛俠    時間: 2014-10-10 15:59
程序沒有問題的,如果一個文件同時存在不同的.c文件就會出現這類問題
作者: liuhao123    時間: 2014-10-10 20:41
錯在哪呢
作者: jinanyuanyue    時間: 2014-10-18 13:10
學習了,謝謝高手指點
作者: gaozhaohong    時間: 2014-10-18 14:55
根本就沒有問題,仿真也很對,檢查一下Keil軟件是不是出了問題啊?
作者: wujian    時間: 2014-10-18 17:47
程序本身是沒有任何問題的,是你沒有創建好工程,先創建工程,然后選擇芯片類型,然后寫程序,然后保存,然后點右邊的grounce吧,然后右擊有一個選項是添加到。。然后選擇你保存剛剛寫的程序,就是這樣,你應該是才學的,我也經常犯這種錯誤,當年走了很多彎路。。具體的怎么添加工程,自己百度都可以查到!!希望可以幫到你!!
作者: 永遠的xing    時間: 2014-10-22 22:14
延時函數有問題吧。
作者: rober    時間: 2014-10-23 13:17
想知道最后正確答案
作者: Elect_DIYer    時間: 2014-12-22 13:54
程序是沒有錯誤的,錯誤提示說命令文件led沒有找到,說明你的文件路徑沒有設置好,還是看看你的文件設置情況吧。編譯的是led2.c為什么說led這個文件沒有找到呢,樓主還是自己查查看吧。
作者: qazxcvbnmklp    時間: 2014-12-22 17:10
你在編譯時,一定要重新導入。C文件,設置晶振和輸出格式,要就是你在保存時忘記在文件后面加。C格式,如果沒有。就會在便是出錯
作者: qazxcvbnmklp    時間: 2014-12-22 17:12
對了,要選擇合適你的單片機型號,不然也會出錯的,生成HEX 文件在你的單片機中無法運行
作者: alala2643    時間: 2014-12-24 15:06
個人估計應該是建立.c文件后要么沒有保存,要沒有添加進去工程。。。。。。。。。。。
作者: 少年夢    時間: 2014-12-26 19:30
沒建工程。。。。。
作者: 大哥小弟    時間: 2014-12-26 19:56
仔細看了你的程序,你程序問題很多。有以下錯誤。
1)延時函數中的i沒給初值。
2)延時函數寫的有誤,你可以寫的簡單點,比如 void Delay(unsigned int i) { while(i--); }
3)你延時函數寫在了主函數的下面,因此要對該Delay函數聲明。建議初學者把延時函數寫在主函數上面。
4)可能你在創建c文件時沒保存等、



作者: 沙漠一滴水    時間: 2017-4-16 00:05
是HEX文件的名字有中文且有空格導致的。
作者: 帥也是一種錯    時間: 2017-4-16 14:43
delay那里
作者: rebios    時間: 2019-7-29 08:21
我試了你的程序,程序沒有問題。
是創建工程及加及.c文件過程出的問題
好象KEIL對文件名有要求。

作者: rebios    時間: 2019-7-29 08:27
我剛才試了一個,工程命名的時候,文件名中間有空格和-就不行
你試試看。
另外,我也是剛學單片機,這可能就是新手容易出的問題吧。
樓主可以聯系我,我們一起學。
作者: rebios    時間: 2019-7-29 09:14
我試了,所建工程的名字,不能有空格
作者: 小黑屋525    時間: 2019-7-30 11:50
看ERROR下面的那串英文啊,明顯是創建工程的問題,可能是文件沒保存或者沒添加!
作者: 月之光芒    時間: 2019-7-30 15:27
沒有將led函數添加到工程里進行編譯
作者: asdasdadadad    時間: 2019-7-30 17:51
樓上很多錯的
/*******延時函數*************/
void delay(unsigned int x)
{
    unsigned char i,j;
    for(i=x; i > 0; i--)   //循環 600*255 次
        for(j = 255; j > 0; j--);
}
這樣試下

作者: aaaaaa。    時間: 2019-7-30 20:23
給你一個led流水燈的程序參考一下
//led流水燈
# include "reg52.h"
# include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
# define led P2
void delay(u16 i)
{
        while(i--);
}
void main()
{
        u8 i=0;                                                                  
        led=0xfe;
        delay(50000);
        while(1)
        {
                for(i=0;i<3;i++)
                {
                        led=_crol_(led,2);
                        delay(50000);
                }
                led=0xfd;
                delay(50000);
                for(i=0;i<3;i++)
                {
                        led=_crol_(led,2);
                        delay(50000);
                }
                led=0xfe;
                delay(50000);
         }
}
作者: 韋孟祥    時間: 2019-7-30 21:54
嗯,程序我試過了沒有問題,像一些人說的一樣,不是程序的問題,是缺少.c文件不過我覺得在延時函數中一個變量是int型,另一個是char型,我覺得這樣不太好
作者: 黃youhui    時間: 2019-7-31 22:42
char 定義的不是字符嗎?char j;那么j不應該椒字符型變量嗎?怎么j=255?

作者: jifutao    時間: 2019-8-2 14:48
很明顯是延時函數的問題啊,多從基本的小程序開始吧,看懂,能敲出來,多積累經驗。




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