程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍
单片机是一种可编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,与纯硬件电路相比,简化了硬件外围的设计、方便了逻辑的设计、丰富了逻辑的输出。不同厂家的单片机需要不同编程IDE来实现编程。在学习单片机之前,要先清楚单片机程序是如何烧写到单片机内部的,在烧写的过程中需要用到什么工具?因为不通用的烧写工具可能价格较贵,比如说Micorchip单片机使用的ICD系列编程器,单台价格在600-1000元人民币之间。今天和大学来认识一下单片机最常用的四种烧写方式和所使用到的工具。
1.使用JTAG接口实现
JTAG接口是一种标准的测试协议,可以实现编程时在线调试,利用单步追踪可以很方便的查找代码的Bug,大多数的单片机都支持这种接口。这种接口除了电源线和复位引脚之外,还要用到单片机的四个引脚,分别是:TDI、TMS、TCK、TDO,他们所代表的含义如下所示:
TDI--数据输入 ,所有写入寄存器的数据都是通过TDI接口串行输入的;TMS--模式选择 ,Jlink输出给目标CPU的时钟信号;TCK--时钟信号 ,所有数据的输入输出都是以该时钟信号为基准的;TDO--数据输出 ,所有从寄存器读出的数据都是通过TDO接口串行输出的;以上这四个引脚都是协议里强制要求的,而且协议建议在设计电路时要选用上拉电阻。JTAG接口有多种形式,常用的20引脚、14引脚和10引脚。以20引脚JTAG为例,所设计的JTAG烧写电路如下图所示:
JTAG接口
上图中JTAG接口都通过电阻上拉了,有的单片机的这几个引脚在内部已经上拉,所以这几个上拉电阻可以省略,减少了成本和PCB空间的占用。
JTAG接口烧录方式常用的工具为J-Link,实物图如下图所示。
Jlink实物图
相信大家都见过或者听过这个烧写工具,这个工具很通用,但是大家在使用的时候一定要注意版权信息,因为这个工具是有版权的,前两年因为版权风波,网购平台还集中整治过一次。
2.SWD接口烧录方式
SWD是一种串行调试接口,与JTAG相比,SWD只需要两根线,分别为:SWCLK和SWDIO。他们的含义如下:
SWDIO --串行数据线,用于数据的读出和写入;SWDCLK --串行时钟线,提供所需要的时钟信号;一般来说,大多数单片机的JTAG接口和SWDIO接口是复用的,SWD也是用J-Link工具来实现的。所以在使用的时候,只需要在软件界面做一下选择,使用SWD方式还是JTAG方式,硬件上无需改动。除了J-Link外,意法半导体的ST-Link也是支持SWD模式的。
SWD接口
SWD的接口如上图所示,可以看出,SWD和JTAG是相互复用的,由于SWD只需要两根线所以大大减少了对单片机GPIO口的占用,SWD方式也是可以在线调试的。
3.ISP烧写方式,用UART实现
使用过国产51单片机的朋友都清楚这种烧写方式,这种烧写方式是通过单片机的UART串口来实现的,所需要的工具也比较简单-USB/TTL。这个USB/TTL的芯片可以通过MAX232、CH340G等芯片来实现,通过MAX232实现的UART烧写电路如下所示:
UART串口烧写电路
在与单片机连接的时候,一定要注意交叉连接,所谓交叉连接即,单片机的TXD接串口RXD,单片机的RXD接串口TXD,否则数据通信失败。51单片机在使用该方式下载时需要断一下点再上电才能下载。
STM32单片机可以使用UART来实现程序下载,但是需要选择BOOT的模式,现在通过CH340G芯片可以实现自动ISP的下载方式,即不需要手动设置BOOT模式。
4.SWIM单总线下载方式
这种下载方式是针对STM8系列的单片机,这种方式只需要一根线即可实现程序的下载,所使用的工具为ST-Link,如下图所示:
ST-Link
以上为几种常见的烧写方式以及所使用的工具,欢迎大家留言评论,如果转载请注明作者信息和头条出处,感谢支持。
单片机烧写程序过程以及详细说明【图文】
Step 1:Keil软件的安装
1.选中文件夹中的C51V900安装程序并打开,如图:
2.在安装对话框里一直选择Next,直到Finish完成Keil的安装。
Step 2: 安装USB转串口线的驱动程序的安装
扩展阅读:什么是单片机烧写?
1. 选中并打开文件夹中的HL-340安装程序
2.点击INSTALL即可自动完成安装
Step 3:Keil工程的建立
1. 打开桌面上的Keil图标
,建立一个新工程单击【Project】菜单中的【New μVision Project】,如下图:
2. 选择工程保存的位置,建议最好新建一个文件夹用来保存此工程文件,方便以后管理。
3. 选择单片机型号:打开Atmel
目录,选择子目录下的AT89C52,点击OK,在弹出的新对话框中选择否(N)。
4. 单击【File】菜单中的【New】菜单项,或者Ctrl+N可新建一个文件Text1
,单击工具栏的图标
或者Ctrl+S,在弹出的保存对话框输入文件名,注意必须在文件名后加上“.c”作为保存的文件类型(例如shuangshuangbang.c),然后保存。
5. 回到编辑界面,单击【Target】前面的“+”号,然后在【Source Group 1】选项上单击右键,弹出下图所示菜单。然后选择【Add Files to Group ‘Source Group1’】菜单项,如下图:
6. 在弹出的对话框中选中刚才保存的“XXX.c”文件并单击【Add】,再单击【Close】,如图:
7. 单击左侧【Source Group 1】前面的“+”号,这时可以注意到【Source Group 1】文件夹中多了一个子项【XXX.c】,这时源代码文件就与工程关联起来了,这时在右边的“XXX.c”代码编辑窗口把伟哥的代码复制过来即可,如图:
8.单击工具栏的【Target Options…】,打开Output选项卡并选择【Creat Hex File】,点击【OK】,这时编译完成后才会产生可供下载到单片机的Hex文件,如下图:
8. 单击工具栏的【Rebuild】,可看到状态栏显示的状态(0错误和0警告),这时便完成了Keil工程的建立并产生了可下载到单片机的Hex文件,如下图:
Step 4:COM口的查询
1.用USB转串口线把电脑的USB口和单片机的串口连接;
2.右键点击“我的电脑”并单击“管理”,在弹出的窗口中选择“设备管理器”,在点击右边的“端口”,可以看到USB转串口线的COM口(如图为COM3口),记住显示的是COM几口,下载程序时要用到,如下图:
Step 5:Hex文件的下载
1.打开文件夹里的“程序下载”压缩包,打开里面的STC_ISP_V481.exe程序,如图:
2.在弹出的界面中选择MCU Type为STC89C52RC,单击【打开程序文件】,在你之前Keil保存工程的位置找到以“.hex”后缀的文件,并选择打开,选择“COM”为Step 4中显示的COM口(我的电脑显示的是COM3,所以我选择了COM3,但是不同电脑可能会不一样,一定要根据自己的电脑来选择),如下图:
2. 最后单击【Download/下载】(单击【Download/下载】之前一定不能先让单片机通电),然后再按下单片机的电源开关,让单片机通电,这时开始程序到单片机的下载,如下图表示程序已经成功烧写到单片机了,你只需把已经烧写程序的单片机安装到爽爽棒上即可:
相关问答
单片机烧 写 程序 步骤?首先,将烧写线把开发板与电脑连接,安装驱动之后,烧写程序能自动识别设备。首先,在界面左上角有个单片机型号,一般选择STC89C51系列下的STC89C52RC/LE52RC...
单片机 中 烧程序 是什么意思?单片机烧程序是指向单片机里下载程序。单片机是硬件,如果没有程序在里面,它是不能够工作的。所以需要将编写好的程序下载到单片机集才能实现所需要的功能。编...
单片机 怎么 烧 写 程序 ?单片机烧写程序需要使用编程工具,例如Keil等软件,将编写好的程序通过编译器编译为对应的单片机可执行文件,然后利用下载器将程序下载到单片机中。在烧写过...
单片机 如何 烧 录 程序 ?需要利用下载器和下载软件才能将keil程序输出的hex文件烧录到单片机中。具体操作请参照以下步骤,演示单片机为51单片机。1、首先准备好51单片机最小系统板和...
单片机 该怎么“ 烧 ”,用什么应用比较好?不同的单片机其程序的烧写方式是不一样的,从主流型号的单片机来看,下载方式无非有这么几种:1)ISP烧写方式;2)SWD烧写/调试方式;3)JTAG烧写调试/方式。当然也...
什么叫 烧程序 ?1.烧写程序是将写好的程序编译好形成HEX或BIN文件后,将这个程序写进单片机芯片的过程就叫烧写,是沿用最早的单片机只能一次性写入,因此就叫做烧写,后来有了紫...
单片机 的 烧 写原理是什么?单片机的烧写原理:1.把单片机当做一个ROM芯片,早期的单片机都是如此。将单片机放在通用编程上编程时,就像给28C256这样的ROM中写程序的过程一样。只是不同...
如何给 单片机烧 录 程序 ?要给单片机烧录程序,您需要以下几个步骤:1.准备烧录设备:您需要一台烧录器或编程器。不同类型的单片机可能需要不同类型的烧录设备,所以请确保您选择的烧录...
怎么把上次 烧 写到 单片机 的 程序 删除掉?现在用的单片机用的都是电可擦可编程只读存储器,英文简称:EEPROM,或称E2PROM,所谓电可擦,就是通电就把之前的程序擦除掉了,所以,你只要再次烧写其他程序进...
什么是 程序烧 录啊?急求?程序烧录就是把原程序经编译处理后加载到计算机中,让计算机执行你编写的程序,例如单片机程序烧录的时候是加载.hex文件,储存在单片机中,开机就能实现所写的程...