關(guān)于定時(shí)算法經(jīng)典總結(jié)
關(guān)于定時(shí)器、計(jì)數(shù)器、中斷的一些關(guān)鍵點(diǎn):
MODE0的定時(shí)設(shè)定:
TLx的值應(yīng)為計(jì)數(shù)值COUNT除以32的余數(shù),即:
TLx=COUNTMOD(%)32
THx的值應(yīng)為計(jì)數(shù)值除以32的商,即:
THx=COUNT/32
以設(shè)計(jì)時(shí)間為8000微秒為例:
TLx=(8192-8000)%32=00
THx=(8192-8000)/32=06
設(shè)定方式0的步驟:
1、MOV TMOD,#00H(T0)定時(shí)器(內(nèi)部輸入)
MOV TMOD,#00H(T1)定時(shí)器(內(nèi)部輸入)
MOV TMOD,#04H(計(jì)數(shù)器T0)
MOV TOMD,#40H(計(jì)數(shù)器T1)
2、SETB TRx啟動(dòng)定時(shí)器
3、MOVTLx,#(8192-COUNT)%32
MOVTHx,#(8192-COUNT)/32
4、檢查TFx是否溢出JBCTFx
MODE1的定時(shí)設(shè)定:
1、MOV TMOD,#01H(T0)定時(shí)器(內(nèi)部輸入)
MOV TMOD,#10H(T1)定時(shí)器(內(nèi)部輸入)
MOV TMOD,#05H(計(jì)數(shù)器T0)
MOV TOMD,#50H(計(jì)數(shù)器T1)
2、SETB TRx啟動(dòng)定時(shí)器
3、MOVTLx,#(65536-COUNT)%256
MOVTHx,#(65536-COUNT)/256
4、檢查TFx是否溢出JBCTFx
MODE2的定時(shí)設(shè)定:
1、MOV TMOD,#02H(T0)定時(shí)器(內(nèi)部輸入)
MOV TMOD,#20H(T1)定時(shí)器(內(nèi)部輸入)
MOV TMOD,#06H(計(jì)數(shù)器T0)
MOV TOMD,#60H(計(jì)數(shù)器T1)
2、SETB TRx啟動(dòng)定時(shí)器
3、MOVTLx,#(256-COUNT)
MOVTHx,#(256-COUNT)
4、檢查TFx是否溢出JBCTFx
外部中斷設(shè)定:
1、ORG 03H(13H)INT0(INT1)外部中斷起始地址
2、JMPZHONGDU中斷時(shí)跳至中斷子程序ZHONGDU
3、MOVIE,#81HINT0中斷使能
MOVIE,#84HINT1中斷使能
4、MOVIP,#01HINT0中斷優(yōu)先
MOVIP,#04HINT1中斷優(yōu)先
5、MOVTCON,#00H(設(shè)定/INT0為電平觸發(fā))
MOVTCON,#01H(設(shè)定/INT0為下降沿觸發(fā))
MOVTCON,#00H(設(shè)定/INT1為電平觸發(fā))
MOVTCON,#04H(設(shè)定/INT1為下降沿觸發(fā))
T0和T1中斷要求:
1、設(shè)定中斷起始地址
2、設(shè)定工作方式
3、設(shè)定計(jì)數(shù)值
4、設(shè)定中斷使能