标题: 用单片机中断方式实现八位LED流水灯,求大神帮我这个菜鸟改改吧! [打印本页]

作者: lhblhb    时间: 2019-1-29 14:00
标题: 用单片机中断方式实现八位LED流水灯,求大神帮我这个菜鸟改改吧!
#include "reg52.h"
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned int
#define led P0
void delay(uint i)
{
while(i--);
}
void timeo()
{
TMOD|=0x01;
TH0=0xb0;
   TL0=0x3c;
TR0=1;
ET0=1;
EA=1;
}
void main()
{

timeo();
while(1)
{
  ;
}
}
void Time0() interrupt 1
{ uchar m;
uchar J;
static uint i=20;
J=0x01;
TH0=0xb0;
   TL0=0x3c;
i--;

if(i==0)
{
  for(m=0;m<7;m++)
  {
   J=(1<<J);
   led=J;
   delay(50000);
   i=20;
  }
}
   
}





作者: wulin    时间: 2019-1-29 14:00
#define uint unsigned int
#define uchar unsigned int
#define led P0
/*
void delay(uint i)
{
        while(i--);
}*/
void timeo()
{
        TMOD|=0x01;
        TH0=0xb0;
        TL0=0x3c;
        TR0=1;
        ET0=1;
        EA=1;
}
void main()
{
        timeo();
        led=0x01;
        while(1)
        {
          ;
        }
}
void Time0() interrupt 1
{
        static uint i=20;
        TH0=0xb0;
        TL0=0x3c;
        i--;       
        if(i==0)
        {
                i=20;
                led=led<<1;
                if(led==0x00)
                        led=0x01;
        }
}   

作者: yzwzfyz    时间: 2019-1-29 16:16
请问:你中断的目的是什么?延时的目的又是什么呢?
作者: lhblhb    时间: 2019-1-29 17:02
T0产生1s定时,使p0口控制的八个指示灯每隔1轮流闪亮
作者: lhblhb    时间: 2019-1-29 17:06
wulin 发表于 2019-1-29 14:00
#define uint unsigned int
#define uchar unsigned int
#define led P0

谢谢谢谢,我犯了个低级错误,初值算错了
作者: zhengchong60    时间: 2019-1-29 17:31
还在哪里问啥?wulin己经帮楼主解决了!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1