在《嵌入式编程之单片机的根本构成、作业原理》、《嵌入式编程之单片机的外围功用电路》和《单片机的编程言语和开发环境》,咱们一同学习了单片机的硬件和编程言语以及开发环境等。本文将带咱们学习单片机的外围功用电路操控的基础知识。
(SFR) Special Function Registers
单片机中有象箱子功用相同的当地,咱们称为寄存器,用来暂存数据。寄存器的品种有程序计数器、通用寄存器、以及SFR(特别功用寄存器)等。
SFR首要用来设定外围功用电路(计数器或串行端口、通用I/O等)的作业方法,承认其作业状况,并对其进行操控的。也就是说SFR并非仅仅只是用来保存数据的“箱子”。经过改动保存在“箱子”里的数据,不只能够改动外围功用电路的动作方法,并且“箱子”里的数据也将跟着外围功用电路的作业状況而改动。
操控外围功用电路的基础知识
下面以通用I/O为例来阐明单片机对外围功用电路的操控。通用I/O具有以下功用:
输出功用:能够输出高电平电压或低电平电压
输入功用:能够读出输入到引脚的电压电平
首要来看输出功用的操控。图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就象是单片机的五官或许四肢。