stc 89c516rd+内有几个定时器

在网上一些教程里看到一个单片机入门的教程,其中在一程序里发现有用到T2,将他用KEILC51生成.HEX.后用ISP 烧录到stc 89c516rd+中时竟然能实现程序的功能,stc 89c516rd+属于51系列单片机,应该只包含T0,T1,为什么用T2也可行啊,
以下是程序代码,用定时器控制LED的闪烁.
#define uchar unsigned char //定义一下方便使用
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h> //包括一个52标准内核的头文件

sbit P10 = P1^0; //要控制的LED灯
sbit K1= P3^2; //按键K1

char code dx516[3] _at_ 0x003b;//这是为了仿真设置的
//精确定时1秒钟闪烁LED
void main(void) // 主程序
{
RCAP2H =0x10; //赋T2的预置值0x1000,溢出30次就是1秒钟
RCAP2L =0x00;
TR2=1; //启动定时器
ET2=1; //打开定时器2中断
EA=1; //打开总中断
while(1) //程序循环
{ ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作
}
}
//定时器2中断
timer2() interrupt 5
{
static uchar t;
TF2=0;
t++;
if(t==30) //T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ
{
t=0;
P10=~P10; //反转LED灯的亮灭
}
}

第1个回答  2012-03-28
AT89C516RD+为C51单片机,但是一款增强型的51单片机,有三个定时器,总共七个中断口
第2个回答  2009-07-24
你找下那个芯片的资料就知道了啊!很多增强的单片机都有3个的!
相似回答