单片机编程: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画个图发上来吗,你直接说,我也不知道怎么写,没人能通过你这么简单的两句话写出你想要的程序
相似回答