51單片機通用匯編延時子程序,
關(guān)鍵字:51單片機通用匯編延時子程序
51單片機通用匯編延時子程序
[DELY]:通用延時子程序
[地址]:7FEBH - FFEBH
[功能]:延時
[入口]:延時常數(shù)放在 R2 寄存器中。時間常數(shù) N(十六進制)所對應的延時時間(6MZH 晶振時)見下表:
[出口]:R2=0
[占用寄存器]:R2
[調(diào)用]:無
例:延時1 秒子程序
MOV R2,#18H
LCALL 7FEBH
RET
ORG 7FEBH ;通用延時子程序(07EBH & 0FEBH & ...)
L7FEB: PUSH 02H ;R2(復位后R2即為 02H)存放時間常數(shù),進棧保護
L7FED: PUSH 02H ; R2 進棧保護
L7FEF: PUSH 02H ; 進棧
L7FF1: DJNZ R2,$ ;R2 不為零等待
POP 02H ;出棧
DJNZ R2,L7FEF ; R2 不為零轉(zhuǎn)
POP 02H ; 出棧
DJNZ R2,L7FED ; R2 不為零轉(zhuǎn)
POP 02H ; 出棧
DJNZ R2,L7FEB ; R2 不為零轉(zhuǎn)
RET ;子程序返回
END
N(十六進制數(shù))T(機器周斯)T(秒) 子程序地址
1 11 0.000044
C 2728 0.010912
18 26323 0.105292 2800
1D 50838 0.203352 2808
21 80323 0.321292 2810
24 109666 0.438664 2818
26 133248 0.532992 2820
28 160431 0.641724 2828
29 175481 0.701024 2830
2E 267146 1.068584 2838
37 516836 2.067344 2840
3D 760366 3.041464 2848
42 1021681 4.086724 2850
46 1275016 5.100064 2858
54 2543878 10.175512 2860
65 5144436 20.577744 2868
70 7654053 30.616212 2870
78 9986491 39.945964 2878
7F 12432158 49.728632 2880
98 24956083 99.824332 2888
A9 37708623 150.83453
B6 50353668 201.41467 2890
CA 75697683 302.79073 2898
D9 100218410 400.87365 28A0
E6 125909940 503.63974 28A8
F1 151248830 605.03532 28B0
FF 188839490 755.35794
0 191768000 767.072 28B8
[地址]:7FEBH - FFEBH
[功能]:延時
[入口]:延時常數(shù)放在 R2 寄存器中。時間常數(shù) N(十六進制)所對應的延時時間(6MZH 晶振時)見下表:
[出口]:R2=0
[占用寄存器]:R2
[調(diào)用]:無
例:延時1 秒子程序
MOV R2,#18H
LCALL 7FEBH
RET
ORG 7FEBH ;通用延時子程序(07EBH & 0FEBH & ...)
L7FEB: PUSH 02H ;R2(復位后R2即為 02H)存放時間常數(shù),進棧保護
L7FED: PUSH 02H ; R2 進棧保護
L7FEF: PUSH 02H ; 進棧
L7FF1: DJNZ R2,$ ;R2 不為零等待
POP 02H ;出棧
DJNZ R2,L7FEF ; R2 不為零轉(zhuǎn)
POP 02H ; 出棧
DJNZ R2,L7FED ; R2 不為零轉(zhuǎn)
POP 02H ; 出棧
DJNZ R2,L7FEB ; R2 不為零轉(zhuǎn)
RET ;子程序返回
END
N(十六進制數(shù))T(機器周斯)T(秒) 子程序地址
1 11 0.000044
C 2728 0.010912
18 26323 0.105292 2800
1D 50838 0.203352 2808
21 80323 0.321292 2810
24 109666 0.438664 2818
26 133248 0.532992 2820
28 160431 0.641724 2828
29 175481 0.701024 2830
2E 267146 1.068584 2838
37 516836 2.067344 2840
3D 760366 3.041464 2848
42 1021681 4.086724 2850
46 1275016 5.100064 2858
54 2543878 10.175512 2860
65 5144436 20.577744 2868
70 7654053 30.616212 2870
78 9986491 39.945964 2878
7F 12432158 49.728632 2880
98 24956083 99.824332 2888
A9 37708623 150.83453
B6 50353668 201.41467 2890
CA 75697683 302.79073 2898
D9 100218410 400.87365 28A0
E6 125909940 503.63974 28A8
F1 151248830 605.03532 28B0
FF 188839490 755.35794
0 191768000 767.072 28B8
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
發(fā)布評論請先 登錄
相關(guān)推薦
C語言能夠?qū)崿F(xiàn)單片機功能,為什么還要使用匯編呢?
C語言能夠?qū)崿F(xiàn)單片機功能,為什么還要使用匯編呢? C語言是一種高級編程語言,它具有跨平臺、可移植性強、易于使用的特點,使得開發(fā)人員能夠快速且方便地編寫復雜的程序。然而,盡管C語言在許多方面都非常強大
stc51單片機怎么燒錄
步驟 常見問題與解決方法 STC51單片機是一種常見的8位單片機,廣泛應用于各種嵌入式系統(tǒng)。它具有高性能、低成本、易于學習和使用等優(yōu)點。STC51單
keil5mdk怎么編寫51單片機程序
編寫51單片機程序需要以下步驟: 編寫程序框架:首先,你需要定義程序所需要的變量和常量,以及設(shè)置中斷向量和寄存器的初始狀態(tài)。這些信息可以根據(jù)
pic單片機匯編程序實例
以下是一個簡單的PIC單片機匯編程序示例,這個程序將實現(xiàn)一個LED閃爍的功能。 首先,我們需要了解PIC單片機的結(jié)構(gòu)和指令集。PIC單片機是
請問51單片機for需要延時是怎樣計算延時的?
請問有誰知道51單片機for語句延時是怎么計算延時的?
delayms(unsigned uchar ij)
{
for(i=1000;i>0;i--)
for(j=110;j&
發(fā)表于 10-31 07:35
用匯編語言怎么給STC15單片機寫一個計數(shù)程序?
用匯編語言怎么給STC15單片機寫一個計數(shù)程序,既從P3.3口輸入50個脈沖,脈沖寬度不定,有長有短,在P3.4口輸出一個脈沖,那位大神幫忙設(shè)計寫一個程序
發(fā)表于 10-31 06:11
基于51單片機PWM波實現(xiàn)拖尾燈的程序
電子發(fā)燒友網(wǎng)站提供《基于51單片機PWM波實現(xiàn)拖尾燈的程序.doc》資料免費下載
發(fā)表于 10-24 10:00
?1次下載
評論