對單片機開發(fā)者來說,使用8051單片機制作圣誕燈并不陌生。英銳恩單片機開發(fā)工程師分享一個學習8051單片機入門案例:圣誕燈方案。與開始使用8051單片機類似,LED接口是單片機接口編程中的基本內(nèi)容。每個單片機的體系結(jié)構(gòu)都不相同,但是接口概念對于所有單片機幾乎都是相同的,本文將為介紹與8051單片機連接的LED。
接口是一種在單片機和接口設備之間提供通信的方法。接口可以是輸入設備或輸出設備,也可以是存儲設備或處理設備。
輸入接口設備:按鈕開關(guān)、鍵盤、紅外傳感器、溫度傳感器、氣體傳感器等。這些設備向單片機提供一些信息,這稱為輸入數(shù)據(jù)。
輸出接口設備: LED、LCD、蜂鳴器、繼電器驅(qū)動器、直流電動機驅(qū)動器、7段顯示器等。
存儲接口設備: 用于存儲/保留數(shù)據(jù),例如SD卡、EEPROM、DataFlash、實時時鐘等。
一、LED與8051的接口
接口包括硬件(接口設備)和軟件(進行通信的源代碼,也稱為驅(qū)動程序)。簡單來說,要將LED用作輸出設備,應將LED連接到單片機端口,并且必須在內(nèi)部對MC進行編程,以使LED亮或滅或閃爍或變暗。該程序稱為驅(qū)動程序,可以使用任何程序語言(例如匯編語言、C語言等)開發(fā)驅(qū)動程序軟件。
二、8051單片機
8051單片機由英特爾于1980年代發(fā)明,基于哈佛架構(gòu)的40引腳PDIP(塑料雙列直插式封裝)單片機。8051單片機有一個片上振蕩器,但是它需要一個外部時鐘來運行。比如MC的XTAL引腳之間連接了一個晶振,該晶振需要兩個相同值的電容器(33pF)來生成所需頻率的時鐘信號。
三、LED(發(fā)光二極管)
LED是用于許多電子設備中的半導體設備,主要用于信號傳輸/功率指示目的。它非常便宜且容易獲得,具有各種形狀、顏色和大小。LED還用于設計LED招牌和交通控制信號燈等。
如圖下圖所示,它有兩個正極和負極端子。
知道極性的方法是用萬用表進行測試或仔細觀察LED內(nèi)部。led內(nèi)較大的一端是-ve(陰極),而較短的一端是+ve(陽極。識別極性的另一種方法是,連接導線時,LED長的針腳是正極,短的針腳是負極。
三、LED與8051的接口
我們可以通過兩種方式將LED連接到8051單片機。但是連接和編程技術(shù)會有所不同,本文中,與圣誕燈方案有關(guān)的8051單片機包括:AT89C52/AT89C51單片機,以及LED閃爍代碼的信息。
仔細觀察接口LED2處于正向偏置狀態(tài),因為5v的輸入電壓已連接到LED的正極,因此此處的單片機引腳應處于LOW電平。反之亦然,與接口1連接。
該電阻在LED接口中很重要,它可以限制流動電流并避免損壞LED和MCU。
(1)僅當電流流向地面時,MC的PIN值為HIGH時,接口1才會發(fā)光。
(2)僅當MC的PIN值低時,接口2才會發(fā)光,因為電流由于其較低的電位而流向PIN。
電路圖如下所示,一個LED連接到端口1的引腳0。
本文的圣誕燈方案,連接了11.0592 MHz的晶振以生成時鐘。我們知道8051單片機在12個CPU周期內(nèi)執(zhí)行一條指令,因此,該11.0592Mhz晶振使該8051以0.92 MIPS(每秒百萬條指令)的速度運行。
在下面的代碼中,LED定義為端口1的引腳0。在主要功能中,LED每半秒切換一次。每次執(zhí)行時,“延遲”函數(shù)都會執(zhí)行空語句。
當使用11.0592 MHz晶振時,值60000(使用Keil軟件編譯)將生成約1秒(延遲時間)的空語句執(zhí)行時間。這樣,使用下面給出的圣誕燈方案代碼可使連接到P1.0引腳的LED閃爍。
#include<reg51.h>
sbit LED= P1^0; // 端口1,pin0被命名為LED
//函數(shù)聲明
void cct_init(void);
void delay(int a);
int main(void)
{cct_init();
while(1)
{LED=0;
delay(60000);
LED=1;
delay(60000);
}}
void cct_init(void)
{P0= 0x00;
P1= 0x00;
P2= 0x00;
P3= 0x00;
}
void delay (int a)
{int i;
for( i=0; i<a; i++) //用來延遲時間
}
以上就是英銳恩單片機開發(fā)工程師分享的如何使用8051單片機制作圣誕燈方案的案例知識。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關(guān)。