本文是續 單片機成長之路(51基礎篇) - 006 在Linux下搭建51單片機的開發燒寫環境編寫的。 html
本範例主要由(main.c ,delay.h,delay.c,makefile)4個文件組成,sdcc的編譯環境搭建參照:單片機成長之路(51基礎篇) - 006 在Linux下搭建51單片機的開發燒寫環境,廢話很少,進入主題:python
main.c(主函數)函數
1 #include "8051.h" 2 #include "delay.h" 3 #define uint unsigned int 4 #define uchar unsigned char 5 uchar tab[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; 6 7 void main(void){ 8 uchar i; 9 while(1){ 10 for(i=0;i<8;i++){ 11 P1 = tab[i]; 12 Delay(100); 13 } 14 } 15 }
delay.h(功能函數聲明文件)工具
1 #ifndef DELAY_H 2 #define DELAY_H 3 #define uint unsigned int 4 #define uchar unsigned char 5 6 void Delay(uint xms); 7 8 #endif
delay.c(功能函數實體函數)post
1 #include "delay.h" 2 3 void Delay(uint xms){ 4 uint i,j; 5 for(i=xms;i>0;i--) 6 for(j=110;j>0;j--); 7 }
makefile(make文件)ui
1 # CC 編譯工具聲明 2 # stc 燒錄工具位置 3 # 功能是編譯並完成下載 4 CC =sdcc 5 stc =sudo python /home/jikexianfeng/51-demo/.stcflash/stcflash.py 6 7 all : main.bin 8 9 download: main.bin 10 $(stc) main.bin 11 12 #main.bin : main.hex 13 # ~/51-demo/.Hex2bin-2.5/hex2bin main.hex 14 15 main.bin : main.hex 16 objcopy -I ihex -O binary main.hex main.bin 17 18 main.hex : main.ihx 19 packihx main.ihx > main.hex 20 21 main.ihx : main.rel delay.rel 22 $(CC) main.rel delay.rel 23 24 main.rel : main.c delay.h 25 $(CC) -c main.c 26 27 delay.rel : delay.c 28 $(CC) -c delay.c 29 30 cleanall: 31 rm -rf *.lk *.bin *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map 32 clean: 33 rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map
上面make中/home/jikexianfeng/51-demo/.stcflash/stcflash.py是配置的下載驅動文件,詳情見:單片機成長之路(51基礎篇) - 006 在Linux下搭建51單片機的開發燒寫環境spa
最後生成main.bin的方法有兩種,code
方法一,調用sdcc自身的工具:htm
main.bin : main.hex
objcopy -I ihex -O binary main.hex main.bin
方法二,使用hex2bin進行編譯(安裝方法見:單片機成長之路(51基礎篇) - 006 在Linux下搭建51單片機的開發燒寫環境):blog
main.bin : main.hex ~/51-demo/.Hex2bin-2.5/hex2bin main.hex
能夠根據我的喜愛選擇使用。