单片机串口(1)_第1页
单片机串口(1)_第2页
单片机串口(1)_第3页
单片机串口(1)_第4页
单片机串口(1)_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

1、.1 .2 .3 不同型号不同型号MCS-51单片机单片机CPU处理能力和指令系统处理能力和指令系统 完全兼容,只是存储器和完全兼容,只是存储器和I/O接口的配置有所不同接口的配置有所不同。 .4 .5 MCS-51单片机的组成单片机的组成 : (1 1)8 8位位CPUCPU; (2 2)振荡频率振荡频率1.21.21212MHZMHZ; (3 3)128128个字节的片内数据存储器(片内个字节的片内数据存储器(片内RAMRAM);); (4 4)2121个专用寄存器;个专用寄存器; (5 5)4 4KBKB的片内程序存储器(的片内程序存储器(80318031无);无); (6 6)8 8位

2、并行位并行I/I/O口口P0P0,P1P1,P2P2,P3P3; (7 7)一个全双工串行一个全双工串行I/I/O口;口; (8 8)2 2个个1616位定时器位定时器/ /计数器;计数器; (9 9)5 5个中断源,分为个中断源,分为2 2个优先级;个优先级; .6 MCS-51单片机的内部详细结构如下图所示: 程序增程序增 量器量器 .7 CPU内部结构内部结构 CPU是单片机的核心,由运算器和控制器等部是单片机的核心,由运算器和控制器等部 件组成件组成 运算器运算器 运算器以运算器以8位算术位算术/逻辑运算部件逻辑运算部件ALU为核心,为核心, 加上通过内部总线而挂在其周围的暂存器加上通

3、过内部总线而挂在其周围的暂存器 TMP1、TMP2、累加器累加器ACC、寄存器寄存器B、状态状态 标志寄存器标志寄存器PSW以及布尔处理器组成整个运算以及布尔处理器组成整个运算 器的逻辑电路。器的逻辑电路。 .8 1算术逻辑运算单元算术逻辑运算单元ALU (8位位) ALU能完成能完成+、算术运算,与、算术运算,与、 或、非、异或或、非、异或 、循环移位等逻辑运算。、循环移位等逻辑运算。 ALU只能进行运算不能寄存数据,数据只能进行运算不能寄存数据,数据 应先放在应先放在ACC中或其他寄存单元中。运中或其他寄存单元中。运 算时先将数据送到算时先将数据送到TMP1、TMP2中,再中,再 经经AL

4、U运算处理,运算后结果经内部总运算处理,运算后结果经内部总 线送回线送回ACC中或其他寄存单元中。中或其他寄存单元中。 累加累加 器器A在数据传输和处理过程中起着十分重在数据传输和处理过程中起着十分重 要的作用。要的作用。 .9 2寄存器阵列寄存器阵列 (1)工作寄存器工作寄存器R0R7 (8位位) 暂存运算数据和中间结果。暂存运算数据和中间结果。 4个工作寄存器区,工作寄存器个工作寄存器区,工作寄存器0区区3区。区。 每个区均含每个区均含8个寄存器个寄存器R0R7 。 用用PSW中的两位中的两位PSW.4和和PSW.3来切换工作寄来切换工作寄 存器区,选用一个工作寄存器区进行读写操作存器区,

5、选用一个工作寄存器区进行读写操作。 .10 (2)累加器累加器ACC(8位位) 需要需要ALU处理的数据和计算结果多数要经过处理的数据和计算结果多数要经过A累累 加器加器 (3)寄存器寄存器B(8位位) 与与A累加器配合执行乘、除运算。也可用作通用累加器配合执行乘、除运算。也可用作通用 寄存器寄存器。 .11 (4)程序状态字程序状态字PSW(8位位) 存放存放ALU运算过程的标志状态运算过程的标志状态 (1)进位标志C(PSW.7) 表示运算是否有进位(借位),有“1”,否则“0”, 很多算术逻辑运算指令都会影响 (2)辅助进位标志AC(PSW.6) 做加减运算时,若低半字节有进位(借位)则

6、AC=1,主 要用于BCD运算调整时。 (3)软件标志FO(PSW.5) 由用户定义,可置位、清0、测试 .12 .13 (5 5)溢出标志)溢出标志OVOV(PSW.2PSW.2) 运算结果超出机器所能表示的范围时称溢出。溢出是指有 符号数运算时,数值超过了+127-128。 OV=CyOV=Cy7 7 CyCy6 6,补码补码 运算产生溢出运算产生溢出OV=1OV=1,否则否则OV=0OV=0 (6 6)奇偶标志)奇偶标志P P(PSW.0PSW.0) P反映执行指令后累加器A中1的个数的奇偶,若A中1的个 数为奇数,则P=1,若 A中1的个数为偶数,则P=0。 .14 例:分析执行下列指

7、令序列后,A、C、AC、OV、P的 内容是什么? MOV A,#79H ADD A,#58H 该指令功能是将79H+58HA。计算过程如下: (79H) 01111001 +(58H) 01011000 (D1H) 11010001 A=D1H最高位无进位,=0;低半字节有进位,AC=1; OV=1,发生溢出;A中1的个数为偶数,P=0。 .15 3. 布尔处理机布尔处理机 有相应的指令系统,可提供有相应的指令系统,可提供17条位操作条位操作 指令,硬件上有自己的指令,硬件上有自己的“累加器累加器”,即进,即进 位位位位C,也有自己的位寻址空间也有自己的位寻址空间. .16 控制器控制器 以定

8、时控制逻辑为中心,包括指令寄存器以定时控制逻辑为中心,包括指令寄存器IR、指指 令译码器令译码器ID、程序计数器程序计数器PC(16位位)、数据指针、数据指针 DPTR、堆栈指针堆栈指针SP以及以及RAM地址寄存器、地址寄存器、16 位地址缓冲器位地址缓冲器 CPU总是按总是按PC的指示读取程序。的指示读取程序。PC可自动加可自动加1。 因此因此CPU执行程序一般是顺序方式。当发生转移、执行程序一般是顺序方式。当发生转移、 子程序调用、中断和复位等操作,子程序调用、中断和复位等操作,PC被强制改被强制改 写,程序执行顺序也发生改变。写,程序执行顺序也发生改变。 复位时,复位时,PC=0000H

9、。 .17 MCS-51单片机的内部详细结构如下图所示: 程序增程序增 量器量器 .18 指令寄存器指令寄存器IR和指令译码器和指令译码器ID:由由PC 中的内容指定中的内容指定ROM地址,取出来的指令经地址,取出来的指令经 指令寄存器指令寄存器IR送至指令译码器送至指令译码器ID,由由ID对对 指令译码产生一定序列的控制信号,以执行指令译码产生一定序列的控制信号,以执行 指令所规定的操作指令所规定的操作 振荡器及定时电路:振荡器及定时电路:8051单片机内有振荡电单片机内有振荡电 路,只需外接石英晶体和频率微调电容。同路,只需外接石英晶体和频率微调电容。同 其他计算机一样,在基本节拍的控制下

10、协调其他计算机一样,在基本节拍的控制下协调 的工作的工作。 .19 堆栈指针堆栈指针SP(8位位) 堆栈是按堆栈是按“先进后出先进后出”原则存取数据的存储区。原则存取数据的存储区。 MCS-51堆栈设在片内堆栈设在片内RAM区。区。数据入栈数据入栈/出栈出栈 时,时,SP自动加自动加1/减减 1,其内容始终为栈顶地址,其内容始终为栈顶地址。 复位时复位时 SP=07H。 数据指针数据指针DPTR(16位位) 存放片外存储器地址,作为存放片外存储器地址,作为 。可分成两个。可分成两个8位寄存器位寄存器DPH、DPL使用使用。 .20 89C51存储器存储器 程序存储器程序存储器ROM 数据存储器

11、数据存储器ROM 片内程序存储器片内程序存储器 片外程序存储器片外程序存储器 片内数据存储器片内数据存储器 片外数据存储器片外数据存储器 .21 MCS-51单片机的内部详细结构如下图所示: 程序增程序增 量器量器 .22 8051片内有片内有ROM程序存储器和程序存储器和RAM数据存数据存 储器两类,他们有各自独立的存储地址空间。储器两类,他们有各自独立的存储地址空间。 (1)程序存储器空间程序存储器空间:采用:采用片内、片外统一编址片内、片外统一编址的的 方式,方式,共有共有64KB,地址范围为,地址范围为 0000HFFFFH (用用16位位 地址表示地址表示)。 (2)数据存储器空间数

12、据存储器空间:分为片内和片外两部分分为片内和片外两部分。 片内有片内有256字节字节数据存储器地址空间,地址范围数据存储器地址空间,地址范围 为为 00HFFH (用用8位地址表示位地址表示)。 片外有片外有64KB的数据存储器空间,其地址范围也的数据存储器空间,其地址范围也 是是 0000HFFFFH (用用16位地址表示位地址表示)。 .23 物理上物理上4个存储器地址空间:个存储器地址空间: 片内片内/片外程序存储器空间片外程序存储器空间 片内片内/片外数据存储器空间片外数据存储器空间 逻辑上逻辑上3个存储器地址空间个存储器地址空间: 64KB 程序存储器程序存储器 256B 片内数据存

13、储器片内数据存储器 64KB 片外数据存储器片外数据存储器 .24 .25 EA EA0EA EA 1EA EA EA 程序存储器空间的片内、片外选择通过单片机的引脚程序存储器空间的片内、片外选择通过单片机的引脚 来实现来实现,当接低电平时(),程序存储器空间 接高电平 由片内实现。 对于8031/80C31/8032/80C32这些片内没有ROM的单片机, 的这些单片机,如果想使用这些片内存储器的话, 引脚 也必须接高电平。 的前4KB(MCS-52是8KB)由片外实现,当 时(),程序存储器空间的前4KB(MCS-52是8KB) 引脚必须接低电平。同样,对于具有片内FLASH或者ROM .

14、26 256字节的片内数据存储器分 为两部分: ( ,SFR使用使用 直接寻址而数据存储单元使用间直接寻址而数据存储单元使用间 接寻址接寻址)。 .27 .28 工作寄存器区工作寄存器区: 字节地址:字节地址:00H1FH 字节地址:字节地址:20H2FH 位地址为:位地址为:00H7FH 字节地址:字节地址:00H7FH 一般使用一般使用30H7FH .29 R0 R1 : R7 工 作 寄 存 器 0 组 R0 R1 : R7 工 作 寄 存 器 1 组 R0 R1 : R7 工 作 寄 存 器 2 组 R0 R1 00H 01H : 07H 08H 工 09H 作 : 寄 0FH 存 1

15、0H 器 11H 区 : : 工 作 寄 存 器 3 组 .30 .31 .32 为适应控制型应用领域需要,为适应控制型应用领域需要,内部内部 RAM的的20H-2FH这这16个字节个字节,CPU对它对它 们们不仅有字节寻址能力,而且还具有位寻不仅有字节寻址能力,而且还具有位寻 址能力址能力,这,这16字节字节RAM单元的单元的 8*16=128位赋以位地址位赋以位地址00H-7FH, CPU能直接寻址这些位,执行置能直接寻址这些位,执行置“1”、 清清“0”、求反、求反、“1”转移、转移、“0”转移、转移、 传送等逻辑操作。可用作软件标志位等传送等逻辑操作。可用作软件标志位等 .33 工作寄

16、存器区工作寄存器区: 字节地址:字节地址:00H1FH 字节地址:字节地址:20H2FH 位地址为:位地址为:00H7FH 字节地址:字节地址:00H7FH 一般使用一般使用30H7FH .34 0706050403020100 0F0E0D0C0B0A0908 1716151413121110 1F1E1D1C1B1A1918 2726252423222120 2F2E2D2C2B2A2928 3736353433323030 3F3E3D3C3B3A3938 4746454443424140 4F4E4D4C4B4A4948 5756555453525150 5F5E5D5C5B5A595

17、8 6766656463626160 6F6E6D6C6B6A6968 7776757473727170 20H 21H 22H 23H 位 24H 寻 25H 址 26H 区 27H 28H 29H 2AH 2BH 2CH 2DH 2EH 2FH7F7E7D7C7B7A7879 数 30H 据 31H 缓 : 冲 区 7FH .35 。 MCS51单片机的堆栈区原则上是由用户在内部RAM区任意分 配的,只有对堆栈指针SP赋以不同的初值。但具体应用系统 中,堆栈区的设置应和整个堆栈区的设置应和整个RAM分配统一起来考虑,工作寄分配统一起来考虑,工作寄 存器区和位寻址区分配好后,再指定堆栈区存器

18、区和位寻址区分配好后,再指定堆栈区。MCS51的堆栈的堆栈 是向上生成的是向上生成的。 .36 工作寄存器区工作寄存器区: 字节地址:字节地址:00H1FH 字节地址:字节地址:20H2FH 位地址为:位地址为:00H7FH 字节地址:字节地址:00H7FH 一般使用一般使用30H7FH .37 堆栈的操作有两种:一种叫数据压入(PUSH),另 一种叫数据弹出(POP)。 89C51的堆栈指针。进栈时,SP内容 自动增值,出栈时自动减值。存取信息必须按“后进先出” 或“先进后出”的规则进行。 .38 图中,假若有图中,假若有8个个 RAM单元,每个单单元,每个单 元都在其右面编有元都在其右面编

19、有 地址,地址,栈顶由堆栈栈顶由堆栈 指针指针SP自动管理自动管理。 每次进行压入或弹每次进行压入或弹 出操作以后,堆栈出操作以后,堆栈 指针便自动调整以指针便自动调整以 保持指示堆栈顶部保持指示堆栈顶部 的位置的位置 .39 (其中有其中有4 4个只在个只在 80528052中存在),这里有中存在),这里有5 5个为个为1616位寄存器位寄存器(其中有其中有2 2 个只在个只在80528052中存在)中存在) ,其余均为,其余均为8 8位,共占位,共占2 22+5=2+5=2727 个字节(个字节(80518051中共占中共占2121个字节),离散分布在个字节),离散分布在128128个个

20、地址单元中,其余单元没定义,用户不能访问,否地址单元中,其余单元没定义,用户不能访问,否 则出现不确定值则出现不确定值, , 用直接寻址方式寻址用直接寻址方式寻址 .40 .41 占用字节地址:80HFFH 位寻址寄存器:其字节地址可 被8整除。 专用寄存器: A、B、PSW、DPTR、SP I/O接口寄存器: P0、P1、P2、P3、SBUF、 TMOD、TCON、SCON .42 ,大体可分为两类: P0-P3:四个锁存器,每个附加相应的输出 驱动和输入缓冲,构成4个并行口,提供32根 双向I/O线。 ACC、B、PSW、SP、DPTR、IE、IP、 SCON、SBUF、TCON、TMOD

21、、PCON、 T0、T1(T2、T2CON、T2MOD、RCAP2) .43 .44 .45 .46 28989C51C51有四个有四个8 8位并行位并行I/OI/O接口接口P0P0P3P3。 2它们都是双向端口,每个端口各有它们都是双向端口,每个端口各有8 8条条I/OI/O 线。线。 2P0-P3P0-P3口四个锁存器同口四个锁存器同RAMRAM统一编址,可作统一编址,可作 为为SFRSFR来寻址。来寻址。 2P0P0P3P3端口在结构与功能上基本相同,又端口在结构与功能上基本相同,又 各有特点各有特点 .47 1 1、P0P0口口 当不接外部程序当不接外部程序/ /数据存储器进行扩展时,

22、数据存储器进行扩展时,P0P0口口 作为作为8 8位位双向双向I/OI/O口口使用使用; 当进行程序当进行程序/ /数据存储器扩展时,数据存储器扩展时,P0P0口口分时分时作为作为 双向双向8 8位数据口位数据口和和输出低输出低8 8位地址位地址复用口。复用口。 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址地址/数据数据 控制控制 引脚引脚P0.X 3 4 Vcc 锁存器锁存器 V1 V2 MUX .48 2 1 DQ CK/Q 读引脚读引脚 =0 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址地址/数据数据 控制控制 引

23、脚引脚P0.X 3 4 0 0 1 0 0 截截 止止 =0 Vcc (1)(1)双向双向I/OI/O口方式口方式1 1:输出:输出 V2 锁存器锁存器 V1 MUX 控制控制=0 时时,此脚作,此脚作输出口时,输出口时,由于 由于V2截止,输出极是漏极开路,要使截止,输出极是漏极开路,要使 “1”信号正确输出,信号正确输出,必须外接上拉电阻必须外接上拉电阻。 作作输出口输出口时,时,CPU执行口的输出指令,内部数据总线上的数据在 执行口的输出指令,内部数据总线上的数据在“写锁写锁 存器存器”信号的作用下由信号的作用下由D端进入锁存器,经锁存器的反向端端进入锁存器,经锁存器的反向端/Q送至场效

24、送至场效 应管应管V1,再经,再经V1反向,在反向,在P0.X引脚出现的数据正好是内部总线的数据。引脚出现的数据正好是内部总线的数据。 截截 止止 .49 2 1 DQ CK/Q 读引脚读引脚 =1 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址地址/数据数据 控制控制 引脚引脚P0.X 3 4 控制控制=0 时时,此脚作可以作为,此脚作可以作为输入口输入口。数据可以读自口的锁存器,也可以读自。数据可以读自口的锁存器,也可以读自 口的引脚。这要根据输入操作采用的是口的引脚。这要根据输入操作采用的是“读锁存器读锁存器”指令还是指令还是“读引脚读引脚”指指 令来决定。读引脚时,令来

25、决定。读引脚时,事先必须对该端口写事先必须对该端口写“1” ,以消除上次输出为,以消除上次输出为“0”时时 的影响的影响。 0 0 1 0 0 截截 止止 截截 止止 =0 Vcc (2)(2)双向双向I/OI/O口方式口方式( (输入输入) ) 锁存器锁存器 V1 MUX V2 .50 CPU在执行在执行“读读修改修改写写”类输入指令时(如:类输入指令时(如:ANL P0,A),内),内 部产生的部产生的“读锁存器读锁存器”操作信号,使锁存器操作信号,使锁存器Q端数据进入内部数据总线,在端数据进入内部数据总线,在 与累加器与累加器A进行逻辑运算之后,结果又送回进行逻辑运算之后,结果又送回P0

26、的口锁存器并出现在引脚。的口锁存器并出现在引脚。读读 口锁存器可以避免因外部电路原因使原口引脚的状态发生变化造成的误读口锁存器可以避免因外部电路原因使原口引脚的状态发生变化造成的误读。 (3)(3)读读- -修改修改- -写操作写操作 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器=1 写锁写锁 存器存器 内部内部 总线总线 地址地址/数据数据 控制控制 引脚引脚P0.X 3 4 0 0 1 0 0 截截 止止 截截 止止 =0 Vcc 锁存器锁存器 V1 MUX V2 导导 通通 Vcc 0.7v .51 2 1 DQ CK/Q 读引脚读引脚 =0 读锁存器读锁存器 写锁写锁 存器存

27、器 内部内部 总线总线 地址地址/数据数据 控制控制=1 引脚引脚P0.X 3 4 控制控制=1时,此脚作地址时,此脚作地址/数据数据复用口复用口:(1) 输出地址输出地址/数据数据 =0 时时 1 0 1 1 =0 导导 通通 截截 止止 =0 Vcc (4)(4)地址地址/ /数据分时复用方式数据分时复用方式 锁存器锁存器 V1 MUX V2 .52 2 1 DQ CK/Q 读引脚读引脚 =0 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址地址/数据数据 控制控制=1 引脚引脚P0.X 3 4 控制控制=1时,此脚作地址时,此脚作地址/数据数据复用口复用口:(2) 输出地址

28、输出地址/数据数据 =1 时时 1 1 0 0 =1 截截 止止 导导 通通 =1 Vcc 锁存器锁存器 V1 MUX V2 .53 2 1 DQ CK/Q 读引脚读引脚 =1 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址地址/数据数据 控制控制=1 引脚引脚P0.X 3 4 控制控制=1时,此脚作地址时,此脚作地址/数据数据复用口复用口: (3)输入数据时,输入指令将使引脚与内部总线直通输入数据时,输入指令将使引脚与内部总线直通 Vcc 锁存器锁存器 V1 MUX V2 .54 P1.0P1.0P1.7: P1.7: 双向双向I/OI/O口口(内置内置了上拉电阻)了上拉电阻

29、) 输出时一切照常,输出时一切照常,仅在作仅在作输入口输入口用时要先对其用时要先对其 写写“1 1”。 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 Vcc 引脚引脚P1.X 内部上拉电阻内部上拉电阻 2、P1P1口口 锁存器锁存器 V1 .55 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 Vcc 引脚引脚P1.X 内部上拉电阻内部上拉电阻 输输出出数据数据 = 1 时时 1 1 0 截截 止止 =1 (1)(1)双向双向I/OI/O口方式口方式1 1:输出:输出1 1 锁存器锁存器 V1 .

30、56 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 Vcc 引脚引脚P1.X 内部上拉电阻内部上拉电阻 输输出出数据数据 = 0 时时 0 0 1 =0 导导 通通 (2)(2)双向双向I/OI/O口方式口方式1 1:输出:输出0 0 锁存器锁存器 V1 .57 2 1 DQ CK/Q 读引脚读引脚 =1 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 Vcc 引脚引脚P1.X 内部上拉电阻内部上拉电阻 输输入入数据时,要先对其写数据时,要先对其写“1” 1 1 0 截截 止止 (3)(3)双向双向I/OI/O口方式口方式2 2:输入

31、:输入 锁存器锁存器 V1 .58 3、P2口 P2.0P2.0P2.7: P2.7: 向向I/O I/O (内置了上拉电阻)(内置了上拉电阻) 寻址外部存储器时寻址外部存储器时输出高输出高8 8位地址位地址;不接外部存不接外部存 储器时可储器时可作为作为8 8位位双向双向I/OI/O口口使用。使用。 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址高地址高8位位 控制控制 引脚引脚 P2.X 3 内部上拉电阻内部上拉电阻 Vcc 锁存器锁存器 V1 MUX .59 2 1 DQ CK/Q 读引脚读引脚 =0 读锁存器读锁存器 写锁写锁 存器

32、存器 内部内部 总线总线 地址高地址高8位位 控制控制 引脚引脚P2.X 控制控制=0时,此脚作通用时,此脚作通用输出口输出口: 输出输出=1时时 1 1 0 截截 止止3 内部上拉电阻内部上拉电阻 11 Vcc =1 =0 (1)(1)双向双向I/OI/O口方式:输出口方式:输出1 1 锁存器锁存器 V1 MUX .60 2 1 DQ CK/Q 读引脚读引脚 =0 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址高地址高8位位 控制控制 引脚引脚P2.X 控制控制=0时,此脚作通用时,此脚作通用输出口输出口:输输 出出=0时时 0 0 1 导导 通通 3 内部上拉电阻内部上拉电

33、阻 00 Vcc =0 =0 (2)(2)双向双向I/OI/O口方式:输出口方式:输出0 0 锁存器锁存器 V1 MUX .61 2 1 DQ CK/Q 读引脚读引脚 =1 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址高地址高8位位 控制控制 引脚引脚P2.X 控制控制=0时,此脚作通用时,此脚作通用输入口输入口:读读 引脚引脚=1时时 0 1 0 3 内部上拉电阻内部上拉电阻 11 Vcc =0 =0 (3)(3)双向双向I/OI/O口方式:输入口方式:输入 截截 止止 锁存器锁存器 V1 MUX .62 2 1 DQ CK/Q 读引脚读引脚 =0 读锁存器读锁存器 写锁写

34、锁 存器存器 内部内部 总线总线 地址高地址高8位位 控制控制=1 引脚引脚P2.X 控制控制=1 时,此脚作时,此脚作高高8位地址位地址A8A15输出口:输出口: 当当输出输出 =1 时时 1 0 截截 止止 3 内部上拉电阻内部上拉电阻 1 =1 Vcc =1 (4)(4)高高8 8位地址输出方式:输出位地址输出方式:输出1 1 .63 2 1 DQ CK/Q 读引脚读引脚 =0 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 地址高地址高8位位 控制控制=1 引脚引脚P2.X 0 1 导导 通通 3 内部上拉电阻内部上拉电阻 0 =0 Vcc =0 控制控制=1 时,此脚作时,

35、此脚作高高8位地址位地址A8A15输出口:输出口: 当当输出输出 =0 时时 (5)(5)高高8 8位地址输出方式:输出位地址输出方式:输出0 0 .64 4、P3口 P3.0P3.0P3.7: P3.7: 双功能口双功能口(内置了上拉电阻)(内置了上拉电阻) 它它具有特定的第二功能具有特定的第二功能。在不使用它的第二功。在不使用它的第二功 能时它就是普通的能时它就是普通的通用准双向通用准双向I/OI/O口口。 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 第二功能输出第二功能输出 引脚引脚 P3.X 3 内部上拉电阻内部上拉电阻 Vcc 第二

36、功能输入第二功能输入 4 锁存器锁存器 V1 .65 P3P3口第二功能表口第二功能表 引引 脚脚第第 二二 功功 能能 P3.0P3.0RxD: RxD: 串行口接收数据输入端串行口接收数据输入端 P3.1P3.1TxD:TxD: 串行口发送数据输出端串行口发送数据输出端 P3.2P3.2INT0:INT0: 外部中断申请输入端外部中断申请输入端 0 0 P3.3P3.3INT1:INT1: 外部中断申请输入端外部中断申请输入端 1 1 P3.4P3.4T0:T0: 外部计数脉冲输入端外部计数脉冲输入端 0 0 P3.5P3.5T1:T1: 外部计数脉冲输入端外部计数脉冲输入端 1 1 P3

37、.6P3.6WR:WR: 写外设控制信号输出端写外设控制信号输出端 P3.7P3.7RD:RD: 读外设控制信号输出端读外设控制信号输出端 .66 2 1 DQ CK/Q 读引脚读引脚=0 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 第二功能输出第二功能输出 (WRWR,RDRD,TxDTxD) 引脚引脚 P3.X 3 内部上拉电阻内部上拉电阻 Vcc 4 11 1 反相器反相器 (1)(1)双向双向I/OI/O口方式:输出口方式:输出1 1 0 1 1 截截 止止 锁存器锁存器 V1 .67 2 1 DQ CK/Q 读引脚读引脚=0 读锁存器读锁存器 写锁写锁 存器存器 内部内

38、部 总线总线 第二功能输出第二功能输出 (WRWR,RDRD,TxDTxD) 引脚引脚 P3.X 3 内部上拉电阻内部上拉电阻 Vcc 4 00 0 反相器反相器 (2)(2)双向双向I/OI/O口方式:输出口方式:输出0 0 1 1 0 导导 通通 锁存器锁存器 V1 .68 2 1 DQ CK/Q 读引脚读引脚=1 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 第二功能输出第二功能输出 (WRWR,RDRD,TxDTxD) 引脚引脚 P3.X 3 内部上拉电阻内部上拉电阻 Vcc 4 11 1 反相器反相器 (3)(3)双向双向I/OI/O口方式:输入口方式:输入 0 1 截截

39、 止止 锁存器锁存器 V1 .69 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 第二功能输出第二功能输出 (WRWR,RDRD,TxDTxD) 引脚引脚 P3.X 3 内部上拉电阻内部上拉电阻 Vcc 4 第二功能输出时,内部自动第二功能输出时,内部自动 D=1D=1 11 1 反相器反相器 (4)(4)第二功能输出方式第二功能输出方式 锁存器锁存器 V1 .70 2 1 DQ CK/Q 读引脚读引脚 读锁存器读锁存器 写锁写锁 存器存器 内部内部 总线总线 此端自动此端自动1 1 引脚引脚 P3.X3 内部上拉电阻内部上拉电阻 Vcc 第二

40、功能输入第二功能输入(RxDRxD, T0T0,T1T1,INT0INT0,INT1INT1) 4 第二功能输入时,信号经第二功能输入时,信号经 缓冲器缓冲器4 4 直接进入内总线直接进入内总线 1 1 1 1 1 1 0 0 截截 止止 (5)(5)第二功能输入方式第二功能输入方式 锁存器锁存器 V1 .71 I/O口线功能口线功能 P0可以作为可以作为8位数据口和低位数据口和低8位地址口,也位地址口,也 可作为通用可作为通用I/O口;口;P2可以作为高可以作为高8位地址口,位地址口, 也可作为通用也可作为通用I/O口;口; P1只能作为通用只能作为通用I/O口;口; P3可作为通用可作为通

41、用I/O口,也可用于第二功能;口,也可用于第二功能; P0可以驱动可以驱动8个个LS型型TTL负载负载 P1、 P2、 P3可以驱动可以驱动4个个LS型型TTL负载负载 所有口作输入口使用时要先写所有口作输入口使用时要先写1,准双向口,准双向口 40DIP .72 MCS-51 I/O端口的简单应用端口的简单应用 这里举一个简单的MCS-51 I/O口的应用实例。如图所示,单片 机的P1.0口设置成输入口,通过一个按钮开关连接到地。P1.1 口设置成输出口,通过电阻R1连接到Q1的基极,Q1的发射极 连接到地,集电极通过发光二极管D1和电阻R2连接到+5V电源。 .73 要实现的功能是每当按钮

42、开关S1按下时,发光二极管就亮, 松开时发光二极管就灭。具体的程序如下: SETB P1.0 ; 为了P1.0做输入,先要输出高电平 LOOP1: CLR P1.1 ; 熄灭 LOOP2: JB P1.0, LOOP1 ; 查看开关是否按下,高电平说明没有 ; 按下,低电平说明已按下。 LCALL DELAY10ms ; 软件延时10ms,去开关抖动 JB P1.0, LOOP1 ; 再查看一次开关状态 SETB P1.1 ; 点亮发光二极管 SJMP LOOP2; 重复 .74 .75 8051、8052引脚是相互兼容的,均采引脚是相互兼容的,均采 用用40脚脚DIP封装,因受引脚数目限制,

43、封装,因受引脚数目限制, 不少引脚具有第二功能。不少引脚具有第二功能。 目前也有简化封装,如目前也有简化封装,如1051、2051, 采用采用20脚脚DIP封装,减少封装,减少P0、P2口口16条条 引脚。引脚。 44脚脚PLCC封装封装 .76 .77 .78 .79 电源引脚:电源引脚:Vcc和和Vss 时钟电路引脚:时钟电路引脚:XTAL1和和 XTAL2 控制信号引脚控制信号引脚RST、ALE、 PSEN和和EA I/O端口端口P0、P1、P2和和P3 .80 引脚功能简要说明:引脚功能简要说明: 电源电源 VCC、VSS VCC +5V工作电源工作电源 VSS 接地端接地端 时钟时钟

44、 XTAL1 、 、XTAL2 XTAL2振荡电路反向放大输出端振荡电路反向放大输出端若需采用外部时若需采用外部时 钟电路时,该引脚输入外部时钟脉冲。钟电路时,该引脚输入外部时钟脉冲。8989C51/8031C51/8031 正常工作时,该引脚应有脉冲信号输出正常工作时,该引脚应有脉冲信号输出 XTAL1振荡电路反向放大输入端振荡电路反向放大输入端在采用外部时钟在采用外部时钟 时,该引脚接地时,该引脚接地 XTAL1 单片机 XTAL2 时钟频率时钟频率: 范围要求在范围要求在1.2MHz12MHz之间之间 .81 (a)内部振荡方式 (b)外部振荡方式 图2.14MCS-51单片机内部时钟电

45、 图2.15MCS-51单片机时钟电路产生方式 .82 控制线控制线 ALE/PROG: 地址锁存允许信号端地址锁存允许信号端 输出脉冲频率是振荡频率的输出脉冲频率是振荡频率的1/6,可作为低,可作为低8位位 地址锁存信号也可为定时信号,还可判断芯片地址锁存信号也可为定时信号,还可判断芯片 好坏。好坏。PROG编程脉冲输入端编程脉冲输入端。 .83 PSEN: 外部程序存储器读选通信号端外部程序存储器读选通信号端 EA/VPP:程序存储器选择信号端和编程电源输入端程序存储器选择信号端和编程电源输入端 ALE和和PSEN可以驱动可以驱动8个个LS型型TTL负载负载 .84 RST/VPD:复位信

46、号端和后备电源输入端。复位信号端和后备电源输入端。 输入输入24个振荡周个振荡周 期以上的期以上的,单片机复位。,单片机复位。 VPD使用后备电源,可实使用后备电源,可实 现掉电保护现掉电保护。 .85 复位电路:复位电路: 1)上电复位)上电复位 2)外部信号复位)外部信号复位 单片机 RST K +5V 200 1K 30F .86 .87 1.时序的概念 计算机是按程序工作的,程序是由许多指令组成的, ,指令是逐条存放 在程序存储器中的, 。 因为一条指令分解成许多基本的微操作,而这些微 操作对应的脉冲信号在时间上由严格的先后次序这 种次序就是计算机的时序计算机的时序 .88 时序是非常

47、重要的概念,指明了单片机内时序是非常重要的概念,指明了单片机内 部和外部互连所必须遵守的规律。部和外部互连所必须遵守的规律。 几个概念:几个概念: 振荡周期振荡周期 状态周期状态周期 机器周期机器周期 指令周期指令周期 .89 振荡周期振荡周期:为单片机提供定时信号的振荡为单片机提供定时信号的振荡 源的周期。外接晶振时是晶振周期。源的周期。外接晶振时是晶振周期。 89C51芯片内部有一个高增益反相放大芯片内部有一个高增益反相放大 器,用于构成振荡器。反相放大器的输入器,用于构成振荡器。反相放大器的输入 端为端为XTAL1,输出端为,输出端为XTAL2,两端跨,两端跨 接石英晶体及两个电容就可以

48、构成稳定的接石英晶体及两个电容就可以构成稳定的 自激振荡器。电容器和通常取自激振荡器。电容器和通常取30 pF左右,可稳定频率并对振荡频率有微调左右,可稳定频率并对振荡频率有微调 作用。作用。 .90 XTAL1 单片机 XTAL2 一般从外部振荡器输入时钟信号。一般从外部振荡器输入时钟信号。 振荡频率振荡频率范围要求在范围要求在1.2MHz 12MHz之间,两个电容通常取之间,两个电容通常取 30pF左右,对振荡频率有微调作左右,对振荡频率有微调作 用。用。 .91 8051也可以使用外部振荡脉冲信号,连接方法也可以使用外部振荡脉冲信号,连接方法 如下表:如下表: 外部振荡脉冲源方式常用于多

49、块外部振荡脉冲源方式常用于多块8051同时工作,同时工作, 便于同步便于同步。 .92 状态周期:状态周期:是是振荡周期的两倍振荡周期的两倍,每个状态周,每个状态周 期分为两部分(期分为两部分(P1状态、状态、P2状态),在状态),在P1 状态第一相信号有效,这时通常完成算术、状态第一相信号有效,这时通常完成算术、 逻辑运算操作;在逻辑运算操作;在P2状态第二相信号有效,状态第二相信号有效, 内部寄存器与寄存器间的传输一般在内部寄存器与寄存器间的传输一般在P2状状 态发生。态发生。 振荡信号输入到片内的时钟发生器上,时钟振荡信号输入到片内的时钟发生器上,时钟 发生器是个发生器是个2分频触发器,

50、向分频触发器,向CPU提供两相提供两相 时钟信号时钟信号P1、P2。 .93 机器周期机器周期:。 例如,取指令、读存储器、写存储器等等。例如,取指令、读存储器、写存储器等等。 可以用机器周期将一条指令分成若干个阶段,可以用机器周期将一条指令分成若干个阶段, 每个机器周期完成某些规定动作每个机器周期完成某些规定动作. 一个机器周期包括一个机器周期包括12个振荡周期,分为个振荡周期,分为6个个 S状态:状态:S1S6。每个状态又分为两拍,称为每个状态又分为两拍,称为 P1和和P2。 一个机器周期中的一个机器周期中的12个振荡周期表示为个振荡周期表示为 S1P1,S1P2,S2P1,S6P1,S6

51、P2。 若采用6MHz晶体振荡器,则每个机器周期 为2s(微秒) .94 指令周期指令周期: 一条指令的执行时间一条指令的执行时间 每条指令由一个或若干个字节组成。每条指令由一个或若干个字节组成。有单字节指有单字节指 令,双字节指令,令,双字节指令,多字节指令等。字节数少则多字节指令等。字节数少则 占存储器空间少占存储器空间少。 8051单片机大多数指令是单周期的,还有双周期单片机大多数指令是单周期的,还有双周期 的指令,只有乘法指令和除法指令占用了的指令,只有乘法指令和除法指令占用了4个机器个机器 周期。以机器周期为单位:周期。以机器周期为单位:单周期单周期、双周期双周期和和四四 周期周期指令。注意没有三周期指令指令。注意没有三周期指令 .95 思考题:思考题:设应用单片机晶振频率为设应用单片机晶振频率为12MHz, 问机器周期为多少?指令周期分别为多少问机器周期为多少?指令周期分别为多少? 振荡周期:1/12*106=1/12us 状态周期:2*1/12=1/6us 机器周期:12*1/12=1us 指令周期:(14)*1=14us 4个时序单位从小到大依次是节拍、状态周期、机器周期和 指令周期,下图表示这些周期概念的相互关系下图表示这些周期概

温馨提示

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

评论

0/150

提交评论