已解决
#include "reg51.h" //包含头文件
sbit LE1=P2^0; //位选573锁存器使能
sbit LE2=P2^1; //段选573锁存器使能
sbit dz=P2^3;
#define uchar unsigned char
#define uint unsigned int
uchar temp,num; //定义变量
//**************************************************************************************************
void delay(uint time)
{
uint i,j; //定义变量i,j,用于循环语句
for(i=0;i
for(j=0;j<50;j++);
}
//定时器中断子程序
//**************************************************************************************************
t0() interrupt 1 using 1
{
TH0=0x3c; //重置定时器初值
TL0=0xb0;
if(temp>=19) //满20次,即20次*50ms=1s
{
temp=0x00; //重置temp为0
dz=1; //显示变化一次
delay(200); //将变化次数放在P1控制的LED上显示
}
else
{
temp++,dz=0; //每进一次中断,temp加1
}
}
//**************************************************************************************************
//主函数
//**************************************************************************************************
main()
{
TMOD=0x01; //0b00000001 用的是定时器0,工作在方式1(16位寄存器)
//要实现定时50ms,(65536-T0)x12/12000000=0.05s得T0=15536即0x3cb0
TH0=0x3c; //装定时器初值高8位
TL0=0xb0; //装定时器初值低8位
TR0=1; //启动定时器0
ET0=1; //开定时器0中断
EA=1; //开总中断
while(1); //死循环,等待定时器中断
}