您的位置 首页 系统

嵌入式编程之单片机的根本构成、作业原理

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

本篇解说作为嵌入式体系开发技术人员所必需具有的基础知识。这些基础知识是硬件和软件技术人员都应该把握的共通技术知识。有了电子电路和数字电路的基础知识,就能够开端学习嵌入式体系的中心元件-单片机。本文咱们将为咱们介绍单片机的基础知识。

单片机入门系列讲座中,首要学习单片机的根本构成和作业原理、以及外围功用电路,然后,应战一个实践单片机的运转。

单片机是操控电子产品的大脑

现如今,咱们日子中的许多电器都运用了单片机。例如:手机、电视机、冰箱、洗衣机、以及按下开关,LED就闪耀的儿童玩具。那么,单片机在这些电器中终究做了些什么呢?

单片机是这些电器动作的要害,是指挥硬件运转的。例如:接纳按钮或按键的输入信号,依照事前编好的程序,指挥马达和LCD的外围功用电路动作。

那么,单片机是怎么构成的呢?(图1)

单片机是由CPU、内存、外围功用等部分组成的。假如将单片机比作人,那么CPU是担任考虑的,内存是担任回忆的,外围功用相当于视觉的感官体系及操控四肢动作的神经体系。

图1:单片机的构成要素

虽然咱们说CPU相当于人的大脑,可是它却不能像人的大脑相同,能有认识的、自发的考虑。CPU只能顺次读取并履行事前存储在内存中的指令组合(程序)。当然CPU履行的指令并不是“走路”、“说话”等高难度指令,而是一些十分简略的指令,象从内存的某个当地“读取数据”或把某个数据“写入”内存的某个当地,或做加法、乘法和逻辑运算等等。可是这些简略指令的组合,却能完结许多杂乱的功用。

会考虑的CPU

让咱们从CPU的构成来了解它的效果吧。(图2)

图2:CPU的效果

◇程序计数器

CPU读取指令时需求知道要履行的指令保存在内存的什么方位,这个方位信息称为地址(相当于家庭住址)。程序计数器(PC)便是存储地址的寄存器。一般,PC是按1递加规划的,也便是说,当CPU履行了0000地址中的指令后,PC会主动加1,变成0001地址。每履行一条指令PC都会主动加1,指向下一条指令的地址。能够说,PC决议了程序履行的次序。

◇指令解码电路

指令解码电路是解读从内存中读取的指令的意义。运算电路是依据解码成果操作的。切当地讲,指令解码电路便是咱们在“数字电路入门(2)”中学过的解码电路,只不过电路结构略微杂乱些,所以,指令解码电路的作业原理便是从被符号化(被加密)的指令中,复原指令。

◇运算电路

运算电路也称为ALU(Arithmetic and Logic Unit),是完结运算的电路。能进行加法、乘法等算术运算、也能进行AND、OR 、BIT-SHIFT等逻辑运算。运算是在指令解码电路的操控下进行的。一般运算电路的构成都比较杂乱。

◇CPU内部寄存器

CPU内部寄存器是存储暂时信息的场所。有存储运算值和运算成果的通用寄存器,也有一些特别寄存器,比方存储运算标志的标志寄存器等。也便是说,运算电路进行运算时,并不是在内存中直接运算的,而是将内存中的数据复制到通用寄存器,在通用寄存器中进行运算的。

CPU的作业原理

让咱们通过一个详细运算3+4,来阐明CPU的操作过程吧。

假定保存在内存中的程序和数据如下。

地址 指令

(实践上指令是用二进制码表明的,为了便利了解,咱们用文字阐明)

0000 读取0100地址的内存,存入寄存器1

0001 读取0101地址的内存,存入寄存器2

0002 将寄存器1与寄存器2的值相加,成果存入寄存器1

地址 数据

0100 3

0101 4

◇过程1:当程序被履行时,CPU就读取当时PC指向的地址0000中的指令(该操作称为指令读取)。通过解码电路解读后,这条指令的意思是“读取0100地址中的内容,然后,保存到寄存器1”。所以CPU就履行指令,从0100地址中读取数据,存入寄存器1。

寄存器1: 0→3(由0变为3)

由于履行了1条指令,因而,PC的值变为0001

◇过程2:由于PC的值为0001,因而CPU就读取0001地址中的指令,经解码电路解码后,CPU履行该指令。然后PC再加1。

寄存器2:0→4(由0变为4)

PC:0001→0002

◇过程3:由于PC的值为0002,因而CPU从0002地址中读取指令,送给指令解码电路。解码成果是:将寄存器1和寄存器2相加,然后将成果存于寄存器1。

寄存器1:3→7

PC:2→3

所以3+4的成果7被存于寄存器1,加法运算完毕。CPU便是这样,顺次处理每一条简略的指令。

能回忆的内存

内存是单片机的回忆设备,首要回忆程序和数据,大体上分为ROM和RAM两大类。

◇ROM

ROM(Read Only Memory)是只读内存的简称。保存在ROM中的数据不能删去,也不会因断电而丢掉。ROM首要用于保存用户程序和在程序履行中坚持不变的常数。

大多数瑞萨(Renesas)的单片机都用闪存作为ROM。这是由于闪存不只能够象ROM相同,即便关机也不会丢掉数据,并且还答应修正数据。

◇RAM

RAM(Random Access Memory)是可随机读/写内存的简称。能够随时读写数据,但关机后,保存在RAM中的数据也随之消失。首要用于存储程序中的变量。

在单芯片单片机中(*1),常常用SRAM作为内部RAM。SRAM答应高速拜访,可是,内部结构太杂乱,很难完结高密度集成,不适合用作大容量内存。

除SRAM外,DRAM也是常见的RAM。DRAM的结构比较简略完结高密度集成,因而,比SRAM的容量大。可是,将高速逻辑电路和DRAM装置于同一个晶片上较为困难,因而,一般在单芯片单片机中很少运用,根本上都是用作外围电路。

(*1)单芯片单片机是指:将CPU,ROM,RAM,振荡电路,定时器和串行I/F等集成于一个LSI的微处理器。单芯片单片机的基础上再装备一些体系的首要外围电路,而构成的大规模集成电路称为体系LSI。

“为何要运用单片机……”

为什么许多电器设备都要运用单片机呢?

让咱们用一个点亮LED的电路为例,来阐明。如图3所示,不运用单片机的电路是一个由LED,开关和电阻构成的简略电路。

图3:不装置单片机的LED电路

运用单片机的电路如图4所示。

很明显,运用单片机的电路要杂乱得多,并且规划电路还要花费精力与财力。好象运用单片机并没有什么长处。可是,现在下结论还为时尚早。

假如咱们让这个电路做一些比较杂乱的操作,会怎么样呢。例如:假如期望LED在按下开关后,通过一段时间再点亮或平息,那么,关于装置有单片机的电路来说,只需更改单片机中的程序就能够了,并不需更改原电路。另一方面,关于没有单片机的电路来说,就必须在元电路中加入定时器IC,或许用规范逻辑IC和FPGA构成逻辑电路,才干完结这个功用。

也便是说,在更改和增加新功用时,带有单片机的电路明显愈加简略完结。这正是电器设备运用单片机的原因。单片机可真是个便利的东西哦!

图4:装置单片机的LED电路图

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/145554.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部