日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]如果從keil里看了c語言的反匯編代碼然后根據晶振和指令計算延時的時間這樣雖然非常的準確但是相當的麻煩而且容易搞錯,我這里介紹一個最簡單的方法.可以驗證你的延時函數。

如果從keil里看了c語言的反匯編代碼然后根據晶振和指令計算延時的時間這樣雖然非常的準確但是相當的麻煩而且容易搞錯,我這里介紹一個最簡單的方法.可以驗證你的延時函數

這里用一個例程詳細介紹一下。

過程參考如下:

在編譯器下建立一個新項目,也可以利用已有項目。此過程中需要注意,單片機晶振的選擇,因為for循環(huán)里指令的執(zhí)行時間和晶振有直接關系,本例中晶振使用11.0592M。

編寫一段關于延時的函數,主要利用for循環(huán),代碼如下:

void delay_ms(unsigned int ms)

{

unsigned int i;

unsigned char j;

for(i=0;i

{

for(j=0;j<200;j++);

for(j=0;j<102;j++);

}

}

其中ms是輸入參數,如果輸入1,就是要求程序延時1ms。

j變量是調整程序運行的時間參數。調整j的數值,使1次循環(huán)的時間在1ms。

將此程序編譯通過,然后利用軟件仿真,調整時間。

下面這個sec就是程序運行到現在的這一行所用的時間。

兩次時間差就是延時函數使用的時間,如果與1ms相差比較多,用戶可以調整j參數的值,使延時時間盡量接近1ms。如增大j的值for(j=0;j<105;j++);

此方法得出延時函數,在晶振不同的情況下,延時時間會不準。軟件調試結果,這個程序的延時時間為:1.01779ms,一般的單片機系統中都可以應用。

下面來說說匯編的傳統計算方法:

指令周期、機器周期與時鐘周期

指令周期:CPU執(zhí)行一條指令所需要的時間稱為指令周期,它是以機器周期為單位的,指令不同,所需的機器周期也不同。

時鐘周期:也稱為振蕩周期,一個時鐘周期 =晶振的倒數。

MCS-51單片機的一個機器周期=6個狀態(tài)周期=12個時鐘周期。

MCS-單片機的指令有單字節(jié)、雙字節(jié)和三字節(jié)的,它們的指令周期不盡相同,一個單周期指令包含一個機器周期,即12個時鐘周期,所以一條單周期指令被執(zhí)行所占時間為12*(1/12000000)=1us。

了解了上面這些我們來看一個例子

;============延時1秒子程序========================

DELAY_1S: ;延時子程序,12M晶振延時1.002035秒

MOV R4,#10

L3: MOV R2 ,#200 ;1指令周期

L1: MOV R3 ,#249 ;1指令周期

L2: DJNZ R3 ,L2 ;2指令周期

DJNZ R2 ,L1 ;2指令周期

DJNZ R4 ,L3 ;2指令周期

RET ;2指令周期

;循環(huán)體延時時間: [(249*2+1+2)*200+1+2]*10*12/12000000=1.002030s

;加上ACALL指令和第一條mov指令以及最后一條RET指令算出來整個函數的時間為1.002035s

;================================================

通常選用的是11.0592MHZ的晶振:

[(249*2+1+2)*200+1+2]*10*12/11059200=1.08727213541666666...S

匯編延時子程序的延時計算問題

對于程序

DELAY: MOV R0,#00H

DELAY1: MOV R1,#0B3H

DJNZ R1,$

DJNZ R0,DELAY1

查指令表可知 MOV一個機器周期,DJNZ 指令需用兩個機器周期,而一個機器周期時間長度為12/11.0592MHz,所以該段程序執(zhí)行時間為:

((0B3×2+1+2)×256+1)×12÷11059200=100.2789mS

第一層:DJNZ R1,$:執(zhí)行了B3H次,一次兩個周期,所以為0B3×2;

第二層:MOV R1,#0B3H為一個周期,DJNZ R0,DELAY1為兩個周期,這樣循環(huán)一次就是0B3×2+1+2個周期;第二層的執(zhí)行次數本來是255次,但因為賦首值為0,而DJNZ是先減1,再比較的,所以就應該是256次。

這樣的話,整個循環(huán)執(zhí)行完應該是(0B3×2+1+2)×256+1次。再加上開始賦值這一句,就是((0B3×2+1+2)×256+1)了

還說明一下:

nop指令或者_nop_(); 函數占一個機器周期,在stc單片機的12T模式下一個機器周期是一個振蕩周期的12分頻,如果你的晶振是12MHZ,那你的一個機器周期就是1微秒.一個nop指令的執(zhí)行時間也就是1US

當在6T模式(下載的時候可選擇模式)下12M晶振的時候,一個nop就是0.5US了.

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統,而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉