8051单片机P0口接8个按钮控制P1口8个LED,按钮按下要求对应的LED亮2秒然后自动熄灭

如题所述

先读P0口的状态,按你LED的接法,是取反还是直接写入P1口,用TO做定时器,设一个标志位,亮时置一,P0口状态无效.延时2S后清0,PO口状态有效,灭灯.
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-23
对,江湖新秀的办法可行。

通常二极管的正极和电源连接,按钮和地连接,所以直接将P0口写入P1即可,然后延时2S

利用单片机P1口接8个发光二极管,P0口接8个开关,编程实现,当开关动作时...
ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,P0 MOV P1,A SJMP MAIN END

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
具体步骤如下:1. 全部LED初始状态:P0 = 0x00 2. 点亮P0.0和P0.1:P0 = 0xc0,延时1000毫秒 3. 点亮P0.2和P0.3:P0 = 0x30,延时1000毫秒 4. 点亮P0.4和P0.5:P0 = 0x0c,延时1000毫秒 5. 点亮P0.6和P0.7:P0 = 0x03,延时1000毫秒 文章还提到了另一种方法,使用定时...

51单片机P1口八个灯和P2口八个灯,如何定义P1口八个灯全亮然后P2口八个...
P0=0x00就是P0口的所有全部亮 然后P1=0xff就是P1口的全部灭 这是另外一种定义方式,sbit这是一个位

单片机8个按键控制8个LED亮灭
按键接单片机的p1口 led接单片机p0口 采用共阳极接法 ,sbit 设置按键 sbit设置led 编写延时 用if语句就可以

8051单片机,用P0口控制8个LED实现循环彩灯.循环显示规律为:全亮,全灭...
1 { TH0=(65536-50000)\/256;TL0=(65536-50000)%256;times++;if(times>=40){ times=0;P0=led[cnt];cnt++;cnt%=11;} } main(){ TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;while(1);} \/\/程序很简单,你自己加注释和完成其他工作吧。

用单片机C51中switch语句编程,P1口接八个开关分别控制P0口八个LED灯
switch(P1){ case 0xfe:P0=0x01;break;case 0xfd:P0=0x02;break;case 0xfb:P0=0x04;break;case 0xf7:P0=0x08;break;case 0xef:P0=0x10;break;case 0xdf:P0=0x20;break;case 0xbf:P0=0x40;break;case 0x7f:P0=0x80;break;default:break;} ...

如何用8051流水灯程序?
在这个单片机流水灯代码中,假设使用的是8051单片机。需要定义8个LED灯,分别连接到P1端口的不同引脚上。然后使用一个循环结构来控制这8个LED灯按照一定的顺序逐个亮起,形成流水灯的效果。具体来说,使用for循环来控制LED灯的亮灭顺序。在每次循环中,通过给P1端口赋值来控制LED灯的亮灭状态。例如,给...

求一份8051单片机的跑马灯C程序。要求只用p1端口控制8盏灯。让8盏灯循 ...
} main(){ P1=0xfe; \/\/给初始化值 换算成二进制是1111 1110 while(1){ delay(30000);\/\/延时程序 P1<<=1; \/\/左移一位 该语句等效于 P1=P1<<1 P1|=0x01; \/\/最后一位补1,该语句等效于 P1=P1|0x01 符号"|"表示"或"if(P1==0x7f) \/\/检测是否移到最左端?"=="表示...

如何用C51单片机实现P0口接两个按键,P1口接8个LED灯。key1按下左移动...
给个四路:定意一个变量;if(按键1按下)变量为1;if(按键2按下)变量为2;if(变量==1){ 左移控制;} else if(变量==2){ 右移控制;}

设计用8031单片机P1口为输出口控制8只发光二极管循环点亮。1、 画出接...
内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果---*\/#include<reg52.h> \/\/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义\/*--- 延时子程序---*\/void delay(unsigned int cnt) { while(--cnt);}\/*---

相似回答