单片机入门指南系列(十) 单片机程序下载相关知识

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mcu-primer-10

  注:本篇在写《单片机入门指南系列》之前就已经写过,现在发现这篇比较合理的位置,应该是放在《单片机入门指南系列(六) 单片机最小系统——麻雀虽小,五脏俱全》之后的,但是由于之前考虑不周,所以只好放在这里了,也就不重新修改文章的位置了。

  作为基础知识补充,本篇详细介绍了串口、51单片机的ISP下载等知识,虽然这些知识并不一定要很了解也能学习单片机,但是有一些概念有时对解决问题还是很有好处的。

  前面已经说了,单片机相当于一个微型电脑,所以单片机是可以执行程序的。在电脑上,我们可以上网下载各种游戏各种软件,但是单片机这灰不溜秋的一块芯片,怎么让它执行程序呢?不要急,这就给大家介绍相关知识。这里涉及到一些专业词汇,可能大家不明白,但是并没有很大影响,大致了解就好了,有兴趣的可以上网搜索去了解下。另外等学到后面,不少概念也自然就明白了。

  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、参考电路图

  下面顺便提供这些模块的参考电路原理图,不需要掌握。如果有需要自己制作这些模块,可以参考这几个电路图。

  

  MAX232电路图

  

  PL2303电路图

  

  USB-RS232电路图

  6、51单片机程序的烧写

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

  这里先说一点注意事项。STC-ISP软件最好在宏晶官网下载最新版本。在首次运行时常常会出现类似下图中的情况,提示部件XXX不能注册。对应Win7系统可以先尝试右击STC-ISP的exe程序文件,选择“以管理员身份运行”(如果是XP系统,则只需以管理员身份登录计算机运行程序)。如果还是不行,则需要上网下载提示的XXX.DLL或XXX.OCX文件,放在C:\Windows\System32文件夹中,然后以管理员身份运行C:\Windows\System32\cmd.exe,输入regsvr32 C:\Windows\System32\xxx.dll回车,进行注册。这样的文件是系统动态链接库文件,是程序执行所需要的,有些电脑里没有,或者无法注册,所以会发生这种情况。

  

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

  

  希望本篇看完了,大家把STC-ISP软件安装到自己的电脑上,有条件的把驱动也安装好。具体下载方法将在随后进行介绍。

版权所有,转载请注明来源:PurpleSword主页 ? 单片机入门指南系列(十)
单片机程序下载相关知识

时间: 2024-12-10 21:02:33

单片机入门指南系列(十) 单片机程序下载相关知识的相关文章

单片机入门指南系列(九) 用万用焊板搭建实验电路

原文发表自我的个人主页:http://purplesword.info/mcu-primer-9 ,欢迎大家访问,多谢支持~ 这一篇我们继续上篇的话题,讲解自己搭建电路的另一种方法:用万用焊板搭建电路.在此之前,先普及几点基础知识. 1.电路板 首先我们了解下电路板.前面介绍了面包板可以搭建电路,但是在实际制作出来的电子设备中,我们用的通常都是电路板.电路板主要用于固定元器件,对元器件之间进行可靠的连接. 电路板基板常用不易燃烧的玻璃纤维.酚醛树脂.电木等材料制作.电路连接使用附着在其表面的铜皮

单片机入门指南系列(〇)序

单片机入门指南系列(〇)序 本文由PurpleSword(jzj1993)原创,转载请注明 原文网址 http://blog.csdn.net/jzj1993 我是在上大学时开始接触单片机的,当时走了很多弯路,花了很多时间,才终于比较全面的理解和掌握了单片机.回想起来,从对很多东西毫无概念,到有所认识,直到最终能理解并完全掌握,确实经历了很多.也正是因为这样一些经历,我比较理解初学者的迷茫,后来帮过很多初学者,带动他们去学习单片机等电子设计知识.和初学者的交流中,一方面,我巩固了基础知识,加深了

单片机入门指南系列(十三) 点亮第一个LED——好的开始,成功的一半

前面介绍了很多概念知识,做了很多准备工作,从这一节开始,我们正式开始单片机的学习.我们将使用单片机完成一项非常简单的工作:点亮一个发光二极管(即LED:Light-Emitting Diode). LED简介 先简单介绍一下LED.LED是一种半导体器件,大家其实对LED并不陌生,各种电器的指示灯.手机键盘灯.LED液晶屏的背光.高亮LED手电筒等,都是通过LED发光的.LED有两种主要用途,一种是作为指示灯:另一种是照明.照明用的LED一般都是大功率LED,需要较大的电压电流才能正常工作.而这

单片机入门指南系列(十五) 单片机程序下载失败总结

前面介绍了点亮第一个LED的全过程,很多人可能很幸运的点亮了LED,然而也很可能不少人非常不幸没有把程序下载进去.初学者常会遇到程序无法下载的情况,很多人在尝试多次未果后比较受打击,因此放弃了学习,实在太可惜了.鉴于此,这里列举了单片机程序下载失败的各种出错原因.判断方法和解决方法,是前人所遇到的种种原因的总结. STC单片机下载程序主要分为三部分:单片机最小系统.下载电路.计算机端.下载失败一般主要就从这三个方面来解决问题. 快速排错方法 如果你有或者能向别人借到一套可以正常下载程序的电脑.单

单片机入门指南系列(八) 用面包板搭建实验电路

本文由PurpleSword(jzj1993)原创,转载请注明.原文网址 http://blog.csdn.net/jzj1993 前面介绍了几种准备实验板的方案.这里先介绍方案一,我将同大家一起搭建一块简易的单片机实验板,一起感受动手实践的乐趣. 我们有两种自己搭建实验板的方案,一是用面包板,二是用万用焊板.本篇我们介绍面包板搭建电路. 面包板是一种用于电路实验的器材,上面有很多孔,我们可以将元器件和导线插进去,组成我们需要的电路.如果发现电路有错,拔下元件和导线重新插接即可.电路做完后,所有

单片机入门指南系列(十四) 点亮第一个LED的程序分析

本篇我们将分析上一篇所写的程序代码.未来学习单片机的大部分精力,我们也将放在程序代码的编写上.但是不用担心,我会非常详细的介绍每个程序的编写思路和各种注意事项等. 之前我们写的程序如下: #include <reg52.h> sbit LED = P1^0; void main() { LED = 0; while(1); } 头文件 第一行包含头文件,这个和C语言编写HelloWorld时的#include 一样.头文件reg52.h中定义了单片机的一些寄存器,如P0~P3等.至于什么是寄存

单片机入门指南系列(六) 单片机最小系统——麻雀虽小,五脏俱全

本文由PurpleSword(jzj1993)原创,转载请注明.原文网址 http://blog.csdn.net/jzj1993 前面介绍了集成电路的管脚编号识别,这里我们简单了解下51单片机的40个管脚具体的作用.对于没有接触过复杂电子元器件的读者来说,或许会感觉非常难,但实际上完全不需要有畏惧心理. 按照集成电路的管脚识别方法,缺口朝上,逆时针转一圈,单片机的引脚编号从1到40,如图所示.图中同时给出了各个管脚的名称.我们完全不需要刻意去记这些管脚顺序和名称,在需要的时候查一下就好了,如果

单片机入门指南系列(一) 单片机的前世今生

单片机的前世今生 本文由PurpleSword(jzj1993)原创,转载请注明 原文网址 http://blog.csdn.net/jzj1993 很久以前,人类发明了数字.自此,人类社会发生了巨大的变化.有了数字,人们解决了很多问题.在数字的帮助下,人们学会了度量和计算,人们发明了温度计,发明了钟表,发明了直尺,发明了算盘--生活中原本模糊的概念,变的不再模糊,而是十分精确. 1870年以后,科学技术的发展突飞猛进,各种新技术.新发明层出不穷,并被迅速应用于工业生产,大大促进了经济的发展.第

单片机入门指南系列(四) 模拟电路、传统数字电路与单片机

本文由PurpleSword(jzj1993)原创,转载请注明.原文网址 http://blog.csdn.net/jzj1993 大家都用过计算器,有没有想过它是怎么实现的呢?这里我不详述计算器的原理,而只对思路进行简单介绍.等我们学会了单片机,也可以亲手制作一个计算器.通过电路进行数学计算,应该怎么做呢?为了便于理解,下面我举个很简单的例子. 在这个电路中,电阻R1=R2,我给A.B两点分别接入3V和5V电压,这个时候,C点的电压则为(5+3)/2=4V.这个电路完成了一个求平均值的操作,如