雙重循環,共有循環 1000 × 1000 = 一百萬遍。
創新互聯公司是一家集網站建設,石泉企業網站建設,石泉品牌網站建設,網站定制,石泉網站建設報價,網絡營銷,網絡優化,石泉網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
每一遍,如果是1us,才能是延時約1s。
但是,晶振是12MHz,一條匯編的指令就至少是1us,C語言的語句,就要更多。
在編寫延時函數之前,首先確認一下系統對晶振的分頻系數,從而確定每個單周期指令執行所需的時間,一般的單片機都將指令執行周期設置為1us,這樣就可以寫一個比較接近1秒的延時函數了。
1)首先要知道你用的是什么C語言?
2)其次要知道你的編程環境:是在DOS下編程?還是在Windows下編程?還是為嵌入式系統編程?
3)第三步才是找對應的C語言環境下有沒有延時函數?
4)如果是單線程程序,沒有可用函數庫,就編個循環,在開始時去取系統時間(時間以毫秒表示),然后在每次循環中取當前時間,如果前后時間差達到1秒,則退出循環,這個精度一般不高。
如果更準確一點,通過時間中斷器,在時間達到1秒后產生中斷,這個方法精度好一些。
在Keil里仿真的話,在配置里把晶振調成12MHz,然后在調用delay函數的地方設置一個斷點,開始調試程序,運行到斷點處,注意程序左邊有一個記錄當前寄存器和一些狀態的窗口,其中,里面有一個是專門記錄當前運行了多少時間的變量,記下當前時間T1,然后按F10(不進入子函數)調試,再記錄當前時間T2,則延時=T2-T1。多試幾個A,差不多調到1s就夠了。我一般都這么調。
你要想明白其中原理,想自己算的話,你就看看delay的匯編代碼段自己算吧。
當前文章:c語言中調用延時1s函數 c語言1s的延時函數
文章出自:http://m.kartarina.com/article24/dogiece.html
成都網站建設公司_創新互聯,為您提供企業網站制作、網站制作、移動網站建設、全網營銷推廣、虛擬主機、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯