求教大婶们~51单片机单个按键控制流水灯C程序

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-29
51单片机一个按键多种功能的流水灯C程序

判断两次按键的时间间隔 如果大于1s就实现一种功能 小于1s实现另外一种功能

假如,你的程序在执行key_scan();是触发了两次中断导致num>20,你的显示函数将永远被跳过,你应该写成
if(num>20)
{
num=0;
display();
}
这是一个比较直观的错误,其他的没细看,你在试试

很简单啊,只提供一个简单思路, 所以只提供简单的程序,自己理解
char flag=0;
viod main()
{
while(1)
{
if(key==0 ) //假设0 按下按键
{
flag=~flag;
}
if(flag==0)
{
leds(); //流水灯函数
}
}
}

按下key亮再按就灭
void main()
{
while(1) //通过大循环不断扫描按键状态
{
if(k1==0)
{
delay(1000);
if(k1==20)
{
while(!k1); //等待按键松开
num++;
}
led=!led;}}}

  • 求教大婶们~51单片机单个按键控制流水灯C程序
    答:viod main(){ while(1){ if(key==0 ) //假设0 按下按键 { flag=~flag;} if(flag==0){ leds(); //流水灯函数 } } }
  • 关于51单片机的小问题
    答:造成这种结果,主要是单片机的大小端格式问题,我们用的低级的单片机,多数是小端格式的,而51单片机,因为源自Intel,所以,兼容了CPU的特点,是大端格式的。这就造成了printf()的打印问题,主要的原因是Printf没有进行相应的大小端格式的移植。有关大小端,你可以百度一下。
  • 大婶们,这个单片机程序错那里了,老说L1没定义,但是我不知道怎么改啊_百...
    答:把第一句换成#include <reg51.h>试试