晶振頻率:12m
(一)原程式:
delay: mov r7,#200
d1: mov r6,#125
d2: djnz r6,d2
djnz r7,d1
ret
分析過程:
delay: mov r7,#200 r7=200 執行需1us
d1: mov r6,#125 r6=125 1us
d2: djnz r6,d2 r6=124 直到r6=0,共執行125次125*2us
djnz r7,d1 r7=199 2us
d1: mov r6,#125 r6=125
d2: djnz r6,d2 r6=124
djnz r7,d1 r7=198
** 共執行200次
*d1: mov r6,#125 r6=125
d2: djnz r6,d2 r6=124
djnz r7,d1 r7=1
d1: mov r6,#125 r6=124
d2: djnz r6,d2 r6=123
djnz r7,d1 r7=0 執行下一條程式
ret 2us
延時時間為:1+(1+125*2+2)*200+2=50603us
公式:精確延時時間=3+3*r7+2*r7*r6
(二)原程式:
delay: mov r7,#10
d1: mov r6,#200
d2: mov r5,#248
d3: djnz r5,d3
djnz r6,d2
djnz r7,d1
ret
延時時間為:1+[1+(1+248*2+2)*200+2]*10+2=998033us
公式:精確延時時間=1+[1+(1+r5*2+2)*r6+2]*r7+2=3+3*r7+3*r7*r6+2*r7*r6*r5
加上lcall delay的時間,需加 2us,則最終時間就為兩條程式執行間隔時間。
51微控制器延時計算
若時鐘晶振的振盪頻率為fosc,則振盪週期 tosc 1 fosc 如 晶振頻率為12mhz,則振盪週期 tosc 1 12us 對於不同的晶元採用的機器週期各不相同,主要分為 12t 6t 4t 1t等等。如51系列微控制器常見的12t機器週期,每個機器週期占用時間為 12 時鐘週期 依此類推,6...
51微控制器彙編延時分析
51微控制器彙編延時分析 第一句是定義乙個延時函式標號,並將250傳到r7。第二句是放置乙個標號,並把250放到r6。延時函式 delay mov r7,250 1 d1 mov r6,250 2 d2 djnz r6,d2 3 djnz r7,d1 4 ret 5第一句是定義乙個延時函式標號,並將...
51微控制器延時函式
c程式中可使用不同型別的變數來進行延時設計。經實驗測試,使用unsigned char型別具有比unsigned int更優化的 在使用時應該使用unsigned char作為延時變數。以某晶振為12mhz的微控制器為例,晶振為12mhz即乙個機器週期為1us。一.500ms延時子程式 程式 voi...