LZ 要是 懂汇编的话,就能知道这是为什么了。
事实上,LZ 的程序是个单次系统,结果应该如同LZ 所说的一样,一个回合后就结束了。
可是,实际使用中,产品都是循环系统,不做单次系统,而很多新手在编程序的时候,也会经常遗漏循环语句,导致循环系统变成了单次系统。于是软件制作方(如KEIL)就在软件上增加了一个功能,编译的时候,将整个程序的外沿,套上一个死循环,保证不出现单次系统。
LZ可以通过查看编译时的 反汇编窗口,里面的汇编程序中,主函数是多了一个循环语句的。
# P1上接LED等。
#include "reg51h"
void delayms(unsigned int x)
{
int i,j;
for(i=x;i>0;i--)
for(j=0;j<120;j++);
}
void main(void)
{
char i;
for(i=0;i<6;i++)
{
P1 = ~P1;
delayms(1000);
}
while(1);
}
// 定义 LED 的数码管编号
int led = 1;
// 定义 LED 闪烁的间隔时间,单位为毫秒
int interval = 200;
void setup() {
// 初始化数字输出为输出模式
pinMode(led, OUTPUT);
}
void loop() {
// 让 LED 亮起来
digitalWrite(led, HIGH);
// 延迟一段时间
delay(interval);
// 让 LED 熄灭
digitalWrite(led, LOW);
// 延迟一段时间
delay(interval);
}
#include<reg51h>
#define uint unsigned int
void yanshi(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
P1=0x00;
yanshi(400);
P1=0xff;
yanshi(200);
P1=0x00;
yanshi(400);
P1=0xff;
yanshi(1000);
}
}
这是我自己写的,我也是刚入门。这个程序我试过了,能行,一起学习吧。。
以上就是关于单片机LED灯闪烁延迟程序全部的内容,包括:单片机LED灯闪烁延迟程序、用C语言编写一个单片机控制LED灯闪烁三次的程序,急求!、我刚学单片机,想让LED上的第一个小灯间隔200MS闪烁,我编的程序是这样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)