通常,我們正在設(shè)計電路,并通過提供該電路使用的電源來連接到其他不同的組件,例如電動機,LCD,LED。用該電路編程時,微控制器會做什么?微控制器系列理解用匯編語言或C語言編寫的程序,該程序必須被編譯成稱為二進制語言(即零和一)的機器語言。已編程的文件存儲在計算機硬盤或微控制器的內(nèi)存中。匯編程序用于將匯編程序轉(zhuǎn)換為機器代碼。要使用匯編語言編寫程序,程序員必須具有CPU或硬件方面的知識。低級語言用于交叉開發(fā)。十六進制系統(tǒng)被用作表示二進制數(shù)的更有效方法,而使用二進制語言時,CPU的工作速度非常快。
今天,我們可以使用許多不同的編程語言,例如C,JAVA,ORACLE等。這些語言稱為高級語言。以高級語言編寫程序,程序員不需要任何用于高級應(yīng)用程序開發(fā)的硬件方面的知識。編譯器在將高級程序轉(zhuǎn)換為機器級方面起著至關(guān)重要的作用,因為本機開發(fā)中使用了高級語言。
以下是微控制器編程中使用的一些工具:
Keil uVison
Code Editor
Assembler
C compiler
Burner/Programmer
Keil Uvison:
Keil Uvison是免費軟件,可以解決嵌入式開發(fā)人員的許多難題。該軟件是集成開發(fā)環(huán)境(IDE),集成了文本編輯器以編寫程序,編譯器,并將源代碼轉(zhuǎn)換為十六進制文件。
Keil uVsion軟件
開始使用Keil Uvison的指南:
1.單擊桌面上的Keil Vision圖標(biāo)。
2.單擊標(biāo)題欄中的“項目”菜單
3.通過在C:\或D:\中自己的文件夾中鍵入適當(dāng)?shù)捻椖棵Q(不帶擴展名)來保存項目。
4.然后點擊上方的保存按鈕。
選擇項目的組件。即Atmel……
根據(jù)需要,單擊+符號。此處示例選擇了Atmel。
5.選擇AT89C51,如下所示
6.然后點擊“確定”
7.然后單擊“是”或“否。..……,主要是“否”。
現(xiàn)在您的項目已經(jīng)可以使用了。
現(xiàn)在雙擊Target1,您將獲得另一個選項“ Source group 1”。
8.單擊菜單欄中的文件選項,然后選擇“新建”
9.下一個屏幕將顯示為文本頁面
10.現(xiàn)在開始用“ EMBEDDED C”或“ ASM”編寫程序。
對于要用匯編語言編寫的程序,我們必須將其保存為擴展名“。 Asm”和基于“ EMBEDDED C”的程序,我們必須將其保存為擴展名“ .C”
11.現(xiàn)在,右鍵單擊“源組1”,然后單擊“將文件添加到組源”
12.現(xiàn)在,根據(jù)保存文件時提供的文件擴展名進行選擇。
在選項“ ADD”上僅單擊一次。
現(xiàn)在按功能鍵F7進行編譯。如果發(fā)生這種情況,將出現(xiàn)任何錯誤。
如果文件中沒有錯誤,請同時按Control + F5。
代碼編輯器或文本編輯器:
代碼編輯器用于編寫程序。 uVision編輯器包括所有標(biāo)準(zhǔn)功能,例如突出顯示顏色語法并快速識別錯誤。調(diào)試時可以使用該編輯器。自然的調(diào)試環(huán)境可幫助您快速識別和糾正程序中的錯誤。在代碼編輯器中編寫程序后,根據(jù)您選擇的匯編器將文件保存為.asm或.C格式。
匯編器:
匯編程序用于將源代碼(低級語言)轉(zhuǎn)換為機器級(二進制格式)。
編譯器:
編譯器用于將源代碼(高級語言)轉(zhuǎn)換為機器級別(二進制格式)。
使用DOS編輯器或其他編輯器創(chuàng)建第一個文件。
匯編器將生成目標(biāo)文件和文件列表。目標(biāo)文件的擴展名是“ .obj”,而列表文件的擴展名是“ .lst”。
匯編程序需要執(zhí)行的第三步稱為鏈接。鏈接程序獲取一個或多個目標(biāo)文件,并生成擴展名為“ .abs”的目標(biāo)文件。
將“ .abs”文件輸入到名為OH(目標(biāo)到十六進制轉(zhuǎn)換器)的程序中,該程序會創(chuàng)建一個擴展名為“ hex”的文件,該文件可直接寫入微控制器ROM。
Burner/Programmer:
對微控制器進行編程或刻錄意味著“將程序從編譯器傳輸?shù)轿⒖刂破鞯拇鎯ζ鳌薄N⒖刂破鞯某绦蛲ǔJ怯肅或匯編語言編寫的,最后編譯器會生成一個十六進制文件,其中包含機器語言指令(例如零和微控制器可以理解的指令)。正是微控制器的內(nèi)容被傳輸?shù)轿⒖刂破鳎坏┏绦虮粋鬏數(shù)轿⒖刂破鞯拇鎯ζ鳎透鶕?jù)該程序工作。
如何編程微控制器?
微控制器是一種集成芯片,我們在其中存儲以匯編語言編寫的代碼。因此,要將編碼后的程序轉(zhuǎn)儲到微控制器IC中,我們需要一種稱為刻錄機或編程器的設(shè)備。程序員是一種帶有軟件的硬件設(shè)備,該軟件可以讀取存儲在PC或筆記本電腦上的十六進制文件的內(nèi)容。它會讀取十六進制文件數(shù)據(jù)串行或USB電纜,并將數(shù)據(jù)傳輸?shù)轿⒖刂破鞯膬?nèi)存中。
對于不同的微控制器來說,編程器和編譯器是不同的,這對于不同的公司來說是不同的,例如使用8051微控制器“ flash magic”對微控制器進行編程,以及使用AT89C51微控制器“程序員”對微控制器進行編程。這就是我們在帶有刻錄機或編程器的微控制器中編程代碼的方式。
什么是微控制器?
盡管您不知道,但您家里可能有很多這樣的東西!微控制器是一種集成電路(IC)或“芯片”,通常用于家庭中裝有電子電路的設(shè)備中。您可能聽說過微處理器,例如Intel Pentium,它們被用作計算機中的CPU(中央處理單元),實際上是“大腦”。微處理器是集成電路,用于處理計算機程序中的指令,執(zhí)行計算并將數(shù)據(jù)發(fā)送到內(nèi)存和磁盤以及從內(nèi)存和磁盤發(fā)送數(shù)據(jù)。微控制器是一種特定類型的微處理器。它與普通的微處理器在以下方面有所不同:
它具有內(nèi)置的“ I / O”(輸入/輸出)功能。因此,它可以讀取和寫入數(shù)字和模擬值/狀態(tài),并直接連接到“現(xiàn)實世界”。與微處理器不同,微控制器可以直接連接到開關(guān),按鈕,LCD顯示器,LED,繼電器和串行端口
微控制器通常用于中低復(fù)雜度的設(shè)備中的特定任務(wù)。這與處理各種軟件應(yīng)用程序的PC中使用的強大的數(shù)字處理微處理器形成鮮明對比。
微控制器通常用在依靠電池供電的便攜式設(shè)備中。數(shù)碼相機。因此它們通常功耗低且消耗電流小(與臺式計算機中的散熱風(fēng)扇冷卻微處理器不同)
與PC中的微處理器相比,微控制器中的RAM通常范圍從64k到最小1k。
微控制器中的程序通常存儲在EPROM或EEPROM中。這是一種非易失性(設(shè)備關(guān)閉時程序不會消失)的非易失性存儲器,可以連續(xù)擦除和重寫。
單片機用途
許多設(shè)備都使用微控制器。一些例子:
防盜警報器包含一個微控制器芯片,該芯片連接到鍵盤,顯示器和傳感器/觸點輸入。微控制器通常是自包含芯片,而ALU(算術(shù)邏輯單元),存儲器和I / O全部包含在一個集成電路中
較早的自動洗衣機使用凸輪開關(guān)在洗滌周期內(nèi)對操作進行排序。這是一個相當(dāng)復(fù)雜的開關(guān),安裝在您用來選擇清洗程序的旋鈕軸的末端。較新的機器使用微控制器對操作進行排序。微波爐和洗碗機等其他設(shè)備可能會包含微控制器
電視使用微控制器來處理頻道的選擇并讀取電視上按鈕的狀態(tài)
微控制器用于發(fā)動機控制和在車輛的儀表板(儀表板)上顯示信息
數(shù)碼相機使用微控制器來處理來自按鈕的輸入,圖像捕獲和顯示的控制。
單片機實例
一些常用的微控制器:
Zilog Z8
Intel 8051
Atmel AVR
什么是Arduino?
Arduino是基于Atmel微控制器的開源硬件/軟件編程平臺。開源意味著可以免費獲得設(shè)計中使用的電路原理圖和軟件源代碼,并且發(fā)燒友可以對其進行修改。 Arduino開發(fā)板及其模擬和數(shù)字輸入和輸出,是希望將系統(tǒng)組裝在一起而無需了解大量數(shù)字設(shè)計知識的藝術(shù)家,設(shè)計師和電子愛好者的理想選擇。使用排成一排的凹型連接器可在Arduino板上提供輸入和輸出信號,可將單個引線或單列(SIL)連接器插入其中。
Arduino開發(fā)板將至少具有:
9個數(shù)字引腳,可以用作輸入/輸出通道。其中一些可以設(shè)置為PWM(脈沖寬度調(diào)制)輸出。 PWM信號是方波,其脈沖寬度可以改變。 PWM用于機器人和遠程控制應(yīng)用中的電機和伺服器的速度和位置控制
4個模擬輸入通道。
至少一個串行端口,也可用于將代碼下載到Arduino
一些板卡還具有一系列模擬輸出通道。
引腳的功能具有高度的靈活性,其中一些引腳可以配置為模擬或數(shù)字。數(shù)字引腳可以配置為輸入或輸出。
當(dāng)Arduino板從連接到這些模擬和數(shù)字輸入的傳感器接收輸入時,它們會感知周圍的環(huán)境。他們還可以控制執(zhí)行器,例如電機,警報器和電動閥,或打開LED,燈或其他視覺指示設(shè)備。輸出的輸出驅(qū)動能力有限,因此通常必須在Arduino輸出引腳和被驅(qū)動設(shè)備之間使用晶體管,F(xiàn)ETS或繼電器。但是,有一個輸出能夠直接驅(qū)動LED。
板上的連接器以標(biāo)準(zhǔn)方式布置,以便可以連接屏蔽。屏蔽是具有專用功能的模塊(例如,紅外輸出,藍牙,GSM,WIFI,以太網(wǎng),使用Relas的電機開/關(guān)控制,步進電機控制)。根據(jù)屏蔽類型的不同,可能可以將多個屏蔽疊放在一起,然后通過I2C串行總線分別尋址。
由于Arduino代碼和硬件是開源的,因此第三方開發(fā)人員已經(jīng)制作了Arduino官方開發(fā)板的副本。
Arduino開發(fā)板具有32至512k的閃存,可用于程序存儲。
Leonardo-特定型號的Arduino開發(fā)板。數(shù)字引腳可以配置為輸入或輸出。除了標(biāo)準(zhǔn)模擬輸入之外,幾個數(shù)字引腳還可以兼作模擬輸入。
Arduino開發(fā)板可以用來做什么?
Arduino開發(fā)板可用于做很多很酷的事情。您可以輕松添加LCD顯示屏,鍵盤或七個分段顯示模塊,并快速構(gòu)建一個簡單的系統(tǒng)。 Arduino.cc網(wǎng)站上提供了大量信息和庫。您可以設(shè)計自己的電子插件或使用屏蔽罩來構(gòu)建模塊化系統(tǒng)。 Arduino由于其多功能性,可用于簡單,平凡的任務(wù)或復(fù)雜的應(yīng)用程序。一個簡單的應(yīng)用示例就是當(dāng)室內(nèi)溫度降至一定水平以下時開啟設(shè)備的功能。擴展此應(yīng)用程序并添加一個GSM模塊可以很容易,它可以在發(fā)生這種情況時發(fā)出文本消息。 Arduino開發(fā)板可用于實現(xiàn)復(fù)雜的家庭自動化系統(tǒng),該系統(tǒng)可通過智能手機進行控制。發(fā)燒友還將它們用作機器人中的處理和控制設(shè)備,并提供了用于構(gòu)建簡單的輪式機器人的套件。
Micontroller項目-對Arduino開發(fā)板進行編程
Arduino板使用C語言編程,并提供了高級功能,作為對模擬和數(shù)字引腳以及串行端口進行讀寫的標(biāo)準(zhǔn)功能。源代碼被稱為“草圖”。標(biāo)準(zhǔn)庫也可用于諸如輸出到LCD面板或與GSM模塊通信的任務(wù)。發(fā)燒友還貢獻了許多其他庫和代碼,這些庫和代碼可在Arduino網(wǎng)站上找到。
Arduino網(wǎng)站上提供了基本的代碼編輯器/編譯器,可用于開發(fā)程序。但是,該編輯器基本上就像寫字板一樣,不提供任何顏色編碼突出顯示或具有復(fù)雜的調(diào)試功能。 Atmel Studio是Visual Studio的簡化定制版本,是提供這些功能的替代方法。
使用串行端口或USB連接將程序下載到Arduino板上。然后,引導(dǎo)加載程序會在重置時將程序加載到內(nèi)存中,因此不需要外部編程器。
責(zé)任編輯:tzh
-
微控制器
+關(guān)注
關(guān)注
48文章
7649瀏覽量
152109 -
led
+關(guān)注
關(guān)注
242文章
23355瀏覽量
663194 -
單片機
+關(guān)注
關(guān)注
6043文章
44622瀏覽量
638557
發(fā)布評論請先 登錄
相關(guān)推薦
評論