单片机:谁有C语言双灯点亮程序呀?
来源:百度知道 编辑:UC知道 时间:2024/06/05 19:36:09
就是有两个灯同时亮的流水灯程序
为什么第一个用不得啊?
第二个也不能同时有两个灯亮,只有一个灯来回亮?
能再帮我解释一下吗?
可能是我不会弄,我按照大家给的程序原样放到keil里生成.hex文件,然后再放到单片机里,但除了第一个回答 里的第二个程序可以一个灯来回亮外,其他程序灯都不亮,?不知是为什么...
我的八个灯是从AT89s52的p2口连出来的
为什么第一个用不得啊?
第二个也不能同时有两个灯亮,只有一个灯来回亮?
能再帮我解释一下吗?
可能是我不会弄,我按照大家给的程序原样放到keil里生成.hex文件,然后再放到单片机里,但除了第一个回答 里的第二个程序可以一个灯来回亮外,其他程序灯都不亮,?不知是为什么...
我的八个灯是从AT89s52的p2口连出来的
我的是接P1口的,换成P2就行了试试吧
低电平点亮
#include<reg51.h>
void main(void)
{
unsigned int t,i;
long int y;//改变值改变时间
P2=0xfc;
while(1)
{
t=P2>>6;
i=P2<<2;
P2=t|i;
for(y=0;y<40000;y++);
}
}
你是说这样? 如果要单向流动就删掉一个for循环。
#include <reg52.h>
void Delay(unsigned int j)
{ unsigned int i,k;
for(i=0;i<=j;i++)
for(k=0;k<800;k++) ;
}
void main()
{
unsigned char i,j,MOVE;
while(1)
{
MOVE=0x03;
for(i=0;i<8;i++)
{
P1=~MOVE;
Delay(80);
MOVE<<=1;
}
MOVE=0xC0;
for(j=0;j<8;j++)
{
P1=~MOVE;
Delay(80);
MOVE>>=1;
};