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