2016年6月1日 星期三

Published 下午4:34 by with 0 comment

[基礎] 8051與開源軟體

8051是一款老式的控制晶片,因為優異的設計使得從1981年推出至今仍沒被淘汰,
也連帶的產生了許多衍生系列,而Intel目前已經沒再生產。

雖說主角是8051,不過現在純正的8051已經不那麼好用,
而且純正的大概也很難買到,大多使用相容型的衍伸系列。
衍伸系列通常具有記憶體大、容易燒錄等等優點,一顆晶片即可解決問題,
不再需要那麼多外部記憶體或是IC。

本次的主角是 STC12C5A60S2
這塊叫做最小核心板,已經附上燒錄後自動重新啟動和USB轉UART的IC。
接腳也都拉出方便使用,把這片核心板插在麵包板上方便等一下和LED連接。

Compiler 一樣是 SDCC,而 IDE 一樣是 CodeBlocks

兩者都安裝好後,啟動CodeBlocks並開啟新專案。

(第一次安裝SDCC和CodeBlokcs時,必須從 Settings >> Compilers 進入
 選擇Compiler 為SDCC,到標籤 Other settings 點選 Advanced Options ,
 進入後選擇 Others 標籤,將 Object file extension 的檔案名稱設定變更為rel
 可以詳見此blog )


建立新專案從 File >> New >> Projects... 開始

可以注意到有個叫做 MCS51 Projects ,Code Blocks 已經預備好了,所以使用它

這畫面使問要不要省略接下來的設定,我們要自己設定所以不要勾選,
按下 Next 進入下一步。

一樣訂好專案名稱,並且設定好目錄

Compiler 選項會自動放在SDCC所以不必更動。
其他的是我個人這樣設定顯得會比較簡單易用。之後燒錄用的檔案會在bin目錄下。

在51系列下記憶體有幾種不同的模式,如果是老8051就只能選Small,8052則能使用medium。
而我們這次選擇的STC12有著相當大的記憶體,要完全利用得選擇large model。

選完memory model後,因為STC12C5A60S2具有60K的Flash、256的RAM和1024的Extend Ram。
所以底下的CODE Size設定為 60K、IDATA 為256、XDATA 為 1024。
為了要燒錄所以選擇Intel hex檔案。最後按下Finsih。

專案設定完成後,會發現專案已經自動開好檔案了。

自動開好main.c

然後確認一下之前使用不同mcu時要改寫的一些設定:



原則上都已經自動設定好了不必修改。


在這個 main.c 裡我們添加自己的程式。


程式碼如下:

/* */ #include <mcs51/8051.h> #include <mcs51/stc12.h> void Delay (unsigned int time) { while (--time); } void main(void) { // Insert code P0_0=1; while(1) { P0_0=!P0_0; Delay(50000); } }


輸入完畢後按下存檔,然後按下 build 按鈕

接著看一下Build log 訊息

如果訊息是這樣並且沒有別的錯誤代表成功。
接下來可以啟動燒錄軟體  STC ISP下载软件 (v6.28)



燒錄成功後即可以看見閃燈的成果。



      edit

0 意見:

張貼留言