求STC89C52的单片机跑马灯C语言程序
发布网友
发布时间:2022-04-24 23:37
我来回答
共5个回答
热心网友
时间:2023-10-14 22:34
int runlinght()
{int i,j;
j=1;
for(i=0;i<8;i++)
{P[i]=(j<<i); //假设输出高点亮
timedelay();
};
时间的问题,这里你只要在延时函数里解决就OK了,你在主函数里面计算调用点灯函数的次数,再用这个标志去改变延时函数的参数。
热心网友
时间:2023-10-14 22:35
#include<reg51.h>
#define uint unsigned int
void delay(int m);
void main()
{
uint temp=0xfe;
uint k,i,count;
P2=temp;
while(1)
{
while(k<8)
{
switch(count)
{case 0:
case 1:delay(50);break;
case 2:
case 3:delay(25);break;
case 4:
case 5:delay(100);break;
}
if(temp==0xff) temp<<=1;
else temp=(temp<<1)+1;
P2=temp;
k++;
}
count++;
if(count>5) count=0;
}
}
void delay(int m) //要想得到精确的延时,改成用定时器
{
for(i=0;i<m;i++)
for(j=0;j<110;j++);
热心网友
时间:2023-10-14 22:35
#define uint unsigned int
#define uchar unsigned int
void fun(uint sec)
{
uchar i,j;
j=1;
for(i=0;i<8;i++)
{P[i]=(j<<i); //假设输出高点亮
timedelay(sec);//根据输入的形参来决定延时的长久
};
热心网友
时间:2023-10-14 22:36
int
runlinght()
{int
i,j;
j=1;
for(i=0;i<8;i++)
{P[i]=(j<<i);
//假设输出高点亮
timedelay();
};
时间的问题,这里你只要在延时函数里解决就OK了,你在主函数里面计算调用点灯函数的次数,再用这个标志去改变延时函数的参数。
热心网友
时间:2023-10-14 22:36
#define
uint
unsigned
int
#define
uchar
unsigned
int
void
fun(uint
sec)
{
uchar
i,j;
j=1;
for(i=0;i<8;i++)
{P[i]=(j<<i);
//假设输出高点亮
timedelay(sec);//根据输入的形参来决定延时的长久
};