24小時聯系電話:18217114652、13661815404
中文
技術專題
單片機編程分步指南
單片機編程分步指南
對于那些希望從微控制器編程開始的人,這是一個循序漸進的指南。本文首先介紹了將在本指南中使用的一些基本術語,一系列工具,編程語言,最后是可下載代碼的示例以及逐步指南,可用于實踐微控制器編程。
但是在進入微控制器編程之前。讓我們定義前兩個基本術語:硬件和軟件。
硬件由系統中的物理組件組成,例如芯片,鍵盤,鼠標,監視器,內存,I / O設備。與軟件相比,硬件更難開發,必須針對非常特定的應用程序進行設計,并且它是高速系統中非常有效且完美的解決方案。
軟件是在硬件上運行的非物理組件或應用程序,例如操作系統,計算機游戲和網絡應用程序。軟件是高度可配置的,易于開發且開發速度較快,與硬件相比也非常便宜。
什么是微控制器
要了解什么是微控制器,我們首先需要了解什么是微處理器或CPU(中央處理單元)。CPU是任何計算機系統的心臟,就像執行任務時的人腦一樣。我們基本上可以將其分為兩個基本部分:
控制單元:該單元用于從內存中獲取數據。
執行單元:該單元用于執行或運行數據。
處理器類型
處理器有很多類別,例如通用處理器,專用系統處理器和多處理器系統。通用處理器有多種類型:
?微處理器
?單片機
?嵌入式處理器
?數字信號處理器
微處理器是半導體設備或芯片上的計算機,而不是功能齊全的計算機。其中央處理器單元包含
?ALU
?程序計數器
?寄存器
?其他電路(時鐘時間,中斷)
微控制器是一種IC,其中包含微處理器和一些外圍設備,這些外圍設備將構成完整的功能計算機,例如ADC,RAM,ROM,DAC等外圍設備。
單片機的歷史
最初,英特爾公司是第一家制造微控制器的公司。第一個微控制器于1971年在美國生產。它是一個名為i4004的4位微控制器。后來,英特爾當時使用8位微控制器生產了更復雜的模型,此后,東芝開發了12位微控制器。
微控制器的應用
微控制器在許多行業中都有許多應用,例如汽車,醫療,工業自動化,航空航天,機器人技術。
例如,在汽車工業中,當今的現代汽車具有100多個微處理器,用于諸如空調,ABS,EBD和ADAS之類的系統,或者諸如自適應居里控制器和車道輔助系統之類的高級駕駛輔助系統,以下是ECU的圖像或電子控制單元。
在醫療領域,有些醫療設備包括微控制器,例如MRI,葡萄糖測試儀,便攜式EKG。下圖是葡萄糖測試設備。
在航空航天領域,大多數飛機都采用微控制器設計了新的航空電子系統。此外,還有所有基于微控制器的飛行控制系統,空中交通控制系統,導航和氣象系統。
流行的微控制器
微控制器的類型和平臺很多,但是選擇微控制器取決于許多因素:
?申請
?預算
?表現
?GPIO引腳數
?內存大小
?工作環境溫度
?耗電量
AVR微控制器
下圖包含AVE12DA的框圖,AVE12DA是最流行的微控制器之一-AVR微控制器:
AVR微控制器由Atmel公司(現為Microchip)生產。Atmel擁有6個系列的AVR微控制器,4個系列的通用微控制器和2個專用的微控制器。通用微控制器是:
?8位–大型AVR
?8位– AT Tiny
?8位和16位– AVR Xmega
?32位– AVR
專用微控制器是:
?汽車AVR
?電池管理
車載AVR,顧名思義,是為汽車應用而開發的。它可以在高達150攝氏度的高溫下工作,并且包括用于短路問題的保護系統。
電池管理微控制器是為電池管理系統開發的,以確保充電和放電操作的安全。
AVR平臺示例
?Arduino UNO
?Adafruit藍色水果微
?Raspduino
?Digispark Pro
ARM微處理器/微控制器
ARM微處理器是世界上最受歡迎的處理器,尤其是在消費類應用中。您可能擁有基于ARM處理器的設備,但您不知道!在大多數成功的32位嵌入式系統中,ARM幾乎都是關鍵組件。第一個ARM于1985年開發。
RISC技術
ARM使用了RISC技術,RISC代表精簡指令集計算機,這是一種在單個周期內交付簡單指令的設計理念。它更多地依賴于軟件。另一方面,CISC技術更多地依賴于硬件。
RISC技術致力于減少處理器的指令集。另一方面,CISC處理器具有指令集的非固定編號。
ARM功能
Arm具有每個嵌入式系統設計人員想要的許多功能,例如,由于其緊湊的尺寸而降低了功耗,而且由于我們正在開發嵌入式系統,因此高代碼密度是另一個功能,在大多數情況下,我們的資源將有限。
基于ARM的微控制器的內部結構
該圖顯示了大多數基于ARM的設備的內部結構:
框代表功能,線代表總線。讓我們詳細討論每個組件:
?ARM處理器是它負責處理操作的核心組件
?控制器用于協調系統功能,如存儲和中斷控制器
?外圍設備用于提供系統輸入和輸出
?總線用于在系統中不同組件之間交換數據
ARM平臺的例子
有許多具有手臂微處理器的設備和嵌入式平臺,例如
?Arduino到期
?樹莓派
?STM32F103C8T6
?恩智浦LPC1768
其他微控制器和平臺
正如我們在選擇微控制器或平臺之前所說的,這取決于許多因素(預算,引腳數等)。還有其他微控制器和平臺,例如
?PIC微控制器
?8051
?ESP32
?摩托羅拉微控制器
單片機軟件和硬件工具
自從創建微控制器以來,已經有許多類型的軟件和硬件開發工具。當然,某些工具可以在各種微控制器類型中使用,但是某些工具對于每個微控制器來說都是非常特定的。在開始微控制器編程之前,您可能需要熟悉微控制器編程工具以及最后但并非最不重要的開發過程。
使用嵌入式開發工具,我們可能需要以下工具:
組裝工
它是一個軟件工具,可以將匯編中的源代碼轉換為機器代碼,例如(GNU匯編器)。
編譯器
它是一個軟件程序,可以將高級編程語言的源代碼轉換為匯編語言或機器代碼。編譯可以是:
?本機:這意味著您在同一臺計算機上運行編譯器和生成的代碼
?交叉:這意味著您在計算機上運行編譯器,而生成的代碼在另一臺計算機(處理器體系結構)上運行。
鏈接器和定位器
鏈接器是一個程序,它收集和鏈接編譯和匯編操作并生成單個exe。
定位器是一種程序工具,可用于更改鏈接器輸出的內存映射。
仿真器
它是一個模擬真實場景的程序,它產生實時系統的近似值。使用模擬器:
?如果實際硬件不可用
?在危險的測試環境和場景中
調試器
它是一種軟件程序和硬件設備,可以與我的PC連接到嵌入式目標。使用調試器:
?設置斷點
?跟蹤執行
?轉儲內存
硬件調試器可以
?在線調試器
?調試板載代理軟件
閃存裝載器
它是一種程序和硬件設備,可用于:
?程序ROM /閃存
?觀察變量
?擦除ROM /閃存
探查器
Profiler是監視軟件代碼性能的工具
集成開發環境
它是一個軟件程序,其中包含大多數工具。它可能包括
?文字編輯器
?編譯器
?調試器
?分析器
?模擬器
?鏈接器
單片機軟件語言
我們可以將它們分為兩種類型:
高水平
?C / C ++
?Java
?艾達
使用此類型將提供硬件級別的抽象
低級
機器碼
它是0和1,很難被人寫,但是很容易讓計算機理解
集會
它是一個助記碼和偽指令,以提高可讀性
例子:
一條指令由助記符(操作碼)+操作數組成
操作碼是機器處理器執行的操作
操作數是最終目標;操作碼必須執行一個操作。
匯編語言比機器代碼更具可讀性和可理解性,但是您需要在特定的處理器上使用匯編語言并了解其體系結構。
C / C ++編程語言
高級語言具有以下功能
?易于編寫
?靈活
?獨立于處理器
?高生產率
使用AVR ATMEGA16的單片機編程示例
ATmega 16具有以下功能:
?16 Kb系統內自可編程閃存
?512字節EEPROM
?1 KB內部SRAM
?編程鎖的安全性
外圍功能
?帶有獨立振蕩器的實時計數器
?可編程串行USART
?四個PWM通道
?8通道10位ADC
?片內振蕩器
?開機休息和掉電檢測
?內部RC振蕩器和中斷源
?電壓(2.7v至5.5v)