[C] 如何開始編程微控制器?


Answers

我肯定會再次提到Arduino的建議。 它們很便宜,有幾家供應商,因為硬件是開源的(儘管名稱不是這樣),IDE是免費的,用C編寫它們,它們很容易連接到任何東西。 該板有12個數字I / O引腳(其中兩個作為串行通信引腳)和6個12位A / D轉換器I / O引腳(也可以配置為數字引腳)。 它可以處理電機和伺服控制的脈寬調製(PWM),中斷和I2C接口,大多數電路板可以單獨運行或關閉USB端口。 與計算機的通信由FTDI串行USB驅動程序處理。

除了Sparkfun.com之外,還可以訪問www.adafruit.com查看一些便宜的小型USB“Boarduino”電路板以及用於全尺寸Arduino的幾個不錯的原型屏蔽。

主要的Arduino站點( Arduino.cc )幾乎包含了你需要開始的所有參考和教程。

這是“你好,世界!” Arduino編程作為它是多麼容易的一個例子。 程序閃爍連接到數字引腳13的LED:

int ledPin = 13;                 // LED connected to digital pin 13

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}

基本上,每個Arduino程序都有一個setup()函數,可以在上電或電路板復位時運行,以及一個永久運行的loop()函數。 當然,你也有定時器和中斷函數,或者你可以使用循環()來輪詢輸入,然後調用其他函數。 Arduino IDE位於GCC之上,使用相同的庫,包括如果您正在為Atmega微控制器編寫準系統程序,則可使用該庫。 這意味著(a)只要你想要它就隱藏硬件(引導程序,引導程序等等),(b)如果你願意,你可以到達程序的內部,(c)你可以利用該系列微控制器的大量庫。

Question

我用C ++,Java,PHP和.NET開發了軟件,現在我很有興趣學習編程材料。 我想編制一個系統,可以與紅外,液晶顯示器進行互動,並能夠使用舊的打印機電機來使用它,等等。

我的問題是,從哪裡開始? 我搜索了網頁,並找到了一個名為Arduino的開源板,但是如何將其他電子元件集成在一起? 我應該做什麼書或者教程來創建一個小項目?




我也有這樣的印象,你需要從基本的微控制器架構開始。 PIC很適合,因為基本模型和最早的系列可能非常有用 - 它們沒有太多的額外功能,所以您不會因為專注於基本功能的額外功能而丟失。

在此之後,您需要了解許多關於微控制器生命週期和時序模型內存組織和程序執行的內容。 之後,您可以開始分析具體微控制器的基本彙編程序示例,並採用更先進的技術繼續前進。 然後,您可以轉向更先進的帶有DAC和其他模塊的PIC系列,這些模塊對於大多數現代微控制器都是常見的,但是在PIC上,您可以獲得大量基礎知識,而無需額外的痛苦,這對所有其他芯片來說都是相同的。




我最近開始使用Arduino學習微控制器編程。 我從adafruit.com購買了Arduino Starter Pack並瀏覽了他們的入門教程 。 他們的套件配有一些基本的電子元件(發光二極管,按鈕,光敏電阻),可以讓你從蝙蝠身上進行實驗。

如果您已經了解C / C ++,您將能夠在數小時內開始創建有用且有趣的項目。

Arduino也非常棒,因為一旦你熟悉它,你就可以輕鬆擴展到任何Atmel AVR系列微控制器上的原始C語言。

我也推薦電子金礦 ,在那裡你可以購買各種各樣的電子產品,價格相當便宜,可以找到一個合適的起始者。




這可能是你想要做的事情的矯枉過正,但是基於FPGA的系統編程可能很有趣。 VHDL語言更像接線電路,而不是編寫C代碼。 Nexys-2板可以130美元購買。




查看Dan O'Sullivan的物理計算http://itp.nyu.edu/~dbo3/physical/physical.html ://itp.nyu.edu/~dbo3/physical/physical.html他也有鏈接到Basic Stamp,BX24,Basic Atom和PIC“快速參考”。

Arduino是一個擁有大型支持社區的優秀平台。 我推薦它。




在旁注:
如果你不想讓你的手髒了很多東西,或者不想這樣做(像我一樣),試著看看PLC's
它們是工業用硬件控制器,可用於幾乎所有任務的模塊,如數字I / O,模擬I / O,步進電機控制器,串行I / O,以太網等。您可以採用不同的方式對它們編程,如彙編器,圖形和帶有代碼的文本編輯器看起來像是Pascal和Basic的混合體。 他們內置多任務處理,通常表現相當不錯,但比普通微控制器貴一點。 我總是推薦Wago和他們的750-841控制器。




如果你是一個電子愛好者,你可以建立你自己的開發系統。 它可能更複雜,但它更有趣。

這裡看到一個簡單的PIC16F628A微控制器開發系統,包括完整的原理圖和PCB: http://www.bobtech.ro/proiecte/microcontrolere/1-bobdemo-sistem-pentru-dezvoltare-aplicatii-cu-microcontroler : http://www.bobtech.ro/proiecte/microcontrolere/1-bobdemo-sistem-pentru-dezvoltare-aplicatii-cu-microcontroler

特徵:

  • 12個輸入/輸出,帶按鈕輸入和LED輸出
  • PC的RS232串口接口
  • 紅外遙控傳感器
  • 板載ICSP編程連接器
  • 可選板載9V電池(用於演示目的)
  • 板載+ 5V電源,用於微控制器和外部外圍設備

對於編程,您可以使用BobProg - ICSP PIC編程器
遵循編程器原理圖和PCB的鏈接。

軟件:

  • (免費)來自Microchip的MPLAB IDE用於C或ASM語言開發
  • (免費)用於ICSP編程器的IC-Prog閃存編程軟件



Links