查看: 3341  |  回复: 0
单片机烧录程序的几种方法(文末附下载器驱动压缩包)
小小宅138
13
主题
42
回复
发表于2018-10-31 08:21:01 | 只看该作者
1# 电梯直达

单片机相当于一个微型电脑,所以单片机是可以执行程序的。在电脑上,我们可以上网下载各种游戏各种软件,但是单片机这灰不溜秋的一块芯片,怎么让它执行程序呢?

1、串口(RS232、UART)


广义上而言,串行接口简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。我们比较熟悉的USB接口,全名通用串行总线(Universal Serial BUS),就属于串口。串口还包括UART、RS232、RS422、RS485等。通常狭义上,我们所说的串口指的是RS232、UART这一类串口,常称为COM接口。


老式的台式计算机和部分笔记本上就有RS232串口(RS232指RS232电平的串口)。后来由于这种串口使用很少、速度较慢、体积较大而逐渐在笔记本甚至台式机上被淘汰了。

而51单片机具有UART串口(UART = Universal Asynchronous Receiver/Transmitter, 通用异步收发传输器,指的是TTL电平的串口)。


UART与RS232区别主要在于其电平定义不同。UART是TTL电平,定义3~5V为高电平,表示“1”,0V为低电平,表示“0”,就和前文说的一样;而RS232是负逻辑电平,它定义+5~+12V为低电平,表示“0”,而-12~-5V为高电平,表示“1”。


标准串口指的就是RS232串口(也叫做COM接口),如图就是台式电脑机箱后面的标准串口。

 

2、给单片机下载程序


一些读者可能已经猜到,给单片机装进程序是通过电脑并且是使用串口来完成的。但是很可惜只猜对了一半。


说点题外话,为了感觉“专业”一点,以后不要再说给单片机“装程序”了,专业点的说法应该是烧写程序,或者下载程序。读者很可能会好奇为什么叫烧写程序呢?难道下载程序的时候,要用火烤一烤单片机吗?当然不是。这个就像马路为什么叫马路一样,是有来历的,想知道具体原因,还是等大家学习了单片机,了解早期ROM的工作原理再去深究吧。


回归正题,不同的单片机烧写程序的方式是不一样的。刚开始介绍STC单片机的时候,我提到了它的一个优点:可使用串口下载程序,不知读者有没有注意到。同样是51单片机,Atmel的产品分为两种,一种是早期的89Cxx系统,这种型号的单片机下载程序时,需要把单片机取下来,使用专用的编程器烧写程序,非常麻烦;另一种是后来推出的支持ISP的89Sxx系列(ISP = In System Programming,在线编程),只需要几根线连接单片机和下载器,就能轻松下载程序。


3、ISP在线编程


什么是ISP呢?ISP意为在线编程,其作用在于,下载程序的时候,单片机不需要从已有的电路中取下来。大家可能体会不到这样有什么好处,但是它的好处还是非常明显的。下面我举个例子。


有一天你给客户设计了一种电器,是通过单片机控制的。然后很多人都购买了,但是过了一段时间,你发现你写的程序有问题,或者有些地方需要优化一下,但是你卖出去的产品,程序已经写在里面了呀。这个时候,如果你用的单片机不支持ISP,你得亲自一个个的去找客户,把他们的产品拆下来,然后取下单片机,烧好程序,再装回去。如果你设计不当,单片机还是焊接在电路上的,取不下了,那就更惨了。


但是有了ISP就不一样了。你可以设计好产品,然后把ISP接口留出来。发现程序有问题,你把写好的新的程序发到网上,然后群发一批电子邮件,告诉你的客户,用产品附赠的下载线连接电脑和你的产品ISP接口,然后安装一个下载软件,把新的程序下载进去,就可以用了。你甚至可以在说明书上写,我们的产品软件经常会更新,请自行到官网下载最新软件,这样简直是一劳永逸。


所以一个小小的改进,就带来了如此大的变化。要用单片机,我选ISP,实惠又好用。


而STC单片机不仅支持ISP下载,而且只需要通过串口和电脑连接就可以下载,这样又省去了我们购买编程器的钱,实在是物美价廉,适合我们使用。


4、USB与串口的转换模块


由于USB接口与单片机的TTL串口不一样,不能直接连接,一般通过转换芯片来连接。连接到USB接口的转换芯片则要求在电脑上安装相应的驱动程序,驱动程序很容易在网上找到。


USB、RS232、UART三者之间的转换都有芯片可以实现,并且很容易买到做好的成品模块。下面给出了几种常用的转接器。

 

第一个是USB转TTL串口,这是最常用的一种转接器,常称为USB转TTL小板,USB-TTL转接板,常用转换芯片为PL2303,需要在电脑上安装对应驱动程序。

USB转RS232串口,常用转换芯片为CH341,使用时要在电脑上安装CH341的驱动程序,可以在百度上搜索

RS232串口转TTL串口,电平转换芯片是MAX232,如果你的电脑有串口,可以直接使用这种转接器,然后把TTL串口一端接到单片机上,这个不需要驱动程序。

也有这种集成了三种接口转换功能的 USB - RS232串口 - TTL串口转接板,如图所示。这个功能比较强大,但是电子市场不一定能买到。


市面上的成品单片机学习板,很多都提供USB接口,或者RS232串口+USB接口。一方面USB接口负责给单片机供电,另一方面,USB转TTL,或RS232转TTL已经集成在学习板上。

5、51单片机程序的烧写


关于AT89Cxx系列单片机使用的编程器下载,以及AT89Sxx系列单片机使用的ISP方式下载程序,不做详细介绍,这里我们主要介绍STC单片机的串口下载方式。STC单片机烧写程序时,电脑端除了驱动以外,一般使用宏晶专用的STC-ISP软件进行下载。其界面如图。

 点击查看大图



如果你已经购买了USB转串口模块,你可以安装好对应驱动并把它插到电脑的USB口上,如果是成品学习板,就用给学习板供电,然后把下载线连接到电脑上。如果一切顺利,我们可以在电脑上右击“我的电脑”(XP系统)或“计算机”(Win7以上系统),管理,打开设备管理器,在设备管理器中就能看到相应的串口,如图。

 d

rivers.zip 


单片机小白

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部