找回密碼
         注冊會員
        搜索附件  
        MCU資訊論壇 附件中心 單片機論壇 51單片機論壇 平凡單片機C.pdf

        平凡單片機C.pdf

         

        單片機延時程序的設計:
        一直不是很明白C語言的延時程序,前些天看到一個講解單片機C語言延時程序的文章,非常不錯。
        很多單片機開發人員都喜歡使用C語言來編寫單片機程序,相對于匯編語言,C語言確實很方便,但是應用單片機的時候,經常會遇到需要短時間延時的情況。需要的延時時間很短,一般都是幾十到幾百微妙(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語言教程

        QQ|手機版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網站地圖

        GMT+8, 2025-5-1 23:26 , Processed in 0.039921 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        亚洲一区二区综合18p| 午夜精品在线观看| 亚洲综合一区二区国产精品| 国产精品白丝AV嫩草影院| 国内精品久久久久国产盗摄| 香蕉依依精品视频在线播放 | 亚洲精品国产成人影院| 日本VA欧美VA欧美VA精品| 免费欧美精品a在线| 日韩欧美亚洲国产精品字幕久久久 | 亚洲国产七七久久桃花| 日韩精品一区二区三区色欲AV| 精品久久久久久无码专区 | 欧美日韩国产精品自在自线| 亚洲精品无码MV在线观看 | 羞羞视频免费观看| 国产精品毛片无遮挡| 国产亚洲精品国看不卡| 2020日本不卡一区二区视频| 久久国产精品99精品国产987| 免费精品视频在线| 国产精品三级国产电影| 久久精品无码免费不卡| 精品国产VA久久久久久久冰| 国产亚洲精品免费视频播放| 日韩人妻精品一区二区三区视频 | 不卡av电影在线| 亚洲午夜精品久久久久久人妖| 一区二区国产精品| 久久久九九有精品国产| 自拍偷在线精品自拍偷无码专区| 四虎精品成人免费永久| 亚洲精品无码专区久久久 | 国产高清不卡码一区二区三区| 精品国产欧美另类一区 | 国产精品久久亚洲不卡动漫| 亚洲国产综合精品一区在线播放| 国产精品久久久久久久久免费| 一本久久a久久精品综合香蕉| 亚洲欧美日韩精品永久在线| 欧美精品亚洲精品日韩传电影 |