Linux系统下开发51单片机程序

1.在linnux系统中给51单片机下载程序

1.第一步先要安装sdcc

sudo apt-get install sdcc

2.第二步下载51单片机烧录程序的软件**

git clone https://github.com/laborer/stcflash

3.第三步打开主目录页面找到文件stcflash

cd stcflash

4.第四步进入stcflash,

stcflash有三个文件分别是

LICENSE README.md stcflash.py

把stcflash.py改成1

mv stcflash.py 1

然后给权限 chmod +x 1

5.第五步把“1”添加到环境变量中去

sudo mv 1 /usr/local/bin/

6.第六步安装一个依赖包

sudo apt-get install python-serial如果Linux系统内部有的话就可以不用下载。

7.第七步创建一个.c文件

例如:vim led.c

编写完程序之后用 sdcc led.c编译一下

编译完之后会出现一下文件

led.asm led.c led.ihx led.lk led.lst led.map led.mem led.rel led.rst led.sym

但是没有hex文件51单片机下载的文件必须要有.hex文件所以要生成.hex文件

生成指令如下:packihx led.ihx >led.hex

生成完之后编译文件里便会多一个led.hex文件

8.第八步生成完之后到最后一步就是下载到单片机里面去了

下载指令如下:

sudo 1 led.hex

注意:在改完程序后每次编译完之后必须要使用packihx led.ihx >led.hex指令来更新.hex里面的代码,如果只编译

不转换的话程序更改的则会无效。

9.多文件项目

SDCC并不支持同时编译多个源代码文件,所以多文件项目的编译需要分步进行.假如你的项目包含led.c delay.c delay.h三个文件,那么编译过程如下:

sdcc -c led.c
sdcc -c delay.c
sdcc led.c delay.rel

还可以使用以下方式编译:

sdcc -c led.c
sdcc led.rel delay.rel

2.用makefile编译下载程序流程

1.先创建一个makefile文件,创建过程如下

touch makefile //不需要任何后缀

2.在makefile里面写上如下代码

MAINSRC := led.c #含有main函数的主函数放在这里后续如果要改变代码名称XX.c就可以了
SRCS := delay.c #所有的副文件驱动文件都放在这一段如果在加的话就是间隔一个空格在后面加上所需要的文件例如 : delay.c beep.c
MAIN := ( p a t s u b s t (patsubst %.c,%, (patsubst(MAINSRC))
OBJS := ( p a t s u b s t (patsubst %.c,%.rel, (patsubst(SRCS))
HEADERS := $(wildcard *.h)
CFLAGS := -Wall -g -O2 -Werror
OBJS2 := $(MAIN).ihx
TARGET:= $(MAIN).hex

CC := sdcc

.PHONY: all check xz

all: $(TARGET)

xz:
sudo 1 $(TARGET)

( T A R G E T ) : (TARGET) : (TARGET):(OBJS2)
packihx $< > $@

$(OBJS2): $(OBJS)
$(CC) -o $@ $^ $(MAINSRC)

$(OBJS): $(SRCS) $(HEADERS)
$(CC) -o $@ -c $<
clean:
$(RM) $(OBJS)
$(RM) $(TARGET)
$(RM) $(OBJS2)

#其余的不需要改

3.编译流程如下

在命令行输入make就可以了

如果出现以下情况:在这里插入图片描述

就在执行以下命令

make clean

之所以出现这样的问题是因为你的.c .h文件没有更改过如果更改过就不会出现这样的情况了

4.更新hex文件

makefile里面会自动把ihx文件转换成hex文件,同时你用make编译的时候也会自动更新hex文件

5.下载程序

下载程序在命令行输入 make xz 就可以了

注意事项:51单片机必须要冷启动不然下载不进去,目前现在只支持stc89c51的单片机别的型号好像下载不了后续的话会更新

把ihx文件转换成hex文件,同时你用make编译的时候也会自动更新hex文件

5.下载程序

下载程序在命令行输入 make xz 就可以了

注意事项:51单片机必须要冷启动不然下载不进去,目前现在只支持stc89c51的单片机别的型号好像下载不了后续的话会更新

sudo find / -name “8051.h” -type f //查找51库的所在位置

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值