T2CON----定时器2控制寄存器
t2con.7---t2ps:时钟的选择
0:定时器2的clocked是1/12的振荡器频率
1:定时器2的clocked是1/24的振荡器频率
t2con.6---3fr :外部中断int3的活跃选择(也用来比较和获取信号)
0 :falling edge
1 :rising edge
t2con.5---i2fr:外部中断int2的活跃选择(也用来比较和获取信号)
0 :falling edge
1 :rising edge
t2con.4---t2r1:定时器2的加载模式选择
t2con.3---t2r0:定时器2的加载模式选择
0X – reload disabled
10 – Mode 0
11 – Mode 1
t2con.2---t2cm:定时器2的比较模式选择
0 – Mode 0
1 – Mode 1
t2con.1 ---t2i1:timer2的输入选择
t2con.0---t2i0:timer2的输入选择
t2i1:t2i0
0:0 timer 2 stopped
0:1 输入频率f/12或者f/24
1:0 通过检测T2口的下降沿来增加定时器2
1:1 由外部脚t2输入频率f/12或者f/24
/*
程序用途:timer2自动填装控制
版本号: V1
创建日期:2013.9.22
创建者:
*/
$NOMOD51
#include"REG8F301.INC"
dseg at 30h
iseg at 80h
cseg at 00h
org 0000H
jmp start
org 002bh
jmp Timer2_Isr
start:
mov ckcon,#50h
mov r0,#0x7f
ClrRam:
mov @r0,#0
djnz r0,ClrRam
mov dptr,#0x00
ClrOutRam:
mov a,#0x00
movx @dptr,a
inc dpl
mov a,dpl
cjne a,#0,ClrOutRam
inc dph
mov a,dph
cjne a,#3,ClrOutRam
SetTimer2:
mov tl2,#00h
mov th2,#00h
mov crch,th2
mov crcl,tl2
mov T2con,#11h //选择模式0自动加载,选择f/12分频
setb ET2
setb EA
main:
ljmp main
Timer2_Isr:
push acc
push psw
nop
nop
pop psw
pop acc
END
/*
总结:
1.将crch,crcl里的值自动填充到tl2与th2
2.crcl加到0xFF时crch加1,crch溢出时产生中断,并自动填充
*/
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』