找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2517|回復(fù): 2
收起左側(cè)

LED閃爍

[復(fù)制鏈接]
ID:70976 發(fā)表于 2014-12-27 14:48 | 顯示全部樓層 |閱讀模式
/************************************1*************************************
標(biāo)題: LED閃爍
作者: aphi
日期: 2009.5.26  OK!
軟件: Keil uVision3
芯片: STC89C51
說(shuō)明:要實(shí)現(xiàn)led 閃爍,也就是一下亮一下熄,如此反復(fù),但由于單片機(jī)執(zhí)行指令時(shí)間是微
     秒級(jí),由于人眼視覺(jué)暫留,我們會(huì)看到LED一直在亮,所以要讓亮和熄延時(shí)一段時(shí)間。
     本程序采用while軟件延時(shí) .
***************************************************************************/
#include<reg52.h>
sbit d1=P1^0 ;
unsigned int a;
void main()
{
while(1)       //無(wú)限循環(huán)
{
  a=51000;
  d1=0;
  while(a--);
  a=51000;
  d1=1;  
  while(a--);
}
}



/*********************************2****************************************
標(biāo)題: LED閃爍
作者: aphi
日期: 2009.5.26  OK!
軟件: Keil uVision3
芯片: STC89C51
說(shuō)明: 本程序采用for軟件延時(shí) .
***************************************************************************/
#include<reg52.h>
sbit d1=P1^0;
unsigned int a;
void main()
{
for(;;)                         //無(wú)限循環(huán)
{  
  d1=0;
  for(a=51000;a>0;a--);
  d1=1;  
  for(a=51000;a>0;a--);
}
}

/*********************************3****************************************
標(biāo)題: LED閃爍
作者: aphi
日期: 2009.5.26  OK!
軟件: Keil uVision3
芯片: STC89C51.
說(shuō)明: 本程序采用定時(shí)器軟件延時(shí),判斷溢出。
***************************************************************************/
#include<reg52.h>
sbit d1=P1^1;
void delay(unsigned int i)
{
TMOD=0X01;                        
IE=0X00;
TR0=1;
while(i!=0)
{
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  while(TF0!=1);            //判斷溢出
  TF0=0;
  i--;
}
TR0=0;
}
void main()
{
while(1)
{
  d1=0;
  delay(10);
  d1=1;
  delay(10);
}
}


/*********************************4****************************************
標(biāo)題: LED閃爍
作者: aphi
日期: 2009.5.26  OK!
軟件: Keil uVision3
芯片: STC89C51
說(shuō)明: 本程序采用定時(shí)器軟件延時(shí),等待中斷。
***************************************************************************/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit P1_0=P1^0;
uchar a;
void main()
{
   TMOD=0x01;
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   EA=1;
   ET0=1;
   TR0=1;
   while(1);//等待中斷產(chǎn)生
}

void timer0() interrupt 1
{
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   a++;
   if(a==10)
   {
    a=0;
    P1_0=~P1_0;
   }
}

回復(fù)

使用道具 舉報(bào)

ID:224229 發(fā)表于 2017-8-9 20:21 | 顯示全部樓層
要是我想讓所有的燈同時(shí)閃爍,或者幾個(gè)特殊位置閃爍,而不去逐個(gè)定義sbit,怎么破/
回復(fù)

使用道具 舉報(bào)

ID:151219 發(fā)表于 2017-8-10 21:47 | 顯示全部樓層
直接對(duì)一組IO口賦值

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表