单片机编程:LED发光二极管的初始状态为亮。按一下按键,LED灯灭。再按一下,LED亮,用C语言编程该怎么写

如题所述

今天做回好人,闲着给你写一个做参考。
按键按一次LED灯灭,在按一次按键LED灯亮。
程序如下:

/*************************************************************************************************************
#include "REG52.H"
sbit LED1_01 = P1^1; //LED灯
sbit KEY0_01 = P1^2; //按键
void Delay_1ms(unsigned int Time)
{
unsigned int x, y;
for(x = Time; x > 0; x--)
for(y = 120; y > 0; y--);
}

int main(void)
{
LED1_01 = 1; //打开LED灯点亮

while(1)
{
if(KEY0_01 == 0) //检测按键是否按下
{
Delay_1ms(10); //延时去抖动
if(KEY0_01 == 0) //确定按键按下
{
LED1_01 = ~ LED1_01; //取反LED灯 [ 亮 . 灭 ]
}
while(KEY0_01 == 0); //检测松手
}
}
}

*****************************************************************************************************************/追问

非常谢谢 我刚也琢磨出来了,但还是要谢谢你 可是我又有新问题了,按一下LED灯开始闪烁,再按一下,LED停止闪这个该怎么写啊

追答

那你就写一个标志做切换,进行循环啊!

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-13
还是下面这个详细 呵呵 我就不写了
第2个回答  2012-12-12
硬件怎么接的?神啊!
孩子,单片机不单单只有89c51
第3个回答  2012-12-12
你能用protues画个图发上来吗,你直接说,我也不知道怎么写,没人能通过你这么简单的两句话写出你想要的程序

单片机编程:LED发光二极管的初始状态为亮。按一下按键,LED灯灭。再...
{ LED1_01 = 1; \/\/打开LED灯点亮 while(1){ if(KEY0_01 == 0) \/\/检测按键是否按下 { Delay_1ms(10); \/\/延时去抖动 if(KEY0_01 == 0) \/\/确定按键按下 { LED1_01 = ~ LED1_01; \/\/取反LED灯 [ 亮 . 灭 ]} while(KEY0_01 == 0); \/\/检测松手 } ...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
具体步骤如下:1. 全部LED初始状态:P0 = 0x00 2. 点亮P0.0和P0.1:P0 = 0xc0,延时1000毫秒 3. 点亮P0.2和P0.3:P0 = 0x30,延时1000毫秒 4. 点亮P0.4和P0.5:P0 = 0x0c,延时1000毫秒 5. 点亮P0.6和P0.7:P0 = 0x03,延时1000毫秒 文章还提到了另一种方法,使用定时...

C语言如何编程让一个按键轮流点灯。按一下1灯亮,在按下1灯灭2灯亮,在...
每按一次独立键盘的S2键,与P1口相连的一个发光二极管往下移动一位。include <reg52.h> sbit BY1=P3^4; \/\/定义按键的输入端S2键 unsigned char count; \/\/按键计数,每按一下,count加1 unsigned char temp;unsigned char a,b;void delay10ms(void) \/\/延时程序 { unsigned char i,j;for(...

求高手帮忙提供: 单片机程序,开关点亮LED灯,点亮数码管,蜂鸣器叫。 谢 ...
include<reg52.h> \/\/--定义你要使用的IO口--\/\/ define GPIO_DIG P0 \/\/--声明全局函数--\/\/ void Delay10ms(unsigned int c); \/\/误差 0us \/\/--定义全局变量--\/\/ \/\/RAM,ROM unsigned char code DIG_CODE[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, ...

单片机按键控制LED灯亮灭程序
按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); \/\/ 等待按键放开led1=~led1;} 使用四个独立按键控制四个LED灯亮灭的汇编程序怎么弄?单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4程序:ORG 00HSTART: MOV A,P1ANL A,#0F0H...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P0.1;delay(1000);\/\/延时1秒 P0 = 0x30;\/\/点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、include <reg52.h>...

单片机 汇编语言 LED程序... 问题求解...
;10.12.29 外部中断1按键按下,P1流水灯(跑马灯),P2鸳鸯戏水灯(交叉点亮)ORG 00H AJMP MAIN ORG 03H AJMP EX0INT ORG 0030H MAIN: MOV SP,#60H SETB EA SETB EX0 SETB IT0 MOV R0,#8 JNB F0,MOV A,#0FEH LED: MOV P1,A MOV P2,#0AAH ACALL DLY MOV P2,#55H ACALL...

51单片机通过外部中断和开关控制LED闪亮
是不是按一下开关触发中断,使LED闪烁,再按一下,LED熄灭?LED EQU P1.0 ORG 0000H LJMP MAIN ORG 0003H LJMP EXT0 ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-41667)MOV TL0,#LOW(65536-41667)SETB ET0 SETB EA SETB EX0 SETB IT0 CLR A SJMP EXT0:CPL TR0 RETI T0...

用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)_百度...
\/\/第一个灯亮 delay();\/\/延时 P3=0xfd;\/\/第二个灯亮 delay();P3=0xfb;\/\/第三个灯亮 delay();P3=0xf7;\/\/第四个灯亮 delay();P3=0xef;\/\/第五个灯亮 delay();P3=0xdf;\/\/第六个灯亮 delay();P3=0xbf;\/\/第七个灯亮 delay();P3=0x7f;\/\/第八个灯亮 delay();} } ...

课程设计:单片机按键点亮发光二极管 采用3个按键第一个按键实现按键后相...
其实就是在你按键按下的时候,给发光二极管高电平或低电平就是了!如 if(Key1==0)LED=1;类似这样就能够实现你想要实现的功能!

相似回答