标题:
怎么在这单片机程序的基础上 ,让led灯依次闪烁三下再灭掉 再到下一个 现在是依次灭...
[打印本页]
作者:
蒋蒋丫丫
时间:
2022-6-13 12:59
标题:
怎么在这单片机程序的基础上 ,让led灯依次闪烁三下再灭掉 再到下一个 现在是依次灭...
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b;
void time0()interrupt 1
{
a++;b++;TL0=0XFF;TH0=0X4B;
}
void main()
{ uchar temp;
P1=0xfe; //1111 1110
TMOD=0X01;
TL0=0XFF; //定时器赋初值50ms
TH0=0X4B;
ET0=1; //开中断
EA=1;
TR0=1; //开定时器
while(1)
{
if(b<420)
{
if(a==20) //设定1s
{
temp=P1;
temp=_crol_(temp,1); //左移动一位
P1=temp;
a=0;
}
if(b==160)
{P1=0x00; } //全亮
if(b==200) //以下依次灭
{P1=0x01;}
if(b==220)
{P1=0x03;}
if(b==240)
{ P1=0x07;}
if(b==260)
{P1=0x0f; }
if(b==280)
{ P1=0x1f;}
if(b==300)
{ P1=0x3f;}
if(b==320)
{ P1=0x7f; }
if(b>340) //3闪
{
P1=0xff;
if(b==344)
{
a=0;
P1=~P1;
while(a!=18);
P1=~P1;
while(a!=18);
}
if(b==364)
{
a=0;
P1=~P1;
while(a!=18);
P1=~P1;
while(a!=18);
}
if(b==384)
{
a=0;
P1=~P1;
while(a!=18);
P1=~P1;
while(a!=18);
}
P1=0xff;
}
if(b>360) //全灭
{ P1=0xff;}
}
else
{ b=0; break;}
}
}
作者:
buyuziyu
时间:
2022-6-15 14:49
以后直接把工程发出来吧
作者:
lkc8210
时间:
2022-6-15 15:38
如此类推
if(b==200) //以下依次灭
{
P1=0x01;
if(++flash3<3)
{
b=160;
}else{
flash3 = 0;
}
}
if(b==220)
{
P1=0x03;
if(++flash3<3)
{
b=200;
}else{
flash3 = 0;
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1