哪位大虾帮帮我用AT89C51单片机控制8个Led的流水灯的单片机程序 希望是能够仿真运行的啊!急求

如题所述

为了实现8个LED的流水灯效果,你需要使用正确的LED型号,例如LED-RED。下面是一个使用AT89C51单片机控制8个LED流水灯的程序示例。这个程序能够在仿真环境下运行。

程序代码如下:

#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar i, j;
void delay(uint ms) {
uchar k;
while(ms--)
for(k=0;k<123;k++);
}
void main() {
while(1) {
i=0xfe;
for(j=0;j<7;j++) {
P1=i;
i=_crol_(i,1);
delay(500);
}
for(j=0;j<7;j++) {
P1=i;
i=_cror_(i,1);
delay(500);
}
for(j=0;j<8;j++) {
P1=i;
i=i<<1;
delay(500);
}
i=0x7f;
for(j=0;j<8;j++) {
P1=i;
i=i>>1;
delay(500);
}
}
}

这个程序首先设置了8个LED的初始状态,然后通过循环依次点亮每个LED,并在每个LED点亮后进行一定的延迟。通过改变i的值和使用位操作,实现了流水灯的效果。

使用_crol_和_cror_函数可以实现左移和右移操作,而delay函数用于产生延迟效果。整个程序通过在主循环中不断执行这些操作,实现了LED流水灯的动态效果。

注意,在仿真环境中运行这个程序前,确保你的仿真软件支持AT89C51单片机,并且已经正确配置了相关的寄存器和时钟设置。

如果你在编写和调试这个程序时遇到任何问题,可以尝试调整延迟时间或检查LED连接是否正确。希望这个示例能够帮助你实现预期的效果。
温馨提示:内容为网友见解,仅供参考
无其他回答

哪位大虾帮帮我用AT89C51单片机控制8个Led的流水灯的单片机程序...
为了实现8个LED的流水灯效果,你需要使用正确的LED型号,例如LED-RED。下面是一个使用AT89C51单片机控制8个LED流水灯的程序示例。这个程序能够在仿真环境下运行。程序代码如下:include<reg51.h> include<intrins.h> define uint unsigned int define uchar unsigned char uchar i, j;void delay(uint ms...

哪位大虾帮帮我用AT89C51单片机控制8个Led的流水灯的单片机程序...
你的LED用错模型了,要用LED-RED 那几个后面带颜色的。include<reg51.h> include<intrins.h> define uint unsigned int define uchar unsigned char uchar i,j;void delay(uint ms){ uchar k;while(ms--)for(k=0;k<123;k++);} void main(){ while(1){ i=0xfe;for(j=0;j<7;j++...

哪位大神有用用AT89C51单片机的P2口控制8个Led的流水灯的汇编程序
for(i=0;i<8;i++) \/\/加入 for循环,表明for循环大括号中的程序循环执行8次 { Delay(50000);P2<<=1;P2=P1|0x01; \/\/左移后,最右端自动赋值0,所以需要该语句赋值1 } P2=0xfe; \/\/重新赋初始值 \/\/主循环中添加其他需要一直工作的程序 } } \/*--- 延时函数,含有输入参数 ...

AT89C51单片机的P1口控制8盏LED流水灯
for(i=0;i<8;i++) \/\/ for循环语句,完成8个循环 { P1= ~ j; \/\/ 对变量j 中的值按位取反后,从P1口输出 delay02s( ); \/\/ 延时0.2s j= j<<1; \/\/ 左移1位 } j=0x80; \/\/ 设置右移初始值j为0x80 for (i=0;i<8;i++){ P1= ~ j;delay02s( ...

用AT89C51单片机的P2口控制8个Led的流水灯的C程序看不懂?
if(LEDDirection) \/*当LEDDirection=1时,0000 0001左移LEDIndex位,取反后送给P2端口,点亮一个LED*\/ P2 = ~(0x01<<LEDIndex);else \/*当LEDDirection=0时,1000 0000右移LEDIndex位,取反后送给P2端口,点亮一个LED*\/ P2 = ~(0x80>>LEDIndex);if(LEDIndex==7) \/*当一次循环结束时,...

用单片机控制的LED流水灯设计(电路、程序全部给出)
硬件配置: 构建基础硬件平台 我们的核心是AT89C51单片机最小系统,其中包括8个LED灯、稳定工作的晶振,如图所示。每个LED的亮度控制权掌握在P1口的电平变换中,巧妙地调整即可实现动态的点亮效果。软件编程:点亮LED的艺术 流水灯的魅力在于其动态变化,而软件编程则是关键。这里,我们将采用位操作法,通过...

用单片机控制的LED流水灯设计(电路、程序全部给出)
硬件部分,流水灯基于单片机最小应用系统构建,仅需八个LED、晶振、复位、电源等基本元件,每个LED的亮灭控制依赖P1口的电平调节。通过控制P1.0到P1.7的电平变化,连续点亮和熄灭,创造出流水灯效果。软件编程部分,有三种方法:位控法通过逐个位操作控制LED,虽然直观但代码较长;循环移位法利用循环指令...

用单片机控制的LED流水灯设计
实现流水灯功能的关键在于控制单片机I\/O口电平,通过编程实现LED的点亮与熄灭。本设计采用多种编程方法,包括位控法、循环移位法和查表法。3.1 位控法 通过顺序控制P1口的每个位,实现LED的循环点亮与熄灭。程序简单,但代码量大。3.2 循环移位法 利用循环移位指令,简化代码,实现LED的流水效果。3....

...AT89C51,单片机,帮我写个控制信号灯的程序~thank you
流水灯呀:你把单片机的P0口就是左上角的32~39号引脚接上拉电阻(10K排阻)后,分别与1K电阻和发光二级管串联另一端接地,因为P0口带负载能力比较强所以用它。硬件连好了就可以编程了(最小系统你会吧我就不说了)C语言是根据硬件编程的程序如下:include<reg52.h> define uint unsigned int defin...

求高手给个AT89C51单片机流水灯电路图(PROTEL软件生成PCB,带源代码...
include <reg51.h> void delay(){ unsigned int i;for(i=0;i<32000;i++) ;} void main(){int a;while(a);{ P1 = 0xfe;delay();P1 = 0xfd;delay();P1 = 0xfb;delay();P1 = 0xf7;delay();P1 = 0xef;delay();P1 = 0xdf;delay();P1 = 0xbf;delay();P1 = 0x7f;d...

相似回答
大家正在搜