51单片机怎么实现通过外部中断出发定时器
这段代码行不通 应该怎么实现呢
#include<reg51.h>
#include<intrins.h>
char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0-9
int cnt = 0;
int i = 5;
void main()
{
EA = 1; //开总中断
EX1=1;
IT1=1;
while(1);
}
void key() interrupt 2
{ TMOD =0x10; //T1工作方式1
TH1 = (65536 - 50000)/256;//高四位初值
TL1 = (65536 - 50000)%256;//低四位初值,每隔50ms溢出
EA = 1; //开总中断
ET1 = 1; //T1开时定时器溢出
TR1 = 1; //开启定时器
}
void led() interrupt 3 //定时中断
{
P0 = led_mod[i];
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
cnt++;
if(cnt == 20) //50ms循环20次
{
cnt = 0;
P0 = led_mod[i];
if(i>0)
{
i=i-1;
}
}
}