找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

呼吸燈的實現(xiàn)

[復(fù)制鏈接]
ID:212403 發(fā)表于 2017-6-18 23:19 | 顯示全部樓層 |閱讀模式
硬件的原理設(shè)計是怎樣的呢?現(xiàn)在軟件編程方面大概的想法:

#include<reg52.h> //包含頭文件,一般情況不需要改動,
//頭文件包含特殊功能寄存器的定義

/*-------------------------IO口定義----------------------------*/
sbit LED0=P1^0;// sbit 關(guān)鍵字 定義 LEDP1.0端口,LED是自己任意定義且容易記憶的符號


void Delay(unsigned int t); //函數(shù)聲明
/*------------------------------------------------
主函數(shù)
------------------------------------------------*/
void main (void)
{
  
unsigned int CYCLE=600,PWM_LOW=0;//定義周期并賦值

while (1) //主循環(huán)
{
LED0=1;
Delay(60000); //特意加延時,可以看到熄滅的過程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){//PWM_LOW表示低
//電平時間,這個循環(huán)中低電平時長從1累加到CYCLE(周期)的值,即600

  LED0=0; //點亮LED
   Delay(PWM_LOW);//延時長度,600次循環(huán)中從1加至599
  LED0=1; //熄滅LED
   Delay(CYCLE-PWM_LOW);//延時長度,600次循環(huán)中從599減至1

}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){//與逐漸變亮相反的過程

  LED0=0;
  Delay(PWM_LOW);
  LED0=1;
   Delay(CYCLE-PWM_LOW);

}
//主循環(huán)中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延時函數(shù),含有輸入?yún)?shù)unsigned int t,無返回值
unsigned int 是定義無符號整形變量,其值的范圍是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
回復(fù)

使用道具 舉報

ID:177855 發(fā)表于 2017-6-19 11:38 | 顯示全部樓層
有人試過沒?怎么樣?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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