单片机 > 单片机程序设计 > 详情

使用定时器1以方式0产生周期为500us的方波连续脉冲

发布时间:2020-08-26 发布时间:
|

设单片机晶振频率为6MHz,要求使用定时器1以方式0产生周期为500us的等宽正方波连续脉冲,并由P1.0输出,以查询方式完成。 
求单片机高手帮忙!
;----------------------------------------------------------------
分析:
方式0,求初始值时,稍麻烦点。
按照题目要求,需要定时250us。
因为晶振频率为6MHz,指令周期就是2us,那么计数值就是125。
因为方式0的最大计数值是 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 
;----------------------------------------------------------------
经过用 PROTEUS 实验发现,P1.0输出方波频率稍有误差。
如果把TL1赋值指令改为:MOV TL1, #00000101B,可将频率控制为2016Hz。

关键字:定时器1  方式0  连续脉冲 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机按键切换下一首歌