51彙編 時器T0模式2進行定時以及計數器示例

2022-10-09 13:03:08 字數 1233 閱讀 6879

當p3.4引腳上的電平發生負跳變時,從p1.0輸出乙個500us的同步脈衝

;-----------------

;title:當p3.4引腳上的電平發生負跳變時,從p1.0輸出乙個500us的同步脈衝

;authors:ddh-qiu

;date:2022-4-5

;abstract:定時器t0模式2進行定時以及計數器的使用

;-----------------

ljmp start ;ljmp長跳轉到start標號

start:mov tmod,#06h ;start標號,設定定時器(0000 0110)選擇定時器0工作方式為計數器,工作模式2

mov th0,#0ffh ;定時器初始化tl0高8位

mov tl0,#0ffh ;定時器初始化th0低8位(工作模式2要使thi=tli)

setb tr0 ;將tr0置1,啟動計數器

loop1:jbc tf0,ptf01 ;判斷定時器t0溢位標誌位,jbc判位變數並清0轉移指令

;判斷tf0如果tf0等於1,就跳轉(並且清零tf0),如果等於0就順序執行

sjmp loop1 ;sjmp相對轉移(短轉移)指令,轉移到loop1標號(實現計數等待)

ptf01:clr tr0 ;ptf01標號,clr(清零)將tr0標誌位清零,停止計數功能

mov tmod,#02h ;將定時器t0設定為定時工作方式,工作模式2

mov th0,#06h ;定時器初始化高8位

mov tl0,#06h ;定時器初始化低8位

clr p1.0 ;將p1.0位清零(置為低電平)

setb tr0 ;將tr0位置1,啟動定時

loop2:jbc tf0,ptf02 ;loop2標號,判斷定時器t0溢位標誌位,jbc判位變數並清0轉移指令

;判斷tf0,如果tf0等於1,就跳轉到ptf02(並清零tf0),如果等於0就順序執行

sjmp loop2 ;sjmp相對轉移(短轉移)指令,轉移到loop2標號中(實現定時等待)

ptf02:setb p1.0 ;將p1.0置1(置為高電平)

clr tr0 ;清零tr0,停止定時器t0定時

sjmp start ;相對轉移(短跳轉)跳轉到start標號重複執行計數一次定時500us的功能

end

51微控制器定時器 彙編

定時器控制流水燈的速度,但流水燈到邊緣的時候,自動調整方向,先反方向繼續流動 使用的是 定時器0 org 0000h ljmp mian org 000bh ljmp t0 break org 0200h init mov tmod,01h 定時器0為方式1 定時器0計時100us mov tl0,...

51彙編(五) 延時函式

在微控制器執行過程中,有時我們需要在一條指令執行後停頓一段時間,再繼續執行下一條指令,例如led燈閃爍 我們可以通過nop指令讓微控制器停頓乙個機械週期,顯然我們需要很多個nop指令才能實ms級延時,這時我們就需要通過迴圈執行nop,控制迴圈次數實現延時,幷包裝成函式,便於隨時呼叫。執行2 20 1...

c51彙編偽指令

dbit指令在內部資料區的bit 段內以位為單位保留儲存器 rseg是段選擇指令,要想明白它的意思就要了解段的意思。段是程式 或資料物件的儲存單位。程式 放到 段,資料物件放到資料段。段分兩種,一是絕對段,一是再定位段。絕對段在組合語言中指定,在用l51聯接的時候,位址不會改變。用於如訪問乙個固定儲...