單片機延時函數delay的實現可以通過內部定時器或外部時鐘來實現,一般可以通過for循環或while循環的方式來實現。
成都創新互聯公司長期為數千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為琿春企業提供專業的成都網站建設、成都做網站,琿春網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。
需要延時的時候,在程序中帶參數調用DelayMs,參數傳遞給DelayMs的形式參數“unsigned char t”,t就有了數值。“while(t--);”執行t個循環后退出,t個循環用了若干時間。
計算延時需要的機器周期。比如采用12M晶振,CPU采用通用8051,那么一個機器周期為1US,50毫秒為50*1000=50000US,需要的機器周期=50000/1=50000。
可以有很多辦法,一是調整參數,使其延時5分鐘或6分鐘,循環24次或20次。二是將延時函數的形參改為長整型(32位)延時時間擴大65536倍。
)。普通延時法這個比較簡單,讓單片機做一些無關緊要的工作來打發時間,經常用循環來實現,不過要做的比較精準還是要下一番功夫。下面的代碼是在網上搜到的,經測試延時比較精準。
c語言定義延時函數主要通過無意義指令的執行來達到延時的目的。下面給出一個經典的延時函數。
首先,在電腦中打開keil軟件,創建好工程,然后添加c文件,如下圖所示。然后添加c文件,接下來輸入代碼,先輸入一個頭文件命令。然后,進行宏定義,代碼如圖所示。然后聲明P1口,如下圖所示。
C程序中可使用不同類型的變量來進行延時設計。經實驗測試,使用unsigned char類型具有比unsigned int更優化的代碼,在使用時應該使用unsigned char作為延時變量。
比如12M晶振for(j=0;j120;j++);大概延時1毫秒,10592M晶振那么for(j=0;j110;j++);延時1毫秒,你這里的for(j=0;j100;j++);延時1毫秒的話,晶振應該是10M,不太常見喲,特別是在單片機方面。
可以有很多辦法,一是調整參數,使其延時5分鐘或6分鐘,循環24次或20次。二是將延時函數的形參改為長整型(32位)延時時間擴大65536倍。
在單片機的C語言編程中,可以使用循環結構來實現延時操作。具體而言,可以使用一個for循環來實現一段時間的延時。
delay函數是一般自己定義的一個延時函數。c語言定義延時函數主要通過無意義指令的執行來達到延時的目的。下面給出一個經典的延時函數。
比如12M晶振for(j=0;j120;j++);大概延時1毫秒,10592M晶振那么for(j=0;j110;j++);延時1毫秒,你這里的for(j=0;j100;j++);延時1毫秒的話,晶振應該是10M,不太常見喲,特別是在單片機方面。
分享標題:單片機c語言中延時函數 單片機c語言延時程序
鏈接URL:http://vcdvsql.cn/article38/deecpsp.html
成都網站建設公司_創新互聯,為您提供自適應網站、動態網站、網站改版、、建站公司、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯