外围功能电路控制

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

本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识。

在《单片机入门(1)~(3)》中,我们一起学习了单片机的硬件和编程语言以及开发环境等。

本期让我们一起来学习单片机的外围功能电路控制的基础知识吧。

(SFR) Special Function Registers

单片机中有象箱子功能一样的地方,我们称为寄存器,用来暂存数据。寄存器的种类有程序计数器、通用寄存器、以及SFR(特殊功能寄存器)等。

SFR主要用来设定外围功能电路(计数器或串行端口、通用I/O等)的工作方式,确认其工作状况,并对其进行控制的。也就是说SFR并非仅仅只是用来保存数据的“箱子”。通过改变保存在“箱子”里的数据,不仅可以改变外围功能电路的动作方式,而且“箱子”里的数据也将随着外围功能电路的工作状況而改变。

控制外围功能电路的基础知识

下面以通用I/O为例来说明单片机对外围功能电路的控制。通用I/O具有以下功能:

  1. 输出功能:可以输出高电平电压或低电平电压
  2. 输入功能:可以读出输入到引脚的电压电平

首先来看输出功能的控制。图1中的引脚A是一个通用I/O。

如果向引脚A的寄存器(SFR)

  • 写入0,则引脚A的输出电压将为低电平(0V)。
  • 写入1,则引脚A的输出电压将为高电平(5V)。

图1:通用I/O的输出功能

 

如果将图1的引脚A连接一个LED,就可以构成一个控制LED的电路(见图2)。此时,向寄存器(SFR)写入0则LED亮灯,输入1则LED熄灭。虽然这是一种很简单的动作,但却反映了单片机对各种外围功能电路进行控制的基本原理。利用这种功能,就可以完成象电机的ON/OFF一样的开关作用(由于通常的单片机上不能流过驱动电机运行的大电流,所以还需另行准备用FET或晶体管作成的电机驱动电路)。另外,如果使用多个通用I/O端口,就可以完成更加复杂的控制。

图2:通用I/O的LED控制电路

 

接下来看输入功能(图3)。

  • 如果向引脚A输入低电平电压(0V),就会从寄存器(SFR)读出0。
  • 如果向引脚A输入高电平电压(5V),就会从寄存器(SFR)读出1。

即,读取寄存器(SFR)的值,就可以判断外部电压是低电平电压还是高电平电压。

图3:通用I/O的输入功能

 

图4:通用IO输入功能构成的开关电路

使用通用I/O的输入功能构成图4所示的电路,单片机就可以判断出开关(S)的状态。

  • 当开关(S)断开时,电源电压通过上拉电阻(R),连接到引脚A(相当于输入高电平电压),寄存器(SFR)将的值变为1。
  • 当开关(S)关闭时,引脚A被连接到低电平电压,寄存器(SFR)的值变为0。

单片机通过读取引脚A的寄存器(SFR)的值,是“1”还是“0”,可以判断外部开关(S)是断开还是关闭状态。

图4:通用IO输入功能构成的开关电路

 

单片机上搭载了各种功能的SFR。通过程序来更改或读出这些功能寄存器的值,就可获知单片机外围电路的信息,而对外围电路进行控制。所以可以说,SFR就象是单片机的五官或者手脚。

以上就是单片机控制外部外围功能的基础知识。下期是本系列的最后一期,我们将说明关于中断的内容。敬请期待。

外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6的更多相关文章

  1. 单片机的外围功能电路 LET′S TRY“嵌入式编程”: 2 of 6

    单片机的外围功能电路 LET′S TRY“嵌入式编程”: 2 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识. 上期在&l ...

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

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

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

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

  4. [转] NodeJS框架express的途径映射(路由)功能及控制

    NodeJS框架express的路径映射(路由)功能及控制 我们知道Express是一个基于NodeJS的非常优秀的服务端开发框架,本篇CSSer将提供express框架的route和route co ...

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

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

  6. 【C/C++】C语言嵌入式编程修炼·背景篇·软件架构篇·内存操作篇

    C 语言嵌入式系统编程修炼之一:背景篇 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力.无疑,汇编语言具备这样的特质.但是,归因于汇编语言 ...

  7. ROS Learning-029 (提高篇-007 A Mobile Base-05) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(精确的制定目标位置)

    ROS 提高篇 之 A Mobile Base-05 - 控制移动平台 - (Python编程)控制虚拟机器人的移动(精确的制定目标位置) 使用 odometry 消息类型 重写 out_and_ba ...

  8. ROS Learning-028 (提高篇-006 A Mobile Base-04) 控制移动平台 --- (Python编程)控制虚拟机器人的移动(不精确的制定目标位置)

    ROS 提高篇 之 A Mobile Base-04 - 控制移动平台 - (Python编程)控制虚拟机器人的移动(不精确的制定目标位置) 我使用的虚拟机软件:VMware Workstation ...

  9. C语言与汇编的嵌入式编程:求100以内素数

    写汇编之前,需要搞清楚C语言代码的写法,这里以最简单的算法举例说明 C代码如下: #include <stdio.h> void main(){ int i,j; ; ;i<=;i+ ...

随机推荐

  1. Html5使用canvas作图

    以下例子是项目中实际用到的.不足之处请大家指正,设计到画线,写文字,填充,文字旋转. <!DOCTYPE html> <html> <head lang="en ...

  2. Laravel数据库操作的三种方式

    http://blog.csdn.net/zls986992484/article/details/52824962

  3. python之路--网络编程之socket

    一 . 网络编程 CS架构 客户端服务端架构 服务端:提供服务的 客户端:享受服务的 BS架构:浏览器和服务端 网络通信流程: 集线器:将所有连接上它的电脑全部联通起来 交换机:升级版的集线器 网卡: ...

  4. app自动化测试Appium+python

    一.node.js安装 https://nodejs.org/en/download/ ##一直下一步 ###cmd查看 二.  .NET Framework安装 https://www.micros ...

  5. 莫烦theano学习自修第九天【过拟合问题与正规化】

    如下图所示(回归的过拟合问题):如果机器学习得到的回归为下图中的直线则是比较好的结果,但是如果进一步控制减少误差,导致机器学习到了下图中的曲线,则100%正确的学习了训练数据,看似较好,但是如果换成另 ...

  6. docker 列出每个容器的IP

    抄来的...找不到出处了.   常用方法有两种 docker inspect 容器ID | grep IPAddress 方法二 查看docker name: sudo docker inspect ...

  7. 一、.NET Core MVC 项目结构模板

    一.图文描述,开口干 二.文件结构:  wwwroot 首先,Razor Pages项目中多了一个wwwroot的文件夹,这个文件夹中,主要存放网站的静态资源,如css,网站图片资源文件,js文件,三 ...

  8. 百度云虚拟主机配置 Thinkphp5.1

    材料 服务器:百度云虚拟主机(nginx+php7.0+linux) Thinkphp 5.1 问题 百度云默认目录为/webroot,但是我们的需求是将项目存放到/webroot/public下面. ...

  9. python 基础篇

    1.编程语言介绍. 1.机器语言:直接用二进制编程,直接对硬件的控制,需对硬件掌握比较深. 优点:执行效率快 缺点:开发效率低下 2.汇编语言:用英文标签代替二进制编写程序,直接对硬件的控制,需对硬件 ...

  10. Java反射和注解

    反射:http://blog.csdn.net/liujiahan629629/article/details/18013523 注解:http://www.cnblogs.com/peida/arc ...