单片机成长之路(51基础篇) - 006 在Linux下搭建开发烧写环境

发布者:创意小巨人最新更新时间:2020-01-16 来源: eefocus关键字:单片机  51基础篇  Linux  开发烧写环境 手机看文章 扫描二维码
随时随地手机看文章

在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了。 


第一步:安装交叉编译工具 

a) 安装SDCC 

sudo apt-get install sdcc 

b)测试SDCC是否可用,这是个网上找的简单的流水灯代码 test.c, 用来测试


 1 #include "8051.h"

 2 

 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 Delay(uint xms){

 8         uint i,j;

 9         for(i=xms;i>0;i--)

10         for(j=110;j>0;j--);

11 }

12 

13 void main(){

14     uchar i;

15     while(1){

16         for(i=0;i<8;i++){

17             P1 = tab[i];

18             Delay(100);

19         }

20     }

21 }


编译它: 

sdcc test.c 

会生成这么多的文件(我们只需要其中的 test.ihx):


test.lk test.map test.rel test.sym test.asm test.ihx test.lst test.mem test.rst 


packihx file.ihx >file.hex 转换为hex文件

接着下载hex2bin文件,网址(http://sourceforge.net/projects/hex2bin/files/latest/download)。


hex2bin sourcefile.hex。之后就会生成sourcefile.bin文件。

注意:为了方便以后调用hex2bin,可以将路径加入到 .bashrc文件在~/.bashrc最后一行加上Hex2bin 所在的文件夹位置:


PATH=$PATH:/home/jikexianfeng/51-demo/Hex2bin-2.5

可以写个makefile文件,编译方便些 

这是我写的makefile:


1 test.hex : test.c

2     sdcc test.c

3     packihx test.ihx > test.hex

4     hex2bin test.hex

5 clean:

6     rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map

第二步:安装烧写工具 

a)下载stcflash: http://github.com/laborer/stcflash ,这是个用python写的向单片机烧写bin文件的软件 

b)安装环境:sudo apt-get install python-serial 

c)烧写 : sudo python ./stcflash.py test.bin


解决 ImportError: No module named 'serial' 问题


Traceback (most recent call last):

  File "/home/jikexianfeng/51-demo/.stcflash/stcflash.py", line 22, in

    import serial

ImportError: No module named serial

解决办法(安装 serial module,这里区分python2和 python3):


sudo apt install python-pip //python2

sudo apt install python3-pip    //python3

安装python3的 pip3的时候,如果时国内的软件源可能安装不上,(当时用中国科学技术大学的软件源,python3-pip下载有问题),换成ubuntu官网成功下载。


安装pyserial:


pip install pyserial    //python2

pip3 install pyserial   //python3


可以从pyserial下载这里去获取源码进行熟悉和学习。

关键字:单片机  51基础篇  Linux  开发烧写环境 引用地址:单片机成长之路(51基础篇) - 006 在Linux下搭建开发烧写环境

上一篇:单片机成长之路(51基础篇) - 007 CH340CH341最全说明
下一篇:单片机成长之路(51基础篇) - 004 STC89C52MCU 软件系统复位

推荐阅读最新更新时间:2024-11-08 06:52

基于Modbus协议实现单片机与PLC之间的通讯
1 引言 HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。它有字母、汉字、图形和图片等不同的显示,界面简单友好。配有长寿命的薄膜按钮键盘,操作简单。它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机 作为其核心控制器,以实现实时快速处理。 PLC和单片机结合不仅可以提 PLC的数据处理能力,还可以给用户带来友好简洁的界面。本文以 Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。 2 Modbus通讯协议 Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信
[工业控制]
MCS 51单片机的温度控制系统方案
  在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。、采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。本文以它为例进行介绍,希望能收到举一反三和触类旁通的效果。   1硬件电路设计   以热电偶为检测元件的单片机 温度控制系统 电路原理图如图1所示 。      1.1 温度检测和变送器   温度检测元件和变送器的类型选择与被控温度的范围和精度等级有关。镍铬/镍铝热电偶适用于0℃-1000℃的温度检测范
[单片机]
MCS <font color='red'>51</font><font color='red'>单片机</font>的温度控制系统方案
超具创意单片机控制LED彩虹瀑布时钟
  如何让苍白单调的时间变成彩色的?这个虹彩瀑布时钟项目就是答案!      一段时间的全力投入之后,我终于完成了这个彩虹瀑布时钟:-)   这个时钟受到了 这个DIY项目 的启发:   在看到Doug的制作的时候,我想到了RGB LED,于是就计划做点不一样的创意出来。这就是思考后的成果(在被我女朋友一脚踢飞之前),我也很乐意和大家一起分享制作的过程。   这个制作基于一块Arduino上的ATmega328芯片,稍微修改了一下PCB把输出由负极性变为正极性,还添加了一块ULN2003用作缓冲输出。   1 设计         我在本地的一家小公司丝网印刷时钟的面板,一块是标准的300mm x 300mm尺寸,
[单片机]
超具创意<font color='red'>单片机</font>控制LED彩虹瀑布时钟
单片机超声波测距程序
单片机超声模块说明(HC-SR04) P10,P11,P12为位选,采用共阳数码管显示。精确到CM级别。tring为发射控制,本程序定义为P20引脚。 echo接外部中断0. #include reg52.h sbit wei_ge=P1^0; sbit wei_shi=P1^1; sbit wei_bai=P1^2; sbit a=P2^3; #define uchar unsigned char #define uint unsigned int int time; int succeed_flag; uchar timeL; uchar timeH; sbit Tri
[单片机]
<font color='red'>单片机</font>超声波测距程序
一图搞懂单片机STM32的5个时钟源知识!
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。 其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。 内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号. 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们
[单片机]
由STC12C2052AD控制的改进型调压电路
1 引言 在ZXC10通信电源系统中,上位机输出的PWM调制信号的频率为1 kHz,而且系统要求电源能根据PWM信号的占空比进行调压。即对电源输出电压在40 Vdc~60 Vdc范围内通过此PWM信号进行线性调节。PWM信号5%占空比对应40 0.5 Vdc,95%的占空比对应60 0.5 Vdc。以前此功能是用带有D/A的单片机来实现.即把PWM调制信号输入单片机,通过单片机来计算PWM信号的占空比,再根据PWM信号的占空比与输出电压的关系,并通过D/A转换来产生用于调节输出电压的偏移量,最后通过此偏移量和电源输出反馈量的共同作用来实现调压。 2 单片机调压系统 通过带有D/A的单片机来实现调压系统的方框图如图1所示。但是,
[单片机]
由STC12C2052AD控制的改进型调压电路
基于MSP430单片机的PID参数整定义
  PID控制是最常的控制策略,在工业过程控制中90%以上的控制回路具有PID结构。PID控制之所以被广泛应用主要是因为它算法简单,在实际中容易被理解和实现,而且许多高级控制都以PID控制为基础。但是由于环境的变化,使被控对象具有时变性,参数经过一段时间以后会出现性能欠佳、适应性变差、控制效果下降等情况。因此,寻求参数自动整定技术,以适应复杂工况及高性能指标的控制要求,是实现节能优化控制的重要手段,具有重大的工程实践意义。   1 自整定过程原理   本文主要研究了一种手持式的PID参数整定仪器,此整定仪具有整定单变量和双变量的双重功能,控制系统主要采用低能耗的MSP430微控制器,软件部分采用的软件开发平台是IAR MSP4
[单片机]
基于MSP430<font color='red'>单片机</font>的PID参数整定义
Arduino CEO 专访:人工智能的MCU可以让更多人不再做技术“旁观者”
编译自《麻省理工学院技术评论》 自 2005 年成立以来,Arduino 开源平台彻底改变了电子工程界,以开源为代表的创新席卷了整个技术开发的。无论过去、现在还是未来,科技目标始终是让技术更简单、更容易为人们所使用。这一理念与Arduino的开源原则一起,在其开发计划中始终保持不变。 我们已经在最近对该公司创始人 Massimo Banzi的采访中看到了这一点,Arduino 首席执行官 Fabio Violante 也证实了这一点。 法比奥·维奥兰特 (Fabio Violante),Arduino 首席执行官 Violante告诉《麻省理工学院技术评论》意大利版:“我们正在投资各个领域,以便让越来越多的人能够接
[嵌入式]
Arduino CEO 专访:人工智能的<font color='red'>MCU</font>可以让更多人不再做技术“旁观者”
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved