导航:首页 > 操作系统 > 用单片机控制一个led灯闪烁五秒

用单片机控制一个led灯闪烁五秒

发布时间:2022-12-22 19:17:36

A. 单片机怎么写才能让led灯每隔5秒亮下一个并且数码管一直从5到0显示倒计时

设为共阳极七段数码管;

char segCode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} //共阳极七段码

char bitCode[]={0x01,0x02,0x04,0x08,0x10,0x20} //共阳极6位位码,高电平有效

/***在指定位显示数据***/

// m为待显示的七段码数据

// k为指定的位显示数据

void show(char m,char k)

{ char dat;

dat = segCode[m]; // m=0,1,2,3,4,5,6,7,8,9

HC573(dat,1); //输出段码

dat = bitCode[k]; // k=0,1,2,3,4,5

HC573(dat,2); //输出位码

}

sbit segm = P2^6; //段锁存

sbit bitc = P2^7; //位锁存

/*** HC573 接收锁存数据***/

void HC573(char dat,char nub)

{

P0=dat;

if(nub==1)

{ segm=1;segm=0;} //输出段锁存信号

if(nub==2)

{ bitc = 1;bitc = 0;} //输出位锁存信号

}

bit intflag;

void main()

{ char times;
intflag=0; times=5;

P1=0xff;

initime0() ; //初始化定时器0

while(1)

{ if(intflag)

{ intflag=0 ;

show(times,0) ; // 因为仅有一位显示,不考虑位扫描问题

times--;

if(times==0) { times=5; P1=~P1; }

}

}

}

B. 用单片机中断控制LED闪烁

假设counter3每秒计数一次,并且一直不断的 自身加1
bit f; ///定义一个标志位,0表示亮,1表示灭
f=0;
if(100<m&&m<125) ///我不清楚你这个m变化的过程,有可能会影响以下代码的执行
{
if(f==0)
{
if(counter3==3)
{
f=1;
led2=1; // LED2亮灯3秒后熄灯
counter3=0;
}
}
if(f==1)
{
if(counter3==4)
{
f=0;
led2=0; // LED2熄灯4秒后亮灯
counter3=0;
}
}
}

C. 单片机控制单个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);//停止不动
}
延时子程序随便搜一个,如果时间差别太大,可调某些参数

D. 在52单片机上实现:点亮任意一个LED,先以1HZ的频率闪烁5秒,再以100HZ的频率闪烁5秒,以此循环.

大体思路:设P0^0控制LED的亮灭,当P0.0=0时灯点亮。有两种闪烁方式,可以让1HZ的在main()函数里闪烁。然后开个定时器,让100HZ的在定时器中断里闪烁,就行了。
1HZ就是1S亮一次,100HZ是10ms亮一次

#include<reg52.h>
void delay(int x)
{
时间是5ms;
}
void timer1()interrupt 1 定时器0中断
{
static unsigned int a;
unsigned int b;
if(++a==5) 看是否到了5S
{
TR0=0;先把定时器关了,防止在送段运行时再次进入中断。
a=0;
for(b=1000;b>0;--b)
{
P0.0=0; 让灯亮灭的间隔为5MS。一共闪5S
delay(1);
p0.0=~p0.0;
delay(1);

}
}
TH0=XX; 再次 设置好定时器,让它每隔1S进一次中断;
TL0=XX;
TR0=1;
}
void main()
{
TH0=XX; 设置好定时器,让它每隔1S进一次中断;
TL0=XX;
TR0=1;
while(1)
{

P0.0=0; 灯开始以500ms为间隔开始亮灭。
delay(100);
p0.0=~p0.0;
delay(100);
}
}

E. 用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!

C语言实现LED灯闪烁控制配套51单片机开发板。

#include //包含单片机寄存器的头文件

/****************************************
函数功能:延时一段时间

*****************************************/

void delay(void) //两个void意思分别为无需返回值,没有参数传递。

{

unsigned int i; //定义无符号整数,最大取值范围65535。

for(i=0;i<20000;i++) //做20000次空循环。

; //什么也不做,等待一个机器周期。

}

/*******************************************************

函数功能:主函数 (C语言规定必须有也只能有1个主函数)。

********************************************************/
void main(void)

{

while(1) //无限循环。

{

P0=0xfe; //P1=1111 1110B, P0.0输出低电平。

delay(); //延时一段时间。

P0=0xff; //P1=1111 1111B, P0.0输出高电平。

delay(); //延时一段时间。

}

}

单片机驱动LED灯的源程序:

#include<reg52.h> //头文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定义。

void delay_ms(uint);//mS级带参数延时函数。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延时子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(5)用单片机控制一个led灯闪烁五秒扩展阅读:

单片机应用分类:

通用型:

这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型:

这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。

另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

控制型:

这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。

通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

参考资料来源:网络-单片机



F. 51单片机怎么只控制一颗LED灯闪烁

1、新建项目,如图所示。

注意事项:

很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。

G. 51单片机led灯亮一秒停五秒程式怎么写

void delay_s(unsigned char t);
void main()
{
while(1)
{
led = 1;//led 亮
delay_s(1);//延时1s
led = 0;//led 暗
delay_s(5);//延时5s
}
}
这是主循环,你要把delay_s()这个延时函数补充进去,另外,led亮和暗的电平你得根据你得具体电路看是1亮还是0亮。

H. 求单片机c51的C语言编程:设当开关为1时,控制2个led交替闪烁,闪烁时间为5秒

#include#,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==0xff)l

阅读全文

与用单片机控制一个led灯闪烁五秒相关的资料

热点内容
拍卖程序员 浏览:101
电脑的图片放在哪个文件夹 浏览:274
unsignedintjava 浏览:216
编译器下载地址 浏览:42
什么是面对对象编程 浏览:708
b站服务器什么时候恢复 浏览:721
6p相当于安卓机什么水准 浏览:498
能否给隐藏相册加密 浏览:596
糖心app改什么名 浏览:823
战地1控服务器如何部署 浏览:394
xp还原系统输入命令 浏览:323
mysql命令行版本 浏览:303
如何进入itunes找文件夹 浏览:832
CAD中重复命令使用 浏览:478
心智pdf 浏览:475
网站电台直播间源码 浏览:852
文件夹14c和18c的区别 浏览:35
android隐式调用 浏览:667
plc的编程指令边沿继电器 浏览:723
voc文件夹 浏览:866