求一个用单片机控制LED灯亮灭的程序。要求按下S1使L1亮,按下S2使L2亮,按下S3使L3亮,按

求一个用单片机控制LED灯亮灭的程序。要求按下S1使L1亮,按下S2使L2亮,按下S3使L3亮,按,第1张

#include<reg51h>

sbit s1=P2^0;

sbit s2=P2^1;

sbit s3=P2^2;

sbit s4=P3^3;

sbit led1=P1^0;

sbit led2=P1^1;

sbit led3=P1^2;

main()

{

while(1)

{

if(s1==0)

{

while(s1==0);

led1=0;led2=1;led3=1;

}

if(s2==0)

{

while(s2==0);

led1=1;led2=0;led3=1;

}

if(s3==0)

{

while(s3==0);

led1=1;led2=1;led3=0;

}

if(s4==0)

{

while(s4==0);

led1=0;led2=0;led3=0;

}

}

}

void main() { P1=0XFF; /定义初始状态为全灭/while(1) { delay(2000); P1=0X7e; delay(2000); P1=0Xbd; delay(2000);P1=0Xdb;delay(2000); P1=0Xe7; delay(2000); P1=0Xdb;delay(2000); P1=0Xbd;delay(2000); P1=0X7e; delay(2000); P1=0XFF; /此循环使得发光二极管按照07,16,25,34,43,52,61,70的顺序循环交替两两点亮/} /end while/}/end main/

用 全局位变量 (如 bit TimesFlag(次数标志位))记录按键是 奇数还是偶数,初始化是0(算偶数),每按一下,就取反(TimesFlag=~TimesFlag),那么 这个位 是 1 就表示 奇数下,0 就表示 偶数下。通过判断这个值,就能 知道要 输出 多少次了。再提供一个 全局位变量(如 bit OutEn),记录是否可以输出闪灯,当 有新按键时,就允许输出(OutEn=1),闪完灯就禁止输出(OutEn=0)

不过你还要记录按键的状态,判断是否 刚刚 按下(刚按下就提供输出要求(OutEn=1)),不然就会 一直 闪。

以上就是关于求一个用单片机控制LED灯亮灭的程序。要求按下S1使L1亮,按下S2使L2亮,按下S3使L3亮,按全部的内容,包括:求一个用单片机控制LED灯亮灭的程序。要求按下S1使L1亮,按下S2使L2亮,按下S3使L3亮,按、如何编写一个C程序使51单片机LED灯按下列要求点亮、如何编写c51程序,用c语言编写,就是按一下按钮灯泡闪一下,在按一下灯泡闪两下,然后再按一下灯泡闪等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10172373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存