ningling_21 发表于 2014-3-21 22:18 
在外部中断中启动定时器2毫秒的,2毫秒定时中断后把管脚置1同时关闭定时器,同时启动另一个定时器1毫秒的, ...
我不知道问题出在哪里了,仿真一直为高电平,程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit shuchu=P0^0;
//*********主函数*********//
void main()
{
TMOD=0x11; //定时器T0模式1,定时T1模式1
EA=1; //总中断开
TH0=(65536-2000)/256; //12Mhz定时2MS
TL0=(65536-2000)%256;
TH1=(65536-1000)/256; //12Mhz定时1MS
TL1=(65536-1000)%256;
EX0=1; //允许外中断0
IT0=1; //下降沿触发
}
//**********外中断0中断函数*********//
void EX0_time() interrupt 0
{
EX0=0; //关闭外中断0
ET0=1; //定时器T0中断开
TR0=1; //定时器T0开
}
//**********定时器T0中断函数*********//
void T0_time() interrupt 1
{
shuchu=1; //2毫秒后输出高电平
ET1=1; //定时器T1中断开
TR1=1; //定时器T1开
TR0=0; //定时器T0关
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
}
//**********定时器T1中断函数*********//
void T1_time() interrupt 3
{
TR1=0; //定时器1关闭
shuchu=0; //1毫秒后输出拉低
TH1=(65536-1000)/256;
TL1=(65536-1000)%256;
EX0=1; //允许外中断0
}
|