外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6
外围功能电路控制
本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识。
在《单片机入门(1)~(3)》中,我们一起学习了单片机的硬件和编程语言以及开发环境等。
本期让我们一起来学习单片机的外围功能电路控制的基础知识吧。
- (SFR) Special Function Registers
- 控制外围功能电路的基础知识
(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就象是单片机的五官或者手脚。
以上就是单片机控制外部外围功能的基础知识。下期是本系列的最后一期,我们将说明关于中断的内容。敬请期待。
转载于:https://www.cnblogs.com/isAndyWu/p/9596351.html
外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6相关推荐
- 手机接收机的功能电路(3)---振荡电路、锁相环
本文继续介绍手机接收机链路中主要的电路模块,包含振荡电路.锁相环 六.振荡电路 在电子设备中,振荡器的用途极为广泛.振荡电路的种类很多,按其工作原理,可分为反馈型振荡电路.负阻型振荡电路.多谐振荡电路 ...
- 深圳茁壮IPANEL浏览器中间件 debug模块移植参考,打印分级等功能,可以移到其他嵌入式系统
/*************************************************************************************************** ...
- 手机发射机的功能电路(2)---发射机调制方式
一个频率信号的某种特性参数随另一个信号而变化的过程或处理方法称为调制.按载波参数随调制信号变化的不同,调制可分为两大类:连续调制和脉冲调制. 连续调制又分为三种: 调幅(AM,Amplitude Mo ...
- 汽车BCM程序源代码,国产车BCM程序源代码, 喜好汽车电路 控制系统研究的值得入手。
汽车BCM程序源代码,国产车BCM程序源代码, 喜好汽车电路 控制系统研究的值得入手. ♦ 外部灯光:前照灯.小灯.转向灯.前后雾灯.日间行车灯.倒车灯.制动灯.角灯.泊车灯等 ♦ 内部灯光:顶灯.钥 ...
- ASP.NET Core使用功能开关控制路由访问(续)
前言 在前面的文章,我们介绍了使用功能开关控制路由访问. 但其实我们使用了2个条件做的判断: var isDebugEndpoint = context.Request.Path.Value.Cont ...
- Feature Flag 功能发布控制
背景 产品在新功能发布前,可能会采取小流量测试的方式,或者在确定方案前使用A/B测试来衡量.一般开发人员会跟运维同学合作,通过一些现有平台切换机器或者流量来实现.本文介绍了另外一种简便的方式,并解释了 ...
- matlab 由移相角如何产生移相脉冲,整流电路控制角移相范围是怎么确定的?
整流电路控制角移相范围是怎么确定的? 2019-03-14 [FrancisQu的回答(28票)]: 谢邀^^ 一言以蔽之,整流电路控制角的范围取决于整流电路直流输出电压平均值 时所得的控制角 ,详细 ...
- 几种功能电路的BIT测试方案设
http://www.go-gddq.com/html/s163/2011-04/625230.htm 摘 要:BIT 技术是当今最重要的在线故障诊断技术之一,已经被广泛应用于航空 电子 设备中,在航 ...
- 直驱永磁风机simulink仿真模型,内含网侧和机侧控制,低电压穿越控制(chopper电路控制),风速模拟,MPPT
直驱永磁风机simulink仿真模型,内含网侧和机侧控制,低电压穿越控制(chopper电路控制),风速模拟,MPPT. 机侧:内外双环控制. 对于发电机采用零d轴电流(ZDC)控制,MPPT采用最优 ...
最新文章
- 面对疫情,飞书线上办公室,让我们换一种方式重聚!
- 同软件多个线程设置不同ip_5-13网络编程(附带多线程死锁,线程通信)
- linux进程间通信-管道
- 疯狂的程序员_程序员的乐趣是什么?
- Pygal简介、画廊--各种图形绘图代码
- xshess 要继续使用此程序,您必须应用最新的更新
- 从代码规范学到的细节
- 写给数据小白:怎么让你的分析结论超出预期,不再是废纸一堆
- html快闪软件制作,抖音最强快闪ppt怎么做?快闪PPT快闪制作方法介绍
- 疯狂Java讲义(十三)----第一部分
- c语言 析构函数,C++析构函数详解
- 机器学习:特征选择之RFormula(SparkMLlib中的RFormula)
- 计算机毕业设计(69)php小程序毕设作品之疫苗预约小程序系统
- 手机点击android出现N,“安卓N”登场,会给手机带来哪些新功能
- asp上传头像mysql_asp 会员头像上传 代码
- 牛逼的人很早就开始牛逼了
- 计算机组成原理 累加器实验
- 3D折纸效果怎么实现?
- java private修饰方法,private修饰的方法
- android studio便签需求介绍,Android我的便签-----SQLite的使用方法
热门文章
- 【Python学习】 - 使用Anaconda的Spyder查看某些函数的原型的6种方法汇总
- 【51Nod - 1270】数组的最大代价(dp,思维)
- 【CodeForces - 227C】Flying Saucer Segments (思维)
- ACM中关于计算几何(浮点数)的精度问题
- 从零开始学视觉Transformer(4):ViT模型全流程解析
- 动手学PaddlePaddle(5):迁移学习
- combox 增加请选择_娱乐测试:选择四种花束中的一种,测试你对婚姻的看法
- 计算机专业会议评级,2018计算机专业工程教育认证研讨会
- ionic判断android版本,$ionicplatform 判断是android还是ios?
- php 正则匹配unicode,PHP中正则表达式对UNICODE字符码的匹配方法