用C语言编写,单片机控制LED灯并用定时器延时,每隔一秒使LED依次点亮,8 个灯

作者&投稿:实忽 (若有异议请与网页底部的电邮联系)
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)~

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。

2、#include "reg51.h"首先写出单片机的头函数。

3、#include "intrins.h"输入位移函数。

4、unsigned int count=0,led;定义函数。

5、输入主函数,定义单片机的端口,写入延时函数。

6、中断跳转,使流水灯运行起来。

我再帮你补一课,看了你的标题,我写了一个用定时器0来控制一个LED灯第隔1秒钟亮灭一次的程序,希望对你有用,另外我也写了一个你说的那个程序,一起发上来吧
****************这个是用定时器0控制一个灯的亮和灭******************************
#include
#define uchar unsigned char
#define uint unsigned int
/**************************************/
uchar num;
bit tt;
sbit d=P1^0;

/******************主程序入口********************/
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TCON=0x10;
EA=1;
ET0=1;
tt=255;

while(1)
{
if(num==20)
{
tt=!tt;
d=tt;
num=0;
}

}
}

void timer() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;
}
****************这个程序是逐个点亮的(思路:由256逐减1,值由LED灯显示)***********************
#include
#define uchar unsigned char
#define uint unsigned int
/**************************************/
uchar num,tt;
//bit tt;
sbit d=P1^0;

/******************主程序入口********************/
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TCON=0x10;

EA=1;
ET0=1;

tt=255;

while(1)
{
if(num==20)
{
tt--;
P1=tt;
num=0;
}

}
}

void timer() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;

}

我再帮你补一课,看了你的标题,我写了一个用定时器0来控制一个LED灯第隔1秒钟亮灭一次的程序,希望对你有用,另外我也写了一个你说的那个程序,一起发上来吧
****************这个是用定时器0控制一个灯的亮和灭******************************
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/**************************************/
uchar num;
bit tt;
sbit d=P1^0;

/******************主程序入口********************/
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TCON=0x10;
EA=1;
ET0=1;
tt=255;

while(1)
{
if(num==20)
{
tt=!tt;
d=tt;
num=0;
}

}
}

void timer() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;
}
****************这个程序是逐个点亮的(思路:由256逐减1,值由LED灯显示)***********************
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/**************************************/
uchar num,tt;
//bit tt;
sbit d=P1^0;

/******************主程序入口********************/
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TCON=0x10;

EA=1;
ET0=1;

tt=255;

while(1)
{
if(num==20)
{
tt--;
P1=tt;
num=0;
}

}
}

void timer() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;

}

‘每隔一秒使LED依次点亮’,其实我没看懂这句话。是每隔一秒亮一个灯,还是。。。

很简单的!!几句话的事!!!
void main()
{
TMOD=0x21; //初始化定时器T0为工作方式
TH0=0x3c; //设定50ms计时初值
TL0=0xb0;
EA=1; //开总中断
ET0=1; //开T0中断
TR0=1; //启动T0定时器
while(1);

}
//名称:T0中断服务程序
void time0() interrupt 1
{
中断20次向下执行I/O移位就可以了
TH0=0x3c;//定时器重新赋值就可以了 TL0=0xb0;
}


单片机开发是用C语言好还是汇编语言好
其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。对于目前普遍使用的RISC架构的8bitMCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机...

C语言编程跟单片机编写一样吗?
单片机的C语言和平时编程用的C语言基本都一样,不过因为单片机是要求在一个循环内保证单片机稳定的运行,所以一般不会有return,其他的变量,都是大同小异,学过编程C语言,再学单片机,上手很快的

C语言和汇编语言在单片机上使用有什么不同
大家都知道单片机也是一种计算机、、只是在一个集成电路上含有处理器、存储器、IO接中,结构简单而运用方便 作为计算机在执行程序的时候都必须转化为自己的语言:即二进制代码也可以说机器码、不管是用c写的程序还是用汇编写的程序。都要经过汇编过程。而这种汇编过程又都在人们的操作下完成的。如果是用...

用C语言编写一段程序,使用查表的方式使单片机控制DAC0832产生一个电压...
用C语言编写一段程序,使用查表的方式使单片机控制DAC0832产生一个电压值在0~5V之间的方波。#include<reg52.h> //包含头文件#include<intrins.h>#define uchar unsigned char /

用KEIL编写C语言程序实现:单片机是AT89C51,实现一个计时器,数码管为6...
按照你的要求写的程序如下,你拿去测试吧!include "REG52.H"sbit SHUG_01 = P2^0; \/\/数码管1 sbit SHUG_02 = P2^1; \/\/数码管2 sbit SHUG_03 = P2^2; \/\/数码管3 sbit SHUG_04 = P2^3; \/\/数码管4 sbit SHUG_05 = P2^4; \/\/数码管5 sbit SHUG_06 = P2^5;...

单片机 c语言编写
单片机C语言编写与普通电脑C语言类似,只不过硬件成分更多些。比如:include<reg51.h> define uchar unsigned char uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/0-9 unsigned char sec=0,min=0,hour=12,scanled;unsigned char key,time;unsigned char ...

帮忙用C语言写一段51单片机的程序,晶振12M。
include <reg52.h> \/ 本程序功能,输出方波,频率1-25ms 单片机@12MHz \/12T \/ sbit Pulse=P1^1; \/\/---方波 sbit Add=P3^2; \/\/---频率加 sbit Dec=P3^3; \/\/---频率减 sbit Start = P1^3; \/\/---开关键 sbit Display_Ten_Bit = P2^0;sbit Display_Bit_Bit = P2^1;code ...

单片机c语言编写产生1秒定时的程序,怎么写?
如果是51单片机的话其实很简单的,这里假设晶振频率是12M(一般都是的),你可以选用定时器0,工作在工作状态2,因为这个状态下装入初始值几乎不需要时间,所以定时精确,也就是8位预置数状态,将初始值设为6,这样每次定时就是250微秒,在中断程序中定义一个静态变量,每次中断加一,这样当这个变量值为...

单片机c语言编程实例大全
\/\/做20000次空循环;\/\/什么也不做,等待一个机器周期}\/函数功能:主函数(C语言规定必须有也只能有1个主函数)\/voidmain(void){while(1)\/\/无限循环{P1=0xfe;\/\/P1=11111110B,P1.0输出低电平delay();\/\/延时一段时间P1=0xff;\/\/P1=11111111B,P1.0输出高电平delay();\/\/延时一段时间 ...

单片机 用C语言编写
include<reg51.h> unsigned char flag=0;void main(){ TMOD=0x50;TH1=0xFC;TL1=0x7C;ET1=1;EA=1;falg=1;while(1);} void M() interrupt 3 { if(flag){ TMOD=0x10;TH1=0xE8;TL0=0x90;flag=0;} else { TMOD=0x50;TH1=0xFC;TL1=0x7C;flag=1;} } ...

驻马店市13870475861: 单片机控制一个led灯亮灭C编程 -
胡芝苦参: #include <reg52.h> //52系列单片机头文件 #define uint unsigned int //宏定义 sbit led1=P1^0; //声明单片机P1口的第一位 void delay1s(); //声明子函数 void main() //主函数 {while(1) //大循环{led1=0; /*点亮第一个发光二极管*/delay1s...

驻马店市13870475861: 用C语言编写,单片机控制LED灯并用定时器延时,每隔一秒使LED依次点亮 -
胡芝苦参: 定义一个引脚,用一个while,分别赋值0.1,中间用delay()

驻马店市13870475861: 51单片机控制led亮5分钟灭五分钟循环5次 c程序怎么写? -
胡芝苦参: -(void) processDigit:(int)digit{ currentNumber = currentNumber *10 + digit;[displayString appendString: [NSString stringWithFormat : @"%i",digit]]; display.text = displayString;}-(IBAction) clickDigit: (UIButton*) sender{ int digit = sender.tag; [self processDigit:digit];}

驻马店市13870475861: 单片机C语言按键控制LED灯 -
胡芝苦参: 其实是一样的,也没什么哪个规范这一说,这个看个人习惯了首先if(SW13==0)是判断此引脚是否为0 (按键按下)然后一个delay用于按键防抖动 没被注释的那部分是靠if在次判断是否为0按下按下后执行LED_ON函数使LED亮然后通过while...

驻马店市13870475861: keil软件用单片机控制8个LED流水灯来回点亮(C语言程序) -
胡芝苦参: #include "reg51.h"main(){unsigned int i,j;while(1){P1=0xfe; //点亮第一个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LEDfor(i=200;i>0;i--)for(j=500;j>...

驻马店市13870475861: 用简单的C语言程序控制LED灯的点亮
胡芝苦参: 初始化部分你要自己根据芯片资料写,数码管部分可以根据数码管的资料做数组xs[10]={0x3b……}要看数码管引脚定义了,看原理图看不出来的,可以做个200MS的定时器,然后计数5次就是1S直接给数码管的IO口附数组的值,如P1=xs[5];要看你给的是哪个IO口了,我这边看不清你的原理图,LED亮200MS后就换动作太快,看不出效果,可以把时间加长

驻马店市13870475861: 单片机控制单个LED闪烁五下的c程序,希望能加讲解,谢谢啦 -
胡芝苦参: c语言程序很简单: #include<reg51.h>//包含头文件 sbit LED=P1^0;//位变量定义 void main()//主程序 { unsigned char i;//声明一个变量 for(i=0;i<5;i++)/循环5次 { LED=0;//亮 delayms(500);//延时 LED=1;//灭 delayms(500);//延时 } while(1);//停止不动 } 延时子程序随便搜一个,如果时间差别太大,可调某些参数

驻马店市13870475861: 跪求高手解决一个单片机的C语言编程(LED实验)
胡芝苦参: /**************************************** **实验功能: ** 8个LED灯,先闪烁3次,再从左到右依次亮 ** 再从右到左依次亮,亮的时间延时1秒 ****************************************/ #include <AT89X52.H> void delay1s(void) { unsigned int uiTemp1 ; ...

驻马店市13870475861: 51单片机控制led灯,用c语言编程 -
胡芝苦参: 给你一个矩阵键盘的参考程序 行列扫描:通过高四位全部输出低电平,低四位输出高电平.当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低...

驻马店市13870475861: 信号变化控制led灯的亮灭,单片机c语言编程 -
胡芝苦参: 首先要看Led灯和单片机的连接情况,如果你只是控制亮灭,只需要看单片机端口控制即可,关键是配置端口的DDRx方向寄存器和PORTx数据寄存器,比如端口A的0引脚控制一个灯,要配置它的输出高电平或是低电平以达到控制灯的亮灭,那就 灯亮:DDRA |= BIT(0); //输出 PORTA |= BIT(0);//高电平 灯灭:DDRA |= BIT(0); //输出 PORTA &= ~BIT(0);//低电平 其余的就看你电路如何连接的,每个端口寄存器的每一位控制一个引脚,你可以查查芯片的数据手册,上边有个表格的.如果你要控制灯的亮暗程度,选择使用PWM输出来控制,你需要看定时计数器.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网