#include "reg51.h" //包含头文件
//#include "mingjiao.h"
sbit LE1=P2^0; //位选573锁存器使能
sbit LE2=P2^1; //段选573锁存器使能
sbit bz=P3^7;
#define uchar unsigned char
#define uint unsigned int
uchar temp,num; //定义变量
//**************************************************************************************************
delay(uint time) //int型数据为16位,所以最大值为65535
{
uint i,j; //定义变量i,j,用于循环语句
for(i=0;i<time;i++) //for循环,循环50*time次
for(j=0;j<50;j++); //for循环,循环
}
//定时器中断子程序
//**************************************************************************************************
t0() interrupt 1 using 1
{
TH0=0x3c; //重置定时器初值
TL0=0xb0;
if(temp>=19) //满20次,即20次*50ms=1s
{
temp=0x00; //重置temp为0
//num++; //显示变化一次
bz=1;
delay(100); //mingjiao();
//P1=~num; //将变化次数放在P1控制的LED上显示
}
else
{
temp++; //每进一次中断,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); //死循环,等待定时器中断
}