当前位置:首页 » 编程语言 » c语言飞控灯光效果
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言飞控灯光效果

发布时间: 2022-09-23 16:09:19

⑴ 用简单的c语言程序控制LED灯的点亮

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

⑵ 求51单片机C语言,一个板子上完成一部分三个开关分别控制三个led灯光亮灭(不是流水灯),

#include<reg51.h>
sbitled1=P1^0;
sbitled2=P1^1;
sbitled3=P1^2;
sbitkey1=P1^4;
sbitkey2=P1^5;
sbitkey3=P1^6;
main()
{
while(1)
{
led1=key1;
led2=key2;
led3=key3;
}
}

⑶ 如何用单片机控制一盏灯慢慢亮起来,是用c语言编程

这个要看灯的特性,是否可调光。
如果是个可调光且驱动电压与电流不需要很大的,那就用单片机与DA芯片完成,使电压输出0~10V左右。
如果是个非可调光,则用占空比调光方法,控制灯光迅速亮灭,使肉眼看不出来,通过平均电压来控制灯光亮度。常用芯片的PWM波口完成。

⑷ 用单片机c语言一个按键控制led的闪烁和熄灭,就是按一下闪烁,再按就熄灭。

首先你的贴出来的程序不完整,最好贴出完整代码!
其次,如果你的程序没问题的话,你的LED闪烁是必须在你按住按键且不能弹起情况下才会发生的,你是一直按着吗?
而且注意你n的类型,因为你这样一直加,会溢出的

⑸ 要写一个基于51单片机的c语言程序控制彩灯效果,要求一个按键控制一种效果可来回切换,每种效果的子函数写

调用输入输出指令啊

⑹ 请问:单片机使用C语言编程,怎样控制led灯的完成亮度强弱变换

/*********************************************************************
模拟PWM输出控制灯的10个亮度级别
将定时器2溢出定为1/1200秒。每10次脉冲输出一个120HZ频率。
这每10次脉冲再用来控制高低电平的10个比值。
这样,在每个1/120秒的方波周期中,我们都可以改变方波的输出占空比,从而控制LED灯的10个级别的亮度。
*******************************************************************/
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h> //包括一个52标准内核的头文件
sbit P10 = P1^0; //要控制的LED灯
sbit K1= P3^2; //按键K1
uchar scale;//用于保存占空比的输出0的时间份额,总共10份
char code dx516[3] _at_ 0x003b;//这是为了仿真设置的
//模拟PWM输出控制灯的10个亮度级别
void main(void) // 主程序
{
uint n;
RCAP2H =0xF3; //赋T2的预置值,溢出1次是1/1200秒钟
RCAP2L =0x98;
TR2=1; //启动定时器
ET2=1; //打开定时器2中断
EA=1; //打开总中断
while(1) //程序循环
{ ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作
for(n=0;n<50000;n++); //每过一会儿就自动加一个档次的亮度
scale++;
if(scale==10)scale=0;
}
}
//1/1200秒定时器2中断
timer2() interrupt 5
{
static uchar tt; //tt用来保存当前时间在一秒中的比例位置
TF2=0;
tt++;
if(tt==10) //每1/120秒整开始输出低电平
{
tt=0;
if(scale!=0) //这里加这一句是为了消除灭灯状态产生的鬼影
P10=0;
}
if(scale==tt) //按照当前占空比切换输出高电平
P10=1;
}
――――――――――――――――――
在主程序中,每延时一段时间,就自动换一个占空比,以使亮度自动变化,方便观察。
编译,运行,看结果。
可以看到,LED的亮度以每种亮度1秒左右不断变化,共有10个级别。

⑺ 用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--);

}

(7)c语言飞控灯光效果扩展阅读:

单片机应用分类:

通用型:

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

总线型:

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

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

控制型:

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

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

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



⑻ 单片机控制8个灯依次亮,全亮了,再依次灭的c语言流程图,顺便加上解释,不然看不懂

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

⑼ 求一个闪光灯C语言程序,

#include<stdio.h>

#defineGREAT_THAN(a,b)((a)>(b))
#defineLESS_THAN(a,b)((a)<(b))
#defineGREAT_OR_EQUAL(a,b)((a)>=(b))
#defineLESS_OR_EQUAL(a,b)((a)<=(b))
#defineNOT_EQUAL(a,b)((a)!=(b))
#defineEQUAL_TO(a,b)((a)==(b))

staticinttest(void)
{
intx;
inty;

printf(">operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x>%x-->%x ",x,y,GREAT_THAN(x,y));
}
}

printf(" <operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x<%x-->%x ",x,y,LESS_THAN(x,y));
}
}

printf(" >=operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x>=%x-->%x ",x,y,GREAT_OR_EQUAL(x,y));
}
}

printf(" <=operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x<=%x-->%x ",x,y,LESS_OR_EQUAL(x,y));
}
}

printf(" !=operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x!=%x-->%x ",x,y,NOT_EQUAL(x,y));
}
}

printf(" ==operation: ");
for(x=0;x<2;x++){
for(y=0;y<2;y++){
printf("%x==%x-->%x ",x,y,EQUAL_TO(x,y));
}
}

return0;
}

intmain(void)
{
test();

return0;
}

⑽ 需要一个用按键控制一个LED灯亮度的C语言程序

/**52系列单片机,晶振12MHz,P1.0输出100Hz方波(即周期10ms),方波由T0定时器产生
P1.3接按键 K1,每按一次按键,方波占空比改变一次,依次为:1/10→2/10→……→9/10→1/10,如此循环**/
#include"reg52.h" //包含52系列头文件
#define uchar unsigned char //定义 无符号字符型
#define uint unsigned int //定义 无符号整型
#define TRUE 1 //定义 逻辑真
#define FALSE 0 //定义 逻辑假

#define th0 0xfc //100Hz(10ms),占空比分母10,则其最小时间单位应该为10ms/10=1ms,故定时器T0定时时间为 1ms
#define tl0 0x18 //1ms at 12HMz Fosc
#define DutyDeno 10 //定义 占空比分母 为:10

sbit WaveOut=P1^0; //定义 方波输出 接口
sbit Key1=P1^3; //定义 按键Key1 接口

uchar DutyNume=1; //定义 占空比分子 变量,并初始化为 1(即 占空比 为:1/10)

void Timer0() interrupt 1 //定时器T0 中断 函数
{
static uchar ty_time=0; //定义静态变量,作为 占空比 输出时间的参考值(1ms)
TL0=tl0;
TH0=th0; //重赋定时器初值,1ms
ty_time=++ty_time%DutyDeno; //该句等效于:ty_time++;ty_time%=DutyDeno;
if(ty_time<DutyDeno) WaveOut=1; //若计时时间小于 占空比分子,则输出应为 高电平
else WaveOut=0; //若计时时间大于 占空比分子,则输出应为 低电平
}

void TimerInit() //定时器初始化 函数
{
TMOD=0x01; //T0 16位定时器
EA=1; //允许系统中断
ET0=1; //允许T0中断
TH0=th0;
TL0=tl0; //1ms 初值
TR0=1; //T0开始计时
}

void KeyResp() //按键响应 函数
{
static bit KeyDownFlag,KeyReadyFlag; //定义 静态标志位,KeyDownFlag 按键按下标志,KeyReadyFlag 按键准备(响应)标志
if(!Key1) //若按键Key1 被按下
{
KeyDownFlag=TRUE; //按键按下标志 置位
KeyReadyFlag=TRUE; //按键准备标志 置位
}
else KeyDownFlag=FALSE; //若按键Key1 无按下,则清空 按键按下标志
if(!KeyDownFlag && KeyReadyFlag) //若 按键已准备,且按键无按下(即 松手状态)
{
DutyNume++; //占空比分子 加1
if(DutyNume==DutyDeno) DutyNume=1; //若 占空比分子=分母,则返回 1
KeyReadyFlag=FALSE; //按键处理完毕,清 按键准备标志
}
}

void main() //主函数
{
TimerInit(); //调用 定时器初始化 函数
while(1) //循环系统
{
KeyResp(); //调用 按键响应 函数
}
}
方波输出接口接灯;