while(P2_7); //没有按就循环 } else while(!P2_7); //按下就循环,等待松开 } void main(void) //主函数名 { while(1) { w(1); P1_0 = 0; w(0); P1_0 = 1;w(1); P1_1 = 0

你按一下按钮,给对应LED灯的口赋值#0FEH(1111 1110)第一个灯亮,松开给(1111 1111)都灭,再按一下给(1111 1101),依次这样循环就行了。

你这个很简单,流水灯的间隔时间有什么要求吗? 8个灯接在单片机的哪个IO口上? 如果右要求可以说出来,没有的话,我给你仿真一个发给你 完善一下 留下联系方式,打包发给你

用外中断口(51单片机的话P3.4/P3.5)接下拉电阻,一段接开关,高电平时有效(加按键抖动电路)8个IO口灌电流接LED等。比如第一个按 01H,然后来中断,移位一次,当中断9次,跳入循环移位。自己试试吧。要不有硬件

++i;if(i>=8)i=0;} } 灯接在P0口,低电平点亮。

单片机中只用一个开关控制8个LED轮流亮灭,这很容易实现,也是最简单的控制方法,只要识别了按键按下了,就可以控制。轮流点亮更容易,用移位函数_crol_或_cror_就行了。是要仿真吗,给你个仿真图。

while(1){ P2=led_data;//默认第一位亮 if(key==0)Delay_ms(10);if(key==0){ while(!key);Delay_ms(500); //延时0.5s led_data=_crol_(led_data,1);//移位函数,使led_date向左循环移动1位 } }

51c中只用一个开关控制8个LED轮流亮灭,按一下第一个亮,再按一下第二个亮第一个灭,怎么写程序?

void delay(unsigned int z );void main(){ unsigned int a;unsigned char b=0xfe;for(a=0;a<8;a++){ P1=b;//P1口接8个LED灯 delay(200);b=_crol_ (b,1);} } void delay(unsigned int z){ unsigned

MAIN:MOVA,#0FFH;设置左移初值 CLRC;C=0 MOVR2,#08H;设置左移次数 LOOP:RLCA;左移1位 MOVP1,A;输出到P1 CALLDELAY;延时 DJNZR2,LOOP;左移7次 MOVR2,#07H;LOOP1:RRCA;右移1位 MOVP1,A;输出到P1 CALLDELAY;

MAIN1: MOV A, #0FEH MOV R2, #8 MAIN2: MOV P1, A JNB 30H,CLR 30H RL A DJNZ R2, MAIN2 MOV A, #7FH MOV R2, #8 MAIN3: MOV P1, A JNB 30H,CLR 30H

//主程序 void main(){ uint s;while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=_crol_(P0,1); //P0 的值向左循环移动 DelayMS(150);} P0=0x00;DelayMS(150);p0=0xff;DelayMS(150);

while(1){ for(i=0;i<7;i++){delay(100);LED = (LED<<1)|0x01;P3 = LED;} for(i=0;i<7;i++){delay(100);LED = (LED>>1)|0x80;P3 = LED;} } } 汇编语言 LEDEQU 30H ORG 0000H LJMP MAIN

首先,是单灯如何点亮的问题,无非就是某个gpio口输出高电平或者低电平(由外部电路决定)使灯亮灭,假设输出高电平为亮,输出低电平为灭。其次,1hz闪烁,即代表定时1s开、关灯。所以要用到定时器。代码如下:include "std

汇编语言编一个八个灯,由左至右循环闪烁的程序~~~谢谢

// 51单片机控制八个发光二极管 左右循环。include define uchar unsigned char define uint unsigned int unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf

1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();} }

1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。流水灯参考程序 include include define uchar unsigned char uchar j,temp;void delay(un

请设计一个8个led同时全部闪烁的程序 include main (){int i;while (1){for (i=0;i<=30000;i++);P1=~P1;} }

1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1”3:当I值为每个值时,执行相应的模式。水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度;无效延迟(无符号整型

8个LED指示灯循环闪烁的程序(单片机)

写单片机P0循环点亮八盏灯的程序并不复杂,只需要实现一个循环点亮的过程,就可以实现了。一、硬件接线 首先,电路接线是最重要的环节,需要将外部组件与单片机核心引脚相连接,如接线正确,接地和电源,以及led灯和信号脚之间

JMP MAIN ORG 30H MAIN:MOVA,#0FFH;设置左移初值 CLRC;C=0 MOVR2,#08H;设置左移次数 LOOP:RLCA;左移1位 MOVP2,A;输出到P2 CALLDELAY;延时 DJNZR2,LOOP;左移7次 MOVR2,#07H;LOOP1:RRCA;右移1位 MOVP2,A;

while(1){ P1=0xfe; //点亮第一个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for

delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个

1:首先设定一个变量i,可以是从0到3循环的变化,2:再检测一个经过消抖处理的按键,按一下,即i+1 3:当i值为各个值时,执行相应的变换花样。流水灯参考程序 include include define uchar unsigned char uchar j,tmp

单片机控制8个led灯交替点亮的程序?

单片机按键按两次LED灯亮程序 您好亲, 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。 定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。 第三步:中断 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。 希望可以帮到您哦。【摘要】 单片机按键按两次LED灯亮程序【提问】 单片机按键按两次LED灯亮程序 您好亲, 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。 定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。 第三步:中断 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。 希望可以帮到您哦。【回答】 我需要的是单片机C语言程序,如何检测按键按了两次?【提问】 我需要的是单片机C语言程序,如何检测按键按了两次? 您好亲, 将按钮一端接GND,另一端通过K欧级电阻上接到Ⅴcc,此端再接入单片机引脚,这是比较通用的单片机检测按钮的硬件结构。在程序上,用指令读引脚,如果出现低电平0,就代表按钮已经按下。 这种方法的最大问题是如何防抖,一般在按下按钮时,它输出的低电平会产生跳动,程序就会检测到多次低电平。通常的做法是在程序检测到第一个低电平后加入一定的延时,再检测引脚电平以确定按键是否稳定。 希望可以帮到您哦。【回答】 这我懂,主要是程序如何写,让按键检测两次低电平后,然后执行LED灯亮。【提问】 这我懂,主要是程序如何写,让按键检测两次低电平后,然后执行LED灯亮。 您好亲, 按键低电平有效,led灯低电平时亮。按键按下亮,松开灭。程序较简单,为组合逻辑电路,没有按键防抖功能。 module led(led,key); input key; output led; reg led_out; always@(key) if(!key) led_out=1'b0; else led_out=1'b1; assign led=led_out; endmodule 希望可以帮到您哦。【回答】 只求程序,其它的不要跟我废话了【提问】 只求程序,其它的不要跟我废话了 您好亲, 目标程序为了使计算机能按照人们的意志工作,就要根据问题的要求,编写相应的程序。程序是一组计算机可以识别和执行的指令,每一条指令使计算机执行特定的操作 扩展 源程序 程序可以用高级语言或汇编语言编写,用高级语言或汇编语言编写的程序称为源程序。C语言源程序的扩展名为“.c”。源程序不能直接在计算机上执行,需要用“编译程序”将源程序编译为二进制形式的代码。[1]这是【回答】 if语句如何判断按键按了两次【提问】 if语句如何判断按键按了两次 您好亲, bit keychk() //单一按键检测 { if(P1.0==0) //如果键按下 { delay(); //延时去抖 if(P1.0==0)return(1); //返回键状态 } return(0); } unsigned char kbscan(void) //矩阵扫描按键检测 { unsigned char sccode,recode; P1=0x0f; //发0扫描,列线输入 if ((P2 & 0x0f) != 0x0f) //有键按下 { delay(20); //延时去抖动 if ((P1&0x0f)!= 0x0f) { sccode = 0xef; //逐行扫描初值 while((sccode&0x01)!=0) { P1=sccode; if((P1&0x0f)!=0x0f) { recode=(P1&0x0f)|0xf0; while((P1&0x0f)!=0x0f);//等待键抬起 return((~sccode)+(~recode)); } else sccode=(sccode<<1)|0x01; } } } return 0; //无键按下,返回0 }希望可以帮到您哦。【回答】
单片机8个LED灯指示的,一般是指 LED 用于显示系统运行状态或记录的一些错误状态,可分为状态灯和错误灯两种。【摘要】 单片机8个led灯指示的是什么【提问】 单片机8个LED灯指示的,一般是指 LED 用于显示系统运行状态或记录的一些错误状态,可分为状态灯和错误灯两种。【回答】 状态灯:通常情况下,使用单片机8个LED 灯来显示系统运行状态,具体指示由系统需要决定,比如 CPU 运行状态、I/O 连接状态、存储设备接口状态等;【回答】 错误灯:一般使用 LED 灯来显示系统的错误状态,比如 RAM 故障、ROM 错误、外部设备故障、系统自检失败等。【回答】 单片机LED灯的状态显示可以通过编程实现,可以实现一定的报警功能,也可以显示当前的工作状态,当系统工作正常时,这些灯点亮,可以作为系统故障的指示;当系统出现故障时,对应的灯会熄灭,可以帮助维护人员查找故障源。【回答】
方法: 1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。 流水灯参考程序 #include #include #define uchar unsigned char uchar j,temp; void delay(unsigned int ms) { uchar t; while(ms--) for(t=0;t<123;t++); } void main() { P1=0xff; delay(500); temp=0xfe; //有点怪,led接在P2.3~P2.6 for(j=0;j<4;j++) { P1=temp; delay(500); temp=_crol_(temp,1); } P1=0xff; while(1); }
请设计一个8个led同时全部闪烁的程序 #include main () {int i; while (1) {for (i=0;i<=30000;i++); P1=~P1; } }
ORG 0000H LJMP MAIN ORG 000BH T0MS0 EQU NOT 50000 ; 50 mS 12.000 MHz T0ZD0: MOV TL0, #LOW T0MS0 ; TO 100MS 中断 计时 0 MOV TH0, #HIGH T0MS0 DJNZ R5, T0ZD8 MOV R5, #20 SETB 30H T0ZD8: RETI MAIN: MOV TL0, #LOW T0MS0 ; TO 100MS 中断 计时 0 MOV TH0, #HIGH T0MS0 MOV IE, #82H SETB TR0 MOV R5, #20 MAIN1: MOV A, #0FEH MOV R2, #8 MAIN2: MOV P1, A JNB 30H, $ CLR 30H RL A DJNZ R2, MAIN2 MOV A, #7FH MOV R2, #8 MAIN3: MOV P1, A JNB 30H, $ CLR 30H RR A DJNZ R2, MAIN3 JMP MAIN1 END
不会。。。。路过。。。。网络100分 专业人士也不会花那么多时间来 编这个题吧 应该把 手机 留下
#include #include #define uint unsigned int #define uchar unsigned char sbit key=P1^0; void Delay_ms(uint xms) //延时程序,xms是形式参数 { uint i, j; for(i=xms;i>0;i--) for(j=115;j>0;j--); } void main(){ uchar led_data=0xfe; while(1) { P2=led_data;//默认第一位亮 if(key==0) Delay_ms(10); if(key==0) { while(!key); Delay_ms(500); //延时0.5s led_data=_crol_(led_data,1);//移位函数,使led_date向左循环移动1位 } } } 已通过仿真,符合你的要求!
按一次1亮,再按一次灭。。。我自己写的检测管脚==0,然后去抖,等待释放什么的都写上了,不过效果是,当按着的时候有效果,放开就没效果了(恢复原来状态)。也就是让他亮,按着就亮,放开就灭了....囧...我需要的是1个按键分别让5个LED成流水灯