除了批注,代码基本与书上一致,可奇怪是
开发板没反应(灯没亮)
//通过定时器0中断使二级管1s间隔闪烁
#include<reg52.h>
#define uc unsigned char
sbit led1=P1^0;
uc num;
void main()
{
TMOD=0x01; //设置定时器0模式,工作方式1(M1M0=01)
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1; //开总中断
ET0=1; //打开定时0中断
TR0=1; //打开定时器0
while(1);
}
void
timer0() interrupt 0
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++; //num每加一次判断是否到20次(即1s)
if(num==20) //判断是否到1s
{
num=0; //清零
led1=~led1; //让发光二极管状态取反
}
}
一周热门 更多>