ARM裸機程式設計學習第一課之硬體知識LED原理圖01
ARM裸機程式設計學習第一課之硬體知識LED原理圖
1. 概述
對於許多程式語言而言,入門的第一個程式就是成功輸出"Hello,World"程式,而ARM裸機程式設計的第一個"Hello, World"程式是點亮LED燈。
因此,對於學習ARM裸機程式設計入門的第一課就是先學習LED,成功點亮LED燈。如果要成功點亮LED燈就需要做到如下幾件事情:
- 第一步,看LED的原理圖,確定控制LED的引腳
- 第二步,看ARM主晶片手冊,確定如何設定、控制LED引腳
- 第三步,寫LED的程式
2. LED原理圖
LED是Light Emitting Diode的縮寫,意思是發光二極體。
有很多種型別的LED,按封裝方式,可以分為插腳LED和貼片LED。
2.1 二極體的電路圖符號
二極體,是一種具有不對稱導電的雙電極電子元器件。
理想的二極體在正向導電(“電流從+到-”)時它的兩個電極間擁有無窮小電阻,而反向導電(“電流從-到+”)時,有無窮大的電阻,即電流只允許由單一方向流過二極體(“電流從+到-”)。
2.2 發光二極體的電路圖符號
發光二極體是半導體二極體的一種,可以把電能轉化成光能。發光二極體與普通二極體一樣是由一個PN接面組成,也具有單向導電性。
2.3 二極體電路圖
要想二極體能夠導通電流,必須將電源正極接到二極體的P極,電源負極接到二極體的N極。
對於發光二極體(LED)來說,一般需要接3.3V的電壓,電流計算公式為I = V/R,由於二極體正向導電時,電阻非常小,因此為了避免燒壞LED,需要給LED串聯一個電阻,減小流過LED的電流。
2.4 LED電路圖到LED原理圖的演變
使用主控晶片控制LED燈的亮滅。
2.4.1 主控晶片引腳接到LED的正極
- 主控晶片的引腳接到LED的P極,LED的N極接地。
- 當主控晶片輸出3.3V電壓時,點亮LED燈。
- 當主控晶片輸出0V電壓時,熄滅LED燈。
2.4.2 主控晶片引腳接到LED的負極
- 主控晶片的引腳接到LED的N極,LED的P極接3.3V的電源。
- 當主控晶片輸出0V電壓時,點亮LED燈。
- 當主控晶片輸出3.3V電壓時,熄滅LED燈。
2.4.3 某些晶片引腳輸出較小電壓的情況
某些主晶片驅動能力較弱(例如目的是可以有較長的待機),引腳只能輸出較小電壓比如1.2V,不足以驅動LED滿足不了對LED的控制。為了使這些驅動能力較弱的主控晶片能控制LED,因此,可以藉助三極體來實現。
二極體是由一個PN接面構構成的,而三極體由兩個PN接面構構成,共用的一個電極成為三極體的基極。
三極體的工作原理:
- 三極體是電流放大器件,有三個極,分別叫做集電極C,基極B,發射極E。
- 三極體可以分為PNP型三極體和NPN型三極體
以NPN型三極體為例:
- 把從基極b流至發射極E的電流叫做基極電流Ib;把從集電極c流至發射極e的電流叫做集電極電流 Ic。
- 這兩個電流的方向都是流出發射極e的,所以發射極E上就用了一個箭頭來表示電流的方向。
- 三極體的放大作用就是:集電極c電流受基極B電流的控制,並且基極電流很小的變化,會引起集電極電流很大的變化,且變化滿足一定的比例關係(集電極電流的變化量是基極電流變 化量的β倍,β是一個大於1的數。)
- 當基極b輸出0V時,be之間沒有導通,因此ce之間也沒有被導通。
- 當基極b輸出比如1.2V時,be之間導通,因此ce之間也會被導通。
對於NPN型三極體,主控晶片接基極,當主控晶片輸出0V時,三極體是不導通的;當主控晶片輸出比如1.2V時,三極體是導通的。
對於PNP型三極體,主控晶片接基極,當主控晶片輸出0V時,三極體是導通的;當主控晶片輸出比如1.2V時,三極體是不導通的。
2.4.3.1 主控晶片通過三極體控制LED
當使用三極體控制LED燈時,我們不關心主控晶片GPIO引腳輸出多少伏電壓,只考慮它是輸出邏輯高電平1還是邏輯低電平0;對於NPN型三極體,當主控晶片輸出邏輯高電平1時,點亮LED,當主控晶片輸出邏輯低電平0時熄滅LED燈。
2.5 其他二極體
2.5.1 齊納二極體
2.5.2 隧道二極體
2.5.3 光電二極體
2.5.4 變容二極體
2.5.5 肖特基二極體
2.5.6 可控矽整流器
相關文章
- i.MX6 裸機 彙編 | LED燈硬體原理分析
- 程式設計師需要了解的硬核知識之控制硬體程式設計師
- 前端知識學習01前端
- Java程式設計師需要學習哪些知識?Java程式設計師
- Java程式設計思想——知識卡片01_02Java程式設計
- 硬體知識
- 每個程式設計師都應該瞭解的硬體知識程式設計師
- 雲端計算學習路線圖素材、課件,TIMESTAMPADD知識點
- 程式設計學習,知識付費已是常事,知識變現更重要!程式設計
- 機器學習數學知識積累之數理統計機器學習
- 雲端計算學習路線圖課件:Kubernetes知識點詳解
- 學習筆記 -《量子計算與程式設計入門》- 量子計算機硬體基礎筆記程式設計計算機
- 知識圖譜學習
- 機器學習之必備知識篇機器學習
- 知識圖譜01:知識圖譜的定義
- 13. 從0學ARM-Cortex-A9 RTC裸機程式編寫
- 【知識圖譜】知識圖譜實體連結無監督學習框架框架
- AD學習筆記----原理圖設計筆記
- 知識圖譜學習記錄--知識圖譜概述
- Java程式設計常用計算機小知識Java程式設計計算機
- 程式設計師需要了解的硬核知識之記憶體程式設計師記憶體
- 四. 文字程式設計--Windows程式設計課程學習筆記程式設計Windows筆記
- 01 知識圖譜概論
- 軟體設計師:計算機系統知識計算機
- 機器學習數學知識積累之概率論機器學習
- 軟體設計師:程式設計語言基礎知識程式設計
- 14. 從0學ARM-exynos4412-看門狗裸機程式編寫
- 推薦分享一門新手必學的課程《計算機基礎——更適合程式設計師的程式設計必備基礎知識》所有崗位必學課程!計算機程式設計師
- 機器學習進階 第一節 第一課機器學習
- 第一章——計算機組成原理與體系結構基礎知識(6)計算機
- Python學習之IO程式設計Python程式設計
- JavaScript DOM 程式設計藝術 學習筆記01JavaScript程式設計筆記
- 雲端計算學習素材、課件,msyql知識點講解
- 機器學習知識體系 (強烈推薦)機器學習
- 程式設計師:學校教的數學知識,程式設計根本用不到!程式設計師
- ISWC 2018概覽:知識圖譜與機器學習機器學習
- 好程式設計師分享Web前端知識之HTML程式設計師Web前端HTML
- 341程式設計器 軟硬體程式設計