主要思路还是上面最关召堡厥熠键的三句话
1.用哪个中断------定时器T0中断中断号1
2.触发条件是什么-------开总中断EA=吭稿荔徊1,此中断源的中断允许位为ET0=1,开启此中断TR0=1;
3.中断之后干什么-------开始计时(多少时间中断一次)并按照要求显示数码管
原理图跟上面一样
程序如下:
#include<reg52.h>//头文件
#include<intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
ucharcodesmg_dm[]={//共阴数码管显示编码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
ucharnum;
uchari;
voidmain()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P0=0X00;
P2=0XFE;
while(1)
{
if(num==20)
{
num=0;
P0=smg_dm[i];
i++;
if(i==10)
{
i=0;
}
}
}
}
voidtime0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}