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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請大家幫忙看看這個單片機程序 void Delay10ms(50)是什么意思?

[復制鏈接]
跳轉到指定樓層
樓主
ID:85073 發表于 2017-12-16 13:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近又開始學單片機,請高手幫忙看看這個程序是什么意思,最好有詳盡的解釋,void Delay10ms(50)是什么意思?執行void Delay10ms延時函數50次嗎?


#include <reg51.h>
#include <intrins.h>

void main(void)
{
        unsigned char LED;

        LED = 0xFE;

        while(1)
        {
                P0 = LED;

                Delay10ms(50);

                LED = _crol_(LED,1);  //循環右移1位,點亮下一個LED  此函數于庫函數
        }
}

void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;

        //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
    for (;c>0;c--)
        {
                for (b=38;b>0;b--)
                {
                        for (a=130;a>0;a--);
                }         
        }
}


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

使用道具 舉報

沙發
ID:111634 發表于 2017-12-16 18:20 | 只看該作者
學單片機,必須先讀一本教材書,先學理論,打基礎,否則,問題多多,事倍功半。給你介紹一本書,張志良編著的:《80C51單片機實用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學習51單片機原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學,可從零基礎c語言開始學習。
回復

使用道具 舉報

板凳
ID:149988 發表于 2017-12-16 19:57 | 只看該作者

RE: 請大家幫忙看看這個單片機程序 void Delay10ms(50)是什么意思?

void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;
        //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
    for (;c>0;c--)
        {
             for (b=38;b>0;b--)
             {
                  for (a=130;a>0;a--);
             }這是一個有輸入參數的延時函數,當執行void Delay10ms(50) 語句時,是將c賦值50。所以,執行for (;c>0;c--)語句時c可以減50次,for (;c>0;c--)所包含的語句都將執行50次。for (a=130;a>0;a--);自身要執行130次,for (b=38;b>0;b--)語句要執行38次,所以for (a=130;a>0;a--);執行了130*38=4940次,再乘以 for (;c>0;c--)50次,for (a=130;a>0;a--);共執行了130*38*50=247000次,假如執行for (a=130;a>0;a--)一次需要0.000002秒,那么0.000002秒*247000次=0.494秒。
回復

使用道具 舉報

地板
ID:85073 發表于 2017-12-17 09:26 | 只看該作者
zl2168 發表于 2017-12-16 18:20
學單片機,必須先讀一本教材書,先學理論,打基礎,否則,問題多多,事倍功半。給你介紹一本書,張志良編著 ...

謝謝意見!
回復

使用道具 舉報

5#
ID:85073 發表于 2017-12-17 09:29 | 只看該作者
不倒翁.WZT 發表于 2017-12-16 19:57
void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;

謝謝意見,很不喜歡編程者這種故作高深的寫法,把它寫成for (c=50;c>0;c--),不就很好理解嗎?
回復

使用道具 舉報

6#
ID:325485 發表于 2018-5-11 22:01 | 只看該作者
不是的,這是個函數,這次設置好,下次可以隨時調用,且可以調整時間,這個是延遲50*10ms下次可以延遲更多,就直接調用,這是c語言的
回復

使用道具 舉報

7#
ID:328008 發表于 2018-5-12 02:22 | 只看該作者
樓主問題解決的嗎,及解決方法分享下啊。。。。。。。。。
回復

使用道具 舉報

8#
ID:328034 發表于 2018-5-12 09:16 | 只看該作者
500毫秒延遲
回復

使用道具 舉報

9#
ID:591139 發表于 2019-7-27 09:48 | 只看該作者
aojieage 發表于 2017-12-17 09:29
謝謝意見,很不喜歡編程者這種故作高深的寫法,把它寫成for (c=50;c>0;c--),不就很好理解嗎?

因為前面已經給C賦值50了。

后面再寫一次的話,以后調整賦值就要記得改兩個一樣的地方。

所以,不在這里再次賦值是有道理的。只是這個注釋說的不夠詳細周密。初學者沒那么快轉過來。
回復

使用道具 舉報

10#
ID:591139 發表于 2019-7-27 09:57 | 只看該作者
我把當年的學習筆記放出來給樓主和初學同好:

void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;//--賦值無符號變量a和b--//

        //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了。見18、22行--//
        //--完整應該為:for (c=50;c>0;c--)--//
    for (;c>0;c--)//--條件循環。這里是把c用累減方式循環50次,每次減1直至c=0。實際效果是將10ms增加50倍--//
        {
               
        //--b和a的條件循環,用于將機器指令時長通過循環方式拉為10ms時長。具體取值與單片機、晶振的指令周期有關,51單片機下這些參數是直接用的。--//
               
                for (b=38;b>0;b--)//
                {
                        for (a=130;a>0;a--);
                }
           
        }
        
回復

使用道具 舉報

11#
ID:511461 發表于 2019-7-28 19:33 | 只看該作者
void Delay10ms(50)是這個函數執行50次,他想表達的大約是0.5秒
回復

使用道具 舉報

12#
ID:524818 發表于 2019-7-29 08:50 | 只看該作者
延時(10ms*50次)500ms
回復

使用道具 舉報

13#
ID:542954 發表于 2019-8-11 19:55 | 只看該作者
這是一個在51里面常用的粗略的延時函數。單片機的時鐘往往由外部晶振決定,晶振頻率的倒數就是這個單片機的一個時鐘周期,而單片機執行一條語句所用的時間為時鐘周期的12的整數倍(因為一個機器周期為12個時鐘周期,這是單片機進行讀或寫操作所用的時間,而執行一次直徑的時間為幾個機器周期)。你這里用的晶振應該是11.0592Mhz,所以執行一次指令的時間是12n/11.0592M秒(一般這種空指令n=1),進行一次底層的while循環總共就需要112*12/11.0592M秒,大約100us,所以你給到的函數變量是多少,這個函數就可以給你延遲這個量*100us的時間

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本色综合 | av在线二区 | 日韩在线中文 | 一本久久a久久精品亚洲 | 一级毛片中国 | 色综合天天综合网国产成人网 | www.天天干.com | 国产日韩欧美电影 | 日韩午夜影院 | 国产免国产免费 | 日韩高清国产一区在线 | 国产精品久久二区 | 国产成人a亚洲精品 | 大学生a级毛片免费视频 | 国产精品久久久免费 | 激情毛片 | 一区观看 | 久久成人18免费网站 | 国产精品高潮呻吟久久久久 | 99热播精品 | 日韩一区欧美一区 | 欧美一区二区三区,视频 | 国产精品日韩一区二区 | 国产激情视频 | 超碰一区二区 | 毛片免费观看视频 | 国产在线激情视频 | 日韩一区二区三区四区五区 | 日韩精品在线一区 | 亚洲国产91 | 亚洲精品一区二区三区在线观看 | 亚洲精品视频在线看 | av资源中文在线 | 国产在线观看一区二区 | 日韩视频在线免费观看 | 日韩精品一区二区三区中文字幕 | 不卡视频在线 | 国产精品日韩欧美一区二区三区 | 国产视频久久久 | 国产精品毛片一区二区三区 | 99久久精品国产毛片 |