项目5中有介绍中断问题
中断函数命名格式:函数值类型 + 函数名 +(形式参数列表)+ interrupt + x 。interrupt为中断函数关键字。
表中第二行T0中断,使能T0中断,就要将ET0置1,当它的中断标志位TF0变为1时,就会触发T0中断,这时就会进入中断服务函数。
下面为程序:
#include<reg51.h>
unsigned int cp;
unsigned char i;
code unsigned char seven_seg[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void timer0_isr(void) interrupt 1
{
TH0 = (65536 - 2000) / 256;
TL0 = (65536 - 2000) % 256;
cp++;
if(cp >= 500)
{
cp = 0;
i++;
}
if(i >= 10)i = 0;
}
void timer0_init(void)
{
TMOD = 0x01;
TH0 = (65536 - 2000) / 256;
TL0 = (65536 - 2000) % 256;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main(void)
{
timer0_