|
這個(gè)是根據(jù)“at89c51 單片機(jī) 匯編 實(shí)驗(yàn) 教程 劉健老師”的嗶哩嗶哩視頻教程整理的,敲了一邊。
希望對(duì)和我一樣的初學(xué)者有用。
延時(shí)程序精確分析過(guò)程
在單片機(jī)的控制應(yīng)用中,常有延時(shí)的需要,CPU過(guò)一段時(shí)間再去作某件事情,稱之為延時(shí)。延時(shí)有兩種方法,即軟件延時(shí)和硬件延時(shí).硬件延時(shí)是通過(guò)定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)的,這種方法不占用CPU 的工作時(shí)間。軟件延時(shí)一般采用循環(huán)程序,通過(guò)CPU執(zhí)行具有固定延遲時(shí)間的循環(huán)體來(lái)實(shí)現(xiàn)的。
延時(shí)程序的延時(shí)時(shí)間主要與兩個(gè)因素有關(guān),一是所用晶振,二是延時(shí)程序中的循環(huán)次數(shù),一旦晶振確定之后,則主要是如何設(shè)計(jì)與計(jì)算需給定的延時(shí)循環(huán)次數(shù)。
設(shè)單片機(jī)的晶振頻率為6MHz,則一機(jī)器周期為2us;
設(shè)單片機(jī)的晶振頻率為12MHz,則一機(jī)器周期為1us;
匯編語(yǔ)言常用延時(shí)程序所用到的指令
指令 占用的機(jī)器周期數(shù)
MOV Rn,#Data 1
DJNZ Rn,Rel 2
RET 2
NOP 1
ACALL Addr11 2
LCALL Addr16 2
ADD A,Ri 1
INC DPTR 2
基本延時(shí)程序模式及延時(shí)時(shí)間的計(jì)算
分以下幾種情況:
1、單循環(huán)延時(shí)程序
DEL2: MOV RO,#X ; 1 周期
DEL1: DJNZ RO,DEL1 ; 2周期
RET ; 2周期
延時(shí)時(shí)間=2*X*T+1*T+2*T=(2X+3)T
整個(gè)程序的延時(shí)時(shí)間范圍:
以晶振頻率6MHz 為例:10us<=t<=1030us
以晶振頻率12MHz為例:5us<=t<=515us
延時(shí)時(shí)間的范圍的計(jì)算
設(shè)X 是裝入寄存器R0的時(shí)間常數(shù),R0是8位寄存器(以下的 R1、R2、R 均為 8 位),因?yàn)?0<=R0<=255,R0=0,延時(shí)時(shí)間最長(zhǎng),R0=1,延時(shí)時(shí)間最短。當(dāng) Ri=0時(shí),由匯編語(yǔ)言的特征知其將從零開(kāi)始判斷,共256次,所以應(yīng)在公式中代入256,因此這個(gè)程序的最長(zhǎng)定時(shí)時(shí)間為1030us。
完整的pdf格式文檔51黑下載地址(共140頁(yè)):
51單片機(jī) 匯編.pdf
(11.9 MB, 下載次數(shù): 31)
2021-12-17 23:29 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|