當P3.4引腳上的電平發生負跳變時,從P1.0輸出一個500us的同步脈沖
;-----------------
;Title:當P3.4引腳上的電平發生負跳變時,從P1.0輸出一個500us的同步脈沖
;Authors:DDH-qiu
;Date:2022-4-5
;Abstract:定時器T0模式2進行定時以及計數器的使用
;-----------------
ORG 0000H ;偽指令下一條指令的起始地址0000H
LJMP START ;LJMP長跳轉到START標號
ORG 0080H ;偽指令下一條指令的起始地址為0080H
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