3 双键控3灯

该程序是为一个使用AT89C51微控制器的系统设计的,当S0、S1按钮分别或同时按下时,会控制红、绿、黄灯的不同状态。在S0按下时红灯亮,S1按下时绿灯亮,两者都按则是三灯全亮。程序使用了Keil编译器并基于C语言编写,通过P1口读取按钮状态并更新灯光显示。
摘要由CSDN通过智能技术生成

//S0、S1均未按下,黄灯亮,其余灯灭。

//S0单独按下,红灯亮,其余灯灭;

//S1单独按下,绿灯亮,其余灯灭;

//S0、S1均按下,红绿黄灯全亮;


/* Main.c file generated by New Project wizard
 *
 * Created:   周四 4月 6 2023
 * Processor: AT89C51
 * Compiler:  Keil for 8051
 */

#include <reg51.h>
#include <stdio.h>

sbit s0=P1^7;
sbit s1=P1^6;
sbit R=P1^2;
sbit G=P1^1;
sbit Y=P1^0;

void main(void)
 { 
   // Write your code here
    unsigned char Q;
   while (1)
    {
        Q=P1&0xc0;
        switch(Q)
            {
                    
                    case 0xc0:    P1=P1&0xfe|0xfe;break;
                    case 0x40:    P1=P1&0xfb|0xfb;break; 
                    case 0x80:     P1=P1&0xfd|0xfd;break;
                    default:    P1=P1&0xf8|0xf8;
            }
                    
            
    }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值