日韩中文无码视频中文字幕,久热中文字幕在线精品首页,亚洲精品东京热无码视频,一本一本久久aa综合精品

深圳市瑞申電子有限公司

深圳市瑞申電子有限公司是一家10年專業大功率電感生產加工廠商,主要以大功率,大電流、扁平線圈電感、平面變壓器設計、生產、銷售工廠。設計、繞線、組裝、檢測、包裝、出貨等全制程的工藝流程!擁有完整、科學的質量管理體系。專業技術團隊10人,我們的誠信、實力和產品質量獲得業界的認可。歡迎各界朋友蒞臨參觀、指導和業務洽談。 ...

使用Keil C進行51單片機延時程序編寫的幾點心得

時間:2017-02-19 10:53:00 點擊:

  應用單片機的時候,經常會遇到需要短時間延時的情況。需要的延時時間很短,一般都是幾十到幾百微妙(us)。有時候還需要很高的精度,比如用單片機驅動 DS18B20的時候,誤差容許的范圍在十幾us以內,不然很容易出錯。這種情況下,用計時器往往有點小題大做。而在極端的情況下,計時器甚至已經全部派上了別的用途。這時就需要我們另想別的辦法了。

  以前用匯編語言寫單片機程序的時候,這個問題還是相對容易解決的。比如用的是12MHz晶振的51,打算延時20us,只要用下面的代碼,就可以滿足一般的需要:

  mov   r0, #09h

  loop:  djnz  r0, loop

  51 單片機的指令周期是晶振頻率的1/12,也就是1us一個周期。mov r0, #09h需要2個極其周期,djnz也需要2個極其周期。那么存在r0里的數就是(20-2)/2。用這種方法,可以非常方便的實現256us以下時間的延時。如果需要更長時間,可以使用兩層嵌套。而且精度可以達到2us,一般來說,這已經足夠了。

  現在,應用更廣泛的毫無疑問是Keil的C編譯器。相對匯編來說,C固然有很多優點,比如程序易維護,便于理解,適合大的項目。但缺點(我覺得這是C的唯一一個缺點了)就是實時性沒有保證,無法預測代碼執行的指令周期。因而在實時性要求高的場合,還需要匯編和C的聯合應用。但是是不是這樣一個延時程序,也需要用匯編來實現呢?為了找到這個答案,我做了一個實驗。

  用C語言實現延時程序,首先想到的就是C常用的循環語句。下面這段代碼是我經常在網上看到的:

  void delay2(unsigned char i)

  {

  for(; i != 0; i--);

  }

  到底這段代碼能達到多高的精度呢?為了直接衡量這段代碼的效果,我把 Keil C 根據這段代碼產生的匯編代碼找了出來: 大功率電感廠家 |大電流電感工廠

  • RCC電源剖析及改造
    前段時間受了一點刺激,一直做正激式電源,突然上次有人出面試題考我反激式電源,自己沒有怎么深入的研究過,打擊不小。這幾天出差回來,正好放假,準備玩玩反激式電源里面最古老的
  • [DCDC]150MALED燈條恒流芯片NU510
    介紹下NU510芯片在LED模組軟硬燈條中的應用(作者:誠信聯古/S132-4982-7170) 1:引言 LED模組以高亮度、高光效、低成本、安裝簡便等特點廣泛用于吸塑字、發 光字等廣告光源。
  • 基于SPI方式DSP外部E2PROM接口設計
    0 引 言 近年來,隨著DSP技術的普及、高性能DSP芯片的出現,DSP已越來越多地被廣大的工程師所接受,并越來越廣泛地被應用于各個領域,例如:語音處理、圖像處理、模式識別及工業控制等,并且已日益顯示
  • 大功率電感