电子工程师提升计划-第2章 单片机硬件原理【1.3】

2.4.3 P2端口

        P2端口有P2.0~P2.7共8个引脚,P2端口每个引脚的内部电路结构都相同,其内部电路结构如图2-8所示。

        从图2-7 中可以看出,P1 端口的结构较P0端口简单很多,由于P1端口内部采用了一只场效应管,并且与电源之间接了一只上拉电阻,所以不需要在P1端口的外部接上拉电阻。
        (1)当P1端口用作输出端口时如果要将P1端口用作输出端口,应给锁存器的写锁存器CL端送写脉冲信号,内部总线送来的数据就可以通过 D 端进入锁存器并从Q和端输出,如D端输入“1”,则 端输出“0”(Q端输出“1”),该“0”送到场效应管的栅极,场效应管截止,从P1端口输出“1”。
        (2)当P1端口用作输入端口时当将P1端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0、 =1,其中 =1会使场效应管导通,P1端口被钳在“0”电平上,“1”将无法送入P1端口。所以与P0端口一样,在将数据输入P1端口前,先要通过内部总线向锁存器写“1”,让 =0,场效应管截止,P1端口输入的“1”就可以送到输入三态门的输入端,此时再给三态门的读引脚送一个读控制信号,“1”就可以通过输入三态门送到内部总线。

2.4.3 P2端口

        P2端口有P2.0~P2.7共8个引脚,P2端口每个引脚的内部电路结构都相同,其内部电路结构如图2-8所示。

        从图2-8中可以看出,P2端口的内部结构与P0端口很相似。P2端口也可作I/O引脚,在外接存储器时,还可以作为地址总线引脚。
(1)当P2端口用作地址总线引脚时
        如果要将P2端口用作地址总线引脚,单片机内部的CPU会发出一个控制信号到电子开关的控制端,让电子开关与内部地址总线接通,地址总线上的信号就可以在通过电子开关、非门和场效应管后从P2端口引脚输出。
(2)当P2端口用作I/O接口时
        如果要将P2端口用作I/O接口,单片机内部的CPU会发出一个控制信号到电子开关的控制端,让电子开关与锁存器接通。当将P2端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线上的数据就被锁存进锁存器并从Q端输出,再通过电子开关、非门和场效应管从P2端口引脚输出。
        当将P2端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0,经非门反相后会使场效应管导通,P2端口被钳在“0”电平上,“1”将无法送入P2端口。所以与P0、P1端口一样,在将数据输入P2端口前,先通过内部总线向锁存器写“1”,让Q=1,场效应管截止,P2端口输入的“1”就可以送到输入三态门的输入端,此时再给读引脚送一个读控制信号,“1”就可以通过三态门送到内部总线。

2.4.4 P3端口

        P3端口有P3.0~P3.7共8个引脚,P3端口可作为I/O接口,还可以用于其他方面。P3端口每个引脚的内部电路结构都相同,其内部电路结构如图2-9所示。

(1)当P3端口用作I/O接口时
        如果要将P3端口用作I/O接口,应让与非门的选择输出功能端为“1”,以开通与非门。
        当将P3端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q端输出,再通过与非门和场效应管从P3端口引脚输出。
        当将 P3 端口用作输入端口时,应先通过内部总线向锁存器写“1”,让 Q=1,场效应管截止, P3端口输入的信号就可以通过缓冲器、输入三态门送到内部总线。
(2)当P3端口用作第二功能时
        P3端口用作第二功能(又称复用功能)时,实际上也是在该端口输入或输出信号,只不过输入、输出的是一些特殊功能的信号。所以当P3端口用作第二功能时,其内部电路的工作原理与用作I/O接口时是一样的,在用作输入功能时,端口的锁存器同样要先置“1”。
        P3端口8个引脚的第二功能详见表2-1。例如P3.2引脚用作第二功能时,该端口可输入由外部设备送到的中断请求信号,该信号通过缓冲器、输入三态门送到内部总线。
        P3端口除了可以接收外界的输入信号外,还可以接收内部的替代输入功能端送来的信号,该信号通过输入三态门送到内部总线。
        总之,P0、P1、P2和P3端口的功能是:都可以作输入或输出端口;P0、P2、P3端口具有第二功能,各种端口的第二功能见表2-1。例如,表中说明P0端口的第二功能可以用作低8位地址总线/数据总线,P2端口可用作高8位地址总线,P3.0端口可用作串行数据接收端。

2.5 单片机的存储器

        一般来说,电路设计好后,它的功能也就固定下来;而对于单片机,只要写入程序不同,它的功能就会发生变化。写入单片机的程序保存在程序存储器中,单片机在工作时通过执行程序存储器中的程序来实现不同的功能。
        单片机中有两种存储器:程序存储器和数据存储器。程序存储器用来存储编程人员写入的程序,而数据存储器用来存放单片机工作时的一些临时数据。进行单片机开发一定要了解单片机存储器的结构。

2.5.1 存储器基础知识

1.存储器常用单位
存储器的常用单位如下。
位(bit):它是计算机中最小的数据单位。由于计算机采用二进制数,所以 1 位二进制数称作1bit,例如101011为6bit。
字节(Byte,单位简写为B):8位二进制数称为一个字节,1B=8bit。
字(Word):两个字节构成一个字,即2B=1Word。在单片机中还有一个术语:字长。所谓字长指单片机一次能处理的二进制数的位数。MCS-51系列单片机一次能处理8位二进制数,所以它的字长为8位。
2.存储器的工作原理
存储器的功能是存取各种二进制数据。存储器的结构如图2-10所示。

        图2-10中大虚线框内的部分为存储器的组成结构,它的容量为4bit,可以存储4bit二进制数;小虚线框内为存储体,存储体中有4个存储单元,每个存储单元可存储1bit二进制数。为了区分这4个存储单元,对这4个单元分别编号为00、01、10和11。存储器连接的引线有3种:A0、A1称为地址总线,D0称为数据总线,R/ 、 称为控制总线。

        单片机在工作时,可以取出存储器中的数据,称作读(R);也可以将数据存入存储器,称作写(W)。下面以图2-10所示存储器为例来说明存储器的工作原理。
(1)存储器的读过程
        下面以取出01单元中的“1”为例来说明存储器的读过程。首先让片选端 =0、读/写控制端R/ =1。 =0经非门反相后变为“1”,它控制电子开关S2闭合;R/ =1送到三态门1、三态门2的控制端,三态门1处于高阻状态,输入与输出之间相当于开路,三态门2则处于导通状态。这样数据总线D0就通过S2、三态门2与存储器内部接通。
        然后给地址总线 A0、A1 送地址信号,即让 A0=1、A1=0,这两个地址信号经地址译码器译码后,从内部行线X0端输出“1”(即X0=1),从列线Y1端输出“1”(即Y1=1),X0=1选中00、01两个单元,Y1=1控制电子开关S1闭合。
        这样被选中的01单元中的数据“1”就可以通过S1、三态门2、S2送到外部数据总线D0上。虽然00单元也被X0=1选中,由于S0是断开的,所以该单元中的数据无法送到数据总线。
(2)存储器的写过程
        下面以向01单元存入数据“1”为例来说明存储器的写过程。首先让片选端 =0、读/写控制端R/ =0。 =0经非门反相后变为“1”,它控制电子开关S2闭合;R/ =0送到三态门1、三态门2的控制端,三态门2处于高阻状态,输入与输出之间相当于开路,三态门1则处于导通状态。这样数据总线D0就通过S2、三态门1与存储器内部接通。
        然后给地址总线 A0、A1 送地址信号,即让 A0=1、A1=0,这两个地址信号经地址译码器译码后,从内部行线X0端输出“1”(即X0=1),从列线Y1端输出“1”(即Y1=1),X0=1选中01单元, Y1=1控制电子开关S1闭合。
        这样外部数据总线D0上的数据“1”就可以通过S2、三态门1、S1存入被选中的01单元中。
3.存储器有关术语

(1)总线
        总线是指为多个部件传递信息的信号线。根据信号线上传递信息类型的不同,总线可分为地址总线、数据总线和控制总线。
        图2-10中的A0、A1为地址总线,用来传送地址信号;D0为数据总线,用来传送数据;R/ 、 为控制总线,用来传送控制信号,其中R/ 为读/写控制端,当R/ =1时,可以读取存储器中的数据,当R/=0时,可以向存储器写入数据,而 片选端称为片选控制端,当多片存储器连接在一起时,要对其中一片进行读/写操作,可让该存储器的=0,而让其他存储器的 =1。
(2)存储容量
        存储器的功能是存储二进制数,其存储二进制数的多少称为存储容量。存储器存储容量的大小,取决于存储器中存储单元的多少和单元中存储二进制数的位数。图2-10所示的存储器有4个存储单元,每个单元存储1位二进制数,所以它的存储容量为4×1bit;如果每个单元能存储8位二进制数,那么它的容量就是4×8bit。
        大多数存储器的每个存储单元能存1B(8位二进制数),如果一片存储器中有1024(212)个存储单元,每单元存1B,该存储器的存储容量为1024×8bit,即1KB。
(3)地址编号
        存储器中有很多存储单元,为了查找方便,需要给每个单元赋予不同的编号,这就是地址编号。图2-10所示的存储器中有4个存储单元,它们的地址可以用2位二进制数编号来表示,地址编号分别是00、01、10、11。如果一个存储器中有1024个存储单元,则至少需要用12位二进制数来表示,地址编号分别是000000000000,000000000001,…,111111111110,111111111111。
        存储器的存储单元越多,地址编号需要的二进制数位数越多。对于大容量的存储器,用二进制数进行地址编号非常不方便,也容易出错。为此,现在的存储器都用十六进制数地址编号来代替二进制数编号。
        二进制数地址编号转换成十六进制数地址编号的规则是:将二进制数地址编号从低到高4位编为一组,高位不足4位补0,再将每4位二进制数转换成十六进制数,得到的即为十六进制数地址编号。例如,二进制数地址编号0000 1100 0000B、111 1010 0001 B转换成十六进制数地址编号分别是0 C 0 H、7 A 1 H。
4.存储器容量的扩展
        单片机内部存储器的容量一般不会很大,如果内部存储器容量不够用,可在单片机外围增加存储器进行容量扩展。图2-11所示就是一种单片机存储器容量扩展示意图。

        如果单片机要读取内部存储器中的数据,内部电路(图2-11中未画出)让 线为“1”,R/ 线为“1”,并从地址总线A0~A15送出16位地址信号。 =1让外部存储器不工作, =1经非门变为“0”,
内部存储器被选中;R/ =1控制内部存储器执行读操作;A0~A15送出的地址信号选中内部存储器中的某个存储单元,该单元中存储的数据就通过数据线D0~D7输出到单片机的某些电路。
        如果单片机要读取外部存储器中的数据,内部电路让 线为“0”,R/ 线为“1”,并从地址总线A0~A15送出16位地址信号。=0让外部存储器工作, =0经非门变为“1”,内部存储器不工作;R/ =1控制外部存储器执行读操作;A0~A15送出的地址信号选中外部存储器中的某个存储单元,该单元中存储的数据就通过数据线D0~D7输出,送入单片机内部。

2.5.2 程序存储器

        程序存储器(ROM)是存放程序的电路。单片机在编程时,一般先在计算机中用软件编写程序,再通过编程器将编好的程序写入到程序存储器中,单片机通过执行程序存储器中的程序来产生各种信号,从而实现各种控制。
1.程序存储器的使用
        MCS-51系列单片机可以使用内部程序存储器,也可以使用外部程序存储器。MCS-51系列单片机使用内部程序存储器还是外部程序存储器,受31脚 端的控制。
        当 端=0时,单片机只能使用外部程序存储器,无法使用内部程序存储器。8031、8032单片机内部无程序存储器,只能使用外部程序存储器,因此 端必须接地。当 端=1时,单片机先使用内部程序存储器,容量不够时将会自动使用外部程序存储器。
2.程序存储器的地址编号

        8x51(如8051、8751)单片机内部有4KB的程序存储器(该存储器内有4096个存储单元,每个单元存储1B),存储单元的地址编号是0000H~0FFFH,当进行扩展外接程序存储器时,可外接60KB的程序存储器,外部程序存储器的地址编号是1000H~FFFFH。8x51 单片机程序存储器的地址编号如图2-12(a)所示。

        8x52(如8052、8752)单片机内部有8KB的程序存储器,地址编号是0000H~1FFFH,当进行扩展外接程序存储器时,可外接 56KB 的程序存储器,外部程序存储器的地址编号是 2000H~FFFFH。8x52单片机程序存储器的地址编号如图2-12(b)所示。

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值