Ⅰ C语言编程控制LED灯亮灭
首先要看Led灯和单片机的连接情况,如果只是控制亮灭,只需要看单片机端口控制即可,关键是配置端口的DDRx方向寄存器和PORTx数据寄存器,比如端口A的0引脚控制一个灯,要配置它的输出高电平或是低电平以达到控制灯的亮灭,那就
灯亮:
DDRA |= BIT(0); //输出
PORTA |= BIT(0);//高电平
灯灭:
DDRA |= BIT(0); //输出
PORTA &= ~BIT(0);//低电平
其余的就看你电路如何连接的,每个端口寄存器的每一位控制一个引脚,你可以查查芯片的数据手册,上边有个表格的。
如果你要控制灯的亮暗程度,选择使用PWM输出来控制,需要看定时计数器。
Ⅱ 如何用电脑控制LED灯
考虑用DALI控制系统!可以实现用IPAD、手机、电脑来控制LED灯具照明系统!
Ⅲ 编程:控制一盏LED灯的状态
朋友,你用什么语言编程?不清楚,就告诉你与单片机的连接和用C语言编写一个单片机控制LED灯闪烁变化的编程。
这要看Led灯和单片机的连接情况,如果只是控制亮灭,只需要看单片机端口控制即可,关键是配置端口的DDRx方向寄存器和PORTx数据寄存器,比如端口A的0引脚控制一个灯,要配置它的输出高电平或是低电平以达到控制灯的亮灭,那就
灯亮:
DDRA |= BIT(0); //输出
PORTA |= BIT(0);//高电平
灯灭:
DDRA |= BIT(0); //输出
PORTA &= ~BIT(0);//低电平
其余的就看你电路如何连接的,每个端口寄存器的每一位控制一个引脚,你可以查查芯片的数据手册,上边有个表格的。
用C语言编写一个单片机控制LED灯闪烁变化的编程
可以用外部中断计数,来实现流水灯的正转、暂停、以及反转和爆闪。。这是我前几天写的一个这样的程序,楼主可以结合protues 画图仿真,注意程序中所用到的IO端口就行了。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
uchar a,b;
void delay(uchar z)
{
uchar i,j,k;
for(i=z;i>0;i--)
for(k=20;k>0;k--)
for(j=110;j>0;j--);
}
void begain()
{
EA=1;
EX0=1;
IT0=1;
}
void main()
{ a=b=0;
P0=0xfe;
begain();
while(1)
{
if(a==1)
{
P0=_crol_ (P0,1);
delay(50);
}
if(a==3)
{
P0=_cror_(P0,1);
delay(50);
}
if(a==4)
{
P0=0x00;
delay(50);
P0=0xff;
delay(50);
P0=0xfc;
}
if(a==5)
{
a=1;
}
}
}
void int0() interrupt 0
{
a++;
if(a==5)
{
a=1;
}
}
Ⅳ 用简单的C语言程序控制LED灯的点亮
初始化部分你要自己根据芯片资料写,数码管部分可以根据数码管的资料做数组xs[10]={0x3b……}要看数码管引脚定义了,看原理图看不出来的,可以做个200MS的定时器,然后计数5次就是1S
直接给数码管的IO口附数组的值,如P1=xs[5];要看你给的是哪个IO口了,我这边看不清你的原理图,LED亮200MS后就换动作太快,看不出效果,可以把时间加长
Ⅳ C语言控制LED灯
//!没有硬件方案,以下只包含逻辑
intpush_count=0;//记录按钮按下次数
//!处理亮灯
voidlight(intled_num)
{
switch(led_num)
{
case1:
{
;//点亮灯1
}break;
case2:
{
;//点亮灯1
}break;
default:
;//灭所有灯
break;
}
}
//!处理按键中断
voidpush_interrupt()
{
//判断按键是否有效
push_count++;
if(1==push_count)
{
light(1);
}
elseif(2==push_count)
{
light(2);
}
elseif(8==push_count)
{
light(0);
push_count=0;
}
}
Ⅵ 单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED暗!循环
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。

Ⅶ 你好,我想问问你知道C语言编程显示LED灯是如何实现的吗
通过对LED灯的控制寄存器的修改达到LED灯亮与灭。一般来说就是把LED芯片上的一个IO管脚映射成一个物理地址,我们对这个地址直接操作就可以控制LED等的亮,灭等。如果是在用户层写程序控制的话,需要将物理地址通过MMU映射成虚拟地址才可以控制。
Ⅷ 求控制led灯亮灭的例程和详解
主程序:
LOOP: SETB P10 ;(1)
LCALL DELAY ;(2)
CLR P10 ;(3)
LCALL DELAY ;(4)
AJMP LOOP ;(5)
;以下子程序
DELAY: MOV R7,#250;(6)
D1: MOV R6,#250 ;(7)
D2: DJNZ R6,D2 ;(8)
DJNZ R7,D1 ;(9)
RET ;(10)
END ;(11)
按上面的设想分析一下前面的五条指令。
第一条是让灯灭,第二条应当是延时,第三条是让灯亮,第四条和第二条一模一样,也是延时,第五条应当是转去执行第一条指令。第二和第四条实现的原理稍后谈,先看第五条,LJMP是一条指令,意思是转移,往什么地方转移呢?后面跟的是LOOP,看一下,什么地方还有LOOP,对了,在第一条指令的前面有一个LOOP,所以很直观地,我们能认识到,它要转到第一条指令处。这个第一条指令前面的LOOP被称之为标号,它的用途就是给这一行起一个名字,便于使用。是否一定要给它起名叫LOOP呢?当然不是,起什么名字,完全由编程序的人决定,能称它为A,X等等,当然,这个时候,第五条指令LJMP后面的名字也得跟着改了。
第二条和第四条指令的用途是延时,它是怎样实现的呢?指令的形式是LCALL,这条指令称为调用子程序指令,看一下指令后面跟的是什么,DELAY,找一下DELAY,在第六条指令的前面,显然,这也是一个标号。这条指令的作用是这样的:当执行LCALL指令时,程序就转到LCALL后面的标号所标定的程序处执行,如果在执行指令的过程中遇到RET指令,则程序就返回到LCALL指令的下面的一条指令继续执行,从第六行开始的指令中,能看到确实有RET指令。在执行第二条指令后,将转去执行第6条指令,而在执行完6,7,8,9条指令后将遇到第10条令:RET,执行该条指令后,程序将回来执行第三条指令,即将P10清零,使灯亮,然后又是第四条指令,执行第四条指令就是转去执行第6,7,8,9,10条指令,然后回来执行第5条指令,第5条指令就是让程序回到第1条开始执行,如此周而复始,灯就在持续地亮、灭了。
在标号DELAY标志的这一行到RET这一行中的所有程序,这是一段延时程序,大概延时零点几秒,至于具体的时间,以后我们再学习如何计算。 程序的最后一行是END,这不是一条指令,它只是告诉我们程序到此结束,它被称为"伪指令"。
单片机内部结构分析:为了知道延时程序是如何工作的,我们必需首先了解延时程序中出现的一些符号,就从R1开始,R1被称之为工作寄存器。什么是工作寄存器呢?让我们从现实生活中来找找答案。如果出一道数学题:123+567,让你回答结果是多少,你会马上答出是690,再看下面一道题:123+567+562,要让你要上回答,就不这么不难了吧?我们会怎样做呢?如果有张纸,就不难了,我们先算出123+567=690,把690写在纸上,然后再算690+562得到结果是1552。这其中1552是我们想要的结果,而690并非我们所要的结果,但是为了得到最终结果,我们又不得不先算出690,并记下来,这其实是一个中间结果,计算机中做运算和这个类似,为了要得到最终结果,一般要做很多步的中间结果,这些中间结果要有个地方放才行,把它们放哪呢?放在前面提到过的ROM中能吗?显然不行,因为计算机要将结果写进去,而ROM是不能写的,所以在单片机中另有一个区域称为RAM区(RAM是随机存取存储器的英文缩写),它能将数据写进去。特别地,在MCS-51单片机中,将RAM中分出一块区域,称为工作寄存器区
Ⅸ 用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--);
}

(9)电脑编程控制led灯扩展阅读:
单片机应用分类:
通用型:
这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型:
这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型:
这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。
通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
参考资料来源:网络-单片机