标题: 求个开关控制led灯亮灭的程序 [打印本页]

作者: akb895    时间: 2016-10-17 17:14
标题: 求个开关控制led灯亮灭的程序
p1.0口的开关控制p2口的三个led灯,开关闭合,三个灯都亮;开关断开,三个灯都灭;
p1.1口的开关控制p3口的三个led灯,开关闭合,三个灯都亮;开关断开,三个灯都灭;
上面的三个灯与下面的三个灯不允许同时亮;求大神给个程序。




捕获.PNG (56.38 KB, 下载次数: 144)

捕获.PNG

作者: wuyibin2003    时间: 2016-10-18 08:47
用C语言还是汇编语言 还是HEX文件
作者: scsdcdcsdwscds    时间: 2016-10-18 09:40
这个站上有很多
作者: chjx0131    时间: 2016-10-18 10:55
这个是基础入门的东西了吧。
作者: lewisone    时间: 2016-10-18 10:57
可以多找一下  站里边很多
作者: wyz1988422    时间: 2016-10-18 11:44
这个很简单的
作者: yzwzfyz    时间: 2016-10-18 13:31
建议楼主学其它专业,如:管理类。未来领导管理工程师们。
作者: akb895    时间: 2016-10-18 18:38
wuyibin2003 发表于 2016-10-18 08:47
用C语言还是汇编语言 还是HEX文件

C语言,求您了
作者: 刘海龙    时间: 2016-10-18 20:53
  1. /*********************************************************************************************
  2. 2016.10.18
  3. 编写:刘海龙
  4. 程序名:测试开关控制灯
  5. 硬件支持:所有的51单片机均可驱动(晶振频率随意)

  6. /*********************************************************************************************/
  7. #include <REG51.h> //单片机头文件
  8.    
  9. sbit k1=P1^0;//
  10. sbit k2=P1^1;//
  11. sbit D1=P2^0;//
  12. sbit D2=P2^1;//
  13. sbit D3=P2^2;//
  14. sbit D4=P3^0;//
  15. sbit D5=P3^1;//
  16. sbit D6=P3^2;//
  17. bit flag=0;

  18. /*********************************************************************************************/
  19. void DELAY_MS (unsigned int a){
  20.         unsigned int i;
  21.         while( a-- != 0){
  22.                 for(i = 0; i < 125; i++);
  23.         }
  24. }
  25. /*********************************************************************************************/
  26. void main (void)
  27. {       
  28.         unsigned char i;
  29.         P2=P3=0X00;               
  30.     while(1){
  31.                        if(k1==0&&flag==0){        //
  32.                        DELAY_MS(10);
  33.                            if(k1==0&&flag==0){
  34.                                  flag=1;
  35.                                     D1=D2=D3=1;//上面三个灯亮
  36.                                 }
  37.                         }
  38.                         if(k1==1){
  39.                                  flag=0;
  40.                                     D1=D2=D3=0;//上面三个灯灭
  41.                                 }
  42.                         if(k2==0&&flag==0){//
  43.                        DELAY_MS(10);
  44.                            if(k2==0&&flag==0){
  45.                                  flag=1;
  46.                                     D4=D5=D6=1;//下面三个灯亮
  47.                                 }
  48.                         }
  49.                         if(k2==1){
  50.                                  flag=0;
  51.                                     D4=D5=D6=0;//上面三个灯灭
  52.                                 }                 
  53.         }
  54. }
  55. /************************************END*********************************************************/
复制代码

作者: 刘海龙    时间: 2016-10-18 20:56
程序用STC单片机在面包板上测试通过,完全符合要求。
作者: 刘海龙    时间: 2016-10-18 21:14
我回复的程序还没有审核通过,静等审核通过就可以帮到你了。
作者: zl2168    时间: 2016-10-18 21:59
本帖最后由 zl2168 于 2016-10-18 22:02 编辑
yzwzfyz 发表于 2016-10-18 13:31
建议楼主学其它专业,如:管理类。未来领导管理工程师们。

同感。学领导单片机开发的管理专业,比单纯单片机开发更给力。赚钱不吃力,吃力不赚钱。
作者: 刘海龙    时间: 2016-10-19 08:35
你要的程序见附件

测试程序.rar

20.28 KB, 下载次数: 33


作者: harrydsh    时间: 2016-10-19 15:20
这简单
作者: akb895    时间: 2016-10-19 21:32
刘海龙 发表于 2016-10-19 08:35
你要的程序见附件

多谢,多谢,多谢,多谢,多谢,多谢
作者: 刘海龙    时间: 2016-10-19 21:39
akb895 发表于 2016-10-19 21:32
多谢,多谢,多谢,多谢,多谢,多谢

不用谢,共同学习。
作者: dict020    时间: 2016-10-21 14:01
谢谢分享
作者: liushuiduanya    时间: 2016-10-24 17:58
百度吧,上面应该有的
作者: ddl65    时间: 2016-10-25 10:55
#include <REG51.h> //单片机头文件
   
sbit k1=P1^0;//
sbit k2=P1^1;//
sbit D1=P2^0;//
sbit D2=P2^1;//
sbit D3=P2^2;//
sbit D4=P3^0;//
sbit D5=P3^1;//
sbit D6=P3^2;//
bit flag=0;

/*********************************************************************************************/
void DELAY_MS (unsigned int a){
        unsigned int i;
        while( a-- != 0){
                for(i = 0; i < 125; i++);
        }
}
/*********************************************************************************************/
void main (void)
{        
        unsigned char i;
        P2=P3=0X00;               
    while(1){
                       if(k1==0&&flag==0){        //
                       DELAY_MS(10);
                           if(k1==0&&flag==0){
                                 flag=1;
                                    D1=D2=D3=1;//上面三个灯亮
                                }
                        }
                        if(k1==1){
                                 flag=0;
                                    D1=D2=D3=0;//上面三个灯灭
                                }
                        if(k2==0&&flag==0){//
                       DELAY_MS(10);
                           if(k2==0&&flag==0){
                                 flag=1;
                                    D4=D5=D6=1;//下面三个灯亮
                                }
                        }
                        if(k2==1){
                                 flag=0;
                                    D4=D5=D6=0;
                                }                 
        }
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1