⑴ 流水灯原理图
AT89C51单片机流水灯c语言程序
1、首先先在proteus画出仿真图,方便仿真程序
2、下面来编写程序,先来写入头函数
3、根据自己在proteus画的图,定义一下管脚根据你的原理图进行编写
sbit p0=P1^0;
sbit p1=P1^1;
sbit p2=P1^2;
sbit p3=P1^3;
sbit p4=P1^4;
sbit p5=P1^5;
sbit p6=P1^6;
sbit p7=P1^7;
4、然后写一个延时函数,来调节流水灯的时间间隔延时时间自己定义
void mdelay(unsigned int t)
{
unsigned char n;
for(;t》0;t--)
for(n=0;n《125;n++)
{;}
}
5、下面就是主函数,包括流水灯的反复循环和j流水灯的方向
6、检查没有错误,编译一下。就可以进行仿真了
单片机32位LED花样流水灯程序及原理图
原理图
LED心形排布图:
程序:
#include《reg52
⑵ 求高手解说单片机流水灯的电路图(如下),我是菜鸟
74573是锁存器,你可以网上查这个芯片的引脚说明。
大概是这样,D0-D7是输入,Q0-Q7是输出,LE是锁存脚(LE=0是锁存),/OE是使能端(0使能)。
如果将LE=1,则Q0-Q7等于D0-D7。
将J14的1脚接地。
J12接P0,J21的2、3短接。
则当对应端口1可驱动LED
#define DOUT P0
sbit LE=p1^0;
DOUT=0x01; //D11亮。
⑶ 用单片机控制流水灯的六种方案,要程序电路图,详细讲解
;//*********************************************************
;//实现功能:本程序实现在P0口模拟一种流水灯程序
;//*********************************************************
p_out equ P0 ;宏定义P0为p_out
org 00h ;程序的开始地址
ajmp main ;跳到main
org 030h
;//******************主函数***************************
;//描 述:实现在P0口模拟一个流水灯程序
;//设计人: lishengling24
;//****************************************************
main: ;主函数
mov sp,#50h ;设置sp堆栈的初始位置
mov a,#0feh ;初始化acc
main_1:
mov p_out,a ;点亮一个灯
mov r1,#250 ;
mov r0,#250 ;
Call delay_time;调用时间延迟子程序,上面两句是设置延迟时间
mov p_out,#0ffh;熄灭灯
RL a ;循环左移一位准备点亮下一个灯
JMP main_1 ;跳到main_1循环
;//******************时间延迟函数**********************
;//描 述:用指令实现延时一段时间
;//入口参数:r1为高位,r0为低位,都是十六进制表示?
;//出口参数:无
;//设计人:lishengling24
;//****************************************************
delay_time:
push acc ;acc入栈
push psw ;psw入栈
mov a,r0 ;把r0赋给acc
inc r1 ;r1加1,因为djnz是先减1再比较是否为零,如果不加1
;当r1的初值为0的时候,减1后变成了0x0ff,改变了当
;初预想的延迟时间计数值
inc r0 ;道理和inc r1 一样,当然r0和r1的初值不能为0x0ff
loop:
nop
nop
nop
nop
nop
nop
djnz acc,loop ;
mov a,r0 ;
djnz r1,loop ;
pop psw ;psw出栈
pop acc ;acc出栈
ret
end ;需要其他5种方案的程序和电路,在网络HI我。
以下是C的写法:
//*********************************************************
//实现功能:本程序实现在P0口模拟一个流水灯程序
//*********************************************************
#include <reg51.h>
#define p_out P0 //宏定义输出的i/o口为p0
//******************时间延迟函数**********************
//描 述:用指令实现延时一段时间
//入口参数:int i,为时间延迟参数
//****************************************************
void delay_time(int i)
{
while(i)
i--;
}
//******************主函数***************************
//描 述:实现在P0口模拟一个流水灯程序
//****************************************************
void main(void)
{
unsigned char i=0; //初始化一个局部变量为0
p_out=0xff; //初始化将要输出的i/o口,输出高电平,熄灭所有灯
while(1)
{
for(i=0;i<8;i++)
{
p_out=~(1<<i);//点亮一个灯,
delay_time(50000); //延迟一段时间
p_out=0xff;//熄灭所有灯
}
}
}
⑷ 求51单片机P0口驱动流水灯的电路图
驱动电路图??
好像有点矛盾.....驱动应该是程序吧,而不是图...>
ps:P0不是做地址口使用时,需要加上拉电阻.......
公共端是接电源的....
⑸ 一个超级简单的用单片机控制流水灯实验,纠结好久就是没有点亮。请指点。或者给一个简单的流水灯电路图。
给你写个测试程序看看,LED亮不亮
#include "REG52.H"
sbit VALUE_OE = P2.5 //74HC573 [ L ] 引脚锁存脚
int main(void)
{
VALUE_OE = 1; //打开锁存
P1 = 0xFE; //P1.0LED亮
VALUE_OE = 0; //关闭锁存
while(1);
}
⑹ 51单片机流水灯的程序加电路图
#include<reg51.h>
#include<intrins.h>
//sbitLED1=P1^1;
//sfrLED2=P2;
unsignedchara;
unsignedintb;
unsignedintc;
unsignedintd;
voiddelay(intz);
voidmain()
{
while(1)
{
for(a=0x01;a!=0x00;a=a*2)
{
P2=~a;
delay(2);
}
d=0x08;
for(a=0x7f;d!=0x00;a=_cror_(a,1))
{
d=d-1;
P2=a;
delay(2);
}
for(d=0x02;d!=0x00;d--)
{
//b=b-1;
P2=0x00;
delay(2);
P2=0xff;
delay(2);
}
for(d=0x02;d!=0x00;d--)
{
//b=b-1;
P2=0xaa;
delay(2);
P2=0x55;
delay(2);
}
P2=0x18;
delay(1);
P2=0x24;
delay(1);
P2=0x42;
delay(1);
P2=0x81;
delay(1);
P2=0x42;
delay(1);
P2=0x24;
delay(1);
P2=0x18;
delay(1);
}
}
voiddelay(intz)
{
unsignedinty;
for(y=z;y!=0;y--)
{
for(b=208;b>1;b--)
for(c=37;c>1;c--){}
}
}
⑺ 求用单片机控制流水灯的最简单的电路图!
单片机流水灯是初学者的典型例程。不但需要实现,还需要理解,并通过实现来熟悉单片机原理及编程。因此,建议你到各种开发板网站下载专业套件,这样,会更有助于你的学习。
⑻ 求一份单片机流水灯电路图 越简单越好.......
这是proteus 绘制的电路图 按位移位方法:#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
void delay(uint k);void main(){
unsigned char temp;
temp = 0xfe;
while(1){
P2=temp;
delay(500);
P2=0Xff;
delay(500);
temp = _crol_(temp,1);
}
}
void delay(uint k){
uint i,j;
for(i=k;i>0;i--)
for(j=112;j>0;j--);
}
用数组的方法:#include<reg51.h>
void delay(unsigned int i);
unsigned char dis[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f);</p><p>void main(void)<br>{<br>unsigned char i;<br>while(1)<br>{<br>for(i=0;i<8;i++)<br>}P0=dis[i];
delay(500);
}
}
}void delay(unsigned int i)
{
unsigned int j;
for(;i!=0;i--)
for(j=3000;j>0;j--);
} 你看看哪种简单就用哪个吧
⑼ 急求一个单片机流水灯(16个灯)电路图!!
电路如下:
将16个LED的阴极(Led-、K极)连接到单片机的IO口(P1.0、P1.1...P1.7。。。),
LED的阳极(Led+、A极)串联一个560欧姆电阻(一共16个)到电源正极
(Vcc、5V)
如果要点亮一个Led的话(P1.0)只要
CLR P1.0
要熄灭一个Led的话(P1.0)只要
SETB P1.0
即可
够详细了吧?!
⑽ 单片机流水灯电路
可以把64个LED做成8*8的点阵,这样比较好,
如果再用译码器的话,IO口可以减为3+3个
如果再用串入并出的话,IO口可以为2个