【单片机原理】单片机硬件结构和原理,微机的组成,引脚及其功能,输入输出端口

目录

1、89C51单片机内部结构和特点

1.1微机的组成

1.2内部结构

1.2.1中央处理单元(89C51/S51CPU)

(1)运算器

(2)控制器

1.2.2存储器

(1)程序存储器(ROM)

(2)数据存储器(RAM)

1.2.3 I/O接口

2.单片机的引脚及其功能

2.1 89C51的引脚结构

2.2  89C51单片机引脚功能

1、电源引脚:Vcc和Vss

2、时钟电路引脚:XTAL1和XTAL2

​编辑

3、控制信号引脚

3输入输出端口P0、P1、P2和P3

3.1  P0口

做输出:

做输入:

做地址/数据总线:

3.2  P1口:

做输入:

做输出(每位能驱动4个LS型TTL负载):

3.3  P2口

做输入:

做输出(每位能驱动4个LS型TTL负载):

做地址总线:

3.4 P3口

做输入:

做输出(每位能驱动4个LS型TTL负载):

3.5  P0到P3口的区别​编辑

二、代码

三,运行结果


1、89C51单片机内部结构和特点

1.1微机的组成

单片机结构框图

89C51单片机内部含有

1、一个8位的微处理器CPU

2、片内数据存储器(RAM/SFR 128B/256B)

用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等

3、片内4kB程序存储器Flash ROM(4KB)

用以存放程序、一些原始数据和表格

4、4个8位并行I/O(输入/输出)接口P0~P3

每个口可以用作输入,也可以用作输出

5、两个16位定时/计数器

每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。

6、具有5个中断源、两个中断优先级的中断控制系统

7、一个全双工UART的串行I/O口

可实现单片机与单片机或其它微机之间串行通信

8、片内振荡器和时钟产生电路:

石英晶体和微调电容需要外接,最高允许振荡频率为24 MHz。89C51/S51/S51是用静态逻辑来设计的,其工作频率可下降到0 Hz附近。

9、具有节电工作方式:

空闲方式(Idle Mode)和掉电方式(Power Down Mode)

可用软件来选择的省电方式

在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%

在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15 μA以下,最小可降到0.6 μA

89C51/S51单片机还有一种低电压的型号,即89LV51,除了电压范围有区别之外,其余特性与89C51/S51完全一致。

1.2内部结构

1.2.1中央处理单元(89C51/S51CPU)

(1)运算器

8位的ALU:8位,算术运算、逻辑运算,结果一般回ACC,状态送PSW

8位累加器ACC(A):保存一个操作数,或结果

8位程序状态寄存器PSW:指示指令执行后的状态信息,供程序查询和判别用

8位寄存器B:在乘、除运算时,运算前存放一个操作数,运算后用来存放乘法的高8位,或除法的余数;不做乘除运算时,作为通用寄存器

布尔处理器:专门用于处理位操作的,以PSW中的C为其累加器。可执行置位、位清0、位取反等

2个8位暂存器:ALU的两个入口处.

说明:1.乘法中,ALU的两个输入分别为A、B,运算结果存放在AB寄存器对中A中放积的低8位,B中放积的高8位

2.除法中,被除数取自A,除数取自B,商数存放于A,余数存放于B

3.在其它情况下,B寄存器可以作为内部RAM中的一个单元来使用

4、程序状态字PSW

(Program StatusWord)是一个逐位定义的8位寄存器,其内容的主要部分是算术逻辑运

算单元(ALU)的输出

(2)控制器

(1)程序计数器PC(16位)

由两个8位计数器PCH、PCL组成

PC是程序的字节地址计数器,PC内容为将要执行的指令地址

改变PC内容,改变执行的流向

PC可对64KB的ROM直接寻址,也可对89C51/S51

(2)指令寄存器IR及指令译码器ID由PC中的内容指定ROM地址

取出来的指令经IR送至ID

由ID对指令译码产生一定序列的控制信号,以执行指令所规定的操作

(3)振荡器和定时电路

89C51/S51单片机片内有振荡电路,只需外接石英晶体和频率微调电容(2个30pF左右),其频率范围为1.2MHz~12MHz。该信号作为89C51/S51工作的基本节拍即时间的最小单位。

1.2.2存储器

(1)程序存储器(ROM)

89C51/S51片内为4KB Flash ROM。

地址从0000H开始。

用于存放程序和表格常数。

(2)数据存储器(RAM)

89C51/S51RAM均为128B,地址为00H~7FH。

用于存放运算的中间结果、数据暂存以及数据缓冲等。

这128B的RAM中有32个字节单元可指定为工作寄存器。

片内还有21个特殊功能寄存器(SFR),它们同128字节RAM统一编址,地址为80H~FFH。后面详细介绍。

1.2.3 I/O接口

P0-P3并行口

8位,并行,多功能,双向/准双向。

全双工串口 UART

P3.0-RXD;P3.1-TXD。

2.单片机的引脚及其功能

2.1 89C51的引脚结构

80C51有40引脚双列直插(DIP)、44引脚方形(PLCC)和(PQFP/TQFP)封装形式。

2.2  89C51单片机引脚功能

1、电源引脚:Vcc和Vss

Vcc(40脚):电源端,为+5

VVss(20脚):接地端

2、时钟电路引脚:XTAL1和XTAL2

XTAL2(18脚):接外部晶体和微调电容的一端;在89C51/S51 片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。

XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反向放大器的输入端,在采用外部时钟时,该引脚接地。

3、控制信号引脚

RST(9脚):Reset,复位管脚,输入。高电平有效。当此输入端保持两个机器周期的高电平时,完成单片机复位操作。

PSEN(P29):Program Store Enable片外程序存储器读选通信号,输出。低电平有效。接片外ROM的OE端。在从片外程序存储器取指期间,在每个机器周期中,当有效时,程序存储器的内容被送上P0口(数据总线)。

ALE/PROG(30脚):Address Latch Enable/Programming

ALE:地址锁存允许信号,输出。正常工作时,该引脚以振荡频率的1/6固定输出正脉冲。CPU访问片外存储器时或I/O时,用引脚输出的信号锁存低八位地址,以实现低八位地址与数据的隔离。

PROG:是对片内带有4KB Flash ROM的89C51/S51编程时,编程脉冲输入端。

EA/Vpp(31脚):Enable Address 片外程序存储器访问允许信号EA:外部程序存储器地址允许输入端。

接高电平: CPU访问片内ROM并执行片内程序存储器中的指令,但当PC值超过0FFFH(片内ROM为4KB)时,将自动转向执行片外ROM中的程序。

接低电平: CPU只访问片外ROM并执行外部程序存储器中的程序。

Vpp:对89C51/S51片内Flash ROM固化编程时,编程电压输入端(12-21V)。

3输入输出端口P0、P1、P2和P3

P0、P1、P2和P3端口,每个端口都是8位,共占32只引脚。每个管脚都能独立地用作输入或输出。

每个端口都包括一个锁存器(即特殊功能寄存器P0~P3)、一个输出驱动器和输入缓冲器

端口作输出时,CPU通过内部总线把数据写入锁存器,且数据可以锁存

端口作输入时,数据可以缓冲。(读端口)操作却有两种方式:

读锁存器:当执行的是读锁存器指令时,CPU发出读锁存器信号,此时锁存器状态由触发器的Q端经锁存器上面的三态输入缓冲器1送入内部总线;

读端口:当执行的是读端口引脚的指令,CPU发出的是读引脚控制信号,直接读取端口引脚上的外部输入信息,此时引脚状态经锁存器下面的三态输入缓冲器2送入内部总线。

在具有片外扩展存储器的系统中,P2口送出高8位地址;P0口为双向总线,分时送出低8位地址和数据的输入/输出。

接口电路的必要性:计算机对外设进行数据操作时,外设的数据是不能直接接到CPU的数据线上的,必须经过接口:

因为CPU的数据线是外设或存储器和CPU进行数据传输的唯一公共通道,为了使数据线的使用对象不产生使用总线的冲突,以及快速的CPU和慢速的外设时间上协调,CPU和外设之间必须有接口电路( 简称接口或I/O口)接口起着缓冲、锁存数据,地址译码、信息格式转换、传递状态(外设状态),发布命令等功能。

3.1  P0口

P0口作I/O使用:

CPU发控制电平“0”封锁与门,使T1管截止,同时使MUX开关同下面的触点接通,使锁存器的Q‾与T2栅极接通。

做输出:

当CPU向端口输出数据时,写时钟输入到在锁存器的CL上、内部总线的数据经锁存器锁存,由/Q反相输出,通过MUX,再经T2管反相。因为T1是处于截止状态,则P0口的这一位引脚上出现正好和内部总线同相的数据。

输出低电平:向寄存器写入0

输出高电平:向寄存器写入1

注意:由于输出驱动级是漏极开路电路(因T1截止),故P0 在作 I/O 口使用时应外接10K的上拉电阻。

CPU发控制电平“0”封锁与门,使T1管截止,同时使MUX开关同下面的触点接通,使锁存器的Q‾与T2栅极接通。

做输入:

两个三态缓冲器用于读操作

缓冲器2用于读端口引脚的数据:先要向此端口锁存器写入1,使T2管截止,变为高阻态。当执行端口读指令时,读引脚时钟输入并打开三态缓冲器2,于是端口引脚数据经三态缓冲器2送到内部总线;

缓冲器1用于读取锁存器Q端的数据:当执行“读-修改-写”指令(即读端口信息,在片内加以运算修改后,再输出到该端口的某些指令如:ANL PO,A指令),即是读的锁存器Q的数据。

做地址/数据总线:

作地址/数据输出:

CPU内部控制信号C为“1”,转换开关MUX打向上面的触点,使反相器3的输出端和T2管栅极接通,输出的地址或数据信号通过与门驱动T1管,同时通过反相器驱动T2管,通过推挽结构输出地址/数据向外RAM写数据时。

作数据输入:读外部RAM数据、读外ROM指令时,(多路开关打到下边、T1管截止),CPU自动先对P0写0XFF,然后通过读引脚的三态门电路将要读的数据或指令读到内部的数据总线,(多路开关打到下边、T1管),CPU自动先对P0写0XFF,然后通过读引脚的三态门电路将要读的数据或指令读到内部的数据总线。

3.2  P1口:

内部上拉电阻的8位准双向I/O端口

做输入:

先要向此端口锁存器写入1,变为高阻态,然后再通过读引脚的三态门电路,将数据读到内部的数据总线

做输出(每位能驱动4个LS型TTL负载):

输出低电平:向D触发器写入0

输出高电平:向D触发器写入1

连接外围负载时不需要外接上拉电阻

3.3  P2口

内部上拉电阻的8位准双向I/O端口

做输入:

先要向此端口锁存器写入1,变为高阻态,然后再通过读引脚的三态门电路,将数据读到内部的数据总线

做输出(每位能驱动4个LS型TTL负载):

输出低电平:向D触发器写入0

输出高电平:向D触发器写入1

做地址总线:

在CPU访问片外数据RAM、片外程序ROM存储器时,P2口输出高8位地址。连接外围负载时不需要外接上拉电阻

3.4 P3口

内部上拉电阻的8位准双向I/O端口

做输入:

先要向此端口锁存器写入1,变为高阻态,然后再通过读引脚的三态门电路,将数据读到内部的数据总线

做输出(每位能驱动4个LS型TTL负载):

输出低电平:向D触发器写入0

输出高电平:向D触发器写入1

连接外围负载时不需要外接上拉电阻做第二输入输出功能:

3.5  P0到P3口的区别


资料仅供学习使用

如有错误欢迎留言交流

上理考研周导师的其他专栏:

光电融合集成电路技术     电路原理

C语言       复变函数与积分变换

单片机原理

模式识别原理

数字电子技术

自动控制原理     ​​​​​​ 传感器技术

模拟电子技术

数据结构

 概率论与数理统计

高等数学

传感器检测技术

智能控制

嵌入式系统

图像处理与机器视觉

热工与工程流体力学

数字信号处理

线性代数

工程测试技术

上理考研周导师了解更多

关注编者了解更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值