Keil C51精確延時程序設計
光標為當前程序的停止處,左側的寄存器窗口可以看到一些寄存器名稱及其值??梢酝ㄟ^設置斷點的功能,每遇到斷點,程序會自動停止在斷點處。“sec”中數據的變化即為程序執行處到斷點處所需的時間。對上述程序將斷點設置在“P1=P1^0x01”代碼處,然后點擊全速運行可以得表2所示。本文引用地址:http://www.j9360.com/article/170502.htm
從表2可以看出,delay函數執行的時間△t=2 391-389=2 002μs,與理論分析結果一樣。
3 應用實例
DS18B20是一款單總線數字式溫度傳感器,對其控制必須按照嚴格的時序要求,有3個重要時序,分別是初始化、讀以及寫時序,時序圖如圖3所示。
由圖3可知,涉及到延時程序的要求為:
初始化。(1)將總線低480~960μs,然后釋放總線。(2)DS18B20等待15~60μs,然后返回低電平并持續60~240μs的存在脈沖。
寫時序。(1)將總線置低電平并且持續15μs后發送數據的某一位。(2)延時60~120μs然后將總線拉高并持續至少1μs的時間后開始下一次發送。
讀時序。(1)將總線置低電平,并且持續至少1μs,然后釋放總線。(2)釋放總線后15μs內讀取并處理數據。(3)處理數據后延時,保證第一個步驟到延時結束時間至少60μs后為電阻上拉狀態。
采用延時程序的設計方法,利用for循環編寫delay函數和_nop_()函數控制DS18B20。
通過以上延時程序的控制方法,DS18B20穩定實現了溫度采集。充分說明了高效的延時程序設計,在開發一些需要使用到延時程序時,可以先用Keil C51先設計好延時程序,然后利用以上方法進行分析計算,最后直接調用,可節省大量的時間、提高CPU的使用效率。
4 結束語
Keil C51具有強大的功能,只要利用合理,可以給開發者節省大量的時間,從而提高開發效率。另外在設計延時程序的時候,應該綜合考慮各種延時程序的特點,以優化CPU的使用效率。
c語言相關文章:c語言教程
塵埃粒子計數器相關文章:塵埃粒子計數器原理 晶振相關文章:晶振原理 燃氣報警器相關文章:燃氣報警器原理
評論