标题:
求教实现灯闪烁并同时执行流水灯的单片机代码
[打印本页]
作者:
zyj0603
时间:
2018-11-25 20:06
标题:
求教实现灯闪烁并同时执行流水灯的单片机代码
实现一号灯闪烁,并利用中断使得500ms执行一次流水灯,一次流水灯结束后一号灯重新闪烁,等待下一个500ms,重复如此。
急需解答,最好是完整代码,谢谢
作者:
zhengaohui
时间:
2018-11-26 15:22
//临时打的,没有测过,有错误稍微改改
//就好了
#include "reg52.h"
sbir led=P1^0;
char code a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(int t)//闪烁的延时
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<t;j++)
}
int main(void)
{
int flag=0;
int count=0;
int z;
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
led=~led;
delay(150);
if(flag==1)
{
for(z=0;z<8;z++)
{
flag=0;
P1=a[z];
delay(100);
}
}
}
}
void time0(void) interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
count++;
if(count>=10)
{
flag=1;
count=0;
}
}
复制代码
作者:
灭雷决88
时间:
2018-11-26 17:27
#include"reg52.h"
void delay(unsigned int i)//延时函数
{
unsigned char j=0;
while(i--)
for(j=0;j<200;j++);
}
void main()//主函数
{
//设你的A通道是P0 B通道是P1
P0=0xff;P1=0x55;
while(1)
{
P0=~P0;//按位取反
P1=~P1;
delay(1000);
作者:
小黑来经营
时间:
2018-11-26 18:19
//临时打的,没有测过,有错误稍微改改
//就好了
#include "reg52.h"
sbir led=P1^0;
char code a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(int t)//闪烁的延时
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<t;j++)
}
int main(void)
{
int flag=0;
int count=0;
int z;
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
led=~led;
delay(150);
if(flag==1)
{
for(z=0;z<8;z++)
{
flag=0;
P1=a[z];
delay(100);
}
}
}
}
void time0(void) interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
count++;
if(count>=10)
{
flag=1;
count=0;
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1