标题:
12M的晶振,定时器定了一秒钟,为什么那么快,高手给我看看啊,谢谢了
[打印本页]
作者:
董亚伟
时间:
2014-12-19 10:07
标题:
12M的晶振,定时器定了一秒钟,为什么那么快,高手给我看看啊,谢谢了
#include<reg52.h>
sbit a_138=P2^2;
sbit b_138=P2^3;
sbit c_138=P2^4;
unsigned char code Digitron []=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,
0x71
};
void main()
{
unsigned int n,u;
TMOD = 0x01;
TH0 = 0x3Cb0;
TL0 = 0x00;
TR0 = 1;
a_138=0;
b_138=0;
c_138=0;
while(1)
{
if(TF0 == 1)
{
TF0 = 0;
TH0 = 0x3Cb0;
TL0 = 0x00;
u++;
if(u>=20)
{
P0=Digitron[n];
n++;
}
}
}
}
复制代码
作者:
忠信1314
时间:
2014-12-19 11:34
TH0=0X3C;
TL0=0XB0;
你那个u》=20 不需要重置(u=0)值吗 会跑飞的
作者:
mqwu
时间:
2014-12-19 11:34
TH0 = 0x3C;
TL0 = 0xb0;
if(u>=20)
{
u=0;
P0=Digitron[n];
n++;
if (n>=15)n=0;
}
作者:
董亚伟
时间:
2014-12-19 21:23
mqwu 发表于 2014-12-19 11:34
TH0 = 0x3C;
TL0 = 0xb0;
这里U为什么要等赋0
作者:
xueyunmicheng
时间:
2014-12-19 21:55
定时器0 不是自动从装的吗 不需要这样写吧 一般的定时器使用的时候 写法和你的不一样哦
#include <reg51.h>
sbit a_138=P2^2;
sbit b_138=P2^3;
sbit c_138=P2^4;
unsigned int u;
unsigned char code Digitron []=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,
0x71
};
//*****************定时器初始化********************//
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0FF;
TL0 = 0x9C;
EA = 1;
ET0 = 1;
TR0 = 1;
}
//***************定时器函数**********************
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0FF;
TL0 = 0x9C;
u++;
}
void main(void)
{
unsigned int n;
InitTimer0();
a_138=0;
b_138=0;
c_138=0;
while(1)
{
if(u>=20) //经过20个50ms 的时间后
{
u=0; //这一句必须有 定时器定时50ms 没50ms u自加一次 当加到20次后是一秒钟 此时u需要置零 进行下一个循环 就像秒钟走到59 下一次 就是00了
P0=Digitron[n];
n++;
}
}
}
作者:
来自火星的蜗牛
时间:
2014-12-20 11:27
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0xB0;
TR0 = 1;
a_138=0;
b_138=0;
c_138=0;
while(1)
{
if(TF0 == 1)
{
TF0 = 0;
TH0 = 0x3C;
TL0 = 0xB0;
u++;
if(u==20)
{
P0=Digitron[n];
n++;
u=0;
}
作者:
qazxcvbnmklp
时间:
2014-12-22 18:06
作者:
felixno1
时间:
2015-1-21 11:16
作者:
磨叽磨叽
时间:
2015-1-22 22:38
用汇编算了吧
作者:
woaidpj
时间:
2015-1-22 22:48
好像还不能直接定时1秒钟那么长时间吧,得定个50毫秒再判断进入20次即为1秒。
作者:
weijoyer
时间:
2021-10-26 22:13
定时器初始化有问题,可以去STC提供的ISP下载软件上面看看例程
作者:
npn
时间:
2021-10-26 23:01
12Mhz晶振定时器定一次最长65536微秒。
作者:
dzc3458
时间:
2021-11-1 16:22
不对吧,定时器就算最长时间也只有65535us,也就是0.065535s,不能定到1s的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1