第2章80C51的结构和原理_第1页
第2章80C51的结构和原理_第2页
第2章80C51的结构和原理_第3页
第2章80C51的结构和原理_第4页
第2章80C51的结构和原理_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章AT89S51单片机硬件结构AT89S51单片机的硬件组成2.180C51的基本结构与应用模式2.280C51典型资源配置与引脚封装2.380C51单片机的CPU2.480C51的存储器组织2.580C51的并行口结构与操作2.62023/2/61各厂商以8051为基核开发出的CMOS单片机统称为80C51系列。常用产品有:Intel:80C31、80C51、87C51,80C32、80C52、87C52等;ATMEL:89C51、89C52、89C2051等;Philips、华邦、Dallas、Siemens等公司的许多产品。本课程主要是讲解关于AT89C51/S5180C51=(8位)CPU+4KBROM+128BRAM+(2×16)T/C+(4×8)I/O+1个UART+5个INT2.1AT89S51单片机的硬件组成2023/2/622.1.180C51的基本结构2023/2/634图2-1AT89S51单片机片内结构2023/2/642.1.280C51的应用模式

带总线扩展引脚的产品扩展总线的应用模式不扩展总线的应用模式

2023/2/65没有总线扩展引脚的产品引脚数减少、体积减小。对于不需进行并行外围扩展,装置的体积要求苛刻且程序量不大的系统极其适合。典型产品,如:AT89S2051/AT89S4051。2023/2/662.2AT89S51的引脚功能2023/2/67引脚简介

P3口线的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.72、振荡电路:XTAL1、XTAL23、复位引脚:RST4、并行口:P0、P1、P2、P37、ALE:地址锁存控制信号1、电源线:VCC(+5V)、VSS(地)EAPSEN5、EA:访问程序存储控制信号6、PSEN:外部ROM读选通信号RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C512023/2/6840只引脚按功能分为3类:(1)电源及时钟引脚:Vcc、Vss;XTAL1、XTAL2。(2)控制引脚:

PSEN*、EA*

、ALE、RESET(即RST)。(3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚。1电源及时钟引脚

1.电源引脚

(1)Vcc(40脚):+5V电源;(2)Vss(20脚):接地。2023/2/692.时钟引脚

(1)XTAL1(19脚):如果采用外接晶体振荡器时,此引脚应接地。(2)XTAL2(18脚):接外部晶体的另一端。2控制引脚

提供控制信号,有的引脚还具有复用功能。

(1)RST/VPD(9脚):复位与备用电源。

(2)ALE/PROG*(30脚):第一功能ALE为地址锁存允许,可驱动8个LS型TTL负载。

PROG*为本引脚的第二功能。为编程脉冲输入端。

此外,单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6。可作外部定时或触发信号用。2023/2/610

(3)PSEN*

(29脚):外部程序存储器的读选通信号。可以驱动8个LS型TTL负载。

(4)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31脚)

EA*为内外程序存储器选择控制端。

EA*=1,访问片内程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051、8751)时,即超出片内程序存储器的4K字节地址范围时,将自动转向执行外部程序存储器内的程序。

EA*=0,单片机则只访问外部程序存储器。2023/2/611

VPP为本引脚的第二功能。用于施加编程电压(例如+21V或+12V)。对89C51,加在VPP脚的编程电压为+12V或+5V。3I/O口引脚

(1)P0口:双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。

(2)P1口:8位准双向I/O口,可驱动4个LS型TTL负载。

(3)P2口:8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。2023/2/612

(4)P3口:8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载。注意:准双向口与双向三态口的差别。当3个准双向I/O口作输入口使用时,要向该口先写“1”。准双向I/O口无高阻的“浮空”状态。以上的准双向口与双向口的差别,读者在学习第4章后,将会有深刻的理解。2023/2/6132.380C51的CPU2023/2/6148051的内部结构展开图128×8RAMRAM地址寄存器P3口P1口P2口P0口锁存器锁存器锁存器锁存器中断控制定时/计数器串行I/O口SP寄存器B累加器A暂存器1暂存器2程序状态字PSW指令寄存器IR指令译码器ID数据指针DPTR缓冲器程序计数器PC增1程序地址寄存器AR定时与控制4K×8ROMALUCPU2023/2/615(1)程序计数器(ProgramCounter——PC)——指向ROM存储单元的地址指针(引导程序运行)

0000HPC指针……XxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxXxxxxxxxROM0000H0001H0002H0003H0004HFFFFH永远存放着下一条指令的首地址具有16位字长→可寻址范围216(=65536字节=64KB)具有自动加“1”

功能→顺序运行程序功能具有可被指令修改功能→跳转运行程序功能复位时,PC初值=0→复位后程序从0开始运行PC的计数宽度决定了程序存储器的地址范围。PC为16位,故可对64KB(=216B)寻址。2023/2/616(2)数据指针寄存器(DataPointer——DPTR)具有16位字长,可寻址范围216(64KB)具有可被指令修改功能→可变更数据地址可拆为2个8位的独立寄存器DPL和DPH……0000H0001H0002H0003H0004HFFFFH35H77HF4H94H9EHDPTR指针……xxHxxHxxHxxHxxHROMRAMDPLDPH0000H0001H0002H0003H0004HFFFFH——指向ROM或RAM存储单元的地址指针(引导数据传送)

2023/2/617(3)累加器(ACCUMULATER——A)

具有8位字长是利用率最高的寄存器具有可被指令修改功能——存放操作数或中间运算结果的寄存器2023/2/618(4)程序状态字寄存器(ProgramStateWord——PSW)

具有8位字长各位都具有特殊含义状态信息通常自动形成,但也可用指令修改——存放程序运行过程中的各种状态信息的寄存器AC2023/2/619CY(PSW.7)——进位标志在进行加或减运算时,如果操作结果最高位有进位或借位时,CY由硬件置“1”,否则清“0”。10010011+11110000

————————CY=110000011进位标志位CYCYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1P位7位6位5位4位3位2位1位0CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位7位6位5位4位3位2位1位0用途:1、根据CY判断有无进位或借位;2、在位操作中CY可作为位累加器用。举例2023/2/620

AC(PSW.6)——辅助进位标志在进行加或减运算时,如果操作结果的低四位数向高四位产生进位或借位时,将由硬件置“1”,否则清“0”。01001111+10100001

————————AC=111110000半进位CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1P位7位6位5位4位3位2位1位0CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位7位6位5位4位3位2位1位0举例用途:1、根据AC判断加减运算时有无半进位或半借位;2、在BCD码调整运算中要用到AC标志2023/2/621F0(PSW.5)和F1(PSW.1)——用户标志位可作为用户自行定义的一个状态标记

举例定义F0为安全门的状态,F0=0→开;F0=1→闭定义F1为指示灯的状态,F1=0→开;F1=1→闭CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1P位7位6位5位4位3位2位1位0CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位7位6位5位4位3位2位1位0用途:在程序运行中判断门或灯的工作状态2023/2/622RS1和

RS0(PSW.4和

PSW.3)——工作寄存器组指针用途:用于指定CPU的当前工作寄存器组CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1P位7位6位5位4位3位2位1位0CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位7位6位5位4位3位2位1位02023/2/623OV(PSW.2)——溢出标志在有符号数加减运算或无符号数乘除运算中若有异常结果,OV硬件置1,否则硬件清0。CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1P位7位6位5位4位3位2位1位0CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位7位6位5位4位3位2位1位0用途:判断运算的结果是否正确,正确=0;出错=12023/2/624OV=C6YC7Y=1

0=101010100(+84)

+01101001(+105)

——————————————CY=010111101→(-67)D6有进位D7无进位10111101→11000010→11000011正数的补码是它本身,负数的补码是除符号位外每位求反,然后末尾加111111011(-5)

+11110000(-16)

——————————————CY=111101011→(-21)D7有进位

D6有进位OV=C6YC7Y=1

1=011101011→10010100→10010101→运算出错→运算正确举例举例2023/2/625P(PSW.0)——奇偶标志位该位始终跟踪累加器A中含“1”个数的奇偶性如果A中有奇数个“1”,则P置“1”,否则置“0”举例若A=10011111,则P=0

若A=11000001,则P=1CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1P位7位6位5位4位3位2位1位0CYACF0RS1RS0OVF1PCYACF0RS1RS0OVF1PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位7位6位5位4位3位2位1位0用途:用于串行通讯中的数据校验,判断是否存在传输错误。2023/2/626指令寄存器译码地址译码程序计数器地址寄存器累加器A运算器①②存储器内部数据总线外部地址总线AB数据缓冲器外部数据总线DB寄存器区外部控制总线CB内部控制信号时钟及清零单片机的工作过程取指过程例:MOVA,#09H74H

09H;把09H送到累加器A中执行过程PC=0000H0001H0000H0002H0111010000001001(PC)(PC)0001H0002H0000H外部控制总线CB取指过程(PC)执行过程你知道PC的作用吗?2023/2/627

RS1RS0所选的4组寄存器

000区(内部RAM地址00H~07H)

011区(内部RAM地址08H~0FH)

102区(内部RAM地址10H~17H)

113区(内部RAM地址18H~1FH)2023/2/628寄存器及其存储器映射如下图:20~2FH2023/2/6291.

存储器划分方法计算机存储器地址空间的两种结构形式:普林斯顿结构和哈佛结构。RAM和ROM统一编址

RAM和ROM分别编址

2.480C51的存储器组织2023/2/63051系列单片机采用哈佛结构,共有4个物理存储空间程序存储器ROM数据存储器RAM片内RAM、片内ROM、片外RAM、片外ROM2023/2/6312.480C51的存储器组织80C51存储器可以分成两大类:

RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。

ROM,写入信息后不易改写的存储器。断电后,其中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。

2023/2/6322.4.180C51单片机的程序存储器配置片内与片外程序存储器的选择

EA引脚接高电平---片内2023/2/633

EA引脚接地---片外2023/2/634a)同时使用片内和片外ROMb)ROM地址分布

当EA引脚接高电平(开关接A点)时,4KB以内的地址在片内ROM,大于4KB的地址在片外ROM中(图中折线),两者共同构成64KB空间;当EA引脚接低电平(开关接B点)时,片内ROM被禁用,全部64KB地址都在片外ROM中(图中直线)。由于片内外ROM是统一编址的,只能算1个逻辑存储空间。2023/2/635片内RAM和片外RAM是独立的,而片内ROM可与片外ROM统一编址51单片机的4个物理存储空间相当于3个逻辑存储空间片内RAM片外RAM2023/2/636ROM的6个特殊存储器单元——引导程序跳转

0000H:复位后程序自动运行的首地址

0003H:外部中断0入口地址

000BH:定时器0溢出中断入口地址

0013H:外部中断1入口地址

001BH:定时器0溢出中断入口地址

0023H:串行口中断入口地址程序一般应安排在0030H地址以后……

跳转指令

跳转指令

跳转指令

跳转指令

跳转指令0000H0001H0002H0003H0004H0030H主程序首指令2023/2/637程序存储器程序存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,

在这三个单元存放一条

无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEHEA=1EA=0程序存储器资源分布中断入口地址2023/2/638程序存储器低端的几个特殊单元2023/2/6392.4.280C51单片机数据存储器配置片内、片外数据存储器概况片内RAM及SFR片外RAM片内128B的RAM不够用时,需外扩,最多可外扩64KB的RAM。注意,片内RAM与片外RAM两个空间是相互独立的,片内RAM与片外RAM的低128B的地址是相同的,但由于使用的是不同的访问指令,所以不会发生冲突。2023/2/6400000HFFFFH(64K)内部外部数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用

寄存器00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器

11第3区18H~1FH

01第1区08H~0FHRS1RS0寄存器区片内RAM地址

00第0区00H~07H

10第2区10H~17H工作寄存器区选择位RS0、RS12023/2/641工作寄存器区(含寄存器组0~3)

寄存器组0:地址00H~07H

寄存器组1:地址08H~0FH寄存器组2:地址10H~17H寄存器组3:地址18H~1FH当前工作寄存器组选择

PSW寄存器中:

2023/2/642片内RAM详图2023/2/643片内数据存储器(RAM)作用:存放程序运行结果字长:8位数量:128B+128B(80C51)30H低128B(00H~7FH)为普通RAM区高128B(80H~FFH)为特殊功能寄存器区2023/2/644(1)低128字节的区域

①工作寄存器区(00H~1FH)

②可位寻址区(20H~2FH)

③用户RAM区(30H~7FH)①②③30H2023/2/645①区共有32个存储单元;每个单元都有1个8位地址(字节地址)每个单元都有1个寄存器名称(R0~R7)32个单元分为4组(第0~

第3组)CPU只能选一组为当前工作寄存器组当前工作寄存器组取决于PSW的设置①30HCPU复位后RS1和RS0默认值为0,即默认第0组为当前工作寄存器组。2023/2/646②30H②区共有16个存储单元;每个单元都有一个字节地址每个单元都有8个不同的位地址

②区共有128个位地址②区可以字节地址和位地址两种方式存取数据。2023/2/647位寻址区字节地址位地址D7D6D5D4D3D2D1D020H07H06H05H04H03H02H01H00H21H0FH0EH0DH0CH0BH0AH09H08H22H17H16H15H14H13H12H11H10H23H1FH1EH1DH1CH1BH1AH19H18H24H27H26H25H24H23H22H21H20H25H2FH2EH2DH2CH2BH2AH29H28H26H37H36H35H34H33H32H31H30H27H3FH3EH3DH3CH3BH3AH39H38H28H47H46H45H44H43H42H41H40H29H4FH4EH4DH4CH4BH4AH49H48H2AH57H56H55H54H53H52H51H50H2BH5FH5EH5DH5CH5BH5AH59H58H2CH67H66H65H64H63H62H61H60H2DH6FH6EH6DH6CH6BH6AH69H68H2EH77H76H75H74H73H72H71H70H2FH7FH7EH7DH7CH7BH7AH79H78H2023/2/648③区共有80个存储单元;每个单元都有一个字节地址,但没有位地址,也没有寄存器名。③30H此区可作为堆栈区和中间数据存储区使用——用户RAM区【注意】:①区和③区只能按字节进行数据存取操作,②区则可按字节和位两种方式存取操作。2023/2/649通用RAM区

30H~7FH,共80字节

数据缓冲

堆栈

SP指示栈顶复位时SP=07H

系统初始化通常重新设置2023/2/650(2)高128字节RAM区

30HSFR承担着51单片机内部资源的管理工作每个存储单元都有一个字节地址,但只有其中21个单元可以使用,并有相应寄存器名称。51单片机共有21个特殊功能寄存器(SpetialFunctionRegister)2023/2/651字节地址末位是0或8的SFR,都具有位地址。88H89H8AH8BH8CH8DH8EH8FH2023/2/6522.4.380C51单片机的特殊功能寄存器(SFR)基本型单片机有21个SFR离散地分布在80H~FFH空间。与运算器相关3个

ACC

B

PSW与定时/计数器相关6个

TH0,TL0

TH1,TL1

TMODTCON指针类3个

SP

DPH,DPL与口相关7个

P0,P1,P2,P3

SBUFSCON

PCON与中断相关2个

IE

IP2023/2/6532.580C51的并行口结构与操作P0口结构

P0作通用I/O口(当EA=1或“MOV”传送时C=0)输出时2.5.1P0、P2口的结构2023/2/654输入时

读锁存器(“读-修改-写”类指令,如ANLP0,A)

读引脚(“MOV”类指令,如MOVA,P0),要先写“1”

10P0作通用I/O时为:准双向口!2023/2/655**原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。**DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2023/2/656DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚准双向口:

从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。2023/2/657

P0作地址数据总线(当EA=1或“MOVX”类传送时C=1)

输出时,地址/数据信息分时出现在输出引脚。

输入时,先输出地址,然后自动向锁存器写1,再读引脚。此时为真正双向口。2023/2/658P2口结构

P2作通用I/O口(未扩片外存储器,或虽扩RAM但采用“MOVX@Ri”传送时C=0)P2作通用I/O时为:准双向口!

P2作地址总线高8位(C=1)2023/2/659P1口结构

P1仅能为通用的准双向口!2.5.2P1、P3口的结构2023/2/660P3口结构

第一功能:通用I/O口(对口寻址时)2023/2/661

第二功能(不对口寻址时)

P3.0:RXD(串行口输入)

P3.1:TXD(串行口输出)

P3.2:INT0(外部中断0输入)

P3.3:INT1(外部中断1输入)

P3.4:T0(定时器0的外部输入)

P3.5:T1(定时器1的外部输入)

P3.6:WR(片外数据存储器“写”选通控制输出)

P3.7:RD(片外数据存储器“读”选通控制输出)2023/2/662P0~P3并行口的基本用途

1、可作为并行IO输入通道(例如,按键/开关连接通道)2023/2/6632、可作为并行IO输出通道(例如,数码管显示器连接通道)2023/2/6643、可作为串行通信通道(例如,双机通讯的连接通道)2023/2/6654、可作为外部设备的连接通道(例如,存储器扩展通道)2023/2/666P0~P3小结1.结构2.功能B0HA0H90H80HSFR地址★

第二功能

★总线端口★★★★准双向IO口P3P2P1P0★★★内部上拉电阻★★★输出控制★★MUX开关★★★★D锁存器P3P2P1P02023/2/6672.680C51的时钟与时序时钟产生方式内部时钟方式外部时钟方式

外部时钟源直接接到XTAL1端,XTAL2端悬空,2023/2/6683.时钟信号的输出当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。其引出的方式有两种,如图2-10。69图2-10

时钟信号的两种引出方式2023/2/669CPU的微操作必须在统一的时钟控制下才能正确进行,时钟电路

微调电容:C1、C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论