當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聯接的時候,位址不會改變。用於如訪問乙個固定儲...