用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()

...依次隔0.5s亮,然后8642依次亮,求一下单片机C语言大神,帮忙解答一下...
假设P0口接LED,高电平点亮。这是一个C语言程序,用于控制单片机上的LED流水灯。程序中定义了延时子程序delayms,用于实现0.5秒的延时效果。主程序中通过循环依次点亮P0口的不同位,实现流水灯效果。以下是该程序的具体实现:首先是延时子程序:include define uint unsigned int;define uchar unsigned cha...

如何用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 = ...

编写出单片机流水灯程序
编写一个基于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--); \/...

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...

用汇编语言让51单片机八个灯从左到右依次点亮且都不灭,每个灯亮的时
用汇编语言让51单片机八个灯从左到右依次点亮且都不灭,每个灯亮的时间间隔0.5秒,然后全灭,再循环之前的步骤。参考如下:电路 代码 LED_COUNTDATA30H T0_COUNTDATA31H ORG0000HLJMPMAINORG000BHLJMPT0_INTORG0030HMAIN:ANLTMOD,#0F0HORLTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HORLIE,#82HSETBTR0...

单片机中要求从左到右依次点亮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 } } } 很...

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

跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
\/\/P1_0所接二极管亮,下面依次是P1_1到P1_7(电路连接时二极管一端连P1_0,一端连电阻再连5v,低电平的时候亮,因此加取反“~”)if(i==7)P1=~0x02;if(i==6)P1=~0x04;if(i==5)P1=~0x08;if(i==4)P1=~0x10;if(i==3)P1=~0x20;if(i==2)P1=~0x40;if(i==1)P1=~0x...

相似回答