導航:首頁 > 操作系統 > 單片機匯編延時

單片機匯編延時

發布時間:2023-09-01 18:33:49

① 請問這段單片機匯編語言程序(關於定時器延時)是什麼意思

DELAY:MOV
R3,#14H
;循環20次
MOV
TMOD,#10H
;定時器1工作於模式1(16位定時器)
MOV
TH1,#3CH
;賦初值,50毫秒溢出一次
MOV
TL1,#0B0H
SETB
TR1
;啟動定時器1
LP1:
JBC
TF1,LP2
;溢出位為1,則清0後轉移到LP2
SJMP
LP1
;否則等待TF1置1
LP2
:MOV
TH1,#3CH
;重新賦初值
MOV
TL1,#0B0H
DJNZ
R3,LP1
;20次循環完成則退出,否則轉LP1
RET
;綜述:以上共延時1秒。

② 單片機80c51,用匯編,編寫一個延時子程序,通過調用此程序實現在p1.0輸出周期為10ms的方波

ORG 0000H
AJMP MAIN
ORG 000BH
T0MS EQU NOT 5000 ; 定義定時器初值 12M晶振 5 mS = 5000 10 mS = 10000
MOV TL0, #LOW T0MS
MOV TH0, #HIGH T0MS
CPL P1.0 ; P1.0 取反 輸出 10 mS的方波
REIT
MAIN:MOV TMOD,#01H
MOV TL0, #LOW T0MS
MOV TH0, #HIGH T0MS
SETB TR0 ; 啟動定時器
SETB ET0 ; 開 T0 中斷
SETB EA ; 開 總 中斷
SJMP $
END

③ 用匯編怎麼寫51單片機的延時程序

DEL1S:MOV R7,#10x0dx0aD1: MOV R6,#200x0dx0aD2: MOV R5,#250x0dx0a DJNZ R5,$x0dx0a DJNZ R6,D2x0dx0a DJNZ R7,D1x0dx0a RETx0dx0ax0dx0a說明:1、如果不使用R5、R6、R7可以用別的單元替換,比如換成30H、31H、32H等等x0dx0a 2、這個程序是12M時鍾,如果時鍾不同,要修改數值。如6M時鍾,要把MOV R7,#10 修改成:MOV R7,#5

④ 單片機精準延時匯編語言

如果是用匯編語言的話,是可以做到精準延時的。當然首先要有一個精準的時鍾,也即是晶振要准確,比如使用精準的12M晶振12T模式的51單片機延時1毫秒,程序如下:
DELAY1MS:
MOVR3,#249;1
DJNZR3,$;2*249
MOVR3,#249;1
DJNZR3,$;2*249
RET;2
延時時間為:1+2*249+1+2*249+2=1000T,這里使用12M晶振,T=1微秒,所以總共延時1000微秒也即是1毫秒。如果要延時更多時間,可以採用循環方式來實現。當然在計算延時時間時要考慮到使用的單片機類型和型號,比如STC89C51是6T,DS80320是4T,STC12C5A60S2是12T,這些因數一定要考慮進去才行。

閱讀全文

與單片機匯編延時相關的資料

熱點內容
php刪除sql 瀏覽:841
紅進藍出指標源碼 瀏覽:700
python數據轉換列表類型 瀏覽:717
解壓後的文件怎麼解開 瀏覽:175
四川補貼認證下載什麼app 瀏覽:858
android設計風格 瀏覽:426
視頻不支持我的加密 瀏覽:342
布包pdf 瀏覽:267
程序員錄制課程表 瀏覽:626
eclipsephp斷點調試 瀏覽:895
虛擬成交量指標源碼 瀏覽:838
什麼APP有背單詞小組 瀏覽:43
蘋果2g視頻怎麼加密 瀏覽:204
人工智慧程序員和古典錄音師相遇 瀏覽:415
國產伺服器是怎麼來的 瀏覽:116
蓄勢待發源碼 瀏覽:458
伺服器如何清理log文件 瀏覽:835
javaawtfont 瀏覽:627
php企業站後台 瀏覽:417
日企程序員招聘 瀏覽:113