单片机原理及应用(胡乾斌)第二章_第1页
单片机原理及应用(胡乾斌)第二章_第2页
单片机原理及应用(胡乾斌)第二章_第3页
单片机原理及应用(胡乾斌)第二章_第4页
单片机原理及应用(胡乾斌)第二章_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 mcs-51mcs-51单片机的内部结构单片机的内部结构2.1 2.1 mcs-51mcs-51系列单片机的内部结构系列单片机的内部结构2.2 mcs-512.2 mcs-51的寻址空间与存储器结构的寻址空间与存储器结构2.3 mcs-512.3 mcs-51的并行的并行i/oi/o口口2.4 cpu2.4 cpu时序及辅助电路时序及辅助电路2.1 mcs-512.1 mcs-51单片机逻辑结构与引脚功能单片机逻辑结构与引脚功能一、一、mcs-51mcs-51系列单片机的基本组成系列单片机的基本组成80518051单片机包括:单片机包括:n面向控制的面向控制的8 8位位cpucp

2、u和指令。和指令。n4k4k字节的程序存储器(字节的程序存储器(romrom或或epromeprom)。)。n128128字节的数据存储器。字节的数据存储器。n可编程并行可编程并行i/oi/o口口po-p3po-p3,有,有3232位双向输入位双向输入/ /输出线。输出线。n一个全双工串行口。一个全双工串行口。n两个两个1616位定时器位定时器/ /计数器。计数器。n五个中断源,两个中断优先级的中断结构。五个中断源,两个中断优先级的中断结构。n一个片内时钟振荡器和时钟电路。一个片内时钟振荡器和时钟电路。n可寻址可寻址64k64k字节的程序存储器和字节的程序存储器和64k64k字节的外部数据存储

3、器。字节的外部数据存储器。二、二、mcs-51mcs-51系列单片机的内部结构系列单片机的内部结构 mcs-51mcs-51系列单片机的内部结构框图系列单片机的内部结构框图 8051 8051单片机按其逻辑功能可分为运算器、控制器、存贮单片机按其逻辑功能可分为运算器、控制器、存贮器、器、i/oi/o口几大部分,其中:口几大部分,其中:ndptrdptr(数据存贮器指针):为指示(数据存贮器指针):为指示ramram的地址而设置的的地址而设置的1616位位寄存器;寄存器;nb b(乘法寄存器):作乘法运算使用的寄存器,亦可作一般(乘法寄存器):作乘法运算使用的寄存器,亦可作一般用途;用途;nsp

4、sp堆栈指针:用来指示堆栈的栈顶地址;堆栈指针:用来指示堆栈的栈顶地址;n特殊功能寄存器:是为存放内部器件的工作方式和状态信特殊功能寄存器:是为存放内部器件的工作方式和状态信息而设置的寄存器,息而设置的寄存器,80518051单片机内共有单片机内共有2121个特殊功能寄存个特殊功能寄存器,在结构上它们也是片内器,在结构上它们也是片内ramram的一部分,只不过指定作特的一部分,只不过指定作特殊用途而已。殊用途而已。n通用寄存器:供用户直接使用的数据寄存器,单片机内共通用寄存器:供用户直接使用的数据寄存器,单片机内共有有128128个通用寄存器,其中包括四组工作寄存器(个通用寄存器,其中包括四组

5、工作寄存器(r0-r7r0-r7),),共有共有3232个存贮单元。这些通用寄存器除了按字节操作外,个存贮单元。这些通用寄存器除了按字节操作外,其中有一部分(地址其中有一部分(地址20h-2fh20h-2fh)能按位进行操作。)能按位进行操作。n由于单片机的由于单片机的ramram具有多种用途,而且一般在单片机系统具有多种用途,而且一般在单片机系统中还扩展有片外的中还扩展有片外的romrom和和ramram,因此其存贮器系统的结构具,因此其存贮器系统的结构具有一定的特点。有一定的特点。1、cpu cpucpu由运算器、控制器及一些特殊功能寄存器组成、由运算器、控制器及一些特殊功能寄存器组成、其

6、结构形式与工作原理和一般的微处理器相同。可执行下其结构形式与工作原理和一般的微处理器相同。可执行下述算术述算术/ /逻辑运算。逻辑运算。1.11.1、运算器、运算器 算术与逻辑运算部件算术与逻辑运算部件alualu alu alu由加法器和其他逻辑电路等组成。它的功能是,由加法器和其他逻辑电路等组成。它的功能是,完成各种算术运算和逻辑运算,它可以进行加、减、乘、完成各种算术运算和逻辑运算,它可以进行加、减、乘、除、加除、加1 1、减、减1 1、比较等算术运算和与、或、非、异或、取、比较等算术运算和与、或、非、异或、取反、取补等逻辑运算。以及循环移位、位操作等。反、取补等逻辑运算。以及循环移位、

7、位操作等。n带进位和不带进位的加法带进位和不带进位的加法n带进位的减法带进位的减法n两个八位无符号数的乘法和除法两个八位无符号数的乘法和除法n加加1 1或减或减1 1操作操作n逻辑逻辑“与与”、“或或”、“异或异或”操作、字节取反操作操作、字节取反操作n左右循环移位操作左右循环移位操作n半字节交换半字节交换n二十进制(二十进制(bcdbcd码)调整码)调整n比较和条件转移的判断等操作比较和条件转移的判断等操作n“位位”操作:置位、清零、取反、条件判断、逻辑操作:置位、清零、取反、条件判断、逻辑“与与”、“或或”等操作等操作寄存器寄存器n累加器累加器accacc 累加器累加器accacc,简称累

8、加器,简称累加器a a,它是一个,它是一个8 8位寄存器,通位寄存器,通过暂存器与过暂存器与alualu相连,在算术运算和逻辑运算时,通常用相连,在算术运算和逻辑运算时,通常用累加器累加器a a存放一个参加操作的数,作为存放一个参加操作的数,作为alualu的一个输入,而的一个输入,而alualu的运算结果又存入累加器的运算结果又存入累加器a a中。中。n寄存器寄存器b b 寄存器寄存器b b一般用于乘、除法指令,它与累加器一般用于乘、除法指令,它与累加器a a配合使配合使用。运算前,寄存器用。运算前,寄存器b b中存放乘数或除数;运算后,中存放乘数或除数;运算后,b b中保中保存了存了乘积的

9、高位字节乘积的高位字节或或商的余数部分商的余数部分。此外,寄存器。此外,寄存器b b可可作为存放中间结果的暂存寄存器使用。作为存放中间结果的暂存寄存器使用。n程序状态字寄存器程序状态字寄存器pswpsw 运算操作过程中的一些状态信息存放在程序状态字寄存器运算操作过程中的一些状态信息存放在程序状态字寄存器pswpsw中,中,pswpsw寄存器的字节地址是寄存器的字节地址是dohdoh,pswpsw各位的符号与定义如下:各位的符号与定义如下: c c进位标志(进位标志(cycy),有进位或借位时,),有进位或借位时,c=1c=1,否则,否则c=0c=0; cy=1cy=1提示无符提示无符号数运算超

10、出范围。号数运算超出范围。 在进行位操作时,在进行位操作时,cycy作为位累加器作为位累加器c c,也称为布尔累加器。此外,也称为布尔累加器。此外,循环移位指令和比较转移指令也会影响循环移位指令和比较转移指令也会影响cycy标志。标志。 ac ac辅助进位标志,当累加器中辅助进位标志,当累加器中a3a3向向a4a4有进位或错位时有进位或错位时ac=1ac=1,否则,否则ac=0ac=0; f0 f0用户标志位,可由用户置用户标志位,可由用户置“1”1”,或置,或置“0”0”,作为某一种状态的标,作为某一种状态的标志;志; ovov溢出标志,计算机中,带符号数通常是用补码表示溢出标志,计算机中,

11、带符号数通常是用补码表示的对于单字节二进制补码,其所能表示数的范围是的对于单字节二进制补码,其所能表示数的范围是 -128-128到到 +127+127,如果运算结果超出了这个数值范围,就称为溢出。,如果运算结果超出了这个数值范围,就称为溢出。q一般两个同号数相加或两个异号数相减,有可能发生溢出;一般两个同号数相加或两个异号数相减,有可能发生溢出;q而两个同号数相减或两个异号数相加,则不会发生溢出。而两个同号数相减或两个异号数相加,则不会发生溢出。 11067ccddov10167ccddovn在乘法运算时,在乘法运算时,ov=1ov=1表示结果超过了表示结果超过了255255,即乘积分别在,

12、即乘积分别在寄存器寄存器b b和和a a中;反之表示乘积在中;反之表示乘积在a a中。中。n在除法运算时,在除法运算时,ov=1ov=1表示除数为表示除数为0 0,不能进行除法,反之,不能进行除法,反之除数不为除数不为0 0,可以进行除法。,可以进行除法。 p p奇偶标志,累加器奇偶标志,累加器a a中中“1”1”的个数为奇数时的个数为奇数时p=1p=1,否则,否则p=0p=0;rs1rs1,rs0rs0:工作寄存器组选择控制位。工作寄存器组选择控制位。 0 0 00 0 0组(内部组(内部ramram地址地址00h00h07h07h)0 1 10 1 1组(内部组(内部ramram地址地址0

13、8h08h0fh0fh)1 0 21 0 2组(内部组(内部ramram地址地址10h10h17h17h)1 1 31 1 3组(内部组(内部ramram地址地址18h18h1fh1fh) mcs mcs5151单片机的零标志单片机的零标志z z不包含在不包含在pswpsw寄存器中,而直寄存器中,而直接安排在累加器接安排在累加器a a中中1.2 控制器控制器n程序计数器程序计数器pcpc 程序计数器程序计数器pcpc(program counterprogram counter)是)是1616位专用寄存位专用寄存器,其内容表示下一条要执行的指令时,器,其内容表示下一条要执行的指令时,pcpc的

14、内容有自动的内容有自动加加1 1的功能。当的功能。当cpucpu顺序地执行指令时,顺序地执行指令时,pcpc的内容以增量的的内容以增量的规律变化着,于是当一条指令取出后,规律变化着,于是当一条指令取出后,pcpc就指向下一条指就指向下一条指令的地址,如果不按顺序执行指令,转移到某地址再继续令的地址,如果不按顺序执行指令,转移到某地址再继续执行指令,这时在执行指令,这时在跳转之前必须将转向的程序的入口地址跳转之前必须将转向的程序的入口地址送往程序计数器,送往程序计数器,以便从该入口地址开始执行程序。由此以便从该入口地址开始执行程序。由此可见,可见,pcpc实际上是一个地址指示器,改变实际上是一个

15、地址指示器,改变pcpc中的内容就可中的内容就可以改变指令执行的次序,即改变程序执行的路线。当以改变指令执行的次序,即改变程序执行的路线。当系统系统复位后,复位后,pc=0000hpc=0000h,cpucpu便从这一固定的入口地址开始执便从这一固定的入口地址开始执行程序。行程序。n堆栈指针堆栈指针spsp 堆栈是为暂存数据或返回地址而在堆栈是为暂存数据或返回地址而在ramram区专门开辟的一区专门开辟的一个数据存放区,并按照个数据存放区,并按照“后进先出后进先出”的原则进行操作。的原则进行操作。 堆栈指针堆栈指针spsp(stack pointerstack pointer)是一个)是一个8

16、 8位寄存器,用位寄存器,用它存放栈顶的地址。它存放栈顶的地址。进栈时,进栈时,spsp自动加自动加1 1,将数据压入,将数据压入spsp所所指定的地址单元;出栈时,将指定的地址单元;出栈时,将spsp所指示的地址单元中的数所指示的地址单元中的数据弹出,然后据弹出,然后spsp自动减自动减1 1,因此,因此,spsp总是指向栈顶。总是指向栈顶。 系统复位后,系统复位后,spsp初始化为初始化为07h07h,所以第一个压入堆栈的,所以第一个压入堆栈的数据存放到数据存放到08h08h单元,即堆栈区为从单元,即堆栈区为从07h07h单元开始的一部分单元开始的一部分连续存储单元。连续存储单元。 sps

17、p的内容是可编程的,的内容是可编程的,因而可将堆栈区定位到内因而可将堆栈区定位到内部数据存储器的任意位置。部数据存储器的任意位置。堆栈的大小可用堆栈的大小可用“深度深度”表示,用户在设定堆栈区表示,用户在设定堆栈区时应该考虑到堆栈的深度,时应该考虑到堆栈的深度,以便能满足子程序嵌套时以便能满足子程序嵌套时的需要。的需要。n数据指针数据指针dptrdptr 数据指针数据指针dptrdptr(data pointerdata pointer)是一个)是一个1616位的地址寄位的地址寄存器,专门用来存放存器,专门用来存放1616位数据存储器的地址,以便对外部位数据存储器的地址,以便对外部数据存储器数

18、据存储器ramram读写数据,作间接寄存器使用。它可指向读写数据,作间接寄存器使用。它可指向64k64k字节范围内的任一存储单元,也可以分成高字节字节范围内的任一存储单元,也可以分成高字节dphdph和和低字节低字节dpldpl两个独立的两个独立的8 8位寄存器,这为修改位寄存器,这为修改dptrdptr的内容提的内容提供了方便。供了方便。n指令寄存器、指令译码器和指令寄存器、指令译码器和cpucpu定时控制定时控制 cpu cpu从程序存储器内取出的指令首先要送到指令寄存从程序存储器内取出的指令首先要送到指令寄存器,然后送入指令译码器,由指令译码器对指令进行译码,器,然后送入指令译码器,由指

19、令译码器对指令进行译码,即把指令转变成执行该指令所需要的信号,使计算机正确即把指令转变成执行该指令所需要的信号,使计算机正确地执行程序所要求的各种操作。地执行程序所要求的各种操作。三、三、 mcs-51mcs-51 单片机的引脚功能单片机的引脚功能 40只引脚双列直插封装(dip)44只引脚方形封装方式为(4只无用) 40 40只引脚按其功能来分,可分为只引脚按其功能来分,可分为3 3类:类: (1 1)电源及时钟引脚)电源及时钟引脚: : vccvcc、vssvss;xtal1xtal1、xtal2xtal2。 (2 2)控制引脚:)控制引脚: /psen/psen、/ea/ea、aleal

20、e、reset reset (即(即rstrst)。)。 (3 3)i/oi/o口引脚:口引脚:p0p0、p1p1、p2p2、p3p3,为,为4 4个个8 8位位i/oi/o口的口的外部引脚。外部引脚。电源引脚电源引脚 (1 1)vccvcc:+5v+5v电源;电源; (2 2)vssvss:接地。:接地。时钟引脚时钟引脚 (1 1)xtal1xtal1(1919脚):如果采用外接晶体振荡器时,脚):如果采用外接晶体振荡器时,此引脚应接地。此引脚应接地。 (2 2) xtal2 xtal2 (1818脚):接外部晶体的另一端。脚):接外部晶体的另一端。并行并行i/oi/o:共共4 4个口,个口

21、,3232根根i/oi/o线。线。 p0p0口口:8 8位双向位双向i/oi/o口。口。当使用片外存储器(当使用片外存储器(romrom及及ramram)时,作低八位地址和数据总)时,作低八位地址和数据总线分时复用。能驱动线分时复用。能驱动8 8个个lsttllsttl负载。负载。 p1p1口口:8 8位、准双向位、准双向i/oi/o口。口。 p2 p2口口:8 8位、准双向位、准双向i/oi/o口。当使用片外存储器(口。当使用片外存储器(romrom及及ramram)时,输出高)时,输出高8 8位地址。位地址。p2p2口可以驱动口可以驱动4 4个个lsttllsttl负载。负载。 p3p3口

22、口:8 8位、准双向位、准双向i/oi/o口,具有内部上拉电路。口,具有内部上拉电路。p3p3提供提供各种替代功能。在提供这些功能时,其输出锁存器应由程序各种替代功能。在提供这些功能时,其输出锁存器应由程序置置1 1。p3p3口可以驱动口可以驱动4 4个个lsttllsttl负载。负载。串行口:串行口:np3.0p3.0rxdrxd串行输入口串行输入口np3.1p3.1txdtxd串行输出口串行输出口中断:中断:np3.2p3.2外部中断外部中断0 0输入输入np3.3p3.3外部中断外部中断1 1输入输入定时器定时器/ /计数器:计数器:np3.4p3.4定时器定时器/ /计数器计数器t0t

23、0的外部输入的外部输入np3.5p3.5定时器定时器/ /计数器计数器t1t1的外部输入的外部输入数据存储器选通:数据存储器选通:np3.6p3.6wrwr低电平有效,输出,片外存储器写选通。低电平有效,输出,片外存储器写选通。np3.7p3.7rdrd低电平有效,输出,片外存储器读选通。低电平有效,输出,片外存储器读选通。控制线控制线nrst/vrst/vpdpd复位输入信号,高电平有效。在振荡器工作时,在复位输入信号,高电平有效。在振荡器工作时,在rstrst上作用两个机器周期以上的高电平,将器件复位。上作用两个机器周期以上的高电平,将器件复位。 其第二功能为备用电源输入端。其第二功能为备

24、用电源输入端。nea/ea/v vpppp片外程序存储器访问允许信号,低电平有效。片外程序存储器访问允许信号,低电平有效。ea=1ea=1,选择选择片内片内程序存储器(程序存储器(80518051为为4kb4kb,80c5280c52为为8kb8kb););ea=0ea=0,则,则程序存储器全部在程序存储器全部在片外片外而不管片内是否有程序存储器。而不管片内是否有程序存储器。 其第二功能其第二功能v vpppp为编程电压输入端,使用为编程电压输入端,使用87518751编程时,施编程时,施加加21v21v的编程电压。的编程电压。nale/progale/prog地址锁存允许信号,输出。地址锁存

25、允许信号,输出。 在访问片外存储器或在访问片外存储器或i/oi/o时,用于锁存低八位地址,以时,用于锁存低八位地址,以实现低八位地址与数据的隔离。由于实现低八位地址与数据的隔离。由于aleale以以1/61/6的振荡频率的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。在冲。在epromeprom编程期间,作输入。输入编程脉冲(编程期间,作输入。输入编程脉冲(progprog) ale ale可以驱动可以驱动8 8个个lsttllsttl负载。负载。npsenpsen片外程序存储器读选通信号,低电平有效。片外程序存储器读选通信号,

26、低电平有效。 在从片外程序存储器取指期间,在每个机器周期中,在从片外程序存储器取指期间,在每个机器周期中,当有效时,程序存储器的内容被送上当有效时,程序存储器的内容被送上p0p0口(数据总线)。口(数据总线)。四、四、mcs-51mcs-51的外部总线结构的外部总线结构123456abcd654321dcbatitlenumberrevisionsizebdate:1-jun-2005 sheet of file:c:program filesdesign explorer 99 seexamplesdlt1.ddbdrawn by:d034d133d232d331d430d529d628d7

27、27a04a13a22a31a440a539a638a737b018b119b220b321b422b523b624b725c014c115c216c317c413c512c611c710rd5wr36a09a18rst35cs68255in 127d721d620in 228d519d418in 31d38d215in 42d114d017in 53eoc7in 64c23in 75ale22sta6a25b24in 026oe9clk100809d032d145d276d389d41312d51415d61716d7181911373d032d145d276d389d41312d51415

28、d61716d7181911373a010a19a28a37a46a55a64a73a825a924a1021a1123a122ce20we27oe22d011d112d213d315d416d517d618d7196264a010a19a28a37a46a55a64a73a825a924a1021a1123a122ce20we27oe22d011d112d213d315d416d517d618d7196264a010a19a28a37a46a55a64a73a825a924a1021a1123a122ce20oe22d011d112d213d315d416d517d618d719276413

29r12wr218cs1d07d25d16d34d614d416d515d713xf171211908321237402a12374ls08a76575452765754521237545212375452h1g6f7e5d4c2b10a9com3 8dg13 8dg23 8dg33 8dg4vcc40x119x218reset9int012int113t014t115p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78p0.039p0.138p0.237p0.336p0.435p0.534p0.633p0.732p2.021p2.122p2.

30、223p2.324p2.425p2.526p2.627p2.728rd17wr16psen29ale30txd11rxd10gnd2080311143214888vvcc8m27p27p2002k10ufvcc发送接受-12v+12vd032d145d276d389d41312d51415d61716d7181911373127406123456983456984567402ba1b2c3e14e25e36y015y114y213y312y411y510y69y77741388910c7402111213d123avcc2.2 mcs-512.2 mcs-51的寻址空间与存储器结构的寻址空间与

31、存储器结构 80518051在在物理结构物理结构上有四个存储空间:上有四个存储空间:片内程序存储器、片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。片外程序存储器、片内数据存储器和片外数据存储器。 在在逻辑上逻辑上,80518051有三个存储空间:片内外统一编址的有三个存储空间:片内外统一编址的64k64k字节的程序存储器字节的程序存储器地址空间(用地址空间(用1616位地址)、位地址)、片内片内128128字节的数据存储器字节的数据存储器地址空间(用地址空间(用8 8位地址)、位地址)、片外片外64k64k字节字节的数据存储器的数据存储器地址空间。在访问这三个不同的逻辑空间时

32、,地址空间。在访问这三个不同的逻辑空间时,应采用不同的指令。应采用不同的指令。2.2 mcs-512.2 mcs-51的寻址空间与存储器结构的寻址空间与存储器结构一、程序存储器一、程序存储器 ea ea引脚接高电平时,程序从片内程序存储器引脚接高电平时,程序从片内程序存储器0000h0000h开开始执行,即访问片内存储器;当始执行,即访问片内存储器;当pcpc值超出片内值超出片内romrom容量时,容量时,会自动转向片外程序存储器空间执行。会自动转向片外程序存储器空间执行。eaea引脚接低电平时,引脚接低电平时,迫使系统全部执行片外程序存储器迫使系统全部执行片外程序存储器0000h0000h开

33、始存放的程序。开始存放的程序。对对80318031,由于片内无,由于片内无rom/epromrom/eprom,必须使,必须使ea=0ea=0,程序存储,程序存储器只能片外扩展,即器只能片外扩展,即0000h-ffffh0000h-ffffh都是指向片外都是指向片外epromeprom的。的。 在程序存储器中,有六个地址单元被保留用于某些特定在程序存储器中,有六个地址单元被保留用于某些特定的地址,如表所示。的地址,如表所示。表表 5 5种中断源的中断入口地址种中断源的中断入口地址 外部中断外部中断0 0 0003h0003h 定时器定时器0 (t0) 0 (t0) 000bh 000bh外部中

34、断外部中断1 1 0013h 0013h 定时器定时器1 (t1) 1 (t1) 001bh 001bh 串行口串行口 0023h0023h 单片机复位后,程序计数器单片机复位后,程序计数器pcpc的内容为的内容为0000h0000h,即系,即系统从统从0000h0000h单元开始执行程序。一般在单元开始执行程序。一般在0000h-0002h0000h-0002h单元存单元存放一条绝对转移指令,而用户设计的主程序应从跳转后的放一条绝对转移指令,而用户设计的主程序应从跳转后的地址开始存放,以便地址开始存放,以便cpucpu复位后,复位后,pcpc从从0000h0000h起始地址跳转起始地址跳转到

35、用户程序去执行。到用户程序去执行。5 5个中断源的中断入口地址间隔都只个中断源的中断入口地址间隔都只有有8 8个单元,存放中断服务程序往往是不够用的。所以通个单元,存放中断服务程序往往是不够用的。所以通常在这些入口存放一条绝对转移指令,使程序转到相应的常在这些入口存放一条绝对转移指令,使程序转到相应的中断服务程序的起始地址。中断服务程序的起始地址。 二、数据存储器二、数据存储器 数据存储器用于存放运算的中间结果、数据暂存和缓数据存储器用于存放运算的中间结果、数据暂存和缓冲以及标志位等。所以数据存储器由读写存储器冲以及标志位等。所以数据存储器由读写存储器ramram构成。构成。80528052片

36、内片内ramram有有256256字节,片外最大可扩展字节,片外最大可扩展64k64k字节字节ramram。片。片内和片外内和片外ramram是独立编址的,用不同的指令来访问不同的是独立编址的,用不同的指令来访问不同的数据存储器,即用数据存储器,即用movmov指令访问片内指令访问片内ramram,而用,而用movxmovx指令访指令访问问片外片外ramram。片内数据存储器片内数据存储器 片内数据存储器的配置如图所示。片内数据存储器为片内数据存储器的配置如图所示。片内数据存储器为8 8位地址,(位地址,(80528052)最大可寻址)最大可寻址256256个单元(个单元(00h-ffh00h

37、-ffh),),这是最灵活的地址空间。它由工作寄存器区、位寻址区和这是最灵活的地址空间。它由工作寄存器区、位寻址区和数据缓冲区组成,不同的地址区域内,功能不完全相同。数据缓冲区组成,不同的地址区域内,功能不完全相同。片内数据存储器片内数据存储器通用通用ram区区80单元单元可位寻址可位寻址区区16单元单元工作寄存工作寄存区区1 1、工作寄存器、工作寄存器0 0 0组(组(00h07h)0 1 1组(组(08h0fh)1 0 2组(组(10h17h)1 1 3组(组(18h1fh)1 1、工作寄存器、工作寄存器 在低在低128128字节字节ramram区中,地址区中,地址00h-1fh00h-1

38、fh为为通用工作寄存器通用工作寄存器区,区,共分为四个组,每组有共分为四个组,每组有8 8个工作寄存器个工作寄存器r0-r7r0-r7,共占用共占用3232个单元。个单元。工作寄存器和工作寄存器和ramram地址的对应关系如表所示。每组寄存器均可地址的对应关系如表所示。每组寄存器均可选作选作cpucpu当前使用的工作寄存器组。用户可以通过指令对当前使用的工作寄存器组。用户可以通过指令对pswpsw中中rsirsi和和rsorso的设置来决定的设置来决定cpucpu当前所使用的寄存器组。寄存器组当前所使用的寄存器组。寄存器组别确定以后,究竟使用组中的哪一个寄存器就由别确定以后,究竟使用组中的哪一

39、个寄存器就由8 8位地址号指位地址号指示了。示了。cpucpu复位以后,由于复位以后,由于pswpsw中各位均为中各位均为0 0,所以选定第,所以选定第0 0组工组工作寄存器。作寄存器。若程序中并不需要用四个工作寄存器组,那么剩下若程序中并不需要用四个工作寄存器组,那么剩下的工作寄存器组所对应的地位单元可以作为一般的数据缓冲区的工作寄存器组所对应的地位单元可以作为一般的数据缓冲区使用。使用。2 2、位寻址区、位寻址区 20h-2fh20h-2fh为位寻址区为位寻址区。每个单元有。每个单元有8 8位,位,1616个单元共个单元共128128位,每一位分配有一个位,每一位分配有一个8 8位地址,称

40、为位地址,其范围位地址,称为位地址,其范围是是00h-7fh00h-7fh。位寻址区的每一位都可以当作一个软件触发。位寻址区的每一位都可以当作一个软件触发器,由程序直接进行位处理。程序设计时,通常把各种程器,由程序直接进行位处理。程序设计时,通常把各种程序状态标志、位控制变量设在位寻址区内。同样,序状态标志、位控制变量设在位寻址区内。同样,位寻址位寻址区的区的ramram单元也可以作为一般的数据缓冲器使用单元也可以作为一般的数据缓冲器使用。 30h-7fh30h-7fh为数据缓冲区为数据缓冲区,用来存放数据。此外,用户,用来存放数据。此外,用户堆栈一般设在这个区间。堆栈一般设在这个区间。3 3

41、、特殊功能寄存器、特殊功能寄存器sfrsfr 在高在高128128字节字节ramram区,区,80h-ffh80h-ffh地址为特殊功能寄存器地址为特殊功能寄存器sfrsfr(special functional registerspecial functional register)区,)区,sfrsfr是用于对是用于对片内功能模块进行管理、控制、监视的控制寄存器和状态片内功能模块进行管理、控制、监视的控制寄存器和状态寄存器,是一个具有特殊功能的寄存器,是一个具有特殊功能的ramram区。区。80518051有有2121个特殊个特殊功能寄存器功能寄存器,如,如i/oi/o口锁存器,定时器、串

42、行口缓冲器以口锁存器,定时器、串行口缓冲器以及各种控制寄存器和状态寄存器都以特殊功能寄存器的形及各种控制寄存器和状态寄存器都以特殊功能寄存器的形式出现,离散地分布在式出现,离散地分布在80h-ffh80h-ffh范围内。特殊功能寄存器范围内。特殊功能寄存器的名称如下:的名称如下:3 3、特殊功能寄存器、特殊功能寄存器sfrsfrna a(或(或accacc):累加器):累加器a anb b:b b寄存器寄存器npswpsw:程序状态字:程序状态字nspsp:堆栈指针:堆栈指针ndptrdptr:数据指针(由:数据指针(由dphdph和和dpldpl组成)组成)npo-p3po-p3:p0p0口

43、锁存器一口锁存器一p3p3口口锁存器锁存器nipip:中断优先级控制寄存器:中断优先级控制寄存器nieie:中断允许控制寄存器:中断允许控制寄存器ntmodtmod:定时器:定时器/ /计数器方式控制寄存器计数器方式控制寄存器ntcontcon:定时器:定时器/ /计数器控制寄存器计数器控制寄存器nth0th0:定时器:定时器/ /计数器计数器0 0(高字节)(高字节)ntl0tl0:定时器:定时器/ /计数器计数器0 0(低字节)(低字节)nthithi:定时器:定时器/ /计数器计数器1 1(高字节)(高字节)ntlitli:定时器:定时器/ /计数器计数器1 1(低字节)(低字节)nsc

44、onscon:串行口控制寄存器:串行口控制寄存器nsbufsbuf:串行口数据缓冲器:串行口数据缓冲器npconpcon:电源控制寄存器:电源控制寄存器片外数据存储区片外数据存储区n片外数据存储器是在外部存放数据的区域,这一区域只能片外数据存储器是在外部存放数据的区域,这一区域只能用寄存器间接寻址的方法访问,所用的寄存器为用寄存器间接寻址的方法访问,所用的寄存器为dptrdptr、r1r1或或r0r0。n当用当用r0r0、r1r1寻址时,由于寻址时,由于r0r0、r1r1为为8 8位寄存器,因此最大位寄存器,因此最大寻址范围为寻址范围为256b256b;当用;当用dptrdptr寻址时,由于寻

45、址时,由于dptrdptr为为1616位寄存位寄存器,因此最大寻址范围为器,因此最大寻址范围为64kb64kb。 2.3 mcs-51 2.3 mcs-51的并行的并行i/oi/o口口 8051 8051单片机共有四个单片机共有四个8 8位的并行双向口,计有位的并行双向口,计有3232根输根输入入/ /输出(输出(i/oi/o)口线。各口的每一位均由锁存器、输出驱)口线。各口的每一位均由锁存器、输出驱动器和输入缓冲器组成。可利用任一端口输入输出数据,动器和输入缓冲器组成。可利用任一端口输入输出数据,每条口线也可单独使用,或在任一位上输入输出开关量,每条口线也可单独使用,或在任一位上输入输出开关

46、量,或对位进行逻辑操作。除或对位进行逻辑操作。除p1p1口仅做口仅做i/oi/o口外,其余各端口口外,其余各端口均具有双功能,可由用户选择使用。均具有双功能,可由用户选择使用。 一、一、 p0p0端口端口 字节地址为字节地址为80h,80h, 位地址位地址80h80h87h87h。 p0p0口某一位的电路包括:口某一位的电路包括:(1) (1) 一个数据输出锁存器,用于数据位的锁存。一个数据输出锁存器,用于数据位的锁存。( (2) 2) 两个三态的数据输入缓冲器,分别用于锁存器数据和引脚数据的输入缓冲。两个三态的数据输入缓冲器,分别用于锁存器数据和引脚数据的输入缓冲。(3) (3) 一个多路转

47、接开关一个多路转接开关muxmux,实现锁存器输出和地址,实现锁存器输出和地址/ /数据线之间的接通转接。数据线之间的接通转接。(4) (4) 数据输出的驱动和控制电路,由两只场效应管(数据输出的驱动和控制电路,由两只场效应管(fetfet)组成,上面的那只场效)组成,上面的那只场效应管构成上拉电路。应管构成上拉电路。 p0 p0口传送地址或数据口传送地址或数据时,时,cpucpu发出发出控制信号控制信号1 1,打开上面的与门,使,打开上面的与门,使多路转接开关多路转接开关muxmux打向上边,使内部地址打向上边,使内部地址/ /数据线与下面的场效应管处于数据线与下面的场效应管处于反相接通状态

48、。这时的输出驱动电路由于上下两个反相接通状态。这时的输出驱动电路由于上下两个fetfet处于反相,形成处于反相,形成推拉式电路结构,大大的提高了负载能力。而当推拉式电路结构,大大的提高了负载能力。而当输入数据输入数据时,时,数据信号数据信号则直接从引脚通过输入缓冲器进入内部总线。则直接从引脚通过输入缓冲器进入内部总线。 p0p0口作为通用的口作为通用的i/oi/o口使用口使用。这时,。这时,cpucpu发来的发来的“控制控制”信号为低电平信号为低电平0 0,封锁,封锁了与门,并将输出驱动电路的上拉场效应管了与门,并将输出驱动电路的上拉场效应管t1t1截止截止,而多路转接开关,而多路转接开关mu

49、xmux打向下边,打向下边,与与d d锁存器的锁存器的/q/q端接通。端接通。 当当p0p0口作为口作为输出输出口使用时,来自口使用时,来自cpucpu的的“写入写入”脉冲加在脉冲加在d d锁存器的锁存器的cpcp端,内部端,内部总线上的数据写入总线上的数据写入d d锁存器,并向端口引脚锁存器,并向端口引脚p0.xp0.x输出。但要注意,由于输出电路是输出。但要注意,由于输出电路是漏极开路(因为这时上拉场效应管截止),漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出。必须外接上拉电阻才能有高电平输出。 当当p0p0口作为口作为输入输入口使用时,应区分口使用时,应区分“读引

50、脚读引脚”和和“读锁存器读锁存器”。 “读引脚读引脚”就是直接读取引脚就是直接读取引脚 p0.x p0.x 上的状态,这时由上的状态,这时由“读引脚读引脚”信号信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线;把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线; “读引脚读引脚”前该口锁存器必须先置前该口锁存器必须先置1 1。 mov p0,#0ffhmov p0,#0ffh mov a,p0 mov a,p0 “读锁存器读锁存器”则是则是“读锁存器读锁存器”信号打开上面的缓冲器把锁存器信号打开上面的缓冲器把锁存器q q端的状态读入内部总线。端的状态读入内部总线。cpucpu执行一次读执

51、行一次读- -改改- -写操作。写操作。 anlanl,orlorl,xrlxrl;jbcjbc;cplcpl;incinc,decdec;djnzdjnz;movmov;clrclr,setbsetb;这些指令均执行一次读这些指令均执行一次读- -改改- -写操作。写操作。二、二、 p1p1端口端口 字节地址为字节地址为90h90h,位地址,位地址90h90h97h97h。p1p1口只作为通用的口只作为通用的i/oi/o口使用口使用,在电路结构上与,在电路结构上与p0p0口有两点区别:口有两点区别:(1 1) 因为因为p1p1口只传送数据,所以不再需要多路转接开关口只传送数据,所以不再需要多

52、路转接开关muxmux。(2 2)由于)由于p1p1口用来传送数据,因此输出电路中有上拉电阻,这样电路的输口用来传送数据,因此输出电路中有上拉电阻,这样电路的输出不是三态的,所以出不是三态的,所以p1p1口是口是准双向口准双向口。因此:因此:(1 1)p1p1口作为口作为输出输出口使用时,与口使用时,与p0p0口不同的是,外电路无需再接上拉电阻。口不同的是,外电路无需再接上拉电阻。(2 2)p1p1口作为口作为输入输入口使用时,口使用时,应先向其锁存器先写入应先向其锁存器先写入 “ “1”1”,使输出驱动,使输出驱动电路的电路的fetfet截止。截止。 mov p1,#0ffhmov p1,#

53、0ffh mov a,p1 mov a,p1三、三、 p2p2端口端口 字节地址为字节地址为a0ha0h,位地址,位地址a0ha0ha7ha7h。 在实际应用中,因为在实际应用中,因为p2p2口口用于为系统用于为系统提供高位地址提供高位地址,因此同,因此同p0p0口一样,在口电路中有一个多路转接开关口一样,在口电路中有一个多路转接开关muxmux。但。但muxmux的一个输入的一个输入端不再是端不再是“地址地址/ /数据数据”,而是单一的,而是单一的“地址地址”,这是因为,这是因为p2p2口只口只作为地址线使用。当作为地址线使用。当p2p2口用作为高位地址线使用时,多路转接开关口用作为高位地址

54、线使用时,多路转接开关应接向应接向“地址地址”端。正因为只作为地址线使用,口的输出用不着是端。正因为只作为地址线使用,口的输出用不着是三态的,所以,三态的,所以,p2p2口也是一个准双向口。口也是一个准双向口。 此外,此外,p2p2口口也可以作为也可以作为通用通用i/oi/o口使用,这时,多路转接开关口使用,这时,多路转接开关接向锁存器接向锁存器q q端。端。 p2p2口口作为作为输入输入口使用时,应先向其锁存器先写入口使用时,应先向其锁存器先写入 “1”1”,使输出驱动电路的,使输出驱动电路的fetfet截止。截止。四、四、 p3p3端口端口 p3p3口的字节地址为口的字节地址为b0hb0h

55、,位地址为,位地址为b0hb0hb7hb7h p3p3口口的的第二功能第二功能定义定义。表表 p3 p3口的第二功能定义口的第二功能定义 口引脚口引脚 第二功能第二功能 p3.0p3.0 rxd rxd(串行输入口)(串行输入口) p3.1p3.1 txd txd(串行输出口)(串行输出口) p3.2p3.2 /int0 /int0 (外部中断(外部中断0 0) p3.3p3.3 /int1 /int1 (外部中断(外部中断1 1) p3.4p3.4 t0 t0(定时器(定时器0 0外部计数输入)外部计数输入) p3.5p3.5 t1 t1(定时器(定时器1 1外部计数输入)外部计数输入) p

56、3.6p3.6 /wr /wr (外部数据存储器写选通)(外部数据存储器写选通) p3.7p3.7 /rd /rd (外部数据存储器读选通)(外部数据存储器读选通)(1 1)当作通用的当作通用的i/oi/o口使用时口使用时,电路中的,电路中的“第二输出功能第二输出功能”线应保持高电线应保持高电平,与非门开通,以使锁存器的平,与非门开通,以使锁存器的q q端输出通路保持畅通。当输入信号时,端输出通路保持畅通。当输入信号时,该锁存器应预先置该锁存器应预先置“1”1” 。引脚信号通过缓冲器送到内部总线。引脚信号通过缓冲器送到内部总线。(2 2)作为第二功能用作为第二功能用: :输出时,输出时,q=1

57、q=1,打开与非门,第二功能输出;,打开与非门,第二功能输出; 输入时,引脚信号通过缓冲器送到第二输入功能端。输入时,引脚信号通过缓冲器送到第二输入功能端。p0p0p3p3端口功能小结:端口功能小结:(1 1)p0p0p3p3口都是并行口都是并行i/oi/o口,都可用于数据的输入和口,都可用于数据的输入和输出,但输出,但p0p0口和口和p2p2口除了可进行数据的输入口除了可进行数据的输入/ /输出外,输出外,通常用来构建系统的数据总线和地址总线,所以在电通常用来构建系统的数据总线和地址总线,所以在电路中有一个多路转接开关路中有一个多路转接开关muxmux,以便进行两种用途的转,以便进行两种用途

58、的转换。而换。而p1p1口和口和p3p3口没有构建系统的数据总线和地址总口没有构建系统的数据总线和地址总线的功能,因此,在电路中没有多路转接开关线的功能,因此,在电路中没有多路转接开关muxmux。由。由于于p0p0口可作为地址口可作为地址/ /数据复用线使用,需传送系统的低数据复用线使用,需传送系统的低8 8位地址和位地址和8 8位数据,因此位数据,因此muxmux的一个输入端为的一个输入端为“地址地址/ /数据数据”信号。而信号。而p2p2口仅作为高位地址线使用,不涉及口仅作为高位地址线使用,不涉及数据,所以数据,所以muxmux的一个输入信号为的一个输入信号为“地址地址”。 (2 2)在

59、)在4 4个口中只有个口中只有p0p0口是一个真正的双向口,口是一个真正的双向口,p1p1p3p3这这3 3个口都是准双向口。原因是在应用系统中,个口都是准双向口。原因是在应用系统中,p0p0口作口作为系统的数据总线使用时,为保证数据的正确传送,为系统的数据总线使用时,为保证数据的正确传送,需要解决芯片内外的隔离问题,即只有在数据传送时需要解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此,要求于隔离状态。为此,要求p0p0口的输出缓冲器是一个三口的输出缓冲器是一个三态门。态门。 在在p0p0口

60、中输出三态门是由两只场效应管(口中输出三态门是由两只场效应管(fetfet)组)组成,所以说它是一个真正的双向口。而其它的三个口成,所以说它是一个真正的双向口。而其它的三个口p1p1p3p3中,上拉电阻代替中,上拉电阻代替p0p0口中的场效应管,输出缓口中的场效应管,输出缓冲器不是三态的,因此不是真正的双向口,只能称其冲器不是三态的,因此不是真正的双向口,只能称其为准双向口。为准双向口。(3 3)p3p3口的口线具有第二功能,为系统提供一些控制信口的口线具有第二功能,为系统提供一些控制信号。因此在号。因此在p3p3口电路增加了第二功能控制逻辑。这是口电路增加了第二功能控制逻辑。这是p3p3口与

温馨提示

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

评论

0/150

提交评论