#include<regx51.h>//定义包含头文件
#include<intrins.h>//定义LED代替P2口
#define uchar unsigned char
#define uint unsigned int//宏定义
sbit K1=P3^0;
sbit K2=P3^3;
uchar j=0xfe;
bit flag=0;
void doudong_ys();
void qu_doudong();//延时子程序声明
//==============主函数================================
void delay_500ms( )
{uchar i,j,a;
for(i=0;i<4;i++)
for(j=0;j<100;j++)
for(a=0;a<250;a++);
}
//==============主函数================================
void main()
{while(1)
{
P3=0X0F;
if(K1==0)
{qu_doudong();flag=1;}
while(flag==1)
{P0=j;
delay_500ms();
j=_crol_(j,1);
if(K2==0)
{
{qu_doudong();
flag=0;
}
}
}
}
void qu_doudong()
{
if(K1==0)
{
do
{
while(K1==1);
doudong_ys();
}while(K1==1);
doudong_ys();
do
{
while(K1==0);
doudong_ys();
}while(K1==0);
}
if(K2==0)
{
do
{
while(K2==1);
doudong_ys();
}while(K2==1);
doudong_ys();
do
{
while(K2==0);
doudong_ys();
}while(K2==0);
}
}
//=================================================
//函数名:delay_1ms( )
//功能:利用for循环执行空操作来达到延时
//调用函数:无
//输入参数:x
//输出参数:无
//说明:延时的时间为1ms的子程序
//=================================================
void doudong_ys()
{
uchar i,j;
for(i=0;i<30;i++)
for(j=0;j<248;j++);
}
不知道哪里有问题,加了FOR循环在里面,想循环8次左右来回跑,仿真时都错了,只能这样子,现在的样子只能单向轮闪,我想让它跑到弟8盏灯后往回闪。怎么修改呢?求教一下
#include<intrins.h>//定义LED代替P2口
#define uchar unsigned char
#define uint unsigned int//宏定义
sbit K1=P3^0;
sbit K2=P3^3;
uchar j=0xfe;
bit flag=0;
void doudong_ys();
void qu_doudong();//延时子程序声明
//==============主函数================================
void delay_500ms( )
{uchar i,j,a;
for(i=0;i<4;i++)
for(j=0;j<100;j++)
for(a=0;a<250;a++);
}
//==============主函数================================
void main()
{while(1)
{
P3=0X0F;
if(K1==0)
{qu_doudong();flag=1;}
while(flag==1)
{P0=j;
delay_500ms();
j=_crol_(j,1);
if(K2==0)
{
{qu_doudong();
flag=0;
}
}
}
}
void qu_doudong()
{
if(K1==0)
{
do
{
while(K1==1);
doudong_ys();
}while(K1==1);
doudong_ys();
do
{
while(K1==0);
doudong_ys();
}while(K1==0);
}
if(K2==0)
{
do
{
while(K2==1);
doudong_ys();
}while(K2==1);
doudong_ys();
do
{
while(K2==0);
doudong_ys();
}while(K2==0);
}
}
//=================================================
//函数名:delay_1ms( )
//功能:利用for循环执行空操作来达到延时
//调用函数:无
//输入参数:x
//输出参数:无
//说明:延时的时间为1ms的子程序
//=================================================
void doudong_ys()
{
uchar i,j;
for(i=0;i<30;i++)
for(j=0;j<248;j++);
}
不知道哪里有问题,加了FOR循环在里面,想循环8次左右来回跑,仿真时都错了,只能这样子,现在的样子只能单向轮闪,我想让它跑到弟8盏灯后往回闪。怎么修改呢?求教一下