单片机的外围功能电路

LET′S TRY“嵌入式编程”: 2 of 6

本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识。这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识。

上期在《单片机入门(1)》中,我们讲解了单片机的基础知识。本期让我们来学习单片机必须具有的硬件电路(外围功能电路)。这样,下期就可以将挑战一个实际单片机的运行了!

“动力”―电源电路

上期我们学习了单片机的基本构成和工作原理。想必大家对单片机的工作原理已经有了大致的了解。这次我们将举例说明单片机工作所必须的硬件电路(外围功能电路)。
我们将以瑞萨电子的新一代产品,通用型单片机“RL78族(RL78/G14)”为例进行说明。

与迄今为止所学的各种电路相同,单片机的工作也需要电源。因此,单片机的外部都连接有象电池等电源部分。
请看图1,是“RL78族(RL78/G14)”的引脚配置,该产品有64个引脚。电源有2个引脚是13/14号(VSS/EVSS0)和15/16号 (VDD/EVDD0),

  • 13号引脚(VSS)和14号引脚 (EVSS0)连接GND
  • 15号引脚VDD和16号引脚 (EVDD0)连接电源正极

参阅“RL78族(RL78/G14)”数据手册(或硬件手册),您会发现“电源电圧VDD = 1.6~5.5 V”。这是指当电源电压处于1.6V到5.5V之间时,可以保证单片机的正常工作。这个电压范围称为工作电源电压。在有些单片机数据手册上把这个范围称为推荐工作电压范围。

图1:“RL78族 (RL78/G14)”(64引脚)的引脚连接图

 

图2是 “RL78族(RL78/G14)”的电源引脚连接的一个例子。

  • 与15号引脚连接的C1称为旁路电容。可以防止因瞬间大电流引起的电源电压下降,而导致的单片机的误动作。通常选择0.01μF~0.1μF的陶瓷电容作为旁路电容。
  • “RL78/G14”的内部电路工作电圧是通过内部电压调节器调节电源电压得到的,内部电路的工作电压是1.8或2.1V。为了保证内部电压调节器的稳定性,在12号引脚上也连接了电容C2。

图2:“RL78族(RL78/G14)”(64引脚)的电源电路连接实例

 

“总指挥”―振荡电路

正如数字电路入门③中所讲的那样,时序电路是按时钟信号(CK)的上升沿(信号从L→H的变化)或下降沿(信号从H→L的变化)同步工作的。单片机是由时序电路构成的,所以,要在外部连接一个振荡电路提供时钟信号。象这样从单片机的外部输入的时钟信号称为“外部时钟信号”。

图3:振荡电路的作用

 

图3是单片机(RL78/G14)接连一个振荡电路的例子。晶体振荡器被连接在X1和X2之间。
从图上可以看出一个外部时钟信号可以驱动单片机内部中的2个时钟振荡器。

  • 主时钟振荡器主要用作CPU的工作时钟
  • 子时钟振荡器主要用作外围电路和实时时钟的工作时钟

在内部外围功能十分强大的“RL78族(RL78/G14)”上内部有频率偏差仅为1%的高精度振荡电路。因此,无需从外部提供时钟信号 。这种单片机上内部的时钟产生电路称为“内部振荡器”。因为不需要外部振荡电路,减少了设计工序,降低了成本。

类似这样只要备有“内部振荡器”,大家可能认为就可以“无需从外部提供时钟信号”。但实际上在电子手表中,通常使用频率几乎不随温度而变化的、更加精确的晶体振荡器。

「闹钟」―复位电路

刚刚接通电源的单片机内部处于不稳定的状态,CPU无法正常运转。因此,就需要进行单片机状态初始化,这就叫做复位。单片机带有复位信号输入引脚,可以将这个信号调至低电平状态后让单片机复位。也就是说通过输入复位信号来彻底叫醒单片机进入工作状态。

接下来讲解一下复位的时序(图4)。只有在向单片机提供稳定的时钟信号和电源的状态下才能实现复位,同时需将复位信号调至低电平。为了实现这种状态,需要将相比电源上电稍迟一步上电的电路与复位输入引脚相连接。这种电路在电源上电后通过电阻电流慢慢流向电容,电压缓缓上升。因此,电源上电后经过一段时间可以形成解除复位的电 路。这种外部电路称为“上电复位电路”。

图4:简易复位电路及其波形

 

如上图4所示,上电复位电路左侧的电路称为“手动按钮复位电路”。这是通过手动按下按钮后让单片机进入初始化状态的电路。

普通单片机上复位信号必须在一定时间内保持低电平。具体时间记载在硬件手册和数据手册上。必须根据这个时间的长短来确定电阻R和电容C。

而“RL78族(RL78/G14)”采用的是内部型上电复位电路。因此,只要提供超过工作电压的电源,就可以叫醒单片机进入工作状态。真是太方便了!

CPU的复位操作

通过复位操作,可以使程序计数器PC回到初始值,PC中保存的是CPU将要执行的指令地址。程序计数器PC的初始值是应用程序的头地址。单片机开始运行应用程序的方式有“固定地址开始方式”和“向量方式”。在设计单片机时,决定要使用的方式。

  • 固定地址开始方式是指从固定地址开始执行指令的方式。不同的单片机具体的地址也有所区别。如果固定地址是0,那么,就从0地址开始执行程序。
  • 向量方式是指从ROM的固定地址中,读取要执行指令的地址信息。这种ROM上的固定地址称为复位向量。操作过程是先取读复位向量的地址,然后再将该地址存入程序计数器PC。这种看起来比较繁琐,但是却具有可以自由更改初始执行指令地址的优点。

*本文内容已在2015年3月30日作出修订。

下期在“单片机入门(3)”中,我们将学习单片机的开发环境,让您亲自驱动一个实际的单片机!

单片机的外围功能电路 LET′S TRY“嵌入式编程”: 2 of 6的更多相关文章

  1. 外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6

    外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识. 在<单片机入门(1)-(3)>中,我们一起学习了单片 ...

  2. 单片机的基本构成、工作原理 LET′S TRY“嵌入式编程”: 1 of 6

    单片机的基本构成.工作原理 LET′S TRY“嵌入式编程”: 1 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识.有了电 ...

  3. 单片机ADC检测4-20mA电路,以及计算方法

    单片机ADC检测4-20mA电路,以及计算方法 转载:https://www.hongchangzidonghua.com/?id=24 1,手里有一个4-20mA输出的压力传感器,假设测量范围是0M ...

  4. 单片机的编程语言和开发环境 LET′S TRY“嵌入式编程”: 3 of 6

    单片机的编程语言和开发环境 LET′S TRY“嵌入式编程”: 3 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识. 在“ ...

  5. [每日电路图] 1、基于AT89C52单片机最小系统接口电路【转】

              come from:http://www.21ic.com/dianlu/basis/interface/2015-04-21/621607.htm AT89C52是美国Atmel ...

  6. STM32单片机串口一键下载电路与操作方法详解

    STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的Flash.2)SRAM = 芯片内置的RAM区,就是内存啦.3)系统存储器 = 芯片内部一块特定的区域,芯片出 ...

  7. Python程序入口 __name__ == ‘__main__‘ 有重要功能(多线程)而非编程习惯

    文章来源于互联网(https://jq.qq.com/?_wv=1027&k=rX9CWKg4) 在Python中,被称为「程序的入口」的 if name =='main': 总是出现在各种示 ...

  8. 中断 LET′S TRY“嵌入式编程”: 5 of 6

    中断 LET′S TRY“嵌入式编程”: 5 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识.本期为最后一期,将为大家介绍在单片机控制系统中不可缺少的 处理方式--“中断” ...

  9. 学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】

    视频地址:https://www.bilibili.com/video/av10765766 超详细!!!!!! 单片机内部三大资源 [资源:单片机可提供使用的东西] FLASH 可以重复擦写 断电后 ...

随机推荐

  1. Tomcat集成Memcached Session Manager方案

    http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/2.3.2/memcached-session-ma ...

  2. Mongo安装与使用

    MongoDB[1]  是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB MongoDB[2]  是一个介于关系数据库和非关系数 ...

  3. vue路由动态过渡效果

    不多说,直接上代码 import Vue from 'vue' //引入vue import VueRouter from 'vue-router' //引入路由 Vue.use(VueRouter) ...

  4. C#中使用打印日志

    在日常的工作中经常需要日志,这样能够很容易定位到代码中的一些错误,.Net中有自带的日志接口.并没有仔细去研究,这里是我自己写的日志接口,记录下来以便以后用到,根据时间打印相关的日志文件,代码如下: ...

  5. picker-view 组件 的value失效问题

    首先检查是不是漏了绑定关系 组件内 组件引用 如过还不行就用下面的方法,顺序问题 在给暂时列表赋值之后再对value赋值

  6. MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式

    一.MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式 1.本地数据库连接Driver={MySQL};Server=localhost;Option=16834; ...

  7. Vue 中提示报错 handlers[i].call is not a function解决方法

    Vue 中提示警告 TypeError: handlers[i].call is not a function at callHook (vue.esm.js?a026:2921) at Object ...

  8. Django的模板层

    一 模版简介 你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(request): now ...

  9. Linux基础学习笔记1

    MBR分区 主分区: 1-4,一块硬盘最多四个主分区,对主机必须有,主区可以格式化ntfs,存数据: 扩展分区:1-4,一块硬盘最多一个扩展分区,可以没有扩展分区,划分更小的单元,即逻辑分区: 逻辑分 ...

  10. Spark 数据倾斜

    Spark 数据倾斜解决方案 2017年03月29日 17:09:58 阅读数:382 现象       当你的应用程序发生以下情况时你该考虑下数据倾斜的问题了: 绝大多数task都可以愉快的执行,总 ...