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 

  • 相关阅读:
    21.Merge Two Sorted Lists 、23. Merge k Sorted Lists
    34. Find First and Last Position of Element in Sorted Array
    leetcode 20. Valid Parentheses 、32. Longest Valid Parentheses 、301. Remove Invalid Parentheses
    31. Next Permutation
    17. Letter Combinations of a Phone Number
    android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
    oc 异常处理
    oc 类型判断
    oc Delegate
    oc 协议
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5179747.html
Copyright © 2011-2022 走看看