找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

为什么定时器不启动,帮忙看看!!

[复制链接]
admin 发表于 2012-9-2 09:26:14 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#include<reg51.h>
#include<math.h>

#define uint unsigned int
#define uchar unsigned char
sbit trig_chao_xing = P3^7;

uint time,count0;
uchar qian,bai,ge,shi;

void initsystem();
void delay(uint);

void main()
{
TMOD = 0x21;
TH0 = 0xfc; //1ms定时器
TL0 = 0x18;
TR0 = 1;

TH1 = 0xf3; //波特率2400
TL1 = 0xf3;
TR1 = 1;
SM0 = 0;
SM1 = 1;

IT0 = 1; //下降沿触发
IT1 = 1; //下降沿触发
EX0 = 1; //外部中断0使能
EX1 = 1; //外部中断1使能

EA = 1; //总中断开启

while(1);
}

void exter_0() interrupt 0 //外部中断0,启动定时器1
{
TH0 = 0xfc;
TL0 = 0x18;
time = 0;
}

void exter_1() interrupt 2 //外部中断1,定时器0停止计数
{
EA = 0;
trig_chao_xing = 0;
qian = count0/1000 +0x30;
bai = count0%1000/100 +0x30;
shi = count0%100/10 +0x30;
ge = count0%10 +0x30;
delay(200);
trig_chao_xing = 1;
EA = 1;
}

void timer_0() interrupt 1 //定时器0,每1ms中断一次,直到外部中断1发送中断信号
{
TH0 = 0xfc;
TL0 = 0x18;
time++;
count0 = time;
}

void delay(uint z) //1ms延时程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

程序如上,但是我发现它的定时器好像没有启动,每次time,count0 的值都是0,没有变化。这是什么原因??帮忙看看。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 12:32 , Processed in 0.050134 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表