无硬件图,用到D1灯
代码main.c
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit LED1=P2^0;
void delay_10us(u16 n)
{
while(n--);
}
void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void time0_init(void)
{
TMOD =0X01; //选择为定时器0模式,工作方式1//给定时器赋初值,定时1ms
TH0=0XFC;
TL0=0X66;
ET0=1; //打开定时器0中断允许
EA=1;//打开总中断
TR0=1; //打开定时器
}
void main()
{
time0_init();
while(1)
{
}
}
void time0() interrupt 1
{
static u16 i=0;
TH0=0XFC;
TL0=0X66;
i++;
if(i==1000)
{
LED1=!LED1;
i=0;
}
}
实验视频
51开发板:定时器中断实验