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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17624|回復: 69
收起左側

一個LED燈閃滅的程序,錯在哪里

  [復制鏈接]
ID:64755 發表于 2014-8-7 11:56 | 顯示全部樓層 |閱讀模式
#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
錯在哪里哇
回復

使用道具 舉報

ID:64832 發表于 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啦

評分

參與人數 1威望 +20 黑幣 +25 收起 理由
admin + 20 + 25 很給力!

查看全部評分

回復

使用道具 舉報

ID:64575 發表于 2014-8-7 13:45 | 顯示全部樓層
delay函數里
回復

使用道具 舉報

ID:64755 發表于 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
回復

使用道具 舉報

ID:62819 發表于 2014-8-7 18:23 | 顯示全部樓層
程序沒有問題,
無標題.png
回復

使用道具 舉報

ID:62819 發表于 2014-8-7 18:24 | 顯示全部樓層
0 (2).png
回復

使用道具 舉報

ID:51090 發表于 2014-8-7 20:20 來自觸屏版 | 顯示全部樓層
zycheng 發表于 2014-8-7 13:45
delay函數里

zychen 大牛說的對,就是這個問題
回復

使用道具 舉報

ID:19715 發表于 2014-8-7 20:29 | 顯示全部樓層
程序沒有錯誤
回復

使用道具 舉報

ID:64755 發表于 2014-8-8 09:28 | 顯示全部樓層

求改正
回復

使用道具 舉報

ID:63752 發表于 2014-8-8 09:58 | 顯示全部樓層

學習學習~~
回復

使用道具 舉報

ID:64794 發表于 2014-8-8 22:36 | 顯示全部樓層
傳遞函數i 沒有過度函數
回復

使用道具 舉報

ID:63839 發表于 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--);
}
這樣才對

評分

參與人數 1威望 +20 黑幣 +20 收起 理由
admin + 20 + 20

查看全部評分

回復

使用道具 舉報

ID:63839 發表于 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--);
}
這樣才對
回復

使用道具 舉報

ID:63839 發表于 2014-8-21 12:04 | 顯示全部樓層

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

使用道具 舉報

ID:63839 發表于 2014-8-21 12:05 | 顯示全部樓層

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

使用道具 舉報

ID:58502 發表于 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文件,又或者是你寫好程序了,沒保存一下

評分

參與人數 1威望 +10 黑幣 +10 收起 理由
admin + 10 + 10

查看全部評分

回復

使用道具 舉報

ID:58502 發表于 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
回復

使用道具 舉報

ID:58502 發表于 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--);
}











評分

參與人數 1威望 +10 黑幣 +10 收起 理由
admin + 10 + 10 贊一個!

查看全部評分

回復

使用道具 舉報

ID:64810 發表于 2014-8-21 14:25 | 顯示全部樓層
*** ERROR: COMMAND-FILE 'led' NOT FOUND--錯誤提示沒找到led文件,查看下keil創建程序的步驟對不對,保存路徑對不對
回復

使用道具 舉報

ID:44262 發表于 2014-8-21 22:21 來自觸屏版 | 顯示全部樓層
看你們討論得熱火朝天 氣氛很不錯 ,讓我學到了很多知識 謝謝!
回復

使用道具 舉報

ID:65588 發表于 2014-8-29 19:26 | 顯示全部樓層
學習啦!!!!!!
回復

使用道具 舉報

ID:65642 發表于 2014-8-31 21:41 | 顯示全部樓層
delay函數里面的char形變量改成int型就行了

評分

參與人數 1威望 +30 黑幣 +30 收起 理由
admin + 30 + 30 幫助他人的積分獎勵

查看全部評分

回復

使用道具 舉報

ID:65691 發表于 2014-9-2 06:36 | 顯示全部樓層
呵呵和我一樣,新手
回復

使用道具 舉報

ID:64810 發表于 2014-9-2 17:16 | 顯示全部樓層
沒有導入C文件,
回復

使用道具 舉報

ID:26218 發表于 2014-9-3 22:00 | 顯示全部樓層
程序沒問題不代表執行結果是你想要的,12#正解
回復

使用道具 舉報

ID:65769 發表于 2014-9-3 22:03 | 顯示全部樓層
C文件   沒有保存  好像是這樣
回復

使用道具 舉報

ID:57187 發表于 2014-9-4 02:04 來自觸屏版 | 顯示全部樓層
程序沒有問題程序
回復

使用道具 舉報

ID:65837 發表于 2014-9-5 15:39 | 顯示全部樓層
i沒置數啊

評分

參與人數 1威望 +45 黑幣 +45 收起 理由
admin + 45 + 45 回帖助人的積分獎勵!!

查看全部評分

回復

使用道具 舉報

ID:63275 發表于 2014-9-13 23:35 | 顯示全部樓層
學習了,要上機試下。
回復

使用道具 舉報

ID:65425 發表于 2014-9-18 11:59 | 顯示全部樓層
延時函數需要聲明
回復

使用道具 舉報

ID:65425 發表于 2014-9-18 12:02 | 顯示全部樓層
向前看zk 發表于 2014-9-18 11:59
延時函數需要聲明

看錯,不好意思
回復

使用道具 舉報

ID:66511 發表于 2014-9-22 19:46 | 顯示全部樓層
學習學習~~
回復

使用道具 舉報

ID:66511 發表于 2014-9-22 19:47 | 顯示全部樓層
學習學習~~
回復

使用道具 舉報

ID:66729 發表于 2014-9-27 21:35 | 顯示全部樓層
看不明白,但不是要學學
回復

使用道具 舉報

ID:66837 發表于 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++);也可以
回復

使用道具 舉報

ID:66840 發表于 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--)
回復

使用道具 舉報

ID:66467 發表于 2014-10-1 05:21 | 顯示全部樓層
可以試試把延遲函數改一下
回復

使用道具 舉報

ID:66964 發表于 2014-10-5 08:13 | 顯示全部樓層
延遲函數
回復

使用道具 舉報

ID:66965 發表于 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--)  
回復

使用道具 舉報

ID:66968 發表于 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--);

更簡單
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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