这是我写的一个51单片机的流水灯程序,不知道为什么循环方式是这样的1-2-1-2-3-4-5-6-7-8
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/13 23:50:37
这是我写的一个51单片机的流水灯程序,不知道为什么循环方式是这样的1-2-1-2-3-4-5-6-7-8
#include
sbit been=P3^7;
void delay();
void main()
{
while(1)
{
P1=0x01;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led1
P1=0x02;
been=0;
delay();
P1=0x00;
been=1;
delay();
P1=0x04;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led3
P1=0x08;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led4
P1=0x10;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led5
P1=0x20;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led6
P1=0x40;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led7
P1=0x80;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led8
}
}
void delay()
{
unsigned int x,y;
for(x=285;x--;x>0)
for(y=400;y--;y>0);
}
#include
sbit been=P3^7;
void delay();
void main()
{
while(1)
{
P1=0x01;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led1
P1=0x02;
been=0;
delay();
P1=0x00;
been=1;
delay();
P1=0x04;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led3
P1=0x08;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led4
P1=0x10;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led5
P1=0x20;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led6
P1=0x40;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led7
P1=0x80;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led8
}
}
void delay()
{
unsigned int x,y;
for(x=285;x--;x>0)
for(y=400;y--;y>0);
}
程序本身没看出什么问题,但是单片机初始化后各端口是高电平,虽然不能驱动二极管.所以建议你把发光二极管正极接电源,负极接单片机.用低电平点亮. 我仿真了你的程序没发现你说的问题.
这是我写的一个51单片机的流水灯程序,不知道为什么循环方式是这样的1-2-1-2-3-4-5-6-7-8
51单片机.用C语言的_crol_()函数实现LED灯循环左移.为什么我的程序只亮一盏灯啊.没有循环啊
求一流水灯电路及程序.51单片机的.要达到以下效果.
花样流水灯电路原理是用51单片机控制的
1\3=0.3的循环,2\3=0.6的循环,1\3+2\3=1,为什么0.3的循环加上0.6的循环是等于0.9的循环而不
循环结构程序设计 有一数列 2/1 3/2 5/3 8/5 ...编写程序数列前20项之和, 我学的是C语言
设有程序段 int k=3 ;while(k)=k-1;则下面描述中正确的是 A一次不循环 B无限循环 Cwhile循环
51单片机控制12个led灯,分别接8个灯P0口,4个灯P1的前4个口,程序怎么写能实现从P0口到P1口的流水灯?
51单片机少写了一个循环语句,为什么还能执行循环,错在哪里呢?程序如下:
问个很弱智的问题~循环的程序.1 2 3 这个的无限循环,怎么写?别笑我真的不懂~
用AT89C51单片机的P2口控制8个Led的流水灯的C程序看不懂?
利用循环编写程序计算表达式1-2+3-4+5-6+7-8+9-10的值.