找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4463|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

誰能幫我解釋一下這個單片機程序,函數(shù)聲明部分看不懂

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:387208 發(fā)表于 2019-1-26 11:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg52.h>
  2. unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//顯示數(shù)字1-9
  3. void Delay(unsigned int t);//函數(shù)聲明(就是這里不知道什么)
  4. void main (void)
  5. {
  6.         unsigned char i;//定義一個無符號型局部變量i取值范圍0-255
  7.         while(1)
  8.       {
  9.             for(i=0;i<10;i++)
  10.             {
  11.                P2=table[i];    //循環(huán)調(diào)用表中的數(shù)值
  12.                Delay(50000);
  13.             }
  14.      }
  15. }
  16. void Delay(unsigned int t)
  17. {
  18.     while(--t);//這個也不知道是什么東東
  19. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:472132 發(fā)表于 2019-1-26 16:22 | 只看該作者
函數(shù)聲明部分就是定義了函數(shù)的名字Delay,還有一個無符號整型變量t。假設(shè)t=10,while(--t)當(dāng)t=0時就會不成立,那么--t的這個過程是需要執(zhí)行時間的,也就實現(xiàn)了延時的功能。
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2019-1-26 17:04 | 只看該作者
編譯器是從main函數(shù)開始編譯,main函數(shù)里調(diào)用了Delay函數(shù),如果不作聲明,編譯器不知道到哪里找Delay函數(shù)。如果把Delay函數(shù)放在main函數(shù)前面就相當(dāng)于聲明,就不必另外作聲明。
回復(fù)

使用道具 舉報

地板
ID:164602 發(fā)表于 2019-1-26 20:53 | 只看該作者
把函數(shù)寫在main()主函數(shù)的前面,就可以不用申明了。
另外:while(--t);的意思,就是一個循環(huán),浪費時間用的,這是個延時函數(shù)
回復(fù)

使用道具 舉報

5#
ID:387208 發(fā)表于 2019-1-27 11:25 | 只看該作者
謝謝你們啦
回復(fù)

使用道具 舉報

6#
ID:466753 發(fā)表于 2019-1-27 14:26 | 只看該作者
定義了一個延時函數(shù)
回復(fù)

使用道具 舉報

7#
ID:453974 發(fā)表于 2019-1-27 18:58 | 只看該作者
我想不明白的是你有啥看不懂的呢,不就是讓變量一直自減么,當(dāng)while里面的判斷條件為假時一跳出不就跳出循環(huán)了么
回復(fù)

使用道具 舉報

8#
ID:473410 發(fā)表于 2019-1-28 10:00 | 只看該作者
這個函數(shù)delay就是一個延時的功能,通過while(i--)的運算來使CPU消耗一段時間達到延時的功能,你想啊,while語句里面非0即真的,所以i只有自減到0的時候才會跳出循環(huán),這就需要時間啊。還有一點,樓主注釋的有一點錯誤了,這個不是顯示1-9了,這是10個數(shù),應(yīng)該是0-9.
回復(fù)

使用道具 舉報

9#
ID:449525 發(fā)表于 2019-1-28 11:05 | 只看該作者
延時,程序減到0,往下執(zhí)行
回復(fù)

使用道具 舉報

10#
ID:24354 發(fā)表于 2019-1-28 14:19 | 只看該作者
while(--t);這個就是用來延時的。
回復(fù)

使用道具 舉報

11#
ID:473735 發(fā)表于 2019-1-28 21:26 | 只看該作者
就是一個延時程序,數(shù)數(shù)50000下,顯示下一個數(shù)字;
0 - wait 50000 - 1 - wait 50000 - 2 -wait 50000 - ....
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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