作业帮 > 综合 > 作业

关于单片机TMOD问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/24 19:45:54
关于单片机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()
{
\x09unsigned char counter,i;
\x09TMOD=0x01;
\x09TL0=-50000%256;
\x09TH0=-50000/256;
\x09TR0=1;
\x09while(1)
{
while(TF0)
{
TF0 = 0;
\x09\x09\x09TL0=15536%256;
\x09\x09\x09TH0=15536/256;
\x09\x09\x09counter++;
\x09\x09\x09if(counter==20)
\x09\x09\x09{
\x09\x09\x09\x09P3=led[i++];
\x09\x09\x09\x09counter=0;
\x09\x09\x09\x09if(i==8)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09i=0;
\x09\x09\x09\x09}
\x09\x09
\x09\x09\x09}
\x09
\x09\x09}
\x09
\x09
\x09}\x09
\x09
}
以上是每隔一秒数码管加一;
所谓的查询就是指不停的查询置位标志位TF0或TF1是否为1,当为1是说明你的定时时间到了.
写了这么多,你要是还不理解就多看几遍书吧!
这分要是不给我,单片机都不干了!