使用定時(shí)器1以方式0產(chǎn)生周期為500us的方波連續(xù)脈沖
設(shè)單片機(jī)晶振頻率為6MHz,要求使用定時(shí)器1以方式0產(chǎn)生周期為500us的等寬正方波連續(xù)脈沖,并由P1.0輸出,以查詢(xún)方式完成。
求單片機(jī)高手幫忙!
;----------------------------------------------------------------
分析:
方式0,求初始值時(shí),稍麻煩點(diǎn)。
按照題目要求,需要定時(shí)250us。
因?yàn)榫д耦l率為6MHz,指令周期就是2us,那么計(jì)數(shù)值就是125。
因?yàn)榉绞?的最大計(jì)數(shù)值是 2^13,于是有:
初始值 = 8192-125 = 8067 = 1111 1100 00011
使用方式0,要求把1111110000011,分成高8位和低5位,故有:
1111 1100 '000'00011
;----------------------------------------------------------------
程序如下:
MOV TMOD, #00H
MOV TH1, #11111100B
MOV TL1, #00000011B
SETB TR1
LOOP:
JNB TF1, $
MOV TH1, #11111100B
MOV TL1, #00000011B
CPL P1.0
CLR TF1
SJMP LOOP
END
;----------------------------------------------------------------
經(jīng)過(guò)用 PROTEUS 實(shí)驗(yàn)發(fā)現(xiàn),P1.0輸出方波頻率稍有誤差。
如果把TL1賦值指令改為:MOV TL1, #00000101B,可將頻率控制為2016Hz。