导航:首页 > 操作系统 > 单片机控制led灯程序

单片机控制led灯程序

发布时间:2022-05-01 08:09:28

A. 51单片机控制LED灯

首先要查看电路的连接,看看输入连接到单片机的哪个引脚(比如P1.0),LED灯连接到哪个引脚(比如P2.0)。然后看是高电平有效还是低电平有效(也就是高电平时LED灯亮,还是低电平时LED灯亮)。
如果是高电平灯亮的话,程序如下:
P2.0=P1.0;

B. 单片机LED灯闪烁程序

char LED;
sbit key1down=P1^0 ; // 设开关key1连接此端口
sbit key2down=P1^1 ; // 设开关key2连接此端口
void main(){

P0=0xff; // 输出低电平LED亮

LED=0xfe;
while(1){
P0=LED; delay();
if(key1){ LED <<= 1 ; } // 将LED左移一位;
if(key2){ LED >>= 1 ; LED |=0x80; } // 将LED右移一位;
if(key1down==0) { key1=1; key2=0;}
if(key2down==0) { key1=0; key2=1;}
}

C. 用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--);

}

(3)单片机控制led灯程序扩展阅读:

单片机应用分类:

通用型:

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

总线型:

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

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

控制型:

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

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

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



D. 单片机下面程序是怎么实行LED灯闪烁的

  1. 原理:LED闪烁其实就是LED亮灭,要看电路,有的直接是单片机驱动的小LED,给高平亮,给低电平灭,一直给高低电平循环就表现出亮灭了。

  2. 延时:就是亮多久后灭,灭多久后亮。

  3. 实现:先给高电平,LED亮,经过延时后,再给一个低电平,LED灭,再给一个延时,如此无限循环。

E. 单片机C语言按键控制LED灯

其实是一样的,也没什么哪个规范这一说,这个看个人习惯了

首先if(SW13==0)是判断此引脚是否为0 (按键按下)
然后一个delay用于按键防抖动

没被注释的那部分是靠if在次判断是否为0按下按下后执行LED_ON函数使LED亮
然后通过while判断按键是否松开,如果松开的话就继续执行LED_OFF将LED关闭

而注释掉的那段是依靠while函数直接判断按键是否处于按下状态
是的话就循环执行LED_ON函数直至判断按键松开(SW13=1)后在继续执行到LED_OFF函数使LED 关闭

不过这两种写法的有个共同缺点就是按键判断是while死循环,如果你这个按键按下后,单片机就只是在判断这个条件成立与否,期间不在进行其他工作

F. 单片机通过按钮控制一个LED小灯的亮灭,请问这个程序怎么写

led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led
的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后
就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); //
等待按键放开led1=~led1;}

G. 单片机按键控制LED灯亮灭程序

led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。led=!led 的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后 就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); // 等待按键放开led1=~led1;}

H. 用C51单片机控制12个LED流水灯的C语言程序怎么写

#include "REG52.H"

//控制引脚定义
sbit LED1 = PX.X; //P0.0-P3.7任意引脚
.... .... .......
sbit LED12 = PX.X;
//宏定义灯亮灯灭
#define LED1_ON( ) LED1 =0 //阳极接电源
#define LED1_OFF( ) LED1 =1 //阳极接电源
....... ............. .............
#define LED12_ON( ) LED12 =0 //阳极接电源
#define LED12_OFF( ) LED12 =1 //阳极接电源

void Init_GPIO( )//端口引脚初始化,关闭所有指示灯
{
LED1_OFF( ) ;
..............
LED12_OFF( ) ;
}
void Delay_ms( u16 dat ) //延时函数
{
u16 i, j;
for(i = dat; i>0; i--)
{
for (j=300; j>0; j--);
}
}
int main( ) //主函数
{
Init_GPIO( );//引脚初始化
while(1) //大循环
{
LED1_ON( );//点亮第一个LED
LED2_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);//延时 参数自己可以根据晶振频率自己调节

LED1_OFF( ); //点亮第二个LED
LED2_ON( );
LED3_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);
............. //按照上面修改;

LED1_OFF( );//点亮第十二个LED
LED2_OFF );
LED3_OFF( );
.............
LED12_ON( );
Delay_ms(1000);
}
}

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

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

注意事项:

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

J. 求助单片机控制LED程序

参考C程序,在word中编辑的,有的中文分号要改成英文,最后T0中断里要写按钮程序:
#include<rge52.h> // 包含文件52.h

sbit P20=P2^0 ; // 定义引脚

sbit P21=P2^1 ; // 定义引脚

sbit P22=P2^2 ; // 定义引脚

sbit P23=P2^3 ; // 定义引脚

sbit P24=P2^4 ; // 定义引脚

sbit P25=P2^5 ; // 定义引脚

sbit P26=P2^6 ; // 定义引脚

sbit P27=P2^7 ; // 定义引脚

int key;

void delay( int t ) // 延时子程序

{ int i; // 定义整数i

while(t--) // 当t--为真时,循环

{for(i=0;i<125;i++) // 当i<125时执行空操作

{ } // 空操作

}

}

main( ) // 主程序

{TMOD=0X01;

EA=1;ET0=1;

TH0=-(1000/256);

TH0=-(10005256);

TR0=1;

while(1) // 死循环

{P2=0xff;

if(key==1)

{P21=1;P20=0;delay(1000); // 发光二极管LED0发光1秒

P20=1;P21=0;delay(1000); // 发光二极管LED1发光1秒

P21=1;P22=0;delay(1000); // 发光二极管LED2发光1秒

P22=1;P23=0;delay(1000); // 发光二极管LED3发光1秒

P23=1;P24=0;delay(1000); // 发光二极管LED4发光1秒

P24=1;P25=0;delay(1000); // 发光二极管LED5发光1秒

P25=1;P26=0;delay(1000); // 发光二极管LED6发光1秒

P26=1;P27=0;delay(1000); // 发光二极管LED7发光1秒

P27=1;P26=0;delay(1000); // 发光二极管LED8发光1秒

key=0;

}

if(key==2)

{
P20=1;P27=0;delay(1000); // 发光二极管LED7发光1秒

P27=1;P26=0;delay(1000); // 发光二极管LED6发光1秒

P26=1;P25=0;delay(1000); // 发光二极管LED5发光1秒

P25=1;P24=0;delay(1000); // 发光二极管LED4发光1秒

P24=1;P23=0;delay(1000); // 发光二极管LED3发光1秒

P23=1;P22=0;delay(1000); // 发光二极管LED2发光1秒

P22=1;P21=0;delay(1000); // 发光二极管LED1发光1秒

P21=1;P20=0;delay(1000); // 发光二极管LED0发光1秒

key=0;

}

if(key==3)

{P2=0;delay(400);P2=1;delay(400);//闪3次

P2=0;delay(400);P2=1;delay(400);

P2=0;delay(400);P2=1;delay(400);

key=0;

}

}

}

void timer0() interrupt 1

{

TH0=-(1000/256);

TH0=-(10005256);

}

阅读全文

与单片机控制led灯程序相关的资料

热点内容
易语言调用java 浏览:328
安卓sha加密 浏览:81
余姚同城游戏app叫什么 浏览:549
方维夺宝20源码下载 浏览:870
shell编译成功后退出 浏览:721
你们用什么美妆鉴别的app吗 浏览:117
手机设备信息在哪个文件夹 浏览:977
安卓应用乱怎么解决 浏览:261
windowssocket网络编程 浏览:731
什么服务器永远不关网 浏览:592
程序员展销会 浏览:15
天津锐志单片机 浏览:149
bestfit算法 浏览:16
通达信能自己编程吗 浏览:768
powlinux 浏览:921
什么app手机铃音免费 浏览:400
玩不坏的解压器怎么折 浏览:435
文件解压验证失败 浏览:453
vivo算法sp薪资 浏览:80
拨号服务是什么app 浏览:429