剛開始學STC51單片機的開發,用Keil uVision4進行編輯和編譯。Keil的IDE是使用工程方式組織,對於小弟初學並不是很方便。
- 每次做個試驗都要建立一個工程,而且會出現一堆文件。
- 雖然電腦還可以,感覺啟動IED比較慢
- Keil的編輯器對中文的支持並不太好
- 由於改動並不一定在已打開IED的情況比較多,每次都必須打開Keil編譯,郁悶的很。
- 最最最主要的還是想簡單方便點
出於上面的目的看了一下Keil的幫助,^_^ 發現用批處理可以解決我的煩惱。Keil的安裝目錄有C51和UV4,很明顯一個是編譯工具目錄,另外一個是IED程序目錄。外國的產品就是做的好,幫助文檔做的非常全而且詳細。
用命令行流程是 編譯源文件成OBJ,然后鏈接OBJ,之后轉換成HEX文件。這樣就OK了,很簡單。
C51.exe 編譯c文件,BL51.EXE鏈接OBJ, OH51.EXE轉換文件成HEX。
注意:不要忘記吧頭文件復制到 \C51\INC 庫目錄中,以后使用比較方便。
如:有個test.c的文件
C51.EXE test.c BL51.EXE test.obj TO test OH51.EXE test
這樣就OK,能編譯出HEX文件。
不過這樣每次寫批命令還不是很方便,干脆就寫一個簡單的批程序 ^_^,掛編輯器上直接編譯。
再吧批命令掛接到代碼編輯器上,以后只要打開文件就能直接編譯。 如果有問題可以直接看log文件。
運行一下就自動編譯!
大功告成!VVVV 本人比較懶^^
批處理文件就直接貼批代碼,就不多解釋了。
注意:這個批代碼只能編譯單個C文件,並沒有強化。

1 @echo off
2
3 rem ---------------------------------------
4 rem make <SourceFile>
5 rem ---------------------------------------
6
7
8 rem SET C51INC=C:\Keil\C51\INC\Atmel\;C:\Keil\C51\INC\
9 rem SET C51LIB=C:\Keil\C51\LIB
10 SET BINPath=C:\Keil\C51\BIN\
11
12 set Status=0
13 set SourceFile=%~nx1
14 set ObjName=%~n1
15
16 if %1 == "" goto LabErr
17 if not "%~x1" == ".c" goto LabErr
18 if "%SourceFile%" == "" goto LabErr
19 if "%ObjName%" == "" goto LabErr
20 goto LabClean
21
22 :LabBuild
23 @echo building %SourceFile% to %ObjName%
24 "%BINPath%C51.EXE" "%SourceFile%"
25 "%BINPath%BL51.EXE" "%ObjName%.obj" TO "%ObjName%"
26 "%BINPath%OH51.EXE" "%ObjName%"
27 set Status=1
28
29 :LabClean
30 if exist "%ObjName%.lst" del "%ObjName%.lst"
31 if exist "%ObjName%.m51" del "%ObjName%.m51"
32 if exist "%ObjName%.obj" del "%ObjName%.obj"
33 if exist "%ObjName%" del "%ObjName%"
34 if %Status% == 0 (
35 if exist "%ObjName%.hex" del "%ObjName%.hex"
36 goto LabBuild
37 )
38 if %Status% == 1 goto LabOK
39
40 :LabErr
41 @echo Error: The source file can not be empty.
42 goto LabEnd
43
44 :LabOK
45 @echo OK! %ObjName%.hex
46
47 :LabEnd
48
49 @echo on
還有種生成批處理命令的方法:
Keil uVision4帶有一個生成bat文件的功能。打開工程選項在Output選項卡中,有個“Create Batch File”能生成編譯bat程序。可以參照她所生成的文件自行修改。
如果你覺得批命令不夠強大,可以自己寫程序^_^
特別推薦:
推薦使用AkelPad文本編輯器,有高亮語法,有簡單的自動完成功能,速度比打開windows自帶的文本編輯速度還快,完全免費開源。
網站:http://akelpad.sourceforge.net/en/index.php