天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

如何使用8051單片機制作圣誕燈方案?-英銳恩科技-單片機開發公司

更新時間: 2020-07-20
閱讀量:2519

單片機開發者來說,使用8051單片機制作圣誕燈并不陌生。英銳恩單片機開發工程師分享一個學習8051單片機入門案例:圣誕燈方案。與開始使用8051單片機類似,LED接口是單片機接口編程中的基本內容。每個單片機的體系結構都不相同,但是接口概念對于所有單片機幾乎都是相同的,本文將為介紹與8051單片機連接的LED。

接口是一種在單片機和接口設備之間提供通信的方法。接口可以是輸入設備或輸出設備,也可以是存儲設備或處理設備。

MicroController-Interfacing-Model.jpg

輸入接口設備:按鈕開關、鍵盤、紅外傳感器、溫度傳感器、氣體傳感器等。這些設備向單片機提供一些信息,這稱為輸入數據。
輸出接口設備: LED、LCD、蜂鳴器、繼電器驅動器、直流電動機驅動器、7段顯示器等。
存儲接口設備:  用于存儲/保留數據,例如SD卡、EEPROM、DataFlash、實時時鐘等。

一、LED與8051的接口

接口包括硬件(接口設備)和軟件(進行通信的源代碼,也稱為驅動程序)。簡單來說,要將LED用作輸出設備,應將LED連接到單片機端口,并且必須在內部對MC進行編程,以使LED亮或滅或閃爍或變暗。該程序稱為驅動程序,可以使用任何程序語言(例如匯編語言、C語言等)開發驅動程序軟件。

二、8051單片機

8051單片機由英特爾于1980年代發明,基于哈佛架構的40引腳PDIP(塑料雙列直插式封裝)單片機。8051單片機有一個片上振蕩器,但是它需要一個外部時鐘來運行。比如MC的XTAL引腳之間連接了一個晶振,該晶振需要兩個相同值的電容器(33pF)來生成所需頻率的時鐘信號。

Microcontroller-Crystal-COnnections.jpg

三、LED(發光二極管)

LED是用于許多電子設備中的半導體設備,主要用于信號傳輸/功率指示目的。它非常便宜且容易獲得,具有各種形狀、顏色和大小。LED還用于設計LED招牌和交通控制信號燈等。

如圖下圖所示,它有兩個正極和負極端子。

LED-Polarity.jpg

知道極性的方法是用萬用表進行測試或仔細觀察LED內部。led內較大的一端是-ve(陰極),而較短的一端是+ve(陽極。識別極性的另一種方法是,連接導線時,LED長的針腳是正極,短的針腳是負極。

三、LED與8051的接口

我們可以通過兩種方式將LED連接到8051單片機。但是連接和編程技術會有所不同,本文中,與圣誕燈方案有關的8051單片機包括:AT89C52/AT89C51單片機,以及LED閃爍代碼的信息。

Interfacing-LED-to-8051-Methods.jpg

仔細觀察接口LED2處于正向偏置狀態,因為5v的輸入電壓已連接到LED的正極,因此此處的單片機引腳應處于LOW電平。反之亦然,與接口1連接。

該電阻在LED接口中很重要,它可以限制流動電流并避免損壞LED和MCU。

(1)僅當電流流向地面時,MC的PIN值為HIGH時,接口1才會發光。
(2)僅當MC的PIN值低時,接口2才會發光,因為電流由于其較低的電位而流向PIN。

電路圖如下所示,一個LED連接到端口1的引腳0。

Proteus-Simulation-Circuit.jpg

本文的圣誕燈方案,連接了11.0592 MHz的晶振以生成時鐘。我們知道8051單片機在12個CPU周期內執行一條指令,因此,該11.0592Mhz晶振使該8051以0.92 MIPS(每秒百萬條指令)的速度運行。

在下面的代碼中,LED定義為端口1的引腳0。在主要功能中,LED每半秒切換一次。每次執行時,“延遲”函數都會執行空語句。

當使用11.0592 MHz晶振時,值60000(使用Keil軟件編譯)將生成約1秒(延遲時間)的空語句執行時間。這樣,使用下面給出的圣誕燈方案代碼可使連接到P1.0引腳的LED閃爍。

#include<reg51.h>
sbit LED= P1^0; // 端口1,pin0被命名為LED
//函數聲明
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++) //用來延遲時間
}

以上就是英銳恩單片機開發工程師分享的如何使用8051單片機制作圣誕燈方案的案例知識。英銳恩專注單片機應用方案設計與開發,提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關。

联系我们: 武义县| 名山县| 抚远县| 北京市| 营口市| 鄂托克前旗| 阿克陶县| 临桂县| 洪雅县| 城步| 七台河市| 华宁县| 牙克石市| 伊春市| 辽阳市| 昌黎县| 如皋市| 旬邑县| 珠海市| 鹿邑县| 和政县| 北宁市| 婺源县| 仙游县| 会同县| 托克逊县| 重庆市| 芷江| 灯塔市| 云南省| 宁乡县| 元江| 罗源县| 大英县| 聊城市| 武川县| 邢台县| 枞阳县| 罗山县| 永州市| 天津市|