8051单片机的CPU组成与四个并行I/O端口

AT89S51的CPU与并行I/O端口

本文主要涉及8051的CPU组成以及并行的4个I/O端口。CPU,主要由运算器(ALU)控制器(CU)构成;4个双向的8位并行I/O端口`,分别记为P0、P1、P2和P3

一、CPU的组成

AT89S51是一种由Intel(现在的Microchip Technology)推出的8位单片机,它的核心是Intel 8051架构。下面简要介绍AT89S51的CPU部分,主要由运算器(ALU)控制器(CU)构成。

1、 运算器(ALU - Arithmetic Logic Unit)

功能: 对操作数进行算术、逻辑和位操作运算。
组成: 算术逻辑运算单元ALU、累加器A、位处理器、程序状态字寄存器PSW及两个暂存器等。

1.1 算术逻辑运算单元ALU

可对8位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、除)

ALU还有位操作功能,对位变量进行位处理,如置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。

1.2 累加器A

累加器A是CPU中使用最频繁的一个8位寄存器,在使用汇编语言编程时,有些场合必须写为Acc

作用如下:
(1)ALU单元的输入数据源之一,又是ALU运算结果存放单元
(2)数据传送大多都通过累加器A,相当于数据的中转站。为解决“瓶颈堵塞”问题,AT89S51增加了一部分可以不经过累加器的传送指令。

A的进位标志Cy是特殊的,因为它同时又是位处理机的位累加器.

3.程序状态字寄存器PSW

PSW(Program Status Word)位于片内特殊功能寄存器区,字节地址为D0H
包含了程序运行状态的信息,其中4位保存当前指令执行后的状态,供程序查询和判断.
在这里插入图片描述

PSW中各个位的功能
(1)Cy(PSW.7)进位标志位
可写为C。在算术和逻辑运算时,若有进位/借位Cy=1;否则,Cy=0。在位处理器中,它是位累加器

(2)Ac(PSW.6)辅助进位标志位
BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。

(3)F0(PSW.5)用户设定标志位
由用户使用的一个状态标志位,可用指令来使它置“1”或清“0,控制程序的流向。用户应充分利用。

(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择
选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区。如表2-2。
在这里插入图片描述

(5)OV(PSW.2)溢出标志位
当执行算术指令时,用来指示运算结果是否产生溢出。
如果结果产生溢出,OV=1;否则,OV=0。

(6)PSW.1位 保留位

(7)P(PSW.0)奇偶标志位
指令执行完,累加器A中“1”的个数是奇数还是偶数
P=1,表示A中“1”的个数为奇数
P=0,表示A中“1”的个数为偶数
此标志位对串行通信有重要的意义,常用奇偶检验的方法来检验数据串行传输的可靠性。

2、 控制器(CU - Control Unit)

任务识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动协调地工作。

控制器包括:程序计数器指令寄存器指令译码器定时及控制逻辑电路等。

功能是控制指令的读入译码和执行,从而对各功能部件进行定时和逻辑控制。

程序计数器PC是一个独立的16位计数器,不可访问。单片机复位时,PC中的内容为0000H,从程序存储器0000H单元取指令,开始执行程序。

PC工作过程是:CPU读指令时,PC的内容作为所取指令的地址,程序存储器按此地址输出指令字节,同时PC自动加1

PC中内容变化轨迹决定程序流程

顺序执行程序时自动加1

执行转移程序子程序中断子程序调用时,自动将其内容更改成所要转移的目的地址

PC的计数宽度决定了程序存储器的地址范围。PC为16位,故可对64KB(=2^16B)寻址。

二、 并行I/O端口

4个双向的8位并行I/O端口,分别记为P0、P1、P2和P3,其中输出锁存器属于特殊功能寄存器。端口的每一位均由输出锁存器、输出驱动器和输入缓冲器组成,4个端口按字节输入/输出外,也可位寻址。

2.1、 P0口

P0口字节地址为80H,位地址为80H~87H。
P0口可作为双功能口:在外扩程序存储器、数据存储器(或外扩I/O)情况下,只能作为系统的低8位地址/数据总线端口来使用,否则可作为通用I/O端口使用。
在这里插入图片描述

P0口具有如下特点。
(1)当P0口用作地址/数据复用口时,是一个真正的双向口,用作与外部存储器的连接,输出低8位地址和输出/输入8位数据。
(2)当P0口用作通用I/O口时,由于需在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此是一准双向口。为保证正确读入引脚信号,应首先向锁存器写1。单片机复位后,锁存器自动被置1;当P0口由原来的输出状态转变为输入状态时,应首先向锁存器写1,方可执行输入操作。
一般情况下,P0口大多作为地址/数据复用口使用,这时就不能再作为通用I/O口使用。

2.2、P1口

单功能的I/O口,字节地址为90H,位地址为90H~97H。
特点如下。
(1)P1口由于有内部上拉电阻,没有高阻抗输入状态,故为准双向口。作为输出口时,不需要在片外接上拉电阻。
(2)P1口“读引脚”输入时,必须先向P1口锁存器先写入1

2.3、P2口

是一个双功能口,字节地址为A0H,位地址为A0H~A7H。在片外扩有存储器或I/O的情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/O口。
特点如下:
(1)作为地址输出线使用时,P2口可输出外部存储器的高8位地址,与P0口输出的低8位一起构成16位地址,可寻址64KB的地址空间。当P2口作为高8位地址输出口时,输出锁存器的内容保持不变。
(2)作通用I/O口使用时,P2口为准双向口,功能与P1口一样

2.4、P3口

由于AT89S51的引脚数目有限,因此在P3口电路中增加了引脚的第二功能。P3口的第二功能定义如表2-7在这里插入图片描述

P3口的每一位都可定义为第二输入功能或第二输出功能。
P3口的字节地址为B0H,位地址为B0H~B7H。

P3口的特点如下:
(1)P3口内部有上拉电阻,不存在高阻抗输入状态,为准双向口。
(2)P3口作为第二功能的输出/输入,或第一功能通用输入,需要先将相应位的锁存器置1。

实际应用中,由于复位后P3口锁存器自动置1,满足第二功能所需的条件,所以不需要任何设置工作,就可以进入第二功能操作。
当某位不作为第二功能使用时,可作为第一功能通用I/O使用。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

写的什么石山代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值