「记者揭秘」51单片机CPU结构各部件的原理详细分析—记者实录

 admin   2022-08-12 18:31   125 人阅读  0 条评论

一. 51
单片机
串行口工做理由
MCS-51排列单片机片内有一位串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设
电路
举行全双工的串行异步通讯啦。
1.串行端口的基本特色
8031单片机的串行端口有4种基本工做办法,通过编程设置,可以使其工做在任一办法,以知足区别运用处合的必-要啦。这个内里,办法0主要用于外接移位
寄存器
,以扩张单片机的I/O电路阿;办法1多用于双机之偶然与外设电路的通讯阿;办法2,3除有办法l的功效外,还可用做多机通讯,以组成份散式多微机体制啦。
串行端口有两个掌控寄存器,用来设置工做办法.发送或者吸收的状态.特色位.数据通报的波特率(每一秒通报的位数)和做为中止记号等啦。
串行端口有一位数据寄存器SBUF(在希奇功效寄存器中的字节位置为99H),该寄存器为发送和吸收所一同啦。发送时,只写不读阿;吸收时,只读不写啦。在肯定条件下,向阳UF写入数据就启动了发送历程阿;读SBUf就启动了吸收历程啦。
串行通讯的波特率能够程控设定啦。在区别工做办法中,由
时钟
振荡频率的分频值或者由
准时器
Tl的准时溢出时刻一定,运用十分便利灵巧啦。
2.串行端口的工做办法
①办法0
8位移位寄存器输入/输入办法啦。多用于外接移位寄存器以扩张I/O端口啦。波特率牢固为fosc/12啦。这个内里,fosc为时钟频率啦。
在办法0中,串行端口做为输入时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输入(从低位到高位)阿;这个时候,TXD输入频率为fosc/12的同步移位脉冲啦。数据发送前,仅管不运用中止,中止记号
TI
还必须清零,8位数据发送完后,TI努力置1啦。如要再发送,必须用软件将TI清零啦。
串行端口做为输入时,RXD为数据输入端,TXD仍为同步信-号输入端,输入频率为fosc/12的同步移位脉冲,使外面数据逐位移入RxD啦。当吸收到8位数据(一帧)后,中止记号RI努力置啦。如果再吸收,必须用软件先将RI清零啦。
串行办法0发送和吸收的时序历程见下图啦。
②办法1
10位异步通讯办法啦。这个内里,1个最先位(0),8个数据位(由低位到高位)和1个截至位(1)啦。波特率由准时器T1的溢出率和SMOD位的状态一定啦。
一条写SBUF指令即可启动数据发送历程啦。在发送移位时钟(由波特率一定)的同步下,从TxD先送出最先位,然后是8位数据位,最终是截至位啦。这样的一帧10位数据发送完后,中止记号TI置位啦。
在赞成吸收的条件下(REN=1),当RXD出-现由1到O的负跳变时,即被当做是串行发送来的一帧数据的最先位,从而启动一次吸收历程啦。当8位数据吸收完,并检测到高电乎截至位后,即把吸收到的8位数据装入SBUF,置位RI,一帧数据的吸收历程就完结了啦。
办法1的数据通报波特率能够编程设置,运用范围宽,其盘算式为
波特率=2SMOD/32×(准时器T1的溢出率)
这个内里,SMOD是掌控寄存器PCON中的一位程控位,其取值有0和l两种状态啦。分明,当SMOD=0时,波特率=1/32(准时器Tl溢出率),而当SMOD=1时,波特率=1/16(准时器T1溢出率)啦。所谓准时器的溢出率,即是指准时器一秒钟内的溢出次数啦。波特率的算法,和乞求肯定波特率时准时器准时初值的求法,以后将一五一十讨论啦。
串行办法1的发送和吸收历程的时序见下图啦。
③办法2,3
11位异步通讯办法啦。这个内里,1个最先位(0),8个数据位(由低位到高位),1个附加的第9位和1个截至住(1)啦。办法2和办法3除波特率区别外,其余功效一切相似啦。办法2,3的发送.吸收时序见下图啦。
由图可见,办法2和办法3与办法l的操做历程基本性似,主要差异在于办法2,3有第9位数据啦。
发送时,发送机的这第9位数据来源该机SCON中的TB8,而吸收机将吸收到的这第9位数据送入本机SCON中的RB8啦。这个第9位数据平时用做数据的奇偶
检查
位,或者在多机通讯中做为位置/数据的特色位啦。
办法2和办法3的波特率盘算式以下
办法2的波特率=2SMOD/64×fosc
办法3的波特率=2SMOD/32×准时器T1的溢出率
由此可见,在
晶振
时钟频率肯定的条件下,办法2惟有两种波特率,而办法3可通过编程设置成多种波特率,这即是这两种办法的差异地址啦。
3.串行端口的掌控寄存器
串行端口共有两个掌控寄存器SCON和PCON,用以设置串行端口的工做办法.吸收/发送的运转状态.吸收/发送数据的特色.波特率的长短,和做为运转的中止记号等啦。
一.P0端口的结构及工做理由
P0端口8位中的一位结构图见下图
由上图可见,P0端口由

存器.输入缓冲器.切换
开关
.一位与非门.一位与门及
场效果管
驱动电路组成啦。再看图的右侧,标号为P0.X引脚的图标,也即是说P0.X引脚可于是P0.0到P0.7的任何一位,即在P0口有8个与上图相似的电路组成啦。
下面,咋们先就组成P0口的每逐一位单元部-分跟我们推荐一下
先看输入缓冲器在P0口中,有两个三态的缓冲器,在学
数字电路
时,咋们已知道,三态门有三个状态,即在其的输入端可于是高电平.低电平,同时另有一种即是高阻状态(或者称为不行以状态),我们看上图,上面一位是读锁存器的缓冲器,也即是说,要读取D锁存器输入端Q的数据,那就得使读锁存器的这个缓冲器的三态掌控端(上图中标号为‘读锁存器’端)有用啦。下面一位是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的掌控端有用,引脚上的数据才会传输到咋们单片机的内里数据总线上啦。
D锁存器组成一位锁存器,平时要用一位时序电路,时序的单元电路在学数字电路时咋们已知道,一位
触发器
能够保留一位的两进制数(即拥有维持功效),在51单片机的32根I/O口线中全是用一位D触发器来组成锁存器的啦。我们看上图中的D锁存器,D端是数据输入端,CP是掌控端(也即是时序掌控信-号输入端),Q是输入端,Q非是反向输入端啦。
关于D触发器来说,当D输入端有一位输入信-号,如果这个时刻掌控端CP有无信-号(也即是时序脉冲有无来到),这个时刻输入端D的数据是无法传输到输入端Q及反向输入端Q非的啦。如果时序掌控端CP的时序脉冲一旦到了,这个时刻D端输入的数据就会传输到Q及Q非端啦。数据通报以前后,当CP时序掌控端的时序信-号消逝了,这个时刻,输入端还会维持着上次输入端D的数据(即把上次的数据锁存起身了)啦。如果下一位时序掌控脉冲信-号来了,这个时刻D端的数据才再次通报到Q端,从而更改Q端的状态啦。
多路开关在51单片机中,当内里的
存储器
够用(也即是没必-要要外扩张
存储
器时,这里讲的存储器包罗数据存储器及程-序存储器)时,P0口能够做为公用的输入输入端口(即I/O)运用,关于8031(内里有无
ROM
)的单片机或者者编辑的程-序凌驾了单片机内里的存储器容量,必-要外扩存储器时,P0口就做为‘位置/数据’总线运用啦。那么这个多路选择开关即是用于选择是做为普通I/O口运用仍然做为‘数据/位置’总线运用的选择开关了啦。我们看上图,当多路开关与下面接通时,P0口是做为普通的I/O口运用的,当多路开关是与上面接通时,P0口是做为‘位置/数据’总线运用的啦。
输入驱动部-分从上图中咋们已看出,P0口的输入是由两个MOS管组成的推拉式结构,也即是说,这两个MOS管一次只能导通一位,当V1导通时,V2就截至,当V2导通时,V1截至啦。
与门.与非门这两个单元电路的思维理由咋们在第四课数字及经常使用思维电路时已做过推荐,不清晰的同学请回到第四节去看看啦。
前面咋们已将P0口的各单元零件举行了一位一五一十的解说,下面咋们就来钻研一下P0口做为I/O口及位置/数据总线使用时的详细工做历程啦。
1.做为I/O端口使用时的工做理由
P0口做为I/O端口使用时,多路开关的掌控信-号为0(低电平),看上图中的线线部-分,多路开关的掌控信-号同时与与门的一位输入端是相接的,咋们知道与门的思维特色是“全1出1,有0出0了”那么掌控信-号是0的话,这个时刻与门输入的也是一位0(低电平),与让的输入是0,V1管就截至,在多路掌控开关的掌控信-号是0(低电平)时,多路开关是与锁存器的Q非审察接的(即P0口做为I/O口线运用)啦。
P0口用做I/O口线,其由数据总线向引脚输入(即输入状态Output)的工做历程当写锁存器信-号CP 有用,数据总线的信-号→锁存器的输入端D→锁存器的反向输入Q非端→多路开关→V2管的栅极→V2的漏极到输入端P0.X啦。前面咋们已讲了,当多路开关的掌控信-号为低电平0时,与门输入为低电平,V1管是截至的,因此做为输入口时,P0是漏极开路输入,相似于OC门,当驱动上接
电流
负载时,必-要外接上拉
电阻
啦。
下图即是由内里数据总线向P0口输入数据的流程图(血色箭头)啦。
P0口用做I/O口线,其由引脚向内里数据总线输入(即输入状态Input)的工做历程数据输入时(读P0口)有两种情形
1.读引脚
读芯片引脚上的数据,读引脚数时,读引脚缓冲器掀开(即三态缓冲器的掌控端要有用),通过内里数据总线输入,请看下图(血色简头)啦。
2.读锁存器
通过掀开读锁存器三态缓冲器读取锁存器输入端Q的状态,请看下图(血色箭头)
在输入状态下,从锁存器和从引脚上读来的信-号一样平常为相似的,但也有破例啦。比如,当从内里总线输入低电平后,锁存器Q=0,Q非=1,场效果管T2买通,端口线呈低电平状态啦。这个时候岂论端口线上外接的信-号是低电乎仍然高电平,从引脚读入单片机的信-号全是低电平,因而不行以准确地读入端口引脚上的信-号啦。又如,当从内里总线输入高电平后,锁存器Q=1,Q非=0,场效果管T2截至啦。如外接引脚信-号为低电平,从引脚上读入的信-号就与从锁存器读入的信-号区别啦。为此,8031单片机在对端口P0一P3的输入操做上,有以下约定为此,8051单片机在对端口P0一P3的输入操做上,有以下约定凡属于读-修正-写办法的指令,从锁存器读入信-号,其余指令则从端口引脚线上读入信-号啦。
读-修正-写指令的特色是,从端口输入(读)信-号,在单片机内加以运算(修正)后,再输入(写)到该端口上啦。下面是几条读--修正-写指令的按例啦。
这样放置的本因在于读-修正-写指令必-要获得端口本输入的状态,修正后再输入,读锁存器而不-是读引脚,能够免因外面电路的本因而使本端口的状态被读错啦。
P0端口是8031单片机的总线口,分时出-现数据D7一D0.低8位位置A7一AO,和三态,用来接口存储器.外面电路与外面装备啦。P0端口是运用最普遍的I/O端口啦。
2.做为位置/数据复用口使用时的工做理由
在会见外面存储器时P0口做为位置/数据复用口运用啦。
这个时刻多路开关‘掌控’信-号为‘1’,‘与门’解锁,‘与门’输入信-号电平由“位置/数据了”线信-号决定阿;多路开关与反相器的输入审察连,位置信-号经“位置/数据了”线→反相器→V2场效果管栅极→V2漏极输入啦。
比如掌控信-号为1,位置信-号为“0了”时,与门输入低电平,V1管截至阿;反相器输入高电平,V2管导通,输入引脚的位置信-号为低电平啦。请看下图(兰色字体为电平)
反之,掌控信-号为“1了”.位置信-号为“1了”,“与门了”输入为高电平,V1管导通阿;反相器输入低电平,V2管截至,输入引脚的位置信-号为高电平啦。请看下图(兰色字体为电平)
可见,在输入“位置/数据了”信息时,V1.V2管是交待接收替换导通的,负载才气很强,能够直-接与外设存储器相连,没必-要增添总线驱动器啦。
P0口又做为数据总线运用啦。在会见外面程-序存储器时,P0口输入低8位位置信息后,将变成数据总线,以便读指令码(输入)啦。
在取指令时期,“掌控了”信-号为“0了”,V1管截至,多路开关也随着转向锁存器反相输入端Q非阿;
CPU
努力将0FFH(11111111,即向D锁存器写入一位高电平‘1’)写入P0口锁存器,使V2管截至,在读引脚信-号掌控下,通过读引脚三态门电路将指令码读到内里总线啦。请看下图
如果该指令是输入数据,如MOVX @DPTR,A(将累加器的内容通过P0口数据总线通报到外面
RAM
中),则多路开关“掌控了”信-号为‘1’,“与门了”解锁,与输入位置信-号的工做流程相似,数据据由“位置/数据了”线→反相器→V2场效果管栅极→V2漏极输入啦。
如果该指令是输入数据(读外面数据存储器或者程-序存储器),如MOVX A,@DPTR(将外面RAM某一存储单元内容通过P0口数据总线输入到累加器A中),则输入的数据仍通过读引脚三态缓冲器到内里总线,其历程相似于上图中的读取指令码流程图啦。
通过以上的剖析能够看出,当P0做为位置/数据总线使用时,在读指令码或者输入数据前,CPU主意向P0口锁存器写入0FFH,损坏了P0口一开始的状态啦。因而,不行以再做为公用的I/O端口啦。我们以后在体制设
计时
务必注重,即程-序中不行以再含有以P0口做为操做数(包罗源操做数和目的操做数)的指令啦。
两.P1端口的结构及工做理由
P1口的结构最简易,用途也简易,仅做为数据输入/输入端口运用啦。输入的信息有锁存,输入有读引脚和读锁存器之分啦。P1端口的一位结构见下图.
由图可见,P1端口与P0端口的主要差异在于,P1端口用内里上拉电阻R取代了P0端口的场效果管T1,而且输入的信息仅来源内里总线啦。由内里总线输入的数据经锁存器反相和场效果管反相后,锁存在端口线上,因此,P1端口是拥有输入锁存的静态口啦。
由上图可见,要准确地从引脚上读入外面信息,必须先使场效果管关断,以便由外面输入的信息一定引脚的状态啦。为此,在做引脚读入前,必须先对该端口写入l啦。拥有这类操做特色的输入/输入端口,称为准双向I/O口啦。8051单片机的P1.P2.P3全是准双向口啦。P0端口由于输入有三态功效,输入前,端口线已处于高阻态,无需先写入l后再做读操做啦。
P1口的结构对应简易,前面咋们已一五一十的剖析了P0口,只要我们负-责 专心 的剖析了P0口的工做理由,P1口我想我们都有才气去剖析,这里我就不多叙述了啦。
单片机复位后,各个端口已努力地被写入了1,这个时候,可直-接做输入操做啦。如果在运用端口的历程中,已向P1一P3端口线输入过0,则再要输入时,必须先写1后再读引脚,才气获得准确的信息啦。另外,随输入指令的区别,H端口也有读锁存器与读引脚之分啦。
三.P2端口的结构及工做理由:
P2端口的一位结构见下图
由图可见,P2端口在片内既有上拉电阻,又有切换开关MUX,因此P2端口在功效上兼有P0端口和P1端口的特色啦。这主要体现在输入功效上,当切换开关向下接通时,从内里总线输入的一位数据经反相器和场效果管反相后,输入在端口引脚线上阿;当多路开关向上时,输入的一位位置信-号也经反相器和场效果管反相后,输入在端口引脚线上啦。
关于8031单片机必须外接程-序存储器才气组成运用电路(或者者咋们的运用电路扩张了外面存储器),而P2端口即是用来周期性地输入从外存中取指令的位置(高8位位置),因而,P2端口的多路开关总是在举行切换,分时地输入从内里总线来的数据和从位置
信-号线
上去的位置啦。因而P2端口是消息的I/O端口啦。输入数据虽被锁存,但不-是稳固地出-现在端口线上啦。一开始,这里输入的数据经常也是一种位置,只可是是外面RAM的高8位位置啦。
在输入功效方方面面,P2端口与P0和H端口相似,有读引脚和读锁存器之分,而且P2端口也是准双向口啦。
可见,P2端口的主要特色包罗
①不行以输入静态的数据阿;
②自身输入外面程-序存储器的高8位位置阿;
②实行MOVX指令时,还输入外面RAM的高位位置,故称P2端口为消息位置端口啦。
即然P2口能够做为I/O口运用,也能够或者者做为位置总线运用,下面咋们就不剖析下她的两种工做状态啦。
1.做为I/O端口使用时的工做历程
当有无外面程-序存储器或者只管有外面数据存储器,但简易不大于256B,即没必-要要高8位位置时(在这类情形下,不行以通过数据位置寄存器DPTR读写外面数据存储器),P2口能够I/O口运用啦。这个时刻,“掌控了”信-号为“0了”,多路开关转向锁存器同相输入端Q,输入信-号经内里总线→锁存器同相输入端Q→反相器→V2管栅极→V2管9漏极输入啦。
由于V2漏极带有上拉电阻,能够供应肯定的上拉电流,负载才气约为8个TTL与非门阿;做为输入口前,一样必-要向锁存器写入“1了”,使反相器输入低电平,V2管截至,即引脚悬空时为高电平,预防引脚被钳位在低电平啦。读引脚有用后,输入信息经读引脚三态门电路到内里数据总线啦。
2.做为位置总线使用时的工做历程
P2口做为位置总线时,“掌控了”信-号为‘1’,多路开关车向位置线(即向上接通),位置信息经反相器→V2管栅极→漏极输入啦。由于P2口输入高8位位置,与P0口区别,没必-要分时运用,因而P2口上的位置信息(程-序存储器上的A15~A8)功数据位置寄存器高8位DPH保留时刻长,没必-要锁存啦。
四.P3端口的结构及工做理由
P3口是一位多功效口,她除能够做为I/O口外,还拥有第两功效,P3端口的一位结构见下图啦。
由上图可见,P3端口和Pl端口的结构相似,区分仅在于P3端口的各端口线有两种功效选择啦。当处于第一功效时,第两输入功效线为1,这个时候,内里总线信-号经锁存器和场效果管输入/输入,其结局与P1端口结局相似,也是静态准双向I/O端口啦。当处于第两功效时,锁存器输入1,通过第两输入功效线输入特定的内含信-号,在输入方方面面,即能够通过缓冲器读入引脚信-号,还能够通过替换输入功效读入片内的特定第两功效信-号啦。由于输入信-号锁存而且有双重功效,故P3端口为静态双功效端口啦。
P3口的希奇功效(即第两功效)
使P3端品各线处于第两功效的条件是:
1.串行I/O处于运转状态(RXD,TXD);
2.掀开了处部中止(INT0,INT1);
3.准时器/计数器处于外面计数状态(T0,T1)
4.实行读写外面RAM的指令(RD,WR)
在运用中,如不设定P3端口列位的第两功效(WR,RD信叼的发生没必-要设置),则P3端口线努力处于第一功效状态,也即是静态I/O端口的工做状态啦。在更多的场所是依照运用的必-要,把几条端口线设置为第两功效,而另外几条端口线处于第一功效运转状态啦。在这类情形下,不宜对P3端口做字节操做,需采用位操做的形势啦。
端口的负载才气和输入/输入操做:
P0端口能驱动8个LSTTL负载啦。如需增添负载才气,可在P0总线上增添总线驱动器啦。P1,P2,P3端口各能驱动4个LSTTL负载啦。
前已述及,由于P0-P3端口已映照成希奇功效寄存器中的P0一P3端口寄存器,因此对这些端口寄存器的读/写就完变成了信息从响应端口的输入/输入啦。比如
MOV A, P1 阿;把Pl端口线上的信息输入到A
MoV P1, A 阿;把A的内容由P1端口输入
MOV P3, 0FFH 阿;使P3端口线各职位l
这里咋们已将51单片机的4个8位的并行口跟我们一块来剖析了一下~
三.编码及译码器工做理由剖析
这里主要简易推荐下,学过数字电路对编码译码领会的同伴能够跳过这部-分啦。
把所运用的每一种两进制代码状态都赋于特定的含意,表现一位特定的信-号或者对-象,叫编码啦。如用四位两进制数的0000~1001这十种状太,分-别表现0~9这十个十进制数码,称为8421编码啦。反以前把代码的特定含意翻译进去,称为译码啦。
盘算机
在处置种种笔墨记号或者数码时,必须把这些信息举行两进制编码,在编码时所运用的第一种两进制代码状态都赋予了特定的含意,即表现一位一定的信-号或者者对-象,完成这类功效的电路叫
编码器
,如用于键盘的BCD码,ASCII码编码器等啦。
单片机外头电路用译码器较多,因此在这节课咋们主要与我们一块来学习下译码器的工做理由(购置了本站成品的同伴,在咋们配套的多媒体教育光盘中有相关的教育内容,建议我们观-看),把代码的含意‘翻译’成响应的输入信-号,以表现其本心啦。其功效正好与编码器反以前啦。
译码器能够将输入代码的状态翻译成响应的输入信-号,以高.低电平的形势在各自的输入端口送出,以表现其愿望啦。译码器有多个输入端和多个输入端啦。如果输入的端个数为,每逐一位输入端只能有两个状态,则输入端个数最多有2n个啦。经常使用译码器输入.输入端头数来称谓译码器,如3线-8线译码器,4线-10线译码器等啦。咋们常经常使用到的74138即是一位三线-八线译码器,同伴们能够到百度寻找74138的中文原料啦。
编码.译码的观点咋们领会下,下面咋们就来重点来说一下三-八译码器的工做理由,这在咋们51单片机的
接口
电路中也是常经常使用到的啦。
74138的工做理由以下图所示
从上图可看出,74138有三个输入端A0.A1.A2和八个输入端Q0~Q7啦。当输入端A0.A1.A2的编码为000时,译码器输入为Q0=0,而Q1~Q7=1啦。即Q0对应于A0.A1.A2为000状态,低电平有用啦。A0.A1.A2的另外7种组合见以后的真值表啦。
图中S1.S2.S3为使能掌控端,起到掌控译码器是否能举行译码的结局啦。惟有S1为高电平,S2.S3均为低电平时,才气举行译码,否则岂论输入羰输入为什么值,每逐一位输入端均为1啦。
下图是输入端A0.A1.A2为000,掌控端S1=1.S1=0.S2=0的电平示贪图(血色数字为端口电平),我们可按下图举行剖析,也能够或者者剖析输入端另外七种组适时的输入情形啦。
四.51单片机CPU结构剖析
在前面的短文里咋们已知道了单片机内里有一位8位的CPU,同时知道了CPU内里包罗了运算器,掌控器及许多寄存器啦。在这节课,咋们就与我们一块来讨论一下51单片机CPU的内里结构及工做理由啦。
从上图中咋们能够看到,在虚线框内的即是CPU的内里结构了,8位的MCS-51单片机的CPU内里有数术思维单元ALU(Arithmetic Logic Unit).累加器A(8位).寄存器B(8位).程-序状态字PSW(8位).程-序计数器PC(有一些时刻也称为指令指针,即IP,16位).位置寄存器AR(16位).数据寄存器DR(8位).指令寄存器IR(8位).指令译码器ID.掌控器等零件组成啦。
1.运算器(ALU)的主要功效
A)算术和思维运算,可折半字节(一位字节是8位,半个字节即是4位)和单字节数据举行操做啦。
B)加.减.乘.除.加1.减1.对比等算术运算啦。
C)与.或者.异或者.求补.重复等思维运算啦。
D)位处置功效(即布尔处置器)啦。
由于ALU内里有无寄存器,参与运算的操做数,必须放在累加器A中啦。累加器A也用于寄存运算结局啦。
比如实行指令 ADD A,B
实行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内里数据总线经输入口In_2输入ALU,A+B的结局通过ALU的输入口Out.内里数据总线,送回到累加器A啦。
2.程-序计数器PC
PC的结局是用来寄存将要实行的指令位置,共16位,可对64K ROM直-接寻址,PC低8位经P0口输入,高8位经P2口输入啦。也即是说,程-序实行到什么场所,程-序计数器PC就指到那里,她一直是跟蹿着程-序的实行啦。咋们知道,用户程-序是寄存在内里的ROM中的,咋们要实行程-序将要从ROM中一位个字节的读进去,然后到CPU中去实行,那么ROM详细实行到哪一条呀?这就必-要咋们的程-序计数器PC来指点啦。
程-序计数器PC拥有努力加1的功效,即从存储器中读出一位字节的指令码后,PC努力加1(指向下一位存储单元)啦。
3.指令寄存器IR
指令寄存器的结局即是用来寄存马上实行的指令代码啦。
在这里咋们先简易的领会下CPU实行指令的历程,一最先的时刻由程-序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由准时与掌控电路发出响应的掌控信-号,从而完结指令的功效啦。关于指令在单片机内里的实行历程,咋们在以后将会在以后的短文里举行一五一十的解说啦。
4.指令译码器ID
用于对送入指令寄存器中的指令举行译码,所谓译码即是把指令更改成实行此指令所必-要的电信-号啦。当指令送入译码器后,由译码器对该指令举行译码,依照译码器输入的信-号,CPU掌控电路准时地发生实行该指令所需的种种掌控信-号,使单片机准确的实行程-序所必-要的种种操做啦。
5.位置寄存器AR(16位)
AR的结局是用来寄存将要寻址的外面存储器单元的位置信息,指令码地址存储单元的位置编码,由程-序计数器PC发生,而指令中操做数地址的存储单元位置码,由指令的操做数给定啦。从上图中咋们能够看到,位置寄存器AR通过位置总线AB与外面存储器相连啦。
6.数据寄存器DR
用于寄存写入外面存储器或者I/O端口的数据信息啦。可见,数据寄存器对输入数据拥有锁存功效啦。数据寄存器与外面数据总线DB直-接相连啦。
7.程-序状态字PSW
用于纪录运算历程中的状态,如是否溢出.进位等啦。
比如,累加器A的内容83H,实行
ADD A,8AH 阿;累加器A与立刻数8AH相加,并把结局寄存在A中啦。
指令后,将发生和的结局为[1]0DH,而累加器A惟有8位,只能寄存低8位,即0DH,元法寄存结局中的最高位B8啦。为些,在CPU内设置一位进位记号位C,当实行加法运算出-现进位时,进位记号位C为1啦。
8.时序零件
由时钟电路和脉冲分配器组成,用于发生微操做掌控零件所需的准时脉冲信-号
五.存储器的存储理由
存储器用来寄存盘算机中的所有信息包罗程-序.本始数据.运算的中心结局及最结尾果等啦。
只读存储器(ROM)只读存储器在使用时,只能读出而不行以写入,断电后ROM中的信息不会丢弃啦。因而一样平常用来寄存一些牢固程-序,如
监控
程-序.子程-序.字库及数据表等啦。ROM按存储信息的办法又可分为以下几种
1.掩膜ROM
掩膜ROM也称牢固ROM,她是由工厂编好程-序写入ROM(称固化)供用户运用,用户不行以变更内里程-序,其特色是价廉价啦。
2.可编程的只读存储器(PROM)
她的内容可由用户依照自已所编程-序一次性写入,一旦写入,只能读出,而不行以再举行变更,这类存储器现在也称为OTP(Only Time Programmable)啦。
3.可改写的只读存储器EPROM
前两种ROM只能举行一次性写入,因而用户较少运用,现在较为盛行的ROM芯片为EPROM啦。由于她的内容能够通过紫外线映照而完全擦除,擦除后又可重新写入新的程-序啦。
4.可电改写只读存储器(EEPROM)
EEPROM可用电的办法写入和消除其内容,其编程电压和消除电压均与微机CPU的5V工做电压相似,不需另加电压啦。她既有与RAM一样读写操做轻巧,又有数据不会因掉电而丢弃的利益,因而运用极为便利啦。现在这类存储器的运用最为普遍啦。
随机存储器(RAM)
这类存储器又叫读写存储器啦。她不仅能读取寄存在存储单元中的数据,还能随时写入新的数据,写入后一开始的数据就丢弃了啦。断电后RAM中的信息所有丢弃啦。因些,RAM经常使用于寄存经常要更改的程-序或者中心盘算结局等信息啦。
RAM根据存储信息的办法,又可分为静态和消息两种
1.静态SRAM其特色是只要有电源加于存储器,数据就能够长时刻保留啦。
2.消息
DRAM
写入的信息只能保留许多ms时刻,因而,每一隔必准时刻必须重新写入一次,以维持一开始的信息不变啦。
可现场改写的非易失性存储器
这类存储器的特色是从理由上看,她们属于ROM型存储器,从功效上看,她们又能够随时改写信息,结局又十分于RAM啦。因此,ROM.RAM的界说和区分已逐步逐步的丢弃意义啦。
1.快擦写存储器(FLASH)
这类存储器是在EPROM和EEPROM的
制作
普遍发生的一种非易失性存储器啦。其集成度高,制作本低于DRAM,既拥有SRAM读写的灵巧性和较快的会见速率,又拥有ROM在断电后可不丢弃信息的特色,因此进展迅速啦。
2.铁电存储器FRAM
她是使用铁电原料极化方向来存储数据的啦。她的特色是集成度高,读写速率快,本低,读写周期短啦。
通过前面的学习,咋们已知道存储器是盘算机的重组成部-分啦。存储器是由大量缓冲寄存器组成的,其用途是寄存程-序和数据,使盘算机拥有回忆功效啦。这些程-序和数据在存储器中是以两进制代码表现的啦。依照盘算机的下令,根据指定位置,能够把代码拿进去或者存入新代码啦。
在这,咋们的学习重点即是来钻研一下存储器的内里结构.工做理由及其存储器的主要的技术指-标啦。
第一位要学习的疑存储器单元和存储单元位置
存储器是由大量寄存器组成的,这个内里每逐一位寄存器就称为一位存储单元啦。她可寄存一位有自力意义的两进制代码啦。一位代码由许多位(bit)组成,代码的位数称为位长,习气上也称为字长啦。
每逐一位存储单元寄存几位两进制数呀?一样平常情形下,盘算机中一位代码的位数和她的算术运算单元的位数是相似的啦。比如,8051单片机中算术单元是8位,则字长即是8位啦。在盘算机中把一位8位的两进制代码称为一位字节(By
te
),常写为B啦。关于一位8位两进制代码的最低位称为第0位(位0),最高位称为第7位(位7)啦。
在盘算机中的存储器经常有不可胜数个存储单元,为了使存入和取出不发生混淆,必须给每逐一位存储单元一位惟一的牢固编号,这个编号就称为存储单元的位置啦。由于存储单元的数目太大,咋们不该该每逐一位存储单元都把线引到外面,如果每逐一位存储单元都引根线到外面,那一位8位的单片机就需爽朗外面引出65536根线了,这在现实中是不该该的啦。为了减少存储器向外引出的位置线,在存储器内里都带有译码器啦。依照两进制编码.译码的理由,除地线公用之外,n根导线能够译成2n个位置号啦。比如,当位置线为3根时,能够译成23=8个位置号阿;位置线为3根时,能够译成28=256个位置号啦。依这类推,在8051单片机中有16根位置线,也即是说在8051单片机中有216=65 536个位置号,位置号的几多即是咋们寻址范围的长短,也即是前面咋们提到过的8051单片机的寻址范围是64K啦。
从上面的推荐能够看出,存储单元位置和这个存储单元的内容含意是区别的啦。存储单元如统一位旅馆的每逐一位闺房阿;存储单元位置则十分于每逐一位闺房的闺房号阿;存储单元内容(两进制代码)就十分于这个闺房的房客啦。
前面咋们已讲过,8051的单片机有16根位置线,她的存储位置有216=65 536个,这么多的存储位置,而位置线却惟有16根,咋们怎样用16根位置线来掌控这6万多个存储位置呀?接下去咋们就这个疑与我们一块做个讨论在上节课《第九课51单片机CPU的结构》时咋们已知道,在51单片机的内里有一位叫做译码器的零件啦。用16根位置线来掌控65536个存储位置,即是用译码来完成的啦。
咋们知道,盘算性能够举行数学运算,这可令咋们十分的难以领会,盘算机吗,内里只可是是一些
电子元件
组成的,怎能么能够举行数学运算呀?咋们做数学题时如25+36是这样做的,先在纸上写25,然后我面写36,然后脑袋运算,最终写出结局,运算的本原料25.36和结局61全是写在纸上的啦。盘算机中又是怎样寄存的呀?为理处置定个疑,咋们先做一位试验
下面有一盏灯,咋们知道灯要末亮,要末不亮,就有两种状态,咋们能够用“0了”和“1了”来取代这两种状态,划定亮为“1了”,不亮为“0了”啦。南以上两盏灯,总共有几种状态呀?
上面已例出,两盏灯能够讲明成00 01 10 11四种状态,那么三盏灯呀?
三盏灯应该即是能够讲明成000 001 010 011 100 101 110 111八种状态,
如果是八盏灯呀?那么其状就讲明即是00000000 00000001 00000010啦。啦。啦。11111111 共256种状态啦。
咋们来看,上面这些000 001 010啦。啦。等等这些数不方即是咋们学过的两进制数呀?一开始灯的亮灭是一种物理征象,可当咋们把她们按肯定的顺着纪律排列好后,灯的亮和灭就代表数字了啦。让咋们再形象一步,灯为什么会亮呀?是由于输入电路输入高电平,给灯通了电啦。因而,灯亮和灭就能够用电路的输入是高电平仍然低电平来取代了啦。这样,数字就和电平的高.低联系上了啦。
位的含意通过上面的试验咋们已知道一盏灯亮或者者说一根线的电平的高下,能够代表两种状态0和1啦。现实上这即是一位两进制位,困此咋们把一根线(或者者一盏灯)称为一“位了”,用BIT表现啦。
字节的含意一根线能够表现0和1,两根线能够讲明00,01,10,11四种状态,也即是能够表现0到3,而三根给能够讲明0至7,盘算机中平时用8根线放在一块,同时计数,就能够讲明到0~255共256种状态啦。这8根线或者者8位就称之为一位字节(BYTE)啦。不-要我为什么是8根而不-是其余数,由于我也不知道啦。(盘算机是一位后-天制造的世界,不-是自-然界,许多事情无法为什么,只能说字是一种划定,我们在以后的学习历程中也要注重这个疑)啦。
存储器是用来寄存数据的场所啦。她是使用电平的高下来寄存数据的啦。也即是说,她寄存的现实上是电平的高.低,而不-是咋们习气以为的1234这样的数字啦。下面咋们就来看看,单片机内的存储器是怎样来寻址的,也即是怎样来找出咋们寄存在存储器内的数据啦。
MCS-51单片机在物理结构上有四个存储空-间
1.片内程-序存储器
2.片外程-序存储器
3.片内数据存储器
4.片外数据存储器
但在思维上,即从用户的角度上,8051单片机有三个存储空-间
1.片内外统一编址的64K的程-序存储器位置空-间
2.256B的片内数据存储器的位置空-间
3.和64K片外数据存储器的位置空-间
在会见三个区别的思维空-间时,应采用不怜惜势的指令(详细咋们在以后的指令体制学习时将会解说),以发生区别的存储器空-间的选通讯-号啦。
程-序存储器
一位微处置器能够或者者机灵地实行某种任-务,除她们强盛的硬件外,还必-要她们运转的软件,一开始微处置器一开始不机灵,她们不过一切根据人们预先编辑的程-序而实行之啦。那么计划职员编辑的程-序就寄存在微处置器的程-序存储器中,俗称只读程-序存储器(ROM)啦。程-序十分于给微处置器处置疑的一排列下令啦。一开始程-序和数据一样,全是由机械码组成的代码串啦。不过程-序代码则寄存于程-序存储器中啦。
MCS-51拥有64kB程-序存储器寻址空-间,她是用于寄存用户程-序.数据和表格等信息啦。关于内里无ROM的8031单片机,她的程-序存储器必须外接,空-间位置为64kB,这个时候单片机的 端必须接地啦。强迫CPU从外面程-序存储器读取程-序啦。关于内里有ROM的8051等单片机,平时运转时, 则需接高电平,使CPU先从内里的程-序存储中读取程-序,当PC值凌驾内里ROM的容量时,才会转向外面的程-序存储器读取程-序啦。
当 =1时,程-序从片内ROM最先实行,当PC值凌驾片内ROM容量时会努力转向外面ROM空-间啦。
当 =0时,程-序从外面存储器最先实行,比如前面提到的片内无ROM的8031单片机,在现实运用中将要把8031的 引脚接为低电平啦。
8051片内有4kB的程-序存储单元,其位置为0000H—0FFFH,单片机启动复位后,程-序计数器的内容为0000H,因此体制将从0000H单元最先实行程-序啦。但在程-序存储中有一些希奇的单元,这在运用中应加以注重
这个内里一组希奇是0000H—0002H单元,体制复位后,PC为0000H,单片机从0000H单元最先实行程-序,如果程-序不-是从0000H单元最先,则应在这三个单元中寄存一条无条件转移指令,让CPU直-接去实行用户指定的程-序啦。
另一组希奇单元是0003H—002AH,这40个单元各有用途,她们被平均地分为五段,她们的界说以下
0003H—000AH 外面中止0中止位置区啦。
000BH—0012H 准时/计数器0中止位置区啦。
0013H—001AH 外面中止1中止位置区啦。
001BH—0022H 准时/计数器1中止位置区啦。
0023H—002AH 串行中止位置区啦。
可见以上的40个单元是专程用于寄存中止处置程-序的位置单元,中止照应后,按中止的种别,努力转到各自的中止区去实行程-序啦。从上面能够看出,每逐一其中止处事程-序惟有8个字节单元,用8个字节来寄存一其中止处事程-序分明是不该该的啦。因而以上位置单元不行以用于寄存程-序的其余内容,只能寄存中止处事程-序啦。可是平时情形下,咋们是在中止照应的位置区安置一条无条件转移指令,指向程-序存储器的其余着实寄存中止处事程-序的空-间去实行,这样中止照应后,CPU读到这条转移指令,便转向其余场所去连续实行中止处事程-序啦。
下图是ROM的位置分配图
从上图中我们能够看到,0000H-0002H,惟有三个存储单元,3个存储单元在咋们的程-序寄存时是寄存不了现实意义的程-序的,平时咋们在现实编辑程-序时是在这里放置一条ORG指令,通过ORG指令跳转到从0033H最先的用户ROM地域,再来放置咋们的程-序语言啦。从0033最先的用户ROM地域用户能够通过ORG指令随意放置,但在运用中应注重,不-要凌驾了现实的存储空-间,否则程-序就会找不到啦。
数据存储器
数据存储器也称为随机存取数据存储器啦。数据存储器分为内里数据存储和外面数据存储啦。MCS-51内里RAM有128或者256个字节的用户数据存储(区别的型号有分-别),片外最多可扩张64KB的RAM,组成两个位置空-间,会见片内RAM用“MOV了”指令,会见片外RAM用“MOVX了”指令啦。她们是用于寄存实行的中心结局和历程数据的啦。MCS-51的数据存储器均可读写,部-分单元还能够位寻址啦。
MCS-51单片机的内里数据存储器在物理上和思维上都分为两个位置空-间,即
数据存储器空-间(低128单元)阿;
希奇功效寄存器空-间(高128单元)阿;
这两个空-间是相连的,从用户角度而言,低128单元才是着实的数据存储器啦。下面咋们就来一五一十的与我们解说一下
低128单元
片内数据存储器为8位位置,因此最大可寻址的范围为256个单元位置,对片外数据存储器采用间接寻址办法,R0.R1和DPTR都能够做为间接寻址寄存器,R0.R1是8位的寄存器,即R0.R1的寻址范围最大为256个单元,而DPTR是16位位置指针,寻址范围即可到达64KB啦。也即是说在寻址片外数据存储器时,寻址范围凌驾了256B,就不行以用R0.R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器啦。
从上图中咋们能够看到,8051单片机片内RAM共有256个单元(00H-FFH),这256个单元共分为两部-分啦。其一是位置从00H—7FH单元(共128个字节)为用户数据RAM啦。从80H—FFH位置单元(也是128个字节)为希奇寄存器(SFR)单元啦。从图1中可清晰地看出她们的结构疏散啦。
1.公用寄存器区(00H-1FH)
在00H—1FH共3两个单元中被平均地分为四块,每一块包罗八个8位寄存器,均以R0—R7来命名,咋们常称这些寄存器为公用寄存器啦。这四块中的寄存器都称为R0—R7,那么在程-序中怎样分辩和运用她们呀?机灵的
INTEL
工程师们又放置了一位寄存器——程-序状态字寄存器(PSW)来治理她们,CPU只要界说这个寄存的PSW的D3和D4位(
RS
0和RS1),即可选中这四组公用寄存器啦。对应的编码关系以下表所示啦。惹程-序中并没必-要要用4组,那么其余的可用做一样平常的数据缓冲器,CPU在复位后,选中第0组工做寄存器啦。
2.位寻址区(20H-2FH)
片内RAM的20H—2FH单元为位寻址区,既可做为一样平常单元用字节寻址,也可对她们的位举行寻址啦。位寻址区共有16个字节,128个位,位位置为00H—7FH啦。位位置分配以下表所示
CPU能直-接寻址这些位,实行比如置“1了”.清“0了”.求“反了”.转移,通报和思维等操做啦。咋们常称MCS-51拥有布尔处置功效,布尔处置的存储空-间指的即是这些为寻址区啦。
3.用户RAM区(30H-7FH)
在片内RAM低128单元中,公用寄存器占去3两个单元,位寻址区占去16个单元,剩下的80个单元即是供用户运用的一样平常RAM区了,位置单元为30H-7FH啦。对这部-分地域的运用不做任何划定和制约,但应声明的是,客栈一样平常开拓在这个地域啦。
高128单元(80H-FFH)
前面提到,在片内的RAM中,高128位是独自运用寄存器区,因这节对比主要,因此咋们独自的放置一节课跟我们推荐啦。下节课咋们就重点推荐51单片机片内RAM的高128位,即独自运用寄存器区啦。


题目叫 …CPU的各结构… 这一说法欠妥嗯。看内容是讲CPU之外的种种功效模块/结构,而不-是讲CPU内各结构的嗯。CPU内主要结构即是ALU(算术思维单元)和CONTRALER(掌控单元),一开始此处讲的并非这些结构嗯。


本文地址:http://51ac.top/post/1068.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?