久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7761|回復: 15
打印 上一主題 下一主題
收起左側

2個單片機10ms延遲方法區別?

  [復制鏈接]
跳轉到指定樓層
樓主
ID:138144 發表于 2016-10-22 21:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
2個延遲區別在哪里?
void Delay10ms(unsigned char ms)
{
        unsigned char a,b;
        for(;ms > 0;ms--)
        {
                for(a = 38;a > 0;a--)
                {
                        for(b = 130;b > 0;b--);
                }
        }
}

void Delay10ms(unsigned int ms)
{
        unsigned int a,b;
        for(;ms > 0;ms--)
        {
                for(a = 38;a > 0;a--)
                {
                        for(b = 130;b > 0;b--);
                }
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩1
回復

使用道具 舉報

沙發
ID:123732 發表于 2016-10-22 22:49 | 只看該作者
第一個延遲里的a、b、ms變量在單片機里分配的空間是一個字節,第2個延遲里的a、b、ms變量在單片機里分配的空間是2個字節。第一個最多只能延時255*10ms,e而第二個最多可以延時65535*10ms,回答完畢。
回復

使用道具 舉報

板凳
ID:57657 發表于 2016-10-22 22:52 | 只看該作者
本帖最后由 npn 于 2016-10-22 22:54 編輯

區別大了,c51單片機中一條指令的時間只能運算一次8位二進制數據,而16位或32位數據計算處理過程中需要分成多條指令和更長的時間來處理的。
回復

使用道具 舉報

地板
ID:57657 發表于 2016-10-22 23:04 | 只看該作者
本帖最后由 npn 于 2016-10-22 23:14 編輯
劉海龍 發表于 2016-10-22 22:49
第一個延遲里的a、b、ms變量在單片機里分配的空間是一個字節,第2個延遲里的a、b、ms變量在單片機里分配的 ...

首先這樣的方法是錯誤的,c51是8位的單片機所以1條指令只能完成處理8位二進制的運算,而且執行不同的指令所需要的時間也不同,char變量有8位二進制寬度所以只用1條指令就能完成一次計算,而int有16位寬度,是經過了2次char運算指令而得到結果的,我覺得是131072x20ms還差不多,在加上循環跳轉比較等指令還會需要更長的時間。
回復

使用道具 舉報

5#
ID:140275 發表于 2016-10-23 12:24 | 只看該作者
2個延遲區別在哪里?
void Delay10ms(unsigned char ms)
{
         unsigned char a,b;
         for(;ms > 0;ms--)
         {
                 for(a = 38;a > 0;a--)
                 {
                         for(b = 130;b > 0;b--);
                 }
         }
}

void Delay10ms(unsigned int ms)
{
         unsigned int a,b;
         for(;ms > 0;ms--)
         {
                 for(a = 38;a > 0;a--)
                 {
                         for(b = 130;b > 0;b--);
                 }
         }
}
最長延時時間不同
回復

使用道具 舉報

6#
ID:138144 發表于 2016-10-24 11:59 | 只看該作者
劉海龍 發表于 2016-10-22 22:49
第一個延遲里的a、b、ms變量在單片機里分配的空間是一個字節,第2個延遲里的a、b、ms變量在單片機里分配的 ...

謝謝!學習了!
回復

使用道具 舉報

7#
ID:138144 發表于 2016-10-24 12:00 | 只看該作者
npn 發表于 2016-10-22 22:52
區別大了,c51單片機中一條指令的時間只能運算一次8位二進制數據,而16位或32位數據計算處理過程中需要分成 ...

謝謝!學習了!
回復

使用道具 舉報

8#
ID:144228 發表于 2016-10-24 15:09 | 只看該作者
Delay延時時間不一樣,效果就不一樣了
回復

使用道具 舉報

9#
ID:144301 發表于 2016-10-24 22:42 | 只看該作者
變量分配的內存不一樣大  其他不影響
回復

使用道具 舉報

10#
ID:144339 發表于 2016-10-25 10:44 | 只看該作者
延時不一樣的,第一個最多只能延時255*10ms,e而第二個最多可以延時65535*10ms
回復

使用道具 舉報

11#
ID:144338 發表于 2016-10-25 11:06 | 只看該作者
延時不一樣的
回復

使用道具 舉報

12#
ID:144138 發表于 2016-10-30 19:59 | 只看該作者
可供延長時間的長短不一樣,第一個延遲的時間用的是unsigned char類型,字節比較小,而第二個用的是unsigned int ,是四個字節,相對來說更加靈活,上限更加的大,需要延長特別長時間可以考慮用第二個程序的。
回復

使用道具 舉報

13#
ID:145644 發表于 2016-11-2 11:21 | 只看該作者
只是延時長短有區別
回復

使用道具 舉報

14#
ID:145955 發表于 2016-11-3 17:54 | 只看該作者
只是延時長短有區別
回復

使用道具 舉報

15#
ID:111634 發表于 2016-11-3 18:35 | 只看該作者
劉海龍 發表于 2016-10-22 22:49
第一個延遲里的a、b、ms變量在單片機里分配的空間是一個字節,第2個延遲里的a、b、ms變量在單片機里分配的 ...

補充一點,即使ms實參數值相同,實際延時時間也不同。
回復

使用道具 舉報

16#
ID:123732 發表于 2016-11-3 19:39 | 只看該作者
zl2168 發表于 2016-11-3 18:35
補充一點,即使ms實參數值相同,實際延時時間也不同。

的確如此
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧洲精品成人久久奇米网 | 久久久久国产一区二区三区 | 综合自拍 | 热久久久 | 人人艹人人 | 亚洲国产免费 | 亚洲高清一区二区三区 | 日韩欧美三区 | 欧美在线二区 | 亚洲国产成人精品女人 | 成人h片在线观看 | 精品国产欧美 | 国产一区二区视频在线观看 | 成人精品视频在线观看 | 狠狠干美女 | 美国a级毛片免费视频 | 亚洲精品视频在线观看视频 | 日韩精品无码一区二区三区 | 成人免费视频观看视频 | 日韩欧美在线视频播放 | 999久久久免费精品国产 | a在线视频观看 | 日韩视频在线播放 | 新91| 99精品99久久久久久宅男 | 一区二区三区四区不卡 | 精品国产第一区二区三区 | 日韩一 | www.伊人.com | 国产精品自产拍 | 久久久久国产成人精品亚洲午夜 | 久久一区二区免费视频 | 在线精品一区 | 天天操天天干天天曰 | 欧美日韩国产精品一区 | 精品国产乱码久久久久久牛牛 | av一级久久| 91视频国产一区 | 亚洲精品久久久一区二区三区 | 国产精品久久久久久久午夜片 | 日本在线免费看最新的电影 |