51单片机前言知识总结

开发工具

51单片机使用Keil工具来辅助开发,软件下载地址(官网下载要先填信息):Keil Embedded Development Tools for Arm, Cortex-M, Cortex-R4, 8051, C166, and 251 processor families.

注:Keil5 C51和Keil5 MDK的区别,两者都是Keil系列软件,但前者是用来开发51单片机的,后者是用来开发ARM系列,比如STM32的。

另外,为了将电脑上写好的可执行程序下载到单片机中,需要使用USB转串口工具,常用的比如stc官方提供的stc-isp工具,并安装对应的驱动程序后使用。通常,提供单片机的厂家会根据stc-isp设计更有针对性的下载器,比如普中科技的pz-isp下载器。

另外,建议学会万用表和示波器的使用。万用表可以用来测一些电流电压值等。

时钟

统一的时钟节拍
(1)这里有一个概念叫:同步。同步就是好多个独立的部分按照同一个节奏步调来动,以此来实现一个配合。
(2)和同步相对的一个概念叫异步,异步就是各自干各自的。
(3)单片机的各个模块之间是同步工作的,CPU和存储器和IO和单片机中其他东西这些模块之间通过一个统一的节拍来同步工作,这个统一节拍就是单片机的时钟。
(4)这个时钟节拍对单片机很重要,单片机内部在一个时钟节拍中只能做一件事情。所以单片机要发现一些变化或者做一些事情,最小的时间单位就是1个时钟节拍。单片机的时间单位都是时钟节拍的整数倍。
(5)单片机中的CPU、存储器、IO等都是以时钟节拍为动作节拍的,所以单片机是一个同步系统。
(6)时钟周期的长度(时钟节拍的快慢)影响了单片机的速度,所以这个时钟就叫做单片机的主频。主频越高性能越高,一般PC的主频都是2G多3G多,51单片机的主频MHz级别。一般手机CPU的主频也在1G-2G左右。一般高级单片机如STM32的主频在百MHz级别。

具体为什么需要时钟,参考这几篇文章:

什么是时钟脉冲,CPU为什么需要时钟,时钟信号是怎么产生的?_@HDS的博客-CSDN博客_时钟脉冲

对单片机中时钟的理解:_星空闪耀&的博客-CSDN博客_单片机时钟是什么

为什么单片机需要时钟系统,时钟信号在单片机中扮演怎样的角色?_weixin_30329623的博客-CSDN博客

内部外设

外设与内部外设
什么是外设
(1)外设英文叫peripheral,全程为外部设备。属于单片机中的模块
(2)单片机中除了三大部件(CPU、IO、存储器)外,还有一些别的东西,譬如串口控制器、譬如I2C控制器等····这些东西就叫外设。
(3)早期单片机功能很弱小,不具备很多功能(譬如中断功能、譬如串口通信功能),那我们用单片机做产品,只能外部扩展一些专用芯片(中断控制有中断控制器芯片,串口通信我们有串口通信芯片)来和单片机结合(做到一块电路板上用导线连接)起来工作。这种产品设计中核心部分就是单片机,外部配合的这些专用芯片就是外部设备,简称外设。
(4)后来随着半导体工业发展进化,集成电路的集成能力变强大了,我们干脆就把一些常用的外设直接集成到单片机里边去了。所以单片机里边就有了一些原来被称为外设的东西,但是叫法名称还是沿用了开始的名称。

什么叫内部外设
(1)我为了区分外设,将集成到单片机里边的外设叫做内部外设。
(2)还有外部外设,就是至今仍然没有集成到单片机内部,还在外部的那些外设。

芯片和电路板

单片机与电路板
什么是电路板(PCB printed circuit board,印刷电路板)
(1)PCB板 = 基板(绝缘)+电路
(2)作用:PCB的作用就是骨架和连接。最终目的就是把所有的原件按照正确的电路图连接起来形成一个完整的可以工作的电路。
(3)构成和材质,常用的基板材质都是FR4(玻璃纤维),PCB板是由多层构成的(单面板、双面板、四层板、8层板、12层、16层、24层)
(4)印刷电路其实就是在不导电的基板表面按照电路构成来印刷一层导电物质形成电路。最后形成的就是一个里面的芯是不导电的FR4,外面有一层构成了电路的铜(标准术语叫覆铜),为了避免铜氧化或者与外部导电外部还有一层油墨,刷油墨时要露出来焊接点(焊接点一般有2种:一种是插针式、一种是贴片式),焊接点上本来就是铜,但是我们为了方便焊接一般会做镀锡。
(5)PCB板其实就是硬件电路(原件和电路设计)的载体。

什么是芯片
(1)芯片就是是半导体技术形成的电路,外面的壳是塑料绝缘壳,里面电路通过芯片引脚接出来用于连接外部电路。

芯片方式和电路板方式的关系:
(1)相同点。芯片其实就是一个微型的电路板。这两个东西本身一模一样,早期只有电路板没有芯片,后来半导体工艺发展后有了微型器件,所以人把一些电路利用半导体工艺直接做到一个芯片中去形成了IC。
(2)不同点。
(3)我们做一个电子产品究竟应该如何去总体设计?现代的设计方案都是芯片+电路板。能做到芯片里面的都做进去(趋势是越来越进去的多),实在不能做成芯片的就只好放在外面。原来的产品,譬如老式大屁股电视机主板非常大,而新式的智能电视机主板就是一个大芯片+很少的外围设备。
(4)单片机开发板其实就是PCB板主板+单片机芯片+其他芯片+其他外围电路元器件总体构成的。这就是普遍的电子产品的结构。

单片机系列

STC|STC单片机|STC芯片|STC宏晶科技授权的STC代理商

单片机的发展历史_宋哥的博客-CSDN博客_单片机的发展历史

现代意义上的51单片机
(1)51单片机并不只是Intel家的,更多的是其他厂家的兼容型51单片机,比如Atmel的AT89C51,另外国际上还有Philips(NXP恩智浦半导体公司)、Dallas(DS1302、DS18B20)、华邦、西门子、Silabs(C8051F系列)等生产的兼容型51。
(2)不同厂商的兼容型51单片机会有一些差异,因为不同的半导体公司是有自己的一些独特技术的,他会把自己的技术和8051的内核相结合做出一些和别的公司有差异化的兼容型的51单片机。
(2)国内用量最大、最具知名度和竞争力的就是宏晶科技的STC51系列。

主流单片机及各自特点:
51单片机系列
劣势:低性能、普通
优势:IP免费、性价比高(理性思路应该是性能够用前提下尽量低价)

PIC单片机系列

PIC是16位&32位的单片机,性能比较高、最大优势是工业应用
PIC是典型的RISC架构
PIC的性价比不算高,所以PIC还有另外一个大家必须了解的特点,即PIC有一堆台湾产的山寨的替代品(易隆、十速等),算是一定程度上弥补了低性价比的缺陷。

PIC最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠发展多种型号来满足不同层次的应用要求,一般功能比较有针对性,引脚较少。

AVR单片机系列

AVR是atmel公司的,除了51系列(AT89C51)还有别的32位的单片机。
一开始AVR在国内特别火,用的很多。但是后来(2010年左右)AVR的渠道出了问题,市场上AVR严重缺货。后来AVR用的特别少了。
建议学习时跳过AVR。

MSP430、STM8等

很多半导体厂商各自的一些单片机系列,各自都有自己的一些特点,但是都不算特别大的比例。譬如MSP430特点是低功耗。

ARM Cortex-M单片机系列

ARM公司的单片机主要是Cortex-M系列的,譬如M0、M3、M4、M7,ARM单片机特点是32位高性能、架构合理、功耗低,主流的发展方向。

单片机,英文Micro Controller Unit,简称MCU,内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能。

单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制。

单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

总结:当前实际使用单片机的思路就是:低价格低性能用51、PIC(包括山寨PIC),高性能高性价比用ARM Cortex-M系列。

STC51单片机

STC: 32位 8051 单片机创新者, ISP/IAP 技术创新者,中华有为:除了胜利,我们已无路可走

STC89C52单片机

所属系列:51单片机系列

公司:STC公司

位数:8位

RAM:512字节

ROM:8K(Flash)

工作频率:12MHz(本开发板使用)

命名规则:

最小系统:

STC51的特点:
(1)1T单片机。早期的典型的51单片机外部接12MHz晶振,内部电路对12MHz的原始时钟进行12分频变成1MHz的时钟给CPU,所以早期典型的51内核的主频是1MHz。后来工艺改良了单片机也设计也改良了,CPU可以耐受的主频提升了,所以制造出了所谓的6时钟周期51单片机(6分频,主频2MHz)和1时钟周期的51单片机(1分频,主频12MHz,叫1T单片机)。所以1T单片机就是高性能51单片机。
(2)ISP/IAP支持,就是在系统编程/在线编程。早期的51单片机需要在专门的烧录器上面来烧录(早期是先把芯片固定到烧录器的架子上把程序烧录进去,然后再把经过烧录程序后的芯片焊接到电路板上出货),这样子如果产品程序升级就要把芯片从电路上焊接下来然后放到烧录器去重新烧录新的程序,然后再焊接上去;后来发明了一种更加方便的方式,CPU支持直接在电路板(产品)上的烧录程序,这就叫在系统编程ISP。这就方便了程序的烧录和升级。我们现在的51单片机都是ISP的,因此我们后续学习烧录程序不需要专门的烧录器,而是在开发板上直接通过USB线和串口线来进行烧录的。
(3)超高性价比
(4)稳定性、抗干扰性经过实践检验。

ISP就是in-system programming(在系统烧录,在系统编程)。以前要烧录代码bin文件到单片机内部的flash中是需要借助专用的烧录器的,比较麻烦。后来我们就需要一种不用烧录器也不用把单片机从板子上卸下来的烧录方法,这种方法就是ISP。一般ISP都是PC机通过串口把bin/hex文件直接isp到单片机内部flash中,比如利用J_LINK或者USB转TTL进行烧录。

IAP就是in-application programming(在应用编程,在应用烧录,在线升级),IAP的核心是用户需要在自己的应用程序中去操作单片机内部flash的控制器的寄存器,实现对内部flash的烧录功能。然后IAP的时候用户程序通过串口(usb、ethernet)来接收PC发送过来的bin/hex文件,然后将之烧录到内部flash中去完成IAP。完成后再次启动后就会从用户存储器区执行,更新就会起效果。一般实现iAP需要人为的将用户存储器区分为2部分:bootloader+app,很多嵌入式产品的后续升级采用这种方式。

关于仿真器和ISP
(1)仿真器。早期开发单片机软件时的辅助设备,早期的单片机很多只能烧录一次,或者不提供调试功能,软件开发难度很大。后来单片机厂商就专门发明了一个设备叫仿真器,仿真器能够仿真出单片机的效果,可以用来调试程序。所以那时候买了单片机之后还要买仿真器,用仿真器来开发,好了后烧录到单片机中运行。
缺陷:1、一个仿真器对应1个单片机型号。2、仿真器很贵。
(2)因为仿真器很贵,所以有些公司开发出了软件仿真器,叫软仿真。譬如keil中就自带了软件仿真功能。
(3)后来仿真器被放弃,升级成了调试器。调试器的思路是:程序开发还是在单片机中,只不过我们用一个专用的调试器可以在单片机中直接完成仿真。典型的调试器如Jlink。调试器比仿真器来说更便宜,所以是更好的解决方案。现在的单片机大多都支持调试器方案。
(4)有时候开发程序并不使用调试器进行单步调试,而是直接开放了程序后通过串口将程序下载到单片机中(ISP方式下载)去运行,然后根据运行的现象来直接判断定位问题,然后解决问题,最后完成程序软件开发。这种方式下不需要专用的硬件仿真器和调试器,有时候会配合使用软件仿真功能。还可以配合使用串口打印,或者LED灯的指示等方式来进行调试。
总结:3和4是我们现在开发软件的主流方法。相对来说,没经验的人更喜欢3(有经验的喜欢4);越往后(单片机到嵌入式到物联网)3用的越少,4用的越多;
我们课程的方向是:51单片机阶段用软件仿真结合ISP下载方式来调试程序,STM32学习阶段是调试器和ISP下载两种方式相结合,到了嵌入式阶段就又回到4的方式,以后往后都不会再用Jlink等调试器了。

STC51的主要型号和特点:
(1)STC89/90系列。最早就是89系列,89系列就是典型的传统的51单片机,参照的是AT89C51。STC现在用90系列来替代了89系列。89/90系列属于低端51,价格很低,性能很低。但是用来学习很适合。
(2)STC11、12、15系列,都属于1T单片机,都属于新式的51单片机,性能偏高,配置有高有低,价格也不同。这三个的差异是:11系列最早,然后是12,最新的是15.越往后工艺越新,配置可选择性越多,性价比越高。所以如果做项目推荐使用最新系列的。

做项目时如何选型主控单片机?
行业
价格(有些价低出货量大的行业对价格很敏感)
配置
资源(资料、代码、技术支持等)
自我技能(尤其是技术总监的个人技能经验)

管脚定义

(1)电源等管脚、单片机上面有一些管脚是用来支持单片机工作的,譬如VCC和GND、RST等,这些引脚和编程无关,程序也无法操控这些引脚。这些引脚软件工程师不用管,硬件工程师很在意。
(2)IO端口。IO端口是单片机和外部电路进行交互的窗口,外部电路通过IO向单片机内部输入(input)信息,单片机通过IO端口向外部输出(output)信息。单片机中大部分的引脚都是IO(P开头的引脚都是IO),将来单片机内部的程序运行就会通过操作这些IO来和外部电路交互,从而实现程序目的。
(3)管脚复用。普通引脚是一个引脚只有一个名字,一种作用;有些引脚有2个名字(譬如P3.0/RxD),这种引脚就有2种作用(意思不是说这个引脚可以同时做2件事情,而是说这个引脚在不同的时候可以工作在不同的2种模式下),可以通过软件编程让这个引脚在某个时间工作在某种模式下。一个引脚的2种模式之间没有关联,配置工作在A模式下则和B模式一点关系都没有。
为什么要管脚复用?纯粹是为了省引脚。

(4)IO的组织形式。首先一个单片机的众多IO分为多个端口(port),一个端口由若干个IO引脚(很多时候都是8个)组成。可以理解为一个端口就是一组IO引脚。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值