用c语言编写,单片机LED灯并用定时器延时,每隔0.5秒使LED依次点亮

就一个灯,不是8个


#include "reg51.h"        
sfr AUXR = 0x8e;         //如果是用的AT89C51,把这句删了
sbit led=P1^0;                //定义LED为P10,可以改为其他IO
unsigned char jishi;    
void Timer0Init(void)//50毫秒@12.000MHz
{
    AUXR &= 0x7F;//定时器时钟12T模式
    TMOD &= 0xF0;//设置定时器模式
    TL0 = 0xB0;//设置定时初值
    TH0 = 0x3C;//设置定时初值
    TF0 = 0;//清除TF0标志
    TR0 = 1;//定时器0开始计时
    EA=1;    //开总中断
}
void main()
{
    Timer0Init();    //初始化定时器
    while(1);
}
void tm0_isr() interrupt 1 //50毫秒中断一次
{
    jishi++;
    if(jishi>10)            //中断十次之后
    {
        jishi=0;        //重置计时
       led=!led;        //取反LED状态。
    }
  
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-10
什么类型的单片机?有几个I/O?
第2个回答  2018-12-11
是的
相似回答