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

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 3873|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

期待你們的答復(fù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:50469 發(fā)表于 2013-5-22 19:12 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
sbit D1=P0^0;
void main()
{
     for(i=2;i>0;i--)
    {
       d1=0;
      delay(500);
      d1=1;
      delay(500);
     }
}
下面是一個(gè)延時(shí)函數(shù),
然后為什么,這個(gè)發(fā)光二極管沒(méi)有閃兩下就不亮了呢??
就是因?yàn)閱纹瑱C(jī)是寫什么執(zhí)行什么,然后如果不給它寫挺值得程序是不會(huì)停的嗎?
還有怎么實(shí)現(xiàn)上兩次以后再也不亮了呢,除了用中斷??
希望能盡快收到大家的答復(fù),謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(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ù)

使用道具 舉報(bào)

板凳
ID:50469 發(fā)表于 2013-5-24 00:01 | 只看該作者
你沒(méi)明白我的意思,我是想閃兩下就不閃了,但那個(gè)for循環(huán)好像不起作用啊。。
回復(fù)

使用道具 舉報(bào)

地板
ID:51036 發(fā)表于 2013-6-20 02:24 來(lái)自觸屏版 | 只看該作者
可以在for循環(huán)體整體之后加一個(gè)  while(1);
回復(fù)

使用道具 舉報(bào)

5#
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);
     }
}

程序中的錯(cuò)誤:
1、sbit D1=P0^0;和d1=0;要求大小寫一致。即全部都用D1或全都用d1。
2、delay(500);程序中缺少子程序。
3、程序是需要一直循環(huán)執(zhí)行的,或是在等待外部變化(引腳電平變化,外部中斷等),或是內(nèi)部定時(shí)等等。
如下完整程序:
#include<reg52.h>
unsigned  char   i;
sbit d1=P1^0;
void delay(unsigned int ms)//延時(shí)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)。
}

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

回復(fù)

使用道具 舉報(bào)

6#
ID:51564 發(fā)表于 2013-7-9 20:42 | 只看該作者
我想問(wèn)下:你編譯正確么??
回復(fù)

使用道具 舉報(bào)

7#
ID:51883 發(fā)表于 2013-7-15 20:34 | 只看該作者
難道 你在編譯的時(shí)候  編譯軟件不報(bào)錯(cuò) 而且還能生成HEX文件  并下載到單片機(jī)里�。。�!這簡(jiǎn)直是 不可思議�。。�
關(guān)于你是否定義了變量 i ;首先如果你的延時(shí)子程序 延時(shí)時(shí)間太短 人的眼睛是  根本無(wú)法分辨的  所以就像沒(méi)有亮一樣!實(shí)際上 是亮了  只是時(shí)間太短!��!
回復(fù)

使用道具 舉報(bào)

8#
ID:50469 發(fā)表于 2013-8-6 17:55 | 只看該作者
聽(tīng),美妙的旋律 發(fā)表于 2013-7-9 20:42
我想問(wèn)下:你編譯正確么??

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

使用道具 舉報(bào)

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

謝謝!
回復(fù)

使用道具 舉報(bào)

10#
ID:50469 發(fā)表于 2013-8-6 18:05 | 只看該作者
zjjhtony 發(fā)表于 2013-6-20 16:40
#include
sbit D1=P0^0;
void main()

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

使用道具 舉報(bào)

11#
ID:153199 發(fā)表于 2016-12-31 11:00 | 只看該作者
感謝分享經(jīng)驗(yàn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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