单片机硬件结构和原理_第1页
单片机硬件结构和原理_第2页
单片机硬件结构和原理_第3页
单片机硬件结构和原理_第4页
单片机硬件结构和原理_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

第2章

89C51单片机硬件结构和原理主要掌握基本组成(内部资源)引脚存储器的配置I/O口的应用功能(以89C51(AT89C51、P89C51、STC89C51)为代表讲解)2.189C51单片机的基本组成1.89C51单片机结构框图8位CPU256字节RAM4KBFlashROM4个8位I/O口2个定时/计数器5个中断源1个全双工串行口片内振荡器和时钟产生电路(最高允许振荡频率为24MHz)节电工作方式(空闲、掉电)FlashROM89C5189C51bus3.89C51CPU功能介绍由运算器和控制器构成运算器:进行算术运算、逻辑运算,由ALU、A、B、PSW、暂存器组成。控制器:包括PC、IR、ID、振荡器和时钟电路单片机的核心ALU ArithmeticLogicUnit算术/逻辑运算单元A

最忙碌的寄存器累加器B

多用于乘除运算寄存器PSW

用于指示指令执行后的状态信息,可供程序查询和判别用。程序状态字寄存器PCProgramCounter,下一条指令的 地址。改变PC的内容可以改变程序运行方向。IR InstructionRegister指令寄存器

ID InstructionDecoder指令译码器振荡器及时钟电路:提供片内时钟2.289C51单片机的引脚及功能MCS-51单片机信号引脚简介

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

313029282726252424222180318051875189C512.389C51单片机的存储器配置1.存储器结构普林斯顿结构一般微机采用的结构ROM、RAM安排在同一个地址空间相同指令访问ROM、RAM哈佛结构89C51采用此结构ROM和RAM占用不同的物理空间采用不同指令访问2.89C51存储空间物理结构ROM片内、片外RAM片内、片外逻辑结构(从用户使用的角度看)ROM:MOVC0000-FFFFH片内RAM:MOV0000-00FFH片外RAM:MOVX0000-FFFFH1

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

器80318751805189C51片内RAM片内ROM256B(字节)4K64K64K3.程序存储器与ROM密切相关的两个引脚、通过16位PC寻址,最大可寻址64kB地址空间当ROM容量不够时,尽量选择高容量存储器空间的单片机,如89C52、89C54、89C58等,应避免外扩程序存储器,因为会增加硬件负担。程序存储器程序存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,

在这三个单元存放一条

无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEHEA=1EA=0程序存储器资源分布中断入口地址4.数据存储器如何区分0000-00FFH的地址空间是片内RAM还是片外RAM?片内RAM:低128B片内RAM0000-007FH高128B片内RAM0080-00FFH片内、片外分开编址SFR:特殊功能寄存器区0000HFFFFH(64K)内部外部数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用

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

11第3区18H~1FH

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

00第0区00H~07H10第2区10H~17H工作寄存器区选择位RS0、RS1PSW位地址CYACF0RS1RS0OVF1PMSB——MostSignificantBit(最高有效位)

LSB——LeastSignificantBit(最低有效位)单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻址区位地址表高128个单元☆离散分布有21个特殊功能寄存器SFR。☆

11个可以进行位寻址。☆特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。5.特殊功能寄存器(SFR)ACCBDPTR:

DataPointer,16位,对64kB片外RAM/ROM和外围设备作间接寻址。例:MOVDPTR,#2000HMOVXA,@DPTR则:

DPH=20H,DPL=00H,DPTR=2000H

结果是:取出片外RAM地址为2000H的数据,存放于A。特殊功能寄存器PSW:ProgramStatusWord:进位carry、辅助进位auxiliary、用户标志flagzero、寄存器选择registerselect、溢出overflow、奇偶parity。CYACF0RS1RS0OV-P例:MOVA,#0FHADDA,#0F8H00001111+11111000

100000111

AC=1,CY=1,OV=CY⊕AC=1⊕1=0,P=1,所以:11×××0×1特殊功能寄存器SP:堆栈指针(StackPointer),8位,专门存放堆栈的栈顶单元的地址。入栈时自动加1,出栈时自动减1。复位后,SP=07H0708090A0B35PUSHACC,SP=08H0708090A0BC135PUSHPSW,SP=09H0708090A0B35POPPSW,SP=08H0708090A0B0708090A0BPOPACC,SP=07H单片机工作条件单片机正常工作最基本条件是:正确的电源、时钟和复位信号。单片机最小系统1、时钟电路要给单片机CPU提供时钟信号,就需要相关的硬件电路,即振荡器和时钟电路。51系列单片机内部有一个高增益反相放大器,这个反相放大器的作用就是构成振荡器,但要形成时钟,外部还需要加一些附加电路。

51系列单片机本身一般不能自动进行复位的,必须配合相应的外部电路才能实现。当5l系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。2.复位电路

2.4时钟电路及CPU时序1.时钟电路根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式,如图所示。89C51XTAL1Vcc外部时钟输入TTL(a)内部时钟电路;(b)HMOS型外部振荡源(C)CHMOS型外部振荡源外接晶振时,电容的值一般取30pF;外接陶瓷谐振器时,电容的值一般取47pF2.基本概念振荡器:产生内部脉冲信号

若采用外部脉冲信号时钟发生器:根据脉冲信号产生时钟信号振荡周期P:脉冲信号周期时钟周期(状态周期)S

:(机器状态时间)S=P1+P2机器周期:

指令执行的单位=6S=12P指令周期:

指令执行的时间=N*6S,N=1、2、3……对HMOS单片机:XTAL2输入,XTAL1接地对CHMOS单片机:XTAL1输入,XTAL2悬空3.CPU取指、执行周期时序ALE有效时,表示可以读取指令。一个机器周期内,ALE有效两次提问:若采用12MHz的晶振频率,计算机器周期?2.5复位操作MCS-51单片机复位(RST高电平2个机器周期)

任何单片机在工作之前都要有个复位的过程,复位是什么意思呢?对单片机来说,是程序还没有开始执行,是在做准备工作----初始状态。

如何进行复位呢?只要在单片机的RST引脚上加上高电平,就可以了。为了达到这个要求,可以用很多种方法,见图。一、复位电路在通电瞬间,由于RC的充电过程,在RST端出现2个机器周期以上的高电平,只要该正脉冲保持2个机器周期以上,就能使单片机自动复位。根据应用的要求,复位操作通常有两种基本形式,即上电复位和按键复位805187518031RSTCRR1R2+5V上电复位按键复位上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行过程中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=10f,R=10K。二、复位后单片机的状态复位后各寄存器的状态PC0000H(程序入口)P0、P1、P2、P30FFH(可以直接输入)SP07H(栈底已经设好)PSW00H(选择0组寄存器)其余大部分都是0熟悉复位后各寄存器的状态,可以减短初始化程序。2.689C51单片机的低功耗

工作方式89C51提供两种节电工作方式:空闲(待机)工作方式:不向CPU供电,只供中断、串行口、定时器部分。可以通过中断触发方式退出待机模式。掉电工作方式:所有功能停止工作。方式的设定PCON(电源控制寄存器)8051:HMOS(高密度短沟道MOS)半导体工艺89C51:CHMOS=HMOS+CMOSSMOD------GF1GF0PDIDL2.7输入/输出端口单片机I/O口的使用对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,亦或接受外部的控制,都是通过I/O口进行的。单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。一.I/O口的构成口锁存器(CPU通过内部总线把数据写入口锁存器)输出驱动器输入缓冲器锁存器的含义CTR开关Bus锁存器其它器件0OUT=Bus1OUT保持OUT二.89C51的I/O口P0.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.0P3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.74个8位并行I/O口:P0,P1,P2,P3;均可作为双向I/O端口使用。(1)特点:P0:访问片外扩展存储器时,

复用为低8位地址线和数据线

P2:高8位地址线。P1:双向I/O端口

P3:第二功能1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51准双向口含义:端口每位都可以定义为输入/输出,但作为输入时,必须先向该位的口锁存器写”1”。在读入端口数据时,如果T导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。DQCLKQP1.n读锁存器内部总线写锁存器读引脚VCCRTP1口引脚CPU对I/O口的读操作一是读口锁存器的状态二是CPU读口引脚上的外部输入信息DQCLKQP1.n读锁存器内部总线写锁存器读引脚VCCRTP1口引脚4个I/O口的用途P1口只有通用输入/输出端口的功能;P0,P2,P3除了可以作为通用的I/O口,还可以用于其他用途。共同点:P0、P1、P2、P3都是准双向口;执行“读—修改—写”类指令时,读的是锁存器而不是引脚,如:ANLP1,AORLP1,#dataXRLP1,ACPLP1.×INCP1DECP1下图为P0口的某位P0.n(n=0~7)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚1、P0口的结构(1)P0口作为普通I/O口①输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚如果是驱动led,那么用1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少呢,主要看亮度情况,以亮度合适为准,一般来说超过3K以上时,亮度就很弱了,但是对于超高亮度的LED,有时候电阻为10K时觉得亮度还能够用。通常就用1k的。

对于驱动光耦合器,如果是高电位有效,即耦合器输入端接端口和地之间,那么和LED的情况是一样的;如果是低电位有效,即耦合器输入端接端口和VCC之间,那么除了要串接一个1——4.7k之间的电阻以外,同时上拉电阻的阻值就可以用的特别大,用100k——500K之间的都行,当然用10K的也可以,但是考虑到省电问题,没有必要用那么小的。

对于驱动晶体管,又分为PNP和NPN管两种情况:对于NPN,毫无疑问NPN管是高电平有效的,因此上拉电阻的阻值用2K——20K之间的,具体的大小还要看晶体管的集电极接的是什么负载,对于LED类负载,由于发管电流很小,因此上拉电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此上拉电阻的阻值最好不要大于4.7K,有时候甚至用2K的。对于PNP管,毫无疑问PNP管是低电平有效的,因此上拉电阻的阻值用100K以上的就行了,且管子的基极必须串接一个1——10K的电阻,阻值的大小要看管子集电极的负载是什么,对于LED类负载,由于发光电流很小,因此基极串接的电阻的阻值可以用20k的,但是对于管子的集电极为继电器负载时,由于集电极电流大,因此基极电阻的阻值最好不要大于4.7K。

对于驱动TTL集成电路,上拉电阻的阻值要用1——10K之间的,有时候电阻太大的话是拉不起来的,因此用的阻值较小。但是对于CMOS集成电路,上拉电阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,实际上对于CMOS电路,上拉电阻的阻值用1M的也是可以的,但是要注意上拉电阻的阻值太大的时候,容易产生干扰,尤其是线路板的线条很长的时候,这种干扰更严重,这种情况下上拉电阻不宜过大,一般要小于100K,有时候甚至小于10K。(②输入时----分读引脚或读锁存器读引脚:由传送指令(MOV)实现;

下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚(2)P0作为地址/数据总线

在系统扩展时,P0端口作为地址/数据总线使用时,分为:

P0引脚输出地址/数据信息。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强。P0的输出级可驱动8个LSTTL负载。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚(2)

P0作为地址/数据总线P0引脚作输入口输入信号是从引脚通过输入缓冲器进入内部总线。(2)

P0作为地址/数据总线DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚2、P2的内部结构(1)P2口作为普通I/O口DQCLKQMUXP2.n读锁存器内部总线写锁存器读引脚地址控制VCCRTP2口引脚CPU发出控制电平“0”

,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。

(2)P2口作为地址总线在系统扩展片外程序存储器扩展数据存储器且容量超过256B(用MOVX@DPTR指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。DQCLKQMUXP2.n读锁存器内部总线写锁存器读引脚地址控制VCCRTP2口引脚3、P1口、P3口的内部结构

(1)P1口的一位的结构它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成----准双向口。DQCLKQP1.n读锁存器内部总线写锁存器读引脚VCCRTP1口引脚(2)P3的内部结构DQCLKQP3.n读锁存器内部总线写锁存器读引脚VCCRTP3口引脚第二输入功能第二输出功能①作为通用I/O口与P1口类似----准双向口(W=1)W(2)P3的内部结构DQCLKQP3.n读锁存器内部总线写锁存器读引脚VCCRTP3口引脚第二输入功能第二输出功能②P3第二功能(Q=1)此时引脚部分输入(Q=1、W=1)

,部分输出(Q=1、W输出)

。WP3第二功能各引脚功能定义: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外部读控制端口的负载能力和接口要求

1、P0口的负载能力和接口要求负载能力:可驱动8个LS(低功耗、甚高速)型TTLP0接口要求:作为一般I/O口输出时,若驱动的是NMOS电路或OC门电路,其引脚要接上拉电阻,否则高电平电位不确定;

2、P1~P3口的负载能力和接口要求负载能力:可驱动4个LS型TTL接口要求:作为一般I/O口输出时,驱动任何电路都不需要要接上拉电阻(因为内部有上拉电阻);作为一般I/O口为准双向口。指令寄存器译码地址译码程序计数器地址寄存器累加器A运算器①②存储器内部数据总线外部地址总线AB数据缓冲器外部数据总线DB寄存器区外部控制总线CB内部控制信号时钟及清零总结:单片机的工作过程取指过程例:MOVA,#09H74H

09H;把09H送到累加器A中执行过程PC=0000H0001H0000H0002H0111010000001001(PC)(PC)0001H0002H0000H外部控制总线CB取指过程(PC)执行过程你知道PC的作用吗?1、CPU主要的组成部部分为()。B.加法器,寄存器

C.运算器,寄存器

D.运算器,指令译码器A.运算器,控制器

课堂练习2、8031有四个工作寄存器区,由PSW状态字中的RS1、RS0两位的状态来决定,单片机复位后,若执行SETBRS1指令,此时只能使用()区的工作寄存器。A.0区B.1区C.2区D.3区课堂练习3.09H位所在的单元地址是()A.02HC.08HB.21HD.20H课堂练习4.单片机在进行取指令操作时,指令的地址是由()的内容决定。A.SPC.DPTRD.PSEN和ALEB.PC课堂练习5.P0,P1口作输入用途之前必须()。A.外接高电平B.外接上拉电阻C.相应端口先置0D.相应端口先置1课堂练习6.程序计数器PC用来()。A.存放指令B.存放上一条的指令地址D.存放正在执行的指令地址C.存放下一条的指令地址课堂练习1.8031单片机内部RAM包括()。

A.程序存储区B.堆栈区C.工作寄存器及特殊功能区D.位寻址区E.中断入口地址区2.8051单片机CPU的主要功能有()。A.产生控制信号B.存储数据C.算术、逻辑运算及位操作D.驱动LED3.单片机能够直接运行的程序是()。

A.汇编源程序B.C语言源程序

C.高级语言程序D.机器语言源程序思考题思考题4.

十进制数126其对应的十六进制可表示为()。

A.8FB.8EC.FED.7E5.

十进制数89.75其对应的二进制可表示为().A.10001001.01110101B.1001001.10C.1011001.11D.1001001.116.

二进制数110010010对应的十六进制数可表示为()A.192HB.C90HC.1A2HD.CA0H7.-3的补码是()。

A.1

温馨提示

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

评论

0/150

提交评论