关于单片机TMOD问题

1: TMOD=0x00指的是T0的工作方式0

我想知道T1的工作方式0和1怎么表达 TMOD=?

2: 当定时器用做计数器时怎么计数 ?比如我想计数P3_4输入了多少个脉冲

3: 定时器有两种工作方式 一种是中断方式 这个我能理解 一种是查询方式 可以跟我说说查询方式到底是怎么工作的 最好给一段程序

问题1:工作方式0:0x00;工作方式1:0x01;工作方式2:0x02;工作方式3:0x03;
问题2:当你选择好工作方式后,接下来就是设定初始值,方式0:16位加法计数器用了13位,也就是说,可以计算2^13;要想计数更大,使用循环即可。同理方式1:16位加法计数器用了16位,方式2是8位的。以上是对内部脉冲进行计数。想计数P3_4输入了多少个脉冲,需要用外部中断。
问题3:
#include"reg52.h"

led[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

main()
{
unsigned char counter,i;
TMOD=0x01;
TL0=-50000%256;
TH0=-50000/256;
TR0=1;
while(1)
{
while(TF0)
{
TF0 = 0;
TL0=15536%256;
TH0=15536/256;
counter++;
if(counter==20)
{
P3=led[i++];
counter=0;
if(i==8)
{
i=0;
}

}

}

}

}
以上是每隔一秒数码管加一;
所谓的查询就是指不停的查询置位标志位TF0或TF1是否为1,当为1是说明你的定时时间到了。
写了这么多,你要是还不理解就多看几遍书吧!
这分要是不给我,单片机都不干了!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-21
1)T1方式0:TMOD=0x00.T1方式1:TMOD=0x10因为T1T0都在TMOD里设置,高四位T1低四位T0
2)P3.4是T0计数器输入引脚,此时只要设置TMOD中的D2位即可(C/T位)即TMOD=0x04,启动计数后就可以计数了,此时一般计数初值为0
3)查询方式时要不停地检测TF0或者TF1,当为1时表示定时时间到或者计数到。
比如:JNB TF0,$追问

1 那麻烦你可不可以把T0和T1的几种工作方式全写下来TMOD=、、、、还有TMOD=0x00 后面两个零代表T1的M1 M2 ?是不是这样理解 后面两个零中的第一个零代表T1 第二个零代表T0 所以
TMOD=0X01 为T0的工作方式1 TMOD=0X02为T0的工作方式2 TMOD=0X03为T0的工作方式3

TMOD=0X20为T1的工作方式2 依次类推、、、、 是不是这样?
2 关于查询方式 可以用C写出来嘛

帮个忙 分数全给你吧

追答

1)看看这张图,0X10是十六进制呀,写成二进制是0001 0000,高四位是T1,低四位是T0,
2)IF TF0

相似回答