文章目录
前言
开学学了单片机原理及应用这门课,在学51单片机相关知识时理解的并不是很好,尤其是单片机存储器结构,各个存储器地址以及接口等,今天我又重新认认真真的把课本给看了一遍,想着把看的自己感觉有用的地方给记录下来。
一、51单片机的基本结构
51单片机有如下部件和特性:
1)8 位微处理器(CPU);
2)程序存储器(4KB Flash ROM),可进行1000次重复擦写和三级加密;
3)128B数据存储器(RAM);
4)26个特殊功能寄存器(SFR);
5)4个8位可编程并行I/O端口(P0口、P1口、P2口、P3口);
6)1组全双工可编程串行通道;
7)2个可编程的16位定时器/计数器;
8)1个看门狗定时器;
9)5个中断源;
10)低功耗模式有空闲和掉电模式,且具有断电模式下的终端恢复装置;
11)灵活的在系统程序设计(ISP);
二、51单片机的引脚描述
1.PDIP封装形式:
2.引脚分类
1.电源及时钟引脚
(1)VCC:电源端
(2)GND:接地端
(3)XTAL1:接外部晶振的一端
(4)XTAL2 :接外部晶振的另一端
2.控制引脚
(1)RST/VPD:复位输入端
(2)ALE/PROG: 地址锁存允许/编程脉冲信号
(3)PSEN:外部程序存储器的通选信号
(4)EA/VPP:外部程序存储器访问允许端/编程电源输入端
3.I/O口引脚
P0.X~P3.X:是51单片机与外界联系的4个8位双向并行I/O端口,引脚分配如下:
(1)P0.0~P0.7:P0口的8位漏极开路的双向I/O口
(2)P2.0~P2.7:P2口的8位内部接有上拉电阻的准双向I/O口
(3)P1.0~P1.7:P1口的8位内部装有上拉电阻的准双向I/O口
P1.5/MOSI、P1.6/MISO、P1.7/SCK可用于对片内Flash存储器串行编程和校验,分别是串行数据输入、输出、移位脉冲引脚
(4)P3.0~P3.7:P3口的8位内部接有上拉电阻的准双向I/O口
输出缓冲器可以驱动4个TTL负载,还有串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读写或写入控制等功能
4.双功能引脚
由上面图示可得,为P3.0~P3.7
5.三总线构成
地址总线:P2、P0
数据总线:P0
控制总线:(ALE、EA、PSEN、RST)+P3
6.片外总线结构
三、51单片机的中央处理器(CPU)
从功能上看,CPU主要由运算部件和控制部件组成。
CPU功能可以概括为以下三条:
1)产生控制信号
2)控制数据传送
3)对输入数据进行算术逻辑运算及位操作
1.运算部件
运算部件是用来对数据进行算术运算和逻辑操作的执行部件。
(1)算术逻辑单元ALU
ALU是用于对数据进行算术运算和逻辑操作的执行部件,由加法器和其他逻辑电路(移位电路和判断电路)组成。
(2)累加器ACC
累加器ACC是一个8位寄存器,指令助记符可简写为“A”,它是CPU工作中最繁忙、最活跃的一个寄存器。CPU的大多数指令,都需要通过累加器ACC与其他部件交换信息。
(3)暂存器
暂存器用于暂存进入运算器之前的数据,它不能通过编程访问。设置暂存器的目的是暂时存放某些中间过程所产生的信息,以避免破坏通用寄存器的内容。
(4)布尔(位)处理器
除对字节(Byte)进行操作外,51单片机借用PSW中的CY(进位标志符)可以直接对位(Bit)进行操作,在进行位操作时,CY就类似进行字节操作的ACC用作数据源或存放结果。通过位操作指令可以实现置位、清零、取反以及位逻辑运算等操作。
(5)程序状态字寄存器
以PSW为例:
此寄存器各位的含义如下(其中PSW.1未用)
① CY(PSW.7):进位标志。 在执行某些算术和逻辑指令时,它可以被硬件或软件置位或清零。CY在布尔处理机中被认为是位累加器,重要性相当于一般中央处理器中的累加器A。
② AC(PSW.6):辅助进位标志。 当进行加法或减法操作而产生由低4位数向高4位数进位或借位时,AC将被硬件置位,否则就被清零。AC被用于BCD码调整。
③ F0(PSW.5):用户标志位。 F0是用户定义的一个状态标记,用软件来使它置位或清零。该标志位状态一经设定,可用软件测试F0,以控制程序的流向。
④ RS1、RS0(PSW.4、PSW.3):寄存器选择控制位: 可以用来置位或清零以确定工作寄存区。RS1、RS0与寄存器组的对应选择关系如下表:
⑥ OV(PSW.2):溢出标志。 带符号加减运算中,当超出了累加器A所能表示的符号数有效范围(-128~+127)时,即产生溢出,OV=1,表明运算结构错误。如果OV=0,表明运算结果正确。
⑦ P(PSW.0):奇偶标志。 每个指令周期豆油硬件来置位或清零,以表示累加器A中1的位数的奇偶数。若1的位数为奇数,P置1,否则P清零。P标志对串行通信中的数据传输有重要的意义,在串行通讯中常用奇偶校验的办法来检验数据传输的可靠性。在发送端可根据P的值对数据进行奇偶置位或清零。
⑧ PSW.1:程序状态的第1位,该位的含义没有定义,若用户要使用这一位,可直接使用PSW.1的位地址。
PSW寄存器除具有字节地址外,还具有位地址,因此,可以对PSW中的任一位进行操作,这大大提高了指令执行的效率。
2.控制部件
定义: 用来统一指挥和控制计算机进行工作的部件。其功能是从存储器中逐条获取指令,进行指令译码,并通过定时和控制电路,在规定的时刻发出各种操作所需要的全部内部控制信息及CPU外部所需的控制信号,使各部分按照一定的节拍协调工作,完成指令所规定的各种操作。它由指令部件,时序部件和操作控制部件组成。
(1)指令部件
指令部件是一种能对指令进行分析,处理并产生控制信号的逻辑器件,也是控制器的核心。它由程序计数器PC(Program Counter)、指令寄存器(Instruction Register)、指令译码器。这三个寄存器用户都不能直接访问。
1.程序计数器PC用于存放CPU要执行的下一条指令的地址。
2.指令寄存器IR是一个8位寄存器,用于暂时存放指令代码,等待译码。
3.指令译码器用于对送入指令译码器中的指令进行译码。所谓“译码”就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时产生执行该指令所需要的各种控制信号,使单片机能够正确执行程序所需要的各种操作。
(2)时序部件
时序部件由时钟电路和脉冲分配器组成,用于产生操作控制部件所需的时序信号。产生时序信号的部件称为“脉冲发生器”或“时序系统”,它由一个振荡器和一组计数分频器组成。振荡器是一个脉冲源,输出频率稳定的脉冲,也称“时钟脉冲”,为CPU提供时钟基准。时钟脉冲经过进一步的计数分频,产生所需的节拍信号或更长时间的机器周期信号。
(3)操作控制部件
操作控制部件可以为指令译码器的输出信号配上节拍电位和节拍脉冲,也可以和外来的控制信号组合,共同形成相应的微操作控制序列信号。
总结
今天按照我的计划是想着把硬件结构和存储器结构都给过一遍,但是这部分琐碎的知识出乎意料的多,加上存储器结构我觉得非常有用(而我学的并不好/(ㄒoㄒ)/~~),我在学C++时也用到程序的地址,堆栈,与单片机的存储器结构有很多相通的地方,我果断决定,要仔细的给整理一遍。
今天就暂且把前半部分,单片机基本组成,引脚介绍,CPU这几大部分以及他们包含的小的知识点给治理完成吧。(ง •_•)ง