for (i=0;i<8;i++){ P1=w; //循环点亮LED w<<=1; //点亮灯的位置移动,最低位补0 w=w|0x01; //将最低位置1 delay(500); //延时 } } } 或:include "reg51.h"//程序中使用_crol_

led=0xff;while(1) { if(k1==0) { delay(10); if(k1==0) { while(k1==0); flag=1; led=0xfe; } } if(k2==0) { delay(10); if(k2==0) {

P1口接8个LED灯,P3口接4个按键K1~K4,用于控制流水灯的四种效果,仿真图如下。

if(key ==0) {num++; } if(num==0){led1 =0;//亮,发光二极管负极接IO} //num是切换哪几个LED亮的或者哪几个LED灭的,完整的就不写了,1是太多,浪费时间,2是对你自己比较好。

要实物 还说仿真呢 硬件做好了吗 我做单片机的

void display();int b0=0x00, b1=0xc0,b2=0x30,b3=0x0c,b4=0x03;sbit S16 = P3^5; //接在P30口的按钮 sbit S15 = P3^4;sbit S14 = P3^6;sbit S13 = P3^7;//有按键控制时要加防抖动处理 void

单片机4个按键控制8个led灯,我编写的代码在keil上查不出问题,但无法达到我的要求,求帮助

4只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。;用最直接的方式实现流水灯 ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 MOV P1,#1011111

用汇编写的 如果4个LED灯在单片机的P1.0,P1.1,P1.2,P1.3这4个I/O口的话 ORG 0000H main:mov a,#0FH mov p1,a sjmp end C语言还不太会,汇编是正确的

3.编写程序:使用单片机的编程软件(如Arduino IDE、Keil等),编写控制LED灯的程序。以下是一个简单的示例程序(以Arduino为例):// 定义LED灯连接的引脚 const int ledPin = 13;void setup() { // 将LED引脚设置为

LED3 = 1;delay(50000);LED4 = 1;delay(50000);LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);LED1 = 0;delay(50000);} } 上述代码实现了四个 LED 灯逐个亮起来然后再逐个灭掉的

Keil四个LED灯点亮程序

在主函数中编写程序,实现LED点亮和灭的时间控制。可以使用if语句或while语句来判断时间是否达到要求,然后控制LED灯的点亮和灭。在main函数中添加延时函数,以实现上电后30秒后LED灯开始点亮的要求。下面是一个简单的示例程序

1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。

就写代码给P1.0输出1就能亮起LED灯D1。sbit LED_D1= P1^0 ;LED_D1 =1;//=1亮灯 ,=0灭灯当也要看电路,完善的电路还会有驱动电路如三极管点了,也要看LED固定的那端是接地还是接VCC。最终无非就是通过单片

以下是一个简单的51单片机程序,通过按下按键可以实现4种不同状态的灯亮灭,包括正闪、反闪、多种间隔闪。程序中使用了定时器来实现闪烁功能。程序中使用了P1.0到P1.3作为控制灯的引脚,P3.2作为按键的引脚。每当按下

单片机按键控制LED灯亮灭程序怎么做到的?

两种方法,一种是给驱动16和灯的口每次变化赋和显示值,这种最好理解,32次变化写32行输出然后每个输出后面再加一个延时就可以了。另一种是用位移指令for循环 也要写两个for 一个渐亮的一个渐灭的

流水灯程序是keil的自带例子,你直接跑就是。void wait (void) { /* wait function */ ; /* only to delay for LED flashes */ } void main (void) { unsigned int i; /* Delay var */ unsigned

你用74HC595吧,只用3根线就可以控制了,一个74HC595输出为8位,这样可以控制8个LED,而且每个74HC595都可以级联的,例如一共有5个74HC595,都是级联的,所以实际上3个IO口即可控制5*8=40个LED!当然,级联的多少,就看你

重复1-4步即可。

用keil编一个用四个按钮控制16个灯变化的程序,能停止

点亮 小灯的程序我们第二课完成了,就是让 LED = 0。熄灭小灯的程序也很简单,就是 LED = 1。点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁了。我们首先复习一下

Keil uVision4实例 51单片机控制LED灯闪烁,关键看C语言的编程细节。建立项目:LED灯闪烁。新建C文件:LED灯闪烁 引用51头文件。将所有的灯都点亮。让所有的灯全部灭了。添加循环语句。添加一个变量。使用循环语句创造延迟。

流水灯程序是keil的自带例子,你直接跑就是。void wait (void) { /* wait function */ ; /* only to delay for LED flashes */ } void main (void) { unsigned int i; /* Delay var */ unsigned

4.上传程序:将编写好的程序上传到单片机中。将单片机通过USB线连接到计算机,选择正确的开发板和端口,然后点击上传按钮将程序烧录到单片机中。5.测试控制:完成上传后,单片机将开始执行程序。LED灯应该会按照程序中定义的亮灭

两种方法,一种是给驱动16和灯的口每次变化赋和显示值,这种最好理解,32次变化写32行输出然后每个输出后面再加一个延时就可以了。另一种是用位移指令for循环 也要写两个for 一个渐亮的一个渐灭的

3、P1=0x24,表示3、6亮,延时一段时间;4、P1=0x81,表示4、5亮,延时一段时间;重复1-4步即可。

你用74HC595吧,只用3根线就可以控制了,一个74HC595输出为8位,这样可以控制8个LED,而且每个74HC595都可以级联的,例如一共有5个74HC595,都是级联的,所以实际上3个IO口即可控制5*8=40个LED!当然,级联的多少,就看你

用keil编一个用四个按钮控制16个led灯形成不同变化的程序,能够停止变化

很简单啊,假定用P1驱动灯泡,按下列步骤: 1、P1=0x81,表示1、8亮,延时一段时间; 2、P1=0x42,表示2、7亮,延时一段时间; 3、P1=0x24,表示3、6亮,延时一段时间; 4、P1=0x81,表示4、5亮,延时一段时间; 重复1-4步即可。
怎么个控制法,是流水控制16个灯4种流水状态还是一个键控制4个led
你用74HC595吧,只用3根线就可以控制了,一个74HC595输出为8位,这样可以控制8个LED,而且每个74HC595都可以级联的,例如一共有5个74HC595,都是级联的,所以实际上3个IO口即可控制5*8=40个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 }希望可以帮到您哦。【回答】
P1口输出全0,8个LED灯就同时亮,延时一会,再输出全1,LED灯就全灭了。【摘要】 单片机程序,有一部分是要控制一个灯的亮灭,其它灭。但是结果是全亮,只有一个灯可以灭。想问问怎么解决 else { stop(); PORTA|=BIT(3);\x09 PORT【提问】 单片机程序,有一部分是要控制一个灯的亮灭,其它灭。但是结果是全亮,只有一个灯可以灭。想问问怎么解决 else { stop(); PORTA|=BIT(3);\x09 PORT【回答】 控制部分:主控单元以 STM32F103RBT6 单片机为核心,交流电压过零点信号提 取电路中产生的同步信号 TB 接到STM32F103RBT6 的 EXTI_Line0,此信号的下降沿将使 STM32F103RBT6 产生中断,以此为延时时间的起点。控制部分使用的是现有的最小系统板。【回答】 驱动部分:驱动部分主要由可控硅组成。可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流。动作快、寿命长、可靠性高。所以这里选用的是可控硅。驱动部分使用的是自己绘制的电路板【回答】 亲 希望我的回答对您有所帮助,祝您身体健康,万事如意【回答】 #include #include #include "DataType.h" #define uchar unsigned char #define uint unsigned int uchar count = 0; uint CSB_data; uchar edge_int2=0; uchar timer2_ONOFF=0; #include"Motor.h" #include "delay.h" #include "1602.h" #include "Lib.h" #include "CSB.h" #include "pwm.h" void io_init(void) {DDRA|=BIT(PA7);\x09 PORTA|=BIT(PA7); DDRB=0xf0; PORTB=0xf0; DDRA|=BIT(PA3);【提问】 DDRB &= ~(1<<PB2); PORTB &= ~(1<<PB2); DDRB |= (1<<PB3); PORTB |= (1<<PB3); } void init_devices(void) { CLI(); io_init(); LCD_init(); TCNT2=0x00; TCCR2=0x00; MCUCR&=~((1<<ISC01)|(1<<ISC11)); MCUCR|=((1<<ISC00)|(1<<ISC10)); MCUCSR|=(1<<ISC2); edge_int2=1; GICR|=(1<<INT0)|(1<<INT1); TIMSK = 0x41; SEI(); } #pragma interrupt_handler timer2_ovf_isr:5 //timer2 overflow【提问】 void timer2_ovf_isr(void) { timer2_ONOFF++; if (timer2_ONOFF>100) timer2_ONOFF=100;\x09 \x09TCNT2=0x00; } void start_SB(void) { PORTB |= (1<<PB3); delay_nus(15); PORTB &= ~(1<<PB3); } uchar Data[5]={0,0,0,0,0}; void main(void) {\x09 init_devices(); LCD_write_command(0x01); while(1) { LCD_write_string(0,0,"HL-2 AVR"); LCD_write_string(12,0,"CSB"); LCD_write_string(【提问】 LCD_write_string(0,1,"SPACE:"); CSB_data=CSB_data*1.72/100; if (CSB_data>30) { \x09 LCD_write_string(7,1,"Safe"); \x09 PORTA &= ~(1<<PA3); \x09 forward(); } else { stop(); PORTA|=BIT(3);\x09 PORTB|=BIT(6); change(CSB_data,Data); LCD_write_string(7,1,Data); LCD_write_string(12,1,"CM"); } 这是源代码,想要知道具体怎么改,谢谢【提问】 有没有具体的数据采集【回答】 上面总共是8个LED灯,运行的时候8个都亮,但是只有一个可以灭。想要只有一个会亮,其它不亮【提问】 P1口输出全0,8个LED灯就同时亮,延时一会,再输出全1,LED灯就全灭了。【回答】 请问有具体的代码吗,加在哪里【提问】 #include #include #define uint unsigned int// 宏定义变量 #define uchar unsigned char//宏定义变量 uchar temp;【回答】
要实物 还说仿真呢 硬件做好了吗 我做单片机的
先说一下,若干天前,我为一个百度知友回答过这样的问题,要求和你的一样,我不知道你是否认识他。 第二,你的这个程序,错误处实在太多了,第一个错误,你的main函数里没有while(1)死循环,程序差不多跑一次就没了,第二个错误,你的按键问题,没有等待按键抬起。 总之来说,你的程序,写的实在错误太多了,让我在百度知道上给你指出,恐怕比较费劲。 给你参考一下我的程序,你自己修改一下看看。 以下是我回答其他知友的问题: http://zhidao.baidu.com/question/537203808?&oldq=1