MIDE-51 - 免費的8051單晶片C語言編譯器 來自
首先,先來介紹SDCC到底是蝦米碗糕?
SDCC - Small Device C Compiler,一套功能強大而且免費的C語言編譯器,它小巧(僅2MB)、它超強、沒有程式碼大小的限制、也沒有起始位置必須在0×0800的限制、但它只認識C語言!
不過就因為它體積小,所以是採用Command的方式運行(一分錢一分貨啊),不過這也沒有關係~因為總是有許多好心人幫忙弄出一些不同的東西,那就是MIDE-51啦!!
接下來將介紹如何利用MIDE-51來做8051 C語言的編譯!
我想我還是做點MIDE-51的視窗介紹好了
ToolBar group:工具列,就…工具列啊
Line Number..:行號,方便好用的東西
File Workspace:檔案工作區,你所開啟的檔案列表
Outputmessage:輸出訊息,所有編譯的結果、錯誤、警告…等都在此顯示
程式資訊
【軟體名稱】:Mide-51
【軟體語言】:英文
【軟體性質】:免費軟體、程式編譯
【支援環境】:Windows(含Vista)
【軟體網站】:http://www.opcube.com/home.html
【下載位置】:官方頁面、官方整合包(推薦)
工具列介紹:
File(檔案):
New: 開新檔案
Open:開啟舊檔
Recent Files:最近使用的檔案
Save:儲存 Save As:另存新檔
Close:關閉檔案 Close All:關閉所有檔案
Print Previews:預覽列印 Print:列印
Exit:離開程式
Edit(編輯):
Undo:復原
Redo:重做
Cut:剪下
Copy:複製
Paste:貼上
Select: All:全選
Find:尋找 Replace:取代 Find next:找下一個
Line number:行號(開啟/關閉)
Preference:偏好設定
Selection(選擇):
字型大小設定
Device(裝置):
選擇晶片類型,用於模擬
Build(建立):
Build:編譯/組譯
Build and Sim:編譯/組譯然後模擬(有內建的程式,但是我不會用)
Build and Burn:編譯/組譯然後燒(須先設定燒錄程式,但是我不會設定)
Windows(視窗):
調整視窗的排列方式
Help(幫助):
裡面有ASEM-51以及SDCC的使用手冊,英文。
而那些快捷按鈕就對照英文就好了,不另外再介紹,造成不方便請見諒!
---開始使用MIDE-51---
介紹玩了常用工具列與中文翻譯之後,相信大家對MIDE-51應該有了初步的認識,接下來我們就要進入正題!
SDCC與Keil C的使用定義有些不同,而且它的定義有些怪怪的,所以我參考8052.tw的影片,自己弄了一個Header檔,內容如下:
(2010/01/30發現:已可使用如Keil C下的語法撰寫程式)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 // Header file for SDCC IO define
#ifdef SDCC
#define P0_0 0x80
#define P0_1 0x81
#define P0_2 0x82
#define P0_3 0x83
#define P0_4 0x84
#define P0_5 0x85
#define P0_6 0x86
#define P0_7 0x87
#define P1_0 0x90
#define P1_1 0x91
#define P1_2 0x92
#define P1_3 0x93
#define P1_4 0x94
#define P1_5 0x95
#define P1_6 0x96
#define P1_7 0x97
#define P2_0 0xA0
#define P2_1 0xA1
#define P2_2 0xA2
#define P2_3 0xA3
#define P2_4 0xA4
#define P2_5 0xA5
#define P2_6 0xA6
#define P2_7 0xA7
#endif
請把這些程式碼複製下來,然後用記事本存成一個名為51port.h的檔案。
再來請把這隔Header檔放到C:\MIDE\sdcc\include\mcs51\(安裝程式的路徑),這樣就成為了新的include~
這個Heade對寫程式有很大的幫助喔,請各位別客氣,趕快收下它吧!
使用方法與範例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 /*Single.9 example*/
#include "8051.h" /*SDCC的8051設定*/
#include "51port.h" /*剛剛的Header檔,新版可忽略*/
sbit at P1_0 led;
/*定義8051的P1.0識別名稱為led,
在SDCC的原始設定中是要這樣打的
sbit at 0×90 led;*/
/*-------延遲-------*/
delay(int d)
{
int x, y;
for(x=0; x<d;x++);
for(y=0; y<100; y++);
}
/*-------LED閃爍-------*/
led()
{
int i;
for(i=0; i<2; i++)
{
wled=0; delay(50);
wled=1; delay(50);
}
}
/*-------主程式-------*/
main()
{
while(1)
led(); /*一直閃爍*/
}
我終於找到這一篇文章了,沒想到真的有人轉貼呢!
特別感謝這位網友雄
留言列表