您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 电气技术 > 02硬件结构 单片机
2020/1/261第2章单片机硬件结构单片机原理及应用2.1逻辑结构及信号引脚2.2内部存储器2.3并行输入/输出口电路2.4电路与时序2.5工作方式22020/1/262.1.1结构框图2.1.2内部逻辑结构2.1.3信号引脚2.1逻辑结构及信号引脚2.1.1结构框图振荡器及定时电路4KB程序存储器128B数据存储器2个16位定时器/计数器可编程I/O可编程串行口CPU频率基准源外部中断信号内部中断信号计数信号控制信号并行I/O口串行输入串行输出64KB总线扩展控制内部总线8031无2.1.2内部逻辑结构CPU运算器电路CPU控制器电路CPU控制器电路52020/1/26MCS—51CPUCPU内部结构:(1)运算器电路:运算部件以算术逻辑运算单元ALU为核心,包含累加器ACC、B寄存器、暂存器、标志寄存器PSW等许多部件,它能实现算术运算、逻辑运算、位运算、数据传输等处理。算术运算单元ALU是一个8位的运算器,它不仅可以完成8位二进制数据加、减、乘、除等基本的算术运算,还可以完成8位二进制数据逻辑“与”、“或”、“异或”、循环移位、求补、清零等逻辑运算,并具有数据传输、程序转移等功能。ALU还有一个一般微型计算机没有的位运算器,它可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑“与”、“或”等处理。这对于控制方面很有用。累加器ACC(简称为A)为一个8位的寄存器,它是CPU中使用最频繁的寄存器,ALU进行运算时,数据绝大多数时候都来自于累加器ACC,运算结果也通常送回累加器ACC。62020/1/26寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的。在乘法运算时,累加器A和寄存器B在乘法运算前存放乘数和被乘数,运算完后,通过寄存器B和累加器A存放结果。除法运算时,运算前,累加器A和寄存器B存入被除数和除数,运算后用于存放商和余数。标志寄存器PSW是一个8位的寄存器,它用于保存指令执行结果的状态,以供程序查询和判别。D7D6D5D4D3D2D1D0CACF0RS1RS0OV-PC(PSW.7):进位标志位。AC(PSW.6):辅助进位标志位。F0(PSW.5):用户标志位。RS1、RS0(PSW.4、PSW.3):寄存器组选择位。OV(PSW.2):溢出标志位。P(PSW.0):奇偶标志位。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P清零。72020/1/26(2)控制器电路:MCS—51CPU控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC、堆栈指针SP、数据指针DPTR以及信息传送控制部件等。它先以振荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。2.1.3信号引脚1、I/O口线功能4个8位并行I/O接口引脚P0.0~P0.7、P1.0~P1.7、P2.0~P2.7和P3.0~P3.72、控制线ALE:地址锁存允许信号端PSEN:外部程序存储器读选通信号端EA/VPP:程序存储器选择信号端/编程电源输入端为多功能引脚,可自动切换用作数据总线、地址总线、控制总线和或I/O接口外部引脚。80C512、控制线RST/VPD:复位信号端和后备电源输入端。输入10ms以上高电平脉冲,单片机复位。VPD使用后备电源,可实现掉电保护。3、电源及时钟引线工作电源:VCC、VSS时钟输入:XTAL1、XTAL2。复位电路:(1)上电复位(2)外部信号复位RESET+5V200Ω1K30μF单片机RST2.2.1内部数据存储器低128单元2.2.2内部数据存储器高128单元2.2.3堆栈操作2.2.4内部程序存储器2.2.5存储器结构特点2.2内部存储器112020/1/26MCS—51单片机存储器可以分成两大类:•RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。•ROM是一种写入信息后不易改写的存储器。断电后,ROM中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。122020/1/26低128单元是单片机的真正RAM存储器。2.2.1内部数据存储器低128单元分为三个区域:1.寄存器区:4组寄存器(寄存器阵列)。即4个工作寄存器0区~3区。每组8个寄存单元(每单元8位),以R0~R7作寄存器名,暂存运算数据和中间结果。字节地址为00H~1FH。2.位寻址区:字节地址为20H~2FH,既可作RAM,也可位操作。共有16个RAM单元,共128位,位地址为00H~7FH。3.用户RAM区:32个单元,地址为30H~7FH,在一般应用中常作堆栈区。用PSW中的两位PSW.4和PSW.3来切换工作寄存器区,选用一个工作寄存器区进行读写操作。字节地址位地址142020/1/26(1)寄存器区寄存器通常用于存放操作数及中间结果,由于它们的功能及使用不做预先规定,因此称为通用寄存器,有时也叫工作寄存器。在任一时刻,CPU只能占用其中的一组寄存器,并且把正在使用的那组寄存器称为当前寄存器。(2)位寻址区通常在使用中,“位”有两种表示方式。一是,以位地址的形式:如位寻址区的第一位是00H2;二是以存储单元地址加位的形式表示,如20H.0。(3)用户RAM区在内部RAM低128单元中,通用寄存器产士32个单元,位寻址区占去16个单元,还剩余80个单元,作为供用户使用的一般洲区。对于用户RAM区,只能以存储单元的形式来使用,其他没有任何规定和限制,但一般在应用中常把堆栈开辟在这个区域中。152020/1/26162020/1/262.2.2内部数据存储器高128单元内部RAM的高128单元——专用寄存器(SFR)区地址为80H~FFH特殊功能寄存器(SFR)也称专用寄存器,专门用于控制、管理片内算术逻辑部件、并行I/O口、串行口、定时/计数器、中断系统等功能模块的工作,用户在编程时可以给其设定值,但不能移作它用。分布在80H—FFH地址空间,与片内数据存储器统一编址,除PC外,51子系列有21个特殊功能寄存器。它们的分配情况如下:CPU专用寄存器:累加器A(E0H),寄存器B(F0H),程序状态寄存器PSW(D0H),堆栈指针SP(81H),数据指针DPTR(82H、83H)。并行接口:P0~P3(80H、90H、A0H、B0H)。串行接口:串口控制寄存器SCON(98H),串口数据缓冲器SBUF(99h),电源控制寄存器PCON(87H)。172020/1/26特殊功能寄存器名称符号地址位地址与位名称D7D6D5D4D3D2D1D0P0口P080H8786858483828180堆栈指针SP81H数据指针低字节DPL82H数据指针高字节DPH83H定时/计数器控制TCON88HTF18FTR18ETF08DTR08CIE18BIT18AIE089IT088定时/计数器方式TMOD89HGATEC/TM1M0GATEC/TM1M0182020/1/26定时/计数器0低字节TL08AH定时/计数器0高字节TH08BH定时/计数器1低字节TL18CH定时/计数器1高字节TH18DHP1口P190H9796959493929190电源控制PCON87HSMODGF1GF0PDIDL串行口控制SCON98HSM09FSM19ESM09DREN9CTB89BRB89ATI99RI98串行口数据SBUF99HP2口P2A0HA7A6A5A4A3A2A1A0中断允许控制IEA8HEAAFET2ADESACET1ABEX1AAET0A9EX0A9192020/1/26P3口P3B0HB7B6B5B4B3B2B1B0中断优先级控制IPB8HPT2BDPSBCPT1BBPX1BAPT0B9PX0B8程序状态寄存器PSWD0HCD7ACD6F0D5RS1D4RS0D3OVD2D1PD0累加器AE0HE7E6E5E4E3E2E1E0寄存器BBF0HF7F6F5F4F3F2F1F0其字节地址可被8整除。专用寄存器:A、B、PSW、DPTR、SP。I/O接口寄存器:P0、P1、P2、P3、SBUF、TMOD、TCON、SCON…有2套地址字节地址:只21个有效(其中仅11个有位地址)位地址:只83位有效1、SFR(80H~FFH)介绍:字节地址位地址212020/1/26(1)程序计数器PC(16位):CPU总是按PC的指示读取程序。PC是一个16位的计数器。其内容为将要执行的指令地址(即下一条指令地址),可自动加1。因此CPU执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,PC被强制改写,程序执行顺序也发生改变。复位时,PC=0000H。222020/1/26(2)累加器ACC(8位):累加器Acc是一个最常用的专用寄存器,为8位寄存器。累加器的功能较多,地位重要。其具有的功能概括如下:.累加器用于存放操作数,是ALU数据输入的一个重要来源,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的—个操作数也取自累加器;.累加器是从刀运算结果的暂存单元,用于存放运算的中间结果;.累加器是数据传送的中转站,单片机中的大部分数据传送都通过累加器进行;232020/1/26.在变址寻址方式中把累加器作为变址寄存器使用。单片机中大部分的数据操作都会通过累加器Acc进行,在程序比较复杂的运算中,累加器成了制约软件效率的“瓶颈”,很容易出现阻塞现象。为此在80c51中设置了一些不经过累加器的数据传送指令,例如,寄存器与直接寻址单元之间的数据传送指令,直接寻址单元与间接寻址单元之间的数据传送指令,寄存器、直接寻址单元、间接寻址单元与立即数之间的数据传送指令等,以缓和累加器的拥堵。以至于后来发展的单片机,有的集成了多累加器结构,或者使用寄存器阵列末代替累加器,即赋予更多寄存器以累加器的功能,目的是解决累加器的“交通堵塞”问题。提高单片机的软件效率。242020/1/26(3)寄存器B(8位):B是一个8位的寄存器,可以作为通用寄存器,存放各种数据。在乘除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,B为乘数,乘法操作后其结果存放于朋寄存器对中,B中存放高八位。除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B中。此外,B寄存器也可以作为一股数据寄存器使用。252020/1/26(4)程序状态字PSW(8位):程序状态字是一个8位寄存器,用于存放程序运行的状态信息,这个寄存器的一些位可由软件设置,有些位则由硬件运行时根据指令执行结果自动设置。功能说明如表所示。位序B7B6B5B4B3B2B1B0位符号CYACF0RS1RS0OVF1P.cY或c7——进位标志位cY有两个功能,一是存放执行某些算数运算时,存放进位标志,可被硬件或软件置位或清零;一是在位操作中作累加位使用,在位传送、位与、位或等位操作中都要使用进位标志。当进行字节的加法(或减法)运算时,cY作为进位(或借位)标志位。如果运算结果的最高位(D7)有进位(或借位)时,cY育l,反之则为o。在进行布尔运算时,cY作为“位累加器”使用。运算前应存放一位操作数,运算后自动存放运算结果。262020/1/26.AC——辅助进位标志位进行加、减运算时,当有低4位向高4位进位或信位时,Ac由硬件置位,否则被渭零。在进行十进制数运算时需要十进制调整,此时要用到Ac位状态进行判断。Ac辅助进位位也常用于十进制调整。.F0——用户标志位为通用的“位”存储器,由用户定义的状态标志,四可用软件置位或复位,也可以靠软件测试四的状态以控制程序的执行顺序。开机时该位为“0”。.Rs1、Rs0:寄存器组选择控制位272020/1/26.ov——溢出标志位主要反映带符号数运算的结果是否正确。带符号加减运算中,超出了累加器A所能表示的符
本文标题:02硬件结构 单片机
链接地址:https://www.777doc.com/doc-3309274 .html