方式0:为13位定时/计数器方式
其中TH0占高8位,TL0占低5位(只用低5位,高3位未用)
如果是常用的12分频的51系列的话逻辑图如下:
工作原理如下:
T0端:定时器/计数器0外部信号输入端(一般为i/o口P3.4)
TR0:定时器/计数器的运行控制位(为TCON.5)
TF0:定时器/计数器0溢出标志位(为TCON.6)
C/T:定时器/计数器选择位,
当C/T = 0 时选择开关打在上方(振荡器12分频的位置),
能够得到准确的定时时间,
此时为定时方式(用作定时器)
当C/T = 1 时选择开关打在下方(T0端:定时器/计数器0外部信号输入端),
此时定时器/计数器0对外部输入脉冲信号进行计数,
因此为计数方式(用作计数器)
GATE:门控位,(只有当 控制=1 控制开关才接通,定时/计数器0才工作,无论是定时、计数)
至于工作于定时方式还是计数方式就看C/T位了。
当GATE= 0 时通过非门之后成为1;
从而在与INT0进行“或”运算时无论INT0为0还是1,输出都为1
(即INT0没有作用了);这个值1再和TR0进行“与”运算
从而达到只通过软件给TR0置位(即TR0=1)来启动定时/计数器
当GATE= 1 时通过非门之后变为0;
从而再与INT0进行“或”运算后,
“或门”的输出与INT0的值一致,
因此经过“与门”之后控制如下:
控制 = INT0&TR0
从而达到通过TR0和INT0来共同决定定时/计数器启动
不过此时一般用于计数方式
只要定时器/计数器0启动,则开始进行加1运算,当低位(TL0)溢出时自动向高位(TH0)进位,而当高位(TH0)溢出向TF0进位(硬件自动进行),并申请中断。
这个逻辑图的理解就这些,还有什么问题大家共同探讨!