单片机编程设计要求如下:在单片机的P0口接有8个发光二极管作为指示灯,P1.0~P1.3接有4个按键

设计要求如下:在单片机的P0口接有8个发光二极管作为指示灯,P1.0~P1.3接有4个按键开关,当不同的脚上的按键按下时,实现如下功能:
按下P1.0脚的按键—8只灯全亮然后全灭,再全亮然后全灭,交替闪亮;
按下P1.1脚的按键—按此键则停止点亮8只灯,所有灯全灭;
按下P1.2脚的按键—LED指示灯由上向下流动点亮;
按下P1.3脚的按键—LED指示灯由下向上流动点亮。

第1个回答  2014-10-27
#include<reg51.h>
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar LED=0xfe;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
P0=0xff;
while(1)

{

while(key1==0){P0=0x00;delay(200);P0=0xff;delay(200)}

while(key2==0){P0=0xff;}

while(key3==0){P0=LED;LED=(LED<<1)|0x01;if(LED==0xff)LED=0xfe;delay(200);}

while(key4==0){P0=LED;LED=(LED>>1)|0x80;if(LED==0xff)LED=0x7f;delay(200);}

}

}本回答被网友采纳
第2个回答  2014-10-26
上图,没图不好写。
第3个回答  2014-10-26
给你做proteus仿真吗?
还是要实物?

在单片机的P0口接有8个发光二极管作为指示灯,P1.0~P1.3接有4个按键开 ...
\/\/文件名shiyan1.c include "reg51.h"define uchar unsigned char sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;void delay02s(void){ unsigned char i,j,k;for(i=2;i>0;i--)for(j=200;j>0;j--)for(k=248;k>0;k--);} void delay05s(void){ unsigned char ...

广告灯左移右移的单片机程序
八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环,晶振12M: 这是汇编: ORG 0 START: MOV R2,#8 MOV A,#0FEH SETB C LOOP: MOV P1,A LCALL DELAY RLC A DJNZ...

求汇编语言程序:8个开关p0.0——p0.7分别控制8个灯p1.0——p1.7,
LOOP:JB P0.0,LOOP1 ;第一个键没按转下一个 JNB P0.0,$ ;第一键按下则等抬起 CPL P1.0 ;第一个灯如果开始灭则点亮,开始亮则灭 LOOP1: ;以下与此类似,不做注释。JB P0.1,LOOP2 JNB P0.1,CPL P1.1 LOOP2:JB P0.2,LOOP3 JNB P0.2,CPL P1.2 LOOP3:JB...

用C语言编程 利用单片机的P1.0--P1.3接四个发光二极管L
延时函数略,不过用4个发光二极管指示数值很不直观

如何用单片机设计一个8路的跑马灯?本人急用!!在此表示重谢!_百度知 ...
我也是刚学单片机的,交流下。我没加延时去抖动什么的,用8952。源程序很菜,呵呵。如果实际使用,在每次检测开关动作前加上0.5S的延时就应该可以了 org 0000h ajmp one org 0030h one:mov p0,#0ffh mov p1,#0ffh key1:jnb p0.0,next1 ajmp key1 next1:clr p1.0 key2:jnb p0.0,next...

求解一道单片机编程题目
4个按键K0~K3接P1.0~P1.3,8个灯D1~D8接P0.0~P0.7,要求K0按下按键时,D1-D4对应的灯P0.0~P0.3亮(高电平亮),对应的灯,到底是那个灯?要求K1按下按键时,D5-D8对应的灯P0.4~P0.7亮(高电平亮)。对应的灯,到底是那个灯?要求K2按下按键时,D1-D8对应的灯P0.0...

AT89S51单片机的P1.0~P1.3 接四个发光二极管, P1.4~P1.7 接四个开关...
SWAP A \/\/A高四位和低四位互换,反映到发光二极管上开关闭合对应的灯亮开关断开 ANL A,#0FH \/\/保留低四位 MOV P1,A \/\/输出 ORL P1,#0F0H \/\/把P1高四位置1,等待下一次按键按下 SJMP ABC \/\/调回ABC,循环 给分吧~~

单片机 八个开关 控制八盏灯
MAIN:MOV SP,#7 MOV P0,#0FFH;P0口初始化,设置P0口为输入方式 LOOP:MOV A,P0;将P0口的状态读入累加器A,P0口的状态由开关SW1~SW2控制 MOV P1,A;P0口的状态送P1口显示 MOV 20H,A;将P0口的状态数据送20H单元保存 SCAN:MOV A,P0;再次读P0口的开关状态 CJNE A,20H,LOOP;P0口数据是否有...

AT89S51单片机的P1.0~P1.3 接四个发光二极管, P1.4~P1.7 接四个开关...
ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,P1 ANL A,#0F0H SWAP A MOV P1,A SJMP MAIN END

p1.3输出1\/0在单片机中是什么意思
P1口作输出口,接8只发光二极管LED1-LED8由 AT89C51 组成的单片机系统,通常情况下 P0 口分时复用作为地址、数据总线, P2 口提供 A15-A8 即高 8 位地址, P3 口用作第二功能,只有 P1 口用作 I\/O 口。 P1 口是 8 位准双向口,它的每一位都可独立地定义为输入或输出。既可作为 8 位的...

相似回答