实现单片机信号灯1-8依次循环点亮的程序怎么写

如题所述

电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?

下面是c语言程序源码

#include <reg51.h>

void delay100ms();   //如果函数是在主函数后面定义,那么一定要在主函数前面声明                                         

void main()

{

int i;

i=0xfe;

while(1)

{P1=i;

i--;

delay100ms();

if(i==0)

i=0xfe;  

}

}

void delay100ms(void)//

{

unsigned char a,b,c;

for(c=19;c>0;c--)

for(b=20;b>0;b--)

for(a=230;a>0;a--)

温馨提示:内容为网友见解,仅供参考
无其他回答

实现单片机信号灯1-8依次循环点亮的程序怎么写?
把各个花样写在子函数,中断中对变量加1,在判断是否大于5,大于5就对变量清零。因为你要5种花样。主函数判断变量的值,1时执行从左到右依次点亮,2时执行从左到右逐个依次熄灭。依次下去 include "reg51.h" \/\/ 包含头文件 define uchar unsigned char void delay02s(void) \/\/ 延时0.2s...

实现单片机信号灯1-8依次循环点亮的程序怎么写
电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?下面是c语言程序源码 include <reg51.h> void delay100ms(); \/\/如果函数是在主函数后面定义...

51单片机实现LED流水灯
首先,选择P1口作为控制端口,通过输出不同的值来控制LED灯的点亮与熄灭。具体步骤如下:1. 点亮第八个LED灯,将P1口赋值为“0000 0000”。2. 只点亮第八个LED灯,对P1口赋值为“0111 1111”。3. 点亮第七个LED灯,对P1口赋值为“0011 1111”。以此类推,直至点亮第一个LED灯,对P1口赋值为...

如何用单片机实现流水灯,从一依次亮到八,再从八依次亮回一,一直...
对字节LED附初值1,做一个200mS的时钟,每200ms对字节LED值做左移1位指令(汇编可循环)。主程序中位寻址判断字节LED的bit(0-7)点亮相应的灯。或者直接P0=LED 纯想法、还没试过,感觉好玩,呵呵。 好像上述灯流的方式不对,不过可以改。。。

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

51单片机开发板八个led灯依次点亮(就是流水灯)然后再全部
600);D7=0;delay(600);} } 延时函数delay的实现如下:void delay(uint z){ uint x,y;for(x=100;x>0;x--){ for(y=z;y>0;y--){ } } 这段代码实现了8个LED灯的流水点亮效果,先点亮第一个LED,等待600毫秒后,再点亮第二个LED,依此类推,直到所有LED都点亮,然后循环重复。

...点亮,如此循环,变化间隔为1秒左右,用软件循环实现
k<125; k++) ;} } void main(){ uchar i,j;j=0x01;\/\/假如高电平灯亮 while(1){ j=0x01;\/\/假如高电平灯亮 for(i=0;i<8;i++){ P0=j;delay(1000);\/\/逐个循环点亮 j<<=1;} j=0xfe;for(i=0;i<8;i++){ P0=j;delay(1000); \/\/ 逐个循环熄灭 j<<=1;} } } ...

单片机 在8个led灯中循环切换,一个开关控制8个灯 默认第1个亮 按一...
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位 } } } 已通过仿真,符合你的要求!

用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)
while(1){ P3=0xfe;\/\/第一个灯亮 delay();\/\/延时 P3=0xfd;\/\/第二个灯亮 delay();P3=0xfb;\/\/第三个灯亮 delay();P3=0xf7;\/\/第四个灯亮 delay();P3=0xef;\/\/第五个灯亮 delay();P3=0xdf;\/\/第六个灯亮 delay();P3=0xbf;\/\/第七个灯亮 delay();P3=0x7f;\/\/第八个灯亮...

单片机用汇编做一个控制8个LED灯泡从左到右依次点亮,最后全部亮,再全部...
void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } \/\/主程序 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);...

相似回答