用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
是的

用c语言编写,单片机LED灯并用定时器延时,每隔0.5秒使LED依次点亮
led; \/\/取反LED状态。 } }

用C语言编写,单片机控制LED灯并用定时器延时,每隔一秒使LED依次点亮
定义一个引脚,用一个while,分别赋值0.1,中间用delay()

编写出单片机流水灯程序
编写一个基于8051单片机的流水灯程序,假设我们使用P1口连接了8个LED灯,要实现从第一个LED开始依次点亮,形成流水效果。以下是一个简单的C语言程序示例:```c include void delay(unsigned int ms) { unsigned int i, j;for (i = ms; i > 0; i--)for (j = 110; j > 0; j--); \/...

如何用C语言编写一个LED灯渐变的程序
TR0 = 1; \/\/开启定时器 ET0 = 1; \/\/定时器0中断打开}void Timer0_ISR() interrupt 1 \/\/中断服务程序{ static data unsigned char us250; if (++us250>=4) {++ms; us250=0;}}void main(){ data unsigned char p1,p2; ms=0; SetupTimer0(); EA = ...

实现单片机信号灯1-8依次循环点亮的程序怎么写
电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?下面是c语言程序源码 include <reg51.h> void delay100ms(); \/\/如果函数是在主函数后面定义...

8个LED灯从左到右依次亮,亮0.5秒,第二个亮0.5秒,依次类推 用c51编程
\/\/假设灯接在P2口上,假设用了12M的外部晶振#include <reg52.h>void timer0_init(){ TMOD=0X01; TR0=0; TH0=0XEC; \/\/0.5s TL0=0X78; ET0=0; TF0=0;}void main(){ int i; timer0_init(); TR0=1; \/\/打开定时器 while(1) { for(i...

单片机中要求从左到右依次点亮LED灯用C程序怎么写
设置一个delay_2s()就是:delay_2s(){ for(i=0;i<200;i++){ for(j=0;j<200;j++)} } 具体要看你的晶振大小 然后 void main(){ uchar temp = 0x01;while(1){ delay_2s();P0 = temp delay_2s();temp <<=1;i++;if(i>=7){ i = 0;temp = 0x01 } } } 很...

单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
单片机流水灯C语言程序的源代码如下:include \/\/51系列单片机定义文件 define uchar unsigned char \/\/定义无符号字符 define uint unsigned int \/\/定义无符号整数 void delay(uint); \/\/声明延时函数 void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) \/\/8个流水灯...

用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)
\/\/第一个灯亮 delay();\/\/延时 P3=0xfd;\/\/第二个灯亮 delay();P3=0xfb;\/\/第三个灯亮 delay();P3=0xf7;\/\/第四个灯亮 delay();P3=0xef;\/\/第五个灯亮 delay();P3=0xdf;\/\/第六个灯亮 delay();P3=0xbf;\/\/第七个灯亮 delay();P3=0x7f;\/\/第八个灯亮 delay();} } ...

C语言实现四个LED依次点亮,依次熄灭
一个最直观的。#include\/\/声明头文件#defineledP1#defineuintunsignedintvoiddelay(uinti)\/\/延时函数{uintj;while(i--){for(j=0;j<120;j++);}}voidmain(){while(1){led=0X00;delay(1000);led=0X01;delay(1000);led=0X03;delay(1000);led=0X07;delay(1000);led=0X0f;delay(1000);...

相似回答