在第二个for的时候,“a"的初始值是第一个for循环里a自减后的值,也就是说第二个for的时候“a”的值已经为0了 void man(){ int a;while(1){ led1 = 1;for(a=30000; a>0; a--);led1 = 0;for(a=

如果是直接烧程序的话,并且你那个二极管是高电平亮的话,那就可能是你单片机的最小系统有问题了;如果是在仿真器上运行你自己会做了,这个就不用说了。最小系统有问题一般是你那个复位电路有没有接错,再用示波器看看晶振

你写的程序并没有加载到工程中,只是写了程序没有用的,不加到工程中,是不能编译的。程序是对的。见下图,首先要把写的程序保存,然后在画红圈的位置,点鼠标右键,把这个程序加进来,加载进来后,左边应该是那样的。

首先检查硬件,驱动方式有没有问题,电流够不够大,延时合不合理?如果硬件不确定的的话,试一试用软件仿真,你是直接驱动IO口,功能还是很简单的,keil的软件仿真能够隔开你的硬件,程序单步执行,看端口输出能不能达到设计要

现在主要是你得确保你电路没有问题,一般情况下 LED正极串限流电阻接VCC,负极接单片机引脚,低电平亮高电平灭,如果你是 LED正极接单片机引脚,负极接地的话,高电平不一定亮哦,有的单片机引脚输出没有那么大电流的。

1、限流电阻不合适。2、驱动LED的方式不对,LED分高电平触发(LED的阴极接地,阳极接IO口,但必须保证所使用的IO具备上拉电阻或者内部有上拉推挽电路,例如:传统51单片机的P0口内部是不具备上拉推挽电路的(就是所谓的漏

LED=1;for(i=0;i<10000;i++);} }

新手学习51单片机led小灯闪烁程序编译正确,但却无法闪烁仿真时只能运行到led=0

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

CALL PRG2 ; 灭且静音 SJMP 0 ;--- PRG1:MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0, #255 ; 8个led灯灭

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

1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。3、接着创建延迟函数,如下图所示,输入以下代码。4、然后创建C语言主函数,如下图

端口P0对应8个led;端口清零;延时500ms;端口取反;循环3,4;

谁能告诉我用Keil软件进行编程实现控制8个LED灯共同闪烁

硬件led灯led |举报 答题抽奖 首次认真答题后 即可获得3次抽奖机会,100%中奖。 更多问题 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 c51 led 闪烁 按键 搜索资料本

单片机驱动LED灯的源程序:include //头文件。define uint unsigned int define uchar unsigned char sbit LED1=P1^7; //位定义。void delay_ms(uint);//mS级带参数延时函数。void main(){ while(1){ LE

led的闪烁是通过一定频率的开关led实现的。如果开关频率太快,人类是看不出来是在闪烁,所以开关频率要低一些,比较高的切换频率可以用来控制led亮度(PWM),或者用来做数码管显示。实现方式主要有两种方式:(1)使用代码循环做为

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

     delay(200);  //实参“100”用来调节延时时间。     P0_0=1;    //熄灭LED       &#

我写的这个程序应该可以,按一下灯亮,再按一下灯灭 include "REG52.H"sbit LED1_01 = P1^1;//LED灯 sbit KEY0_01 = P1^2;//按键 void Delay_1ms(unsigned int Time){ unsigned int x,y;for(x = Time;

上图程序,最后是“长灭”。如果想要“常亮”,就在 SJMP $ 前,插入一行:MOV P2,#0 即可。

想在这个程序里加一个叫LED灯闪烁的程序,跪求~

用74hc595芯片做输出,即可实现三个端口控制多输出的问题。对于超过八输出,再增加一个595芯片即可实现。

很简单,用rand函数和srand函数,这样将得到的值对8取余数,即rand%8,就可以点亮随机的灯了,至于其他如何点亮环节还有延时的你可以自己编写,想学单片机的人是必须学的,我也就不提示了,这只是个思路,要是全给你完整代

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

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

单片机 8个LED灯随机闪烁怎么做?

include unsigned char cnt=0;sbit led=P1^0;void t0isr() interrupt 1 { TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt++;if(cnt>=10)led=~led;} main(){ TMOD=0x01;TH0=(65536-50000)/

1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回值作延时函数参数,关闭LED,利用键盘返回值作延时函数参数。2.精确解决方案——定时器

新建C文件:LED灯闪烁 引用51头文件。将所有的灯都点亮。让所有的灯全部灭了。添加循环语句。添加一个变量。使用循环语句创造延迟。

1、首先利用16位定时器1实现定时1s,控制LPC1114微控制器的GPIO引脚PIO19上的LED灯状态反转。2、其次设置16位定时器1工作在PWM模式,利用另外一个定时器定时增大或者减小占空比。3、最后实现PIO1_9上的LED灯渐亮渐灭的呼吸

LED = 1; //熄灭小灯 for (i=0; i30000; i++); //延时一段时间 } } 大家把这个程序编译一下,下载到里,就会发现 LED2 这个小灯会闪烁了。

keil编程led灯闪烁调节速度

1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。3、接着创建延迟函数,如下图所示,输入以下代码。4、然后创建C语言主函数,如下图

1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回值作延时函数参数,关闭LED,利用键盘返回值作延时函数参数。2.精确解决方案——定时器

现在,这个程序应该只会让LED闪烁三次,然后停止。

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

Keil uVision4实例 51单片机控制LED灯闪烁

1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。 2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。 3、接着创建延迟函数,如下图所示,输入以下代码。 4、然后创建C语言主函数,如下图所示,输入以下代码。 5、接着输入对输出取反,最后调用延迟函数,如下图所示就完成了。
用两个定时器指令编写一个闪烁电路的程序
void delay_ms(int ms) { int a=1000; int b=1000; int a=a*ms; while(a--) while(b--); } void main() { while(1) { p2=0; p2.0 = 1; // 2 delay_ms(1000); p2.0 = 0; p2.1 = 1; // 0 delay_ms(1000); p2.1 = 0; p2.2 = 1; // 1 delay_ms(1000); p2.2 = 0; p2.3 = 1; // 4 delay_ms(1000); p2.3 = 0; } }
方法: 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); }
#include#define uchar unsigned charvoid delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){while(1) { P0=0x00; delay(200); P0=0xff; delay(200); }}
P1.0口加上270Ω上拉电阻,P1口是准双向口不能输出电流 先将delay的时间变短一些,或去掉delay看看。计算机仿真的速度没那么快。
#includetypedef unsigned int uint16;typedef unsigned char uint8;sbit ADDR0=P1^0; sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ADDR3=P1^3;sbit ENLED=P1^4;sbit LED2=P0^0;void delay(uint8) //////////////////////////////////////////////////////// //再这里加个分号main(){ uint8 counter=0; //定义一个累加变量 ENLED=0;ADDR3=0; //打开74HC138译码器(3线8线译码器) ADDR2=1;ADDR1=1;ADDR0=0; //通过输入信号110使输出端LEDS6输入信号0 TMOD=0x01; //设定计数器T0的模式为16位定时器 TH0=0xDC;TL0=0x00; //给16位定时器的高八位和低八位赋初值,累加到溢出清零刚好0.01S TR0=1; //打开定时器,16位定时器从初值开始+1 while(1) { if(1==TF0) //TF是溢出标志,TF=0代表16位定时器累加到清零溢出 { TH0=0xDC;TL0=0x00; //使16位定时器变回初值 TF0=0; //手动给溢出标志TF清零 counter++; //溢出一次,counter+1一次 } if(100==counter) //重复溢出100次,也就是16位定时器从初值到清零溢出循环了100次0.01×100=1S { counter=0; //counter清零进入下一轮1S延迟 LED2=~LED2; //LED2如果是亮的就变成暗的,如果是暗的就变成亮的,每次亮或灭间隔1S } }}