zoukankan      html  css  js  c++  java
  • 单片机小白学步系列(十) 单片机程序下载相关知识

    注:本篇在写《单片机入门指南系列》之前就已经写过,如今发现这篇比較合理的位置,应该是放在《单片机入门指南系列(六) 单片机最小系统——麻雀虽小,五脏俱全》之后的,可是因为之前考虑不周,所以仅仅好放在这里了。也就不又一次改动文章的位置了。

    作为基础知识补充,本篇具体介绍了串口、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接口的转换芯片则要求在电脑上安装对应的驱动程序,驱动程序非常easy在网上找到。

    USB、RS232、UART三者之间的转换都有芯片能够实现,而且非常easy买到做好的成品模块。以下给出了几种经常使用的转接器。

    第一个是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、參考电路图

    以下顺便提供这些模块的參考电路原理图,不须要掌握。假设有须要自己制作这些模块,能够參考这几个电路图。

    说明: T:2.jpg

    MAX232电路图

    说明: http://img.blog.163.com/photo/_d0RMrVlHYPDSDYCWyXoQQ==/5729704625922656662.jpg

    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:WindowsSystem32目录中,然后以管理员身份执行C:WindowsSystem32cmd.exe,输入regsvr32 C:WindowsSystem32xxx.dll回车。进行注冊。这种文件是系统动态链接库文件。是程序执行所须要的。有些电脑里没有。或者无法注冊,所以会发生这种情况。

    说明: E:快照1.png

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

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

    =======================================================

    《单片机小白学步》系列教程(原名《单片机入门指南》)介绍

    本系列教程从最主要的入门知识開始,逐步深入介绍单片机系统设计,内容包含:
    1、入门篇:单片机等基本概念、各种电子设计基本知识
    2、思想篇:单片机/计算机系统设计的project思想
    3、学习篇:单片机学习过程、方法和技巧,以51单片机为例介绍,并推广到其它单片机
    4、应用篇:遵循规范的project方法。设计单片机系统实例(计划设计的系统有:计算器、电子表、password锁、简易手机,详细看有没有时间再确定)
    5、原理篇:从模拟电路、数字电路開始,逐步深入介绍单片机/计算机系统原理。并自行设计简易的CPU(因为个人水平有限,这部分没有把握写好。详细内容视情况而定)

    教程特点

    1、技术知识点全面。从入门到精通

    包括了各种基本知识,尤其是对单片机基本概念的介绍、为什么要用单片机等,在非常多同类书籍教程中都被忽略了。

    同一时候也包括了一些深入的知识,包括原理篇考虑对单片机的基本原理进行介绍。有助于深入理解单片机。

    本系列教程以51单片机为例进行介绍。

    通过51介绍完单片机的基本知识。我会再把430进行简要介绍,尤其是对照两者之间的优缺点,让大家非常快感受到430的巨大优势。而学习51正好为高速了解430打下了坚实的基础。

    2、除了单片机知识,还有思想、方法、技巧的介绍

    本系列教程中。介绍单片机各种模块编程知识的主要是学习篇,而学习篇仅仅是整个教程的一部分。在学习篇中我会贯穿各种方法技巧。怎样理解一些模块功能。怎么看时序图。严格遵守project思想进行编程,程序发生了错误怎么调试等等。而在思想篇中会整体介绍非常多重要的思想,为后面的学习做好准备工作。

    3、知识先后顺序的设计

    单片机学习过程中,涉及大量的知识,并且非常多知识之间相互依赖。关联非常强。

    本系列教程对知识的先后顺序进行比較明白的规划,尽最大可能符合人的认知过程。可是实际规划时发现,不管怎么调整知识的顺序,总有一些知识之间相互依赖。关系复杂。

    比如開始讲IO口的时候肯定会提到寄存器。而寄存器这个词的理解。须要深厚的背景知识。

    可是这些背景知识在没有进行实践的时候也非常难理解。

    刚開始学习的人经常就会在这种地方感觉疑惑不解,不知所措。而每次遇到类似这种知识,我会向刚開始学习的人指出。应该怎样对待。这个知识是应该自己去学习补充,还是等到学完原理篇再做理解。而如今又应该怎么去看待这个名词。

    另外。在整个教程的学习前。须要掌握一定的C语言等基础知识,详细可參考教程第〇篇《序》中的相关说明
    http://www.hainter.com/mcu-primer-0

    4、语言通俗易懂

    本系列教程力求语言通俗易懂,而不会用一堆新手不懂的词语去解释还有一个不懂的词语。可是受限于个人语言表达能力。可能有些地方表述的比較繁琐,或者不清楚,希望大家可以帮忙指出。

    其它问题

    假设认为我写的对你有帮助。欢迎多多反馈,包含写的不对、不合理、不太明确都能够指出来,这样方便我对其进行完好。

    很多其它可參见:《怎样以学习单片机为契机,逐步成为优秀的project师》
    http://www.hainter.com/mcu-engineer

    本系列教程首发于我的个人主页,欢迎訪问(因为是国外server。速度略微有点慢):
    http://www.hainter.com/category/hacker/mcu-primer

    同一时候会将其转发到CSDN、电子发烧友等网站,欢迎关注。
    CSDN专栏网址 http://blog.csdn.net/column/details/mcu-introduction.html
    电子发烧友论坛 http://bbs.elecfans.com/zhuti_mcu_1.html


    本文首发自我的个人主页。转载请注明来源:http://www.hainter.com/mcu-primer-10 

  • 相关阅读:
    Apache的443端口被占用解决方法
    关于变量初始化问题
    浏览无法加载控件
    关于网络数据传输
    java 对象是在什么时候创建的?
    HTML HTTP
    2020 年计划
    Docker 学习
    [腾讯 TMQ] 接口测试用例设计
    pytest + request
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5179747.html
Copyright © 2011-2022 走看看