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