笔记

2.1 单片机内部资源

  1. 什么是单片机内部资源?
    单片机提供给我们可使用的东西。

  2. 单片机内部资源有那些?
    主要有三大资源:

  • Flash – 程序储存空间,早期单片机是 OTPROM(One Time Programmable Read-Only Memory,即一次可编程只读存储器)
  • RAM – 数据储存空间
  • SFR – 特殊功能寄存器

特点:
OTPROM: 程序只能写入一次
FLASH: 断电后数据不丢失,类似于硬盘
RAM: 单片机的数据储存空间,储存程序运行过程中产生的和需要的数据,与电脑的内存相似
SFR: 特殊功能寄存器,单片机有很多功能,每隔功能都对应一个或多个 SFR,通过对 SFR 的读写来实现单片机的多种多样的功能

什么是 51 单片机?
51 单片机,指的是兼容 Intel-MCS-51 体系价构的一系列单片机,51 是他的一个通俗的简称。

2.2 单片机最小系统

  1. 什么是单片机最小系统?
    单片机最小系统,也叫单片机最小应用系统,是指用最少的原件组成单片机可以工作的系统。

  2. 单片机最小系统的三要素是什么?
    单片机最小系统的的三要素是电源、晶振、复位电路。

  3. 什么情况下单片机可以运行下载的程序?
    一个单片机具备了电源、晶振、复位电路这三个条件后,就可以运行我们下载的程序了。

  4. 什么是单片机的外设?
    比如 LED 小灯、数码管、液晶等设备都是属于单片机的外部设备,即外设。

  5. 我们如何实现想要的功能?
    我们想要的功能就是通过对单片机编程来控制各种各样的外设实现的。

tips: 电路图放在连线上的字符叫作网络标号,相同名字的网络标号表示这两处地方实际上是连在一起的。

2.2.1 电源电路

  1. 为什么最小系统需要电源电路?
    电子设备都需要供电,就连我们的家用电气(手电筒)也不例外。

  2. 目前(写笔记时间为 2019-05-01)主流单片机的电源标准有哪些?
    目前主流单片机的电源标准有 5V 和 3.3V 这两个标准。存在对电压要求更低的单片机系统,一般多用在一些特定场合。

  3. 电脑 USB 接口的输出电压是多少?输出电流是多少?

  • 电脑上的 USB 接口的输出电压为直流 5V,输出电流不大于 500 毫安。
  • USB 接口电压是 5V ± 5% 为外部提供电压。并不是恒定的 5V 电压。
  • USB 2.0 接口电压是 5V ± 3% 为外部提供电压。
  • USB 接口的电流比较恒定,一般为 500mA,笔记本只有 100mA。
  1. 单片机电源正极有哪些简称?
    单片机电源电源正极的简称有 VCC 或 VDD。

  2. 单片机电源负极的简称有哪些?
    单片机电源电源负极的简称有 GND。

  3. 电路原理图有什么作用?
    电路原理图是为了表达这个电路的工作原理而存在的,很多器件在绘制的时候更多考虑的是方便原理分析,而不是表达各个器件实际位置。比如原理图中的单片机引脚图,引脚的位置我们是可以随意放的,但是每个引脚上有一个数字标号,这个数字标号代表的才是单片机真正的引脚位置。

  4. 单片机引脚号如何排列?
    一般情况下,双列直插封装(DIP 封装)的芯片,左上角是 1 脚,逆时针旋转引脚号依次增加,一直到右上角是最大脚位。

2.2.2 晶振电路

  1. 什么是晶振?
    晶振,又叫晶体振荡器。

  2. 晶振的作用是什么?
    不停的振荡,为单片机系统提供基准时钟信号。

  3. 为什么需要有晶振电路?
    单片机内部所有的工作都是以晶振提供的时钟信号为步调基准进行工作的。

  4. 晶振引脚的符号是什么?
    晶振引脚的符号是 XTAL1 和 XTAL2。

  5. 11.0592M 的晶振中,11.0592M 代表的含义是什么?
    11.0592M 的晶振中,11.0592M 代表的含义是该晶振每秒钟振荡 11,059,200 次

  6. 晶振外接电容的作用是什么?为什么要在晶振外接两个 20pF 的电容?
    电容的作用是帮助晶振起振,并维持振荡信号的稳定。外接两个达到晶振起振的负载电容。

2.2.3 复位电路

  1. 复位电路接哪一个引脚?
    复位电路接单片机的 RST(reset) 复位引脚。

  2. 单片机复位一般有哪些情况?

  • 上电复位
  • 手动复位
  • 程序自动复位
  1. 上电复位是什么?
    单片机上电后,要进行一个内部的初始化过程,这个过程可以理解为上电复位。

  2. 上电复位的作用是什么?
    上电复位保证单片机每次都从一个固定的相同的状态开始工作。这个过程跟我们打开电脑电源开电脑的过程是一致的。

  3. 手动复位是什么?有什么例子?
    当我们的程序运行时,如果遭受到意外干扰而导致程序死机,或者程序跑飞的时候,我们就可以按下一个复位按键,让程序重新初始化重新运行,这个过程就叫做手动复位。最典型的就是我们电脑的重启按钮。

  4. 程序自动复位是什么?
    当程序死机或者跑飞的时候,我们的单片机往往有一套自动复位机制,比如看门狗。在这种情况下,如果程序长时间失去响应,单片机看门狗模块会自动复位重启单片机。还有一些情况是我们程序故意重启复位单片机。

2.3 LED 小灯

  1. 什么是 LED 小灯?
    LED(light-emitting diode),即发光二极管,俗称 LED 小灯。

  2. 通常二极管的正向导通电压是多少?工作电流是多少?
    二极管通常的正向导通电压是 1.8V 到 2.2V 之间,工作电流一般在 1mA~20mA 之间。

  3. 电流变化有什么现象?
    当电流在 1mA~5mA 之间变化时,随着通过 LED 电流越来越大,我们的肉眼会明显感觉到这个小灯越来越亮,而当电流从
    5mA~20mA 之间变化时,我们看到的发光二极管的亮度变化就不是太明显了。

  4. 什么时候 LED 会存在烧坏的危险?
    当电流超过 20mA 时,LED 就会有烧坏的危险了,电流越大,烧坏的也就越快。

  5. 自恢复保险丝有什么作用?
    正常工作的情况下,保险丝可以直接看成导线。当后级电路哪个地方有发生短路的时候,保险丝会自动切断电路,保护开
    发板以及电脑的 USB 口,当电路正常后,保险丝会恢复畅通,正常工作。

  6. 电容的作用是什么?

  • 电容可以隔直流通交流。
  • 电容可以滤除高频信号。
  1. 点亮 LED 小灯需要串联多大的电阻?
    Vcc +5V,LED 小灯压降 2V,电阻需要承受剩余电压 3V。
    要求电流在 1~20mA,根据欧姆定律 R=U/I可得:
    当电流为 1mA 时,3V/0.001A = 3000R
    当电流为 20mA 时,3V/0.02A = 150R
    所以需要串联一个 150~3000Ω(欧姆) 的电阻。

  2. 什么是限流电阻?
    电阻值大小的变化,直接可以限制整条通路的电流的大小的电阻叫做限流电阻。

3.1 电磁干扰 EMI

  1. 什么是静电放点现象 ESD?
    冬天的时候,尤其是空气比较干燥的内陆城市,很多朋友都有这样的经历,手触碰到电脑外壳、铁柜子等物品的时候会被电击,这就是“静电放电”现象,也称之为 ESD。

  2. 什么是快速瞬间群脉冲效果 EFT?
    早期我们使用电钻这种电机设备,并且同时在听收音机或者看电视的时候,收音机或者电视会出现杂音,这就是“快速瞬间群脉冲”的效果,也称之为 EFT。

  3. 什么是浪涌效果 Surge?
    以前的老电脑,有的性能不是很好,带电热插拔优盘、移动硬盘等外围设备的时候,内部会产生一个百万分之一秒的电源切换,直接导致电脑出现蓝屏或者重启现象,就是热插拔的“浪涌”效果,称之为 Surge。

  4. 电磁干扰举例:
    一个简单的静电放电,我们用手能感觉到的静电,可能已经达到 3KV 以上了,如果用眼睛能看得到的,至少是 5KV 了,只是因为这个电压虽然很高,能量却非常小,持续的时间非常短,因此不会对人体造成伤害。

  5. 电磁干扰对元器件有什么影响?
    瞬间电压过高,有可能造成器件的损坏。即使不损坏,在 2、3 里边介绍的两种现象,也已经严重干扰到设备的正常使用了。

  6. 如何处理电磁干扰问题?
    电磁兼容(EMC)。

3.2 去耦电容的应用

  1. 去耦电容有什么作用?
  • 缓冲作用
  • 稳定作用
  • 滤除高频干扰

说明:
缓冲作用:
当上电的瞬间,电流从电源处流下来的时候,不稳定,容易冲击电子器件,加个电容可以起到缓冲作用。就如同我们直接用水龙头的水浇地,容易冲坏花花草草。我们只需要在水龙头处加个水池,让水经过水池后再缓慢流进草地,就不会冲坏花草,起到有效的保护作用。

稳定作用:
我们的一整套电路,后级电子器件的功率大小都不一样,而器件正常工作的时候,所需电流的大小也不是一成不变的。比如后级有个器件还没有工作的时候,电流消耗是 100mA,突然它参与工作了,电流猛的增大到了 150mA,这个时候如果没有一个水缸的话,电路中的电压(水位)就会直接突然下降,比如我们的 5V 电压突然降低到 3V了。而我们系统中有些电子元器件,必须高于一定的电压才能正常工作,电压太低就直接不工作了,这个时候水缸就必不可少了。电容会在这个时候把存储在里边的电量释放一下,稳定电压,当然,随后前级的电流会及时把水缸充满的。
在电路中需要较大电流供给的器件附近,会加一个大电容,起到稳定电压的作用。

滤除高频干扰:
在所有的 IC 器件的 VCC 和 GND 之间,都会放一个 0.1uF 的高频去耦电容。

  1. 常见电容有哪些?
  • 铝电解电容
  • 钽电容
  • 陶瓷电容

说明:
铝电解电容个头大,占空间大,单位容量价格最便宜
钽电容与陶瓷电容个头小依次减小,性能一般也略好于铝电解电容。价格相对贵不少。
一些参数也不相同,在通信要求高的场合要考虑很多。

  1. 如何选取电容?
  • 耐压值
  • 电容容值

说明:
耐压值:
5V 系统,电容的耐压值要高于5V,一般推荐 1.5 倍到 2 倍即可,有些场合稍微再高点也可以。

电容容值:
需要根据经验来选取了,选取的时候,要看这个电容起作用的整套系统的功率消耗情况,如果系统耗电较大,波动可能比较大,那么容值就要选大一些,反之可以小一些。

  1. 去耦高频电容推荐容值多少?
    去耦高频电容推荐容值为 0.1~10uF。

3.3 三极管在数字电路中的应用

3.3.1 三极管的初步认识

  1. 三级管的作用是什么?
  • 控制、驱动元器件
  1. 三极管的材料是什么?有什么区别?
    常用的三极管根据材料分有硅管和锗管两种,原理相同,压降略有不同,硅管用的较普遍,而锗管应用较少。

  2. 三极管的类型有什么?
    三极管的类型有 PNP 型和 NPN 型

  3. 三极管的三级是什么?
    三极管的三级是基极(base),发射极(emitter),集电极(collector)。

3.3.2 三极管的原理

  1. 三极管的工作状态有哪些?
    三极管有截止、放大、饱和三种工作状态。

说明:
放大状态主要应用于模拟电路中,且用法和计算方法也比较复杂。
数字电路主要使用的是三极管的开关特性,只用到了截止与饱和两种状态。

  1. 三极管类型如何区分(口诀)?
    箭头朝内 PNP,导通电压顺箭头过,电压导通,电流控制。

  2. 如何导通三极管?
    PNP:
    e 极电压若高于 b 极电压 0.7V 以上,这个三极管 e 级和 c 级之间就可以顺利导通。也就是说,控制端在 b 和 e 之间,被控制端是 e 和 c 之间。
    NPN:
    b 极电压高于 e 极电压 0.7V 以上。
    总结:箭头的始端比末端高 0.7V 即可导通三极管的 e 极与 c 极。
    e、c 之间有 0.2V 压降。

  3. 如何控制三极管的状态?
    截止:e、b 之间不导通。
    饱和(三极管的开关特性):三极管有一个放大倍数 β,若要三极管处于饱和状态,b 极电流必须大于 e、c 之前的电流值除以 β。常用三极管的放大倍数 β 在 100 左右。

注:
欧姆定律:R=U/I I=U/R,当电压一定时,I 与 R 成反比。
IO 口输入店里最大理论值是 25mA(见相应的 datasheet)。不建议超过 6mA。
单片机 IO 口输出高电平时,输出电流为 几十到几百微安。达不到 1 毫安。

3.3.3 三极管的应用

  1. 三极管常见应用有哪些?
  • 控制应用
  • 驱动应用

说明:
驱动应用:
5V 单片机接入 12V 系统。IO 口若直接接 12V 电压,单片机会被烧坏。可接入三极管。
三极管的工作电压高于单片机的 IO 口电压,用 5V 的 IO 口控制 12V 的电路。

3.3.4 74HC245 芯片

  1. 74HC245 芯片有什么用?
    74HC245 芯片可用作电流缓冲器。

  2. 如何使用?
    参考数据手册,可知其稳定工作电流为 70mA。

3.4 74HC138 三八译码器的应用

  1. 为什么需要 138 译码器?
    设计单片机电路的时候,单片机的 IO 口数量是有限的,有时并满足不了我们的设计需求,我们为了控制更多的器件,就要使用一些外围的数字芯片,这种数字芯片由简单的输入逻辑来控制输出逻辑,比如 74HC138 这个三八译码器。

  2. 如何使用三八译码器?
    按照数据手册正确的操作使能端与输入端。

3.5 LED 闪烁程序

  1. 如何让 LED 闪烁?
    LED = 0 点亮,LED = 1 熄灭,在点亮与熄灭之间加入延时即可。

  2. 定时器 0
    0b00001001 16 bit 定时器 TL0、TH0 全用 0x09
    TMOD = 0x01;

TH0 = 0x00;
TL0 = 0x00;

EA = 1;
ET0 = 1;
TR0 = 1; // 启用定时器 0

  1. 数码管
    0bb11111001 // 1
    0b01010100 // 2 0x54