求51单片机一个开关控制一盏灯c程序

求51单片机一个开关控制一盏灯c程序,第1张

#include "reg51.h"宽型 // 试试

sbit k1 = P1^0//按键1 开关

sbit p6 = P1^6//输出1 灯慎纤猜

bit t1, t2

void main(void)

{

while(1)

{

if(k1==0 &&t1==0) {t1=1p6=~p6}

if(k1==1 ) {t1=0}

}}

// 下面是四个开关,两个灯 的实竖高例

http://zhidao.baidu.com/question/532520062.html

程序是没空兄咐有问题的

其实你的理解就错在第一步,后面的都是对的,P1口的初始状态不是11111111而是与开关的状态有关的,比如有些位的开关处在把这位置0的位置(假设是P1.6)其它位是把IO置1的位置,那么P1的状态就是1011XXXX,右移相或后就是11111011,就可以控制相应的灯了,再下个循环读的时候还是一样,读IO是当前外部电平的高低,与上次IO输出无关!所以读回来还是开关的状态!

temp=P1>>4

这句就是在读开尘袭关的状态,同时进行移斗纯位处理等效于:

temp=P1

temp>>=4


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

原文地址:https://54852.com/yw/12447091.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存