找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3893|回復(fù): 11
收起左側(cè)

期待你們的答復(fù)

[復(fù)制鏈接]
ID:50469 發(fā)表于 2013-5-22 19:12 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
sbit D1=P0^0;
void main()
{
     for(i=2;i>0;i--)
    {
       d1=0;
      delay(500);
      d1=1;
      delay(500);
     }
}
下面是一個延時函數(shù),
然后為什么,這個發(fā)光二極管沒有閃兩下就不亮了呢??
就是因為單片機(jī)是寫什么執(zhí)行什么,然后如果不給它寫挺值得程序是不會停的嗎?
還有怎么實現(xiàn)上兩次以后再也不亮了呢,除了用中斷??
希望能盡快收到大家的答復(fù),謝謝!
回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2013-5-23 00:58 | 顯示全部樓層
如果按這樣寫 的話 他就可以一直執(zhí)行不停止了
#include<reg52.h>
sbit D1=P0^0;
void main()
{
     while(1)
    {
       d1=0;
      delay(500);
      d1=1;
      delay(500);
     }
}
回復(fù)

使用道具 舉報

ID:50469 發(fā)表于 2013-5-24 00:01 | 顯示全部樓層
你沒明白我的意思,我是想閃兩下就不閃了,但那個for循環(huán)好像不起作用啊。。
回復(fù)

使用道具 舉報

ID:51036 發(fā)表于 2013-6-20 02:24 來自觸屏版 | 顯示全部樓層
可以在for循環(huán)體整體之后加一個  while(1);
回復(fù)

使用道具 舉報

ID:18297 發(fā)表于 2013-6-20 16:40 | 顯示全部樓層
#include<reg52.h>
sbit D1=P0^0;
void main()
{
     for(i=2;i>0;i--)
    {
       d1=0;
      delay(500);
      d1=1;
      delay(500);
     }
}

程序中的錯誤:
1、sbit D1=P0^0;和d1=0;要求大小寫一致。即全部都用D1或全都用d1。
2、delay(500);程序中缺少子程序。
3、程序是需要一直循環(huán)執(zhí)行的,或是在等待外部變化(引腳電平變化,外部中斷等),或是內(nèi)部定時等等。
如下完整程序:
#include<reg52.h>
unsigned  char   i;
sbit d1=P1^0;
void delay(unsigned int ms)//延時1毫秒(不夠精確的)
{
unsigned int i,j;
    for(i=0;i<ms;i++)
     for(j=0;j<100;j++);
}
void main()
{
     for(i=2;i>0;i--)
    {
       d1=0;
      delay(500);
      d1=1;
      delay(500);
     }
  while(1);   //D1變化兩次后一直空閑,死循環(huán)。
}

但是仿真中和實際電路中要看,delay(500);的延時時間到底是多少,太少的話仿真程序或人在實驗板上不能看到。

回復(fù)

使用道具 舉報

ID:51564 發(fā)表于 2013-7-9 20:42 | 顯示全部樓層
我想問下:你編譯正確么??
回復(fù)

使用道具 舉報

ID:51883 發(fā)表于 2013-7-15 20:34 | 顯示全部樓層
難道 你在編譯的時候  編譯軟件不報錯 而且還能生成HEX文件  并下載到單片機(jī)里�。。。∵@簡直是 不可思議!��!
關(guān)于你是否定義了變量 i ;首先如果你的延時子程序 延時時間太短 人的眼睛是  根本無法分辨的  所以就像沒有亮一樣!實際上 是亮了  只是時間太短�。�!
回復(fù)

使用道具 舉報

ID:50469 發(fā)表于 2013-8-6 17:55 | 顯示全部樓層
聽,美妙的旋律 發(fā)表于 2013-7-9 20:42
我想問下:你編譯正確么??

不好意思,我只寫了主要部分,延時子函數(shù)沒寫,d1也是不小心寫錯了,在程序里我寫的是D1
回復(fù)

使用道具 舉報

ID:50469 發(fā)表于 2013-8-6 18:03 | 顯示全部樓層
admin 發(fā)表于 2013-5-23 00:58
如果按這樣寫 的話 他就可以一直執(zhí)行不停止了
#include
sbit D1=P0^0;

謝謝!
回復(fù)

使用道具 舉報

ID:50469 發(fā)表于 2013-8-6 18:05 | 顯示全部樓層
zjjhtony 發(fā)表于 2013-6-20 16:40
#include
sbit D1=P0^0;
void main()

是正解啊,太感謝了(現(xiàn)在回過頭來再看就知道了,當(dāng)時怎么也沒想起來),太感謝了!��!
回復(fù)

使用道具 舉報

ID:153199 發(fā)表于 2016-12-31 11:00 | 顯示全部樓層
感謝分享經(jīng)驗
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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