原帖由 MCLL 於 2009-6-21 09:20 發表
要學習寫一個 8051 用的程式, 不論是 C 或 ASM 程式, 也不論用甚麼型號的 IC, 最基本要一個 Editor 和 Compiler, 最好就加多一個 Emulator. 或者用一些完正開發軟件. 如  http://www.keil.com/ 這樣的開發工具, 測試 ...


Keil 點樣淨係抽compiler 果part 出黎用?
咁樣用既話... 仲有無2k limit?

TOP

原帖由 minglo04 於 2009-6-21 14:22 發表


Keil 點樣淨係抽compiler 果part 出黎用?
咁樣用既話... 仲有無2k limit?


一樣有...
好似張圖...

[ 本帖最後由 MCLL 於 2009-6-21 17:27 編輯 ]
keil-1.JPG

TOP

今天下載 Keil 新版本, 之後再 Unzipped 到一個 Folder. 再入去 BIN Folder 入面, 都有那些 EXE 檔案. 如圖 Keil-2.jpg. 再抄多一個 8LED.a51 入去. 檔案再容如下.
;
;               12MHz
;
ORG             0000h
JMP             Main
;
Main:
     mov        P1,#11111111B   ;Turn Off All LED
     mov        R5,#1           ;delay One Second
     call       Delay
;
     mov        P1,#00000000B   ;Turn On All LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#00000001B   ;Turn On First LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#00000010B   ;Turn On Two LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#00000100B   ;Turn On Three LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#00001000B   ;Turn On Four LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#00010000B   ;Turn On Five LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#00100000B   ;Turn On Six LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#01000000B   ;Turn On Seven LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#10000000B   ;Turn On Eight LED
     mov        R5,#1           ;Delay One Second
     Call       Delay
;
     mov        P1,#00000000B   ;Turn On All LED
     MOV        R5,#5           ;Delay Five Second
     Call       Delay
;
     Jmp        Main

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; delay routines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
delay_100000us:
  mov   r7,#0c8h
delay_100000us_l0:
  mov   r6,#0f8h
delay_100000us_l1:
  djnz  r6,delay_100000us_l1
  nop
  djnz  r7,delay_100000us_l0
  ret

;r5 = seconds
delay:
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  acall delay_100000us
  djnz  r5,delay
  ret
  
END

[ 本帖最後由 MCLL 於 2009-6-21 21:14 編輯 ]
keil-2.JPG

TOP

再來就係試試 Compiler 之前那個 8led.a51 程式. 如圖 keil-3.jpg
keil-3.JPG

TOP

再睇睇 Compiler 完之後, 8led.a51 有幾多個檔案出來.
keil-4.JPG

TOP

試試用 ConText 來開啟兩個檔案, 一個 8led.a51, 另一個是 8led.LST. 點解要開 8led.LST ? 因為, 如果 Compiler 中有問題, 指示或問題, 就會寫在 LST 檔案內. 睇睇點樣 Debug....

[ 本帖最後由 MCLL 於 2009-6-21 21:31 編輯 ]
keil-5.JPG

TOP

今日在公司試試其他東西, 忘了原來可以 Compiler C 檔案. 如圖 Keil-6
Keil-6.JPG

TOP

做完個 HEX 檔案出來 (如果沒有問題... ), 這個 HEX 檔案就可以用來燒錄到 MCU 入面, 但一些燒錄器可能要用 BIN 檔案. 那麼要用一個轉換程式 HEX 檔案轉 BIN 檔案.

http://www.keil.com/download/docs/7.asp

TOP

今天行行下街想起, 不如上載一些網頁是關於 '反編譯程序', 即 'Disassemble' or 'Decompiler'. 因為, 有 '編譯程序' 就有 '反編譯程序', 可以將 HEX 檔案, 再經過 '反編譯程序', 變回 C 或 ASM 程式

http://www.8052.com/users/disasm/

TOP

原帖由 MCLL 於 2009-6-21 09:48 發表
剛剛在 Google 找來一個 8051 Simulator 幾得意...
http://www.edsim51.com/

我想問吓有哩個程式, 係咪就唔使買ic 都可以學8051?

TOP