51单片机自学总结

本文探讨了如何使用C语言编程控制P2和P3引脚的LED灯与独立按键交互,通过位操作、延时、Sbit定义和高级逻辑控制实现灯的顺序控制及按键触发事件。涉及P2灯的流水灯效果、位移与取反技巧,以及P3按键的物理延迟处理。
摘要由CSDN通过智能技术生成

LED:P2表示;P2_0=0表示第一个灯亮,如果P2_0=0表示的是第一个灯灭。

其他表示有:P2=0xFE//二进制数1111 1110;

延时:用(空)语句的循环造成延迟;

流水灯:可以用延时功能;P2_0=0;P2_1=0;类推;

其中可以使用>>或者是<<使得0的位置变化

比如:0x7F//0111 1111

0x7F>>1:则是得到0011 1111(0x3F)可以用于一盏一盏点亮。

~取反:FF//1111 1111 取反以后0000 0000;直接全亮;

当0x01//0000 0001 ~(0x01)得到FE//1111 1110 点亮第一盏灯。

当位移和取反在一起有妙用,~(0x01<<1)可以得到1111 1101点亮第二盏。

Sbit 定义问题,有头文件可以直接使用。

还可以用循环与自增/自减的方式来控制其开灯顺序,

{

LED NUM=0

NUM++

P2_NUM=0也可以打开。

}

那么当我们进行编写代码的时候,应该注意有时候NUM会大于7,此时我们应该对其进行归零或者进行NUM--,这样让LED灯可以返回。请结合C语言知识与自身想象力,发挥单片机的功能。

开关问题:P3表示

值得注意的是:独立按键的从左到右第一个即P3_0=K2;P3_1=K1

同样的:我们可以用if语句还进行判断,将其与LED的开关练习在一起。

当我们P3=0时,就是我们按下开关的时候,P3=1时,是我们松开的时候(1表示高电电频,0表示第电频)

因此有简单的物理知识我们看出当摁下独立案件是,可以能出现延时,那我们怎么抵消呢?用Delay抵消掉真空期,避免重复按下独立按键而没用反应的问题。

言归正传:当我们使用if(P3_0=0)

{P2_1=0;

}

写法时,我们可以得到按下P3就可以得到P2_1灯亮,从而建立关系。

同时我们可以使用&& || 来进行更高级一些的控制。

两个独立按键控制一个灯,或两个按键均可以控制一个灯。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值