單片機流水燈

上篇給大家分享了單個LED的點亮與閃爍,這次給大家分享一下怎樣用單片機控制LED實現流水燈效果。

所需元器件如下:
STC89C52RC芯片 *1
10K電阻 *1
330Ω電阻 *8
10uF 電解電容 *1
22pF 瓷片電容 *2
12MHz晶振 *1
按鍵 *1
LED燈 *8

電路圖如下:

在這裏插入圖片描述
代碼如下:

/*************** LED流水燈****************/
#include "reg52.h"			 //此文件中定義了單片機的一些特殊功能寄存器
#include<intrins.h>		//因爲要用到左右移函數,所以加入這個頭文件

typedef unsigned int u16;	  //對數據類型進行聲明定義
typedef unsigned char u8;     //對數據類型進行聲明定義
#define LED P0	   //將P0口定義爲LED後面就可以使用LED代替P0口

void delay(u16 i)    //延時函數,i=1時,大約延時10us
{
	while(i--);	     //利用i自減循環以達到時間的流逝
}
void main()       //主函數
{
	u8 z;        //定義一個變量z
	LED=~0x01;
	delay(50000); //大約延時0.5s	
	{	
		while(1)
		for(z=0;z<8;z++)    //循環8次,實現8個LED燈的逐漸點亮
		{
			LED=~(0x01<<z);	 //將1左移i位,然後將結果賦值到P0口
			delay(10000);     //大約延時0.5s
		}
	}		
}

仿真電路圖如下:

在這裏插入圖片描述
後續會給大家分享呼吸燈,心形燈等代碼以及實物電路圖~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章