当前位置:文档之家› 单片机P0~P3口结构与时序

单片机P0~P3口结构与时序

单片机P0~P3口结构与时序
单片机P0~P3口结构与时序

单片机IO口结构及上拉电阻

MCS-51有4组8位I/O口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分别介绍这几个口线。

一、P0口和P2口

图1和图2为P0口和P2口其中一位的电路图。由图可见,电路中包含一个数据输出锁存器(D触发器)和两个三态数据输入缓冲器,另外还有一个数据输出的驱动(T1和T2)和控制电路。这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能象P1、P3直接用作输出口。它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。

图1 单片机P0口内部一位结构图

图2 单片机P2口内部一位结构图

P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2^16=64k,所以MCS-51最大可外接64kB的程序存储器和数据存储器。

二、P1口

图3为P1口其中一位的电路图,P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至"1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0。

图3 单片机P2口内部一位结构图

作为输入口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口。

需要说明的是,作为输入口使用时,有两种情况:

1.首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读—修改—写操作,象JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。

2.读P1口线状态时,打开三态门G2,将外部状态读入CPU。

三、P3口

P3口的电路如图4所示,P3口为准双向口,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号有输入输出两种情况,我们分别加以说明。

图4 单片机P0口内部一位结构图

P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。

我们着重讨论P3口的第二功能,P3口的第二功能各管脚定义如下:

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

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

·P3.2外中断0(INT0)

·P3.3外中断1(INT1)

·P3.4定时/计数器0的外部输入口(T0)

·P3.5定时/计数器1的外部输入口(T1)

·P3.6外部数据存储器写选通(WR)

·P3.7外部数据存储器读选通(RD)

对于第二功能为输出引脚,当作I/O口使用时,第二功能信号线应保持高电平,与非门开通,以维持从锁存器到输出口数据输出通路畅通无阻。而当作第二功能口线使用时,该位的锁存器置高电平,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。对于第二功能为输入的信号引脚,在口线上的输入通路增设了一个缓冲器,输入的第二功能信号即从这个缓冲器的输出端取得。而作为I/O口线输入端时,取自三态缓冲器的输出端。这样,不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线均应置“1”。

四、IO口工作原理

1. P0作为地址数据总线时,T1和T2是一起工作的,构成推挽结构。高电平时,T1打开,T2截止;低电平时,T1截止,T2打开。这种情况下不用外接上拉电阻.而且,当T1打开,T2截止,输出高电平的时候,因为内部电源直接通过T1输出到P0口线上,因此驱动能力(电流)可以很大,这就是为什么教科书上说可以"驱动8个TTL负载"的原因。

2. P0作为一般端口时,T1就永远的截止,T2根据输出数据0导通和1截止,导通时拉地,当然是输出低电平;要输出高电平,T2就截止,P0口就没有输出了,(注意,这种情况就是所谓的高阻浮空状态),如果加上外部上拉电阻,输出就变成了高电平1。

3. 其他端口P1、P2和P3,在内部直接将P1口中的T1换成了上拉电阻,所以不用外接,但内部上拉电阻太大,电流太小,有时因为电流不够,也会再并一个上拉电阻。

4. 在某个时刻,P0口上输出的是作为总线的地址数据信号还是作为普通I/O口的电平信号,是依靠多路开关MUX来切换的。而MUX的切换,又是根据单片机指令来区分的。当指令为外部存储器/IO口读/写时,比如MOVX A,@DPTR ,MUX是切换到地址/数据总线上;而当普通MOV传送指令操作P0口时,MUX是切换到内部总线上的。

5. P0、P1、P2、P3口用于输入时,需要写1使IO下拉的MOS管截止,以免MOS管导通将输入拉底为0,当一直用于输入时不用置1(先使用该IO输出,该IO锁存器里可能是0,再用该IO输入则会使MOS管导通),将IO写1后,该IO锁存器不会变了,所以再一直用于输入不用置1。p0用于地址数据线时输入不用写1,因为MUX没和锁存器相连。

PS:

Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called “quasi- bidirectional” ports.

因为端口1、2、3有固定的内部上拉,所以有时候他们被称为"准双向"口。

Port 0, on the other hand, is considered “true” bidirectional, because when configured as an input it floats.

端口0, 从另外一方面来说,就被认为是"真正的"双向,因为当它被设置为输入的时候是浮空(高阻态)的。

五、P0口上拉电阻选择

如果是驱动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。

另外有说法是这样的:

不是每个单片机电路都要在P0口加上拉的。当用P0口驱动LED或是数码管时,可以不接任何的上拉电阻。一样可以使用,加了上拉反而会增加耗电。有些资料说要加上拉电阻是为了保证以P0口做数据输出时保证数据的正确。单片机的其他IO口非高既低。有明显的状态。但是,P0口因为没有内部上拉,所以P0口只可以输出低电平,而无法输出高电平。这样,在与外部逻辑器件链接的时候,因为没有确切的状态,就会导致逻辑错误。所以,P0口是否连接上拉电阻关键是看具体应用。

80C51单片机指令的取指、执行时序

80C51单片机指令的取指、执行时序 使用ALE 信号作为低8 位地址的锁存控制信号。ALE 接到外部锁存器时,高电平期间,51 的p0 输出地址,低电平时锁存器将地址锁存,在ALE 低电平时,(PSEN 为低)p0 口可以传输数据(指令),这样就可以地址/数据复用了。 以PSEN 信号作为扩展程序存储器的读选通信号,在读外部ROM 是PSEN 是低电平有效,以实现对ROM 的读操作。 以EA 信号作为内外程序存储器的选择控制信号,当其为低电平时,对ROM 的读操作限定在外部的程序存储器,当其为高电平时, 对ROM 的读操作是从内部存储器开始的,并可延至外部程序存储器. 由RD 和WR 信号作为扩展数据存储器和I/O 口的读选通、写选通信号。EA 信号是表示是当前指令是读内,还是外存储器的控制信号。如:当选用无片内存储器的单片机,或者不打算用片内存储器时,EA 必须接低电平,此外,片外程序存储器的起始地址应该安排在片内存储器之后。 RD 和WR 信号就相对好理解,就是当读数据时(不分内外、RAM、ROM)它就有效。WR 也是这样的。 80C51 单片机指令的取指、执行时序 现按4 类指令介绍CPU 时序。因为CPU 工作的过程就是取指令与执行指令的过程,所以CPU 必须先取出指令,然后才能执行指令。 1.双字节单周期指令 由于双字节单周期指令必须在一个周期内取机器码二次,所以必须在一个机器周期内安排二次读操作码的操作,分别发生在S1P2 与S4P2。在S1P2 读入机器码74 并送入指令寄存器IR,在S4P2 读入数据03 送入累加器A,即读2 取2。在指令的执行过程中,P0 口要分时传送地址与数据,因此当操作码的地

AT89C51单片机的基本结构和工作原理

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

8051单片机的内部结构

8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器(CPU)是整个单片机的核心 部件,是8位数据宽度的处理器,能处理 8位二进制数据或代码,CPU负责控制、 指挥和调度整个单元系统协调的工作,完 成运算和控制输入输出功能等操作。 ·数据存储器(RAM): 8051内部有128个8位用户数据存储 单元和128个专用寄存器单元,它们是统 一编址的,专用寄存器只能用于存放控制 指令数据,用户只能访问,而不能用于存 放用户数据,所以,用户能使用的的RAM 只有128个,可存放读写的数据,运算的 中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以 用作异步通信收发器,也可以当同步移位器使用。 ·中断系统: 8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可 满足不同的控制要求,并具有2级的优先级别选择。 ·时钟电路: 8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051 单片机需外置振荡电容。

单片机P0~P3口结构与时序

单片机IO口结构及上拉电阻 MCS-51有4组8位I/O口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分别介绍这几个口线。 一、P0口和P2口 图1和图2为P0口和P2口其中一位的电路图。由图可见,电路中包含一个数据输出锁存器(D触发器)和两个三态数据输入缓冲器,另外还有一个数据输出的驱动(T1和T2)和控制电路。这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能象P1、P3直接用作输出口。它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。 图1 单片机P0口内部一位结构图 图2 单片机P2口内部一位结构图 P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2^16=64k,所以MCS-51最大可外接64kB的程序存储器和数据存储器。

二、P1口 图3为P1口其中一位的电路图,P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至"1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0。 图3 单片机P2口内部一位结构图 作为输入口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口。 需要说明的是,作为输入口使用时,有两种情况: 1.首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读—修改—写操作,象JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。 2.读P1口线状态时,打开三态门G2,将外部状态读入CPU。 三、P3口 P3口的电路如图4所示,P3口为准双向口,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号有输入输出两种情况,我们分别加以说明。

单片机技术总结

第一章单片机的内部结构 一.单片机的时序 1.时序的由来 单片机执行指令的过程就是顺序地从ROM(程序存储器)中取出指令一条一条的顺序执行,然后进行一系列的微操作控制,来完成各种指定的动作。它在协调内部的各种动作时必须要有一定的顺序,换句话说就是这一系列微操作控制信号在时间上要有一个严格的先后次序,这种次序就是单片机的时序。 2.时序的周期 计算机每访问一次存储器的时间,我们把它称为一个机器周期。它是一个时间基准。就象我们日常生活中使用的秒一样。计算机中一个机器周期包括12个振荡周期。振荡周期就是振荡源的周期,也就是我们使用的晶振的时间周期。一个12M的晶振它的时间周期是T=1/f,也就是1/12微秒。那么使用12M晶振的单片机它的一个机器周期就应该等于12*1/12微秒,也就是1uS 。 在89C51单片机中有些指令只要一个机器周期,而有些指令则需要两个或三个机器周期,另外还有两条指令需要4个机器周期。如何衡量指令执行时间的长短我们就要用到一个新的概念:指令周期—即执行一条指令所需的机器周期.INTEL公司规定了每一条指令执行的机器周期。 振荡周期:指振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。 时钟周期:(称S周期)为振荡周期的两倍,时钟周期=振荡周期P1十振荡周期P2。 机器周期:一个机器周期含6个时钟周期(S周期)。 指令周期:完成一条指令占用的全部时间。805l的指令周期含1—4个机器周期,其中多数为单周期指令,还有2周期和4周期指令。 若fosc=6MHz,则805l的: 振荡周期=1/6us;时钟周期=1/3us; 机器周期=2us;指令周期=2—8us。 二.单片机的时钟电路 单片机是在一定的时序控制下工作的,时钟是时序的基础。单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路就要在唯一的时钟信号控制下按时序进行工作。 1 内部时钟电路 在MCS-51单片机的内部有一个高增益的反相放大器,其输入端为引脚XTAL1(19脚),输出端为XTAL2(18脚),我们只要在外部接上两个电容和一个晶振,就能构成一个稳定的自激振荡器,看上面的图,晶振的大小与单片机的振荡频率有关,我们到串行接口时再详细讲解。电容的大小影响着振荡器振荡的稳定性和起振的快速性,通常选择10-30P的瓷片电容或校正电容;另外在设计电路时晶振和电容应尽可能的靠近芯片,以减少PCB板的分布电容保证振荡器工作的稳定性,提高系统的抗干扰能力。 2 外部时钟电路 除了内部时钟方式外,单片机还可以采用引入外部时钟的振荡方式,当我们的系统由多片单片机组成时,为了保证各单片机之间时钟信号的同步,就应当引入唯一的公用的外部脉冲信号作为各单片机的振荡脉冲,此时应将XTAL2悬空不用,外部脉冲信号由XTAL1引入。如下图所示。

51单片机的结构及其组成

51单片机的结构及其组成 在前面的五节课当中,我们讲述的都是一些基础概念的知识,从这节开始,我们就正式的切入到我们所在学习的对象--51单片机。 学习单片机的内部结构之前,我们先了解下我们现在正在使用的计算机的几大组成部份: 计算机的五个组成部份: 运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行; 控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的工作; 存储器:用于存放程序和数据;(又分为内存储器和外存储器,内存储器就如我们电脑的硬盘,外存储器就如我们的U盘) 输入设备:用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪); 输出设备:输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。 注: 1、通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简称CPU。 2、通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。 上面讲的是我们的个人办公计算机,那么51单片机的内部又有些什么部件组成呢? 1、中央处理单元(8位) 数据处理、测试位,置位,复位位操作 2、只读存储器(4KB或8KB) 永久性存储应用程序,掩模ROM、EPROM、EEPROM 3、随机存取内存(128B、128B SFR) 在程序运行时存储工作变量和资料 4、并行输入/输出口(I / O)(32条) 作系统总线、扩展外存、I / O接口芯片 5、串行输入/输出口(2条) 串行通信、扩展I / O接口芯片 6、定时/计数器(16位、加1计数) 计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作 7、时钟电路 内振、外振。

单片机的时钟、时序及复位

四川工程职业技术学院 单片机应用技术课程电子教案 Copyright ? https://www.doczj.com/doc/064687521.html, 第讲 5 8051及P89V51RD2单片机的时钟、 时序和复位

本讲主要内容 5-1. 标准80C51的时钟电路、时间单位与时序 5-2. P89V51RD2单片机的时钟电路、时间单位与时序5-3. P89V51RD2单片机的复位与复位电路

时钟电路 ——用于产生供单片机各部分同步工作的时钟信号 方法1:用石英晶体振荡器 方法2:从外部输入时钟信号 (80C51) 80C51振荡器 C1 C2 CYS 80C51 悬空 外部时钟信号 XTAL1 XTAL2 XTAL2 XTAL1

单片机内部的时间单位 S1 S2S3S4S5S6 机器周期T CY 分频器 振荡器 晶振周期 时钟周期(S 状态) 80C51 P1 P2 ALE 信号

单片机内部的时间单位 ?振荡频率f osc = 石英晶体频率或外部输入时钟频率 振荡周期= 振荡频率的倒数 ?机器周期 机器周期是单片机应用中衡量时间长短的最主要的单位 在多数51系列单片机中: 1机器周期= 12×1/ fosc ?指令周期——执行一条指令所需要的时间 单位:机器周期 51单片机中:单周期指令、双周期指令、四周期指令

单片机内部的时间单位 课堂练习: 如果某单片机的振荡频率f =12MHz,则: osc 振荡周期=S=mS=uS; 机器周期=uS; 已知乘法指令“MUL AB”是一条4周期指令,则执行这条指令需要uS; 加法指令“ADD A,#01H”是单周期指令,那么1S内该单片机可以进 行次加法运算。

MCS-51单片机的指令时序

MCS-51单片机的指令时序 时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。 ·节拍与状态: 我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。 ·机器周期: MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。 ·指令周期: 执行一条指令所需要的时间称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期(这些内容,我们将在下面的章节中加以说明)。 ·MCS-51的指令时序: MCS-51指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式: ·单字节指令单机器周期 ·单字节指令双机器周期 ·双字节指令单机器周期

·三字节指令双机器周期 ·单字节指令四机器周期(如单字节的乘除法指令) 下图是MCS-51系列单片机的指令时序图: 上图是单周期和双周期取指及执行时序,图中的ALE脉冲是为了锁存地址的选通信号,显然, 每出现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率6分 频后得到,在一个机器周期中,ALE信号两次有效,第一次在S1P2和S2P1期间,第二次在 S4P2和S5P1期间。 接下来我们分别对几个典型的指令时序加以说明。 ·单字节单周期指令: 单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,那么读出的还是原指令,属于一次无效的读操作。 ·双字节单周期指令: 这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。

单片机串口时序time sequence

串行通信(Serial Communication) 方式0。串行口为同步移位寄存器的输入\输出方式,主要用于扩展并行输入或输出口。对51单片机,数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后,波特率固定为f osc/12. 方式1。方式1是10位数据的异步通信口,其中,1位起始位,8位数据位,1位停止位。TXD(P3.1)为数据发送引脚,RXD(P3.0)为数据接收引脚。其传输波特率是可变的,对于51单片机,波特率由定时器1的溢出率决定。方式1的使用很普遍,需要完全掌握。 方式2,3。方式2,3为11位数据的异步通信口。TXD(P3.1)为数据发送引脚,RXD (P3.0)为数据接收引脚。这两种方式下起始位1位,数据9位(含一位附加的第9位,发送时为SCON的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32。方式3的波特率由定时器T1的溢出率决定。 方式2和方式3的差别仅在于波特率的选取方式不同,在两种方式下,接受到的停止位与SBUF、RB8及RI都无关。 串行口基本结构 SBUF相当于一个8位的寄存器。 SBUF共用一个地址99H,但是在物理上是两个独立的寄存器,由指令操作决定访问哪一个寄存器。接收器具有双缓冲结构,即在从接收寄存器中读出前一个已收到的字节之前,便能接收第二个字节。若果第二个字节已接收完毕,第一个字节还没有读出,则将丢失第一个字节。

串行口方式1的时序(Time Sequence) 串行口方式1传送一帧数据(A frame of data)的格式如下: 一帧数据供10位,1位起始位(0),8位数据位,最低位在前,最高位在后,1位停止位(1),帧与帧之间有空闲,也可以无空闲。 方式1数据输出时序图如下: 方式1数据输出时序图 当数据被写入SBUF寄存器后,单片机自动开始从起始位发送数据,发送到停止位的开始时,由内部硬件将TI置1,向CPU申请中断,接下来可在中断服务程序中作相应处理,也可以选择不进入中断。 方式1数据输入时序图 用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输

5单片机的内部结构分析(三)时序与时钟

单片机的内外部结构分析(三) 一、延时程序分析 上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。 1.MOV:这是一条指令,意思是传递数据。说到传递,我们都很清楚,传东西要从一个人 的手上传到另一个人的手上,也就是说要有一个接受者,一个传递者和一样东西。从指 令MOV R7,#250中来分析,R7是一个接受者,250是被传递的数,传递者在这条指令 中被省略了(注意:并不是每一条传递指令都会省的,事实上大部份数据传递指令都会 有传递者)。它的意义也很明显:将数据250送到R7中去,因此执行完这条指令后, R7单元中的值就应当是250。在250前面有个#号,这又是什么意思呢?这个#就是用来说明250就是一个被传递的东西本身,而不是传递者。 那么MOV R6,#250是什么意思,应当不用分析了吧。 2.DJNZ:这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个 是D2,R6我们当然已知是什么了,查一下D2是什么。D2在本行的前面,我们已学过,这称之为标号。标号的用途是什么呢?就是给本行起一个名字。DJNZ 指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转移,转到什么地方去呢?可能大家已猜到了,转到第二个参数所指定的地方去(请大家用自已的话讲一下这 条语句是怎样执行的)。本条指令的最终执行结果就是,在原地转圈250次。 3.执行完了DJNZ R6,D2之后(也就是R6的值等于0之后),就会去执行下面一行,也 就是DJNZ R7,D1,请大家自行分析一下这句话执行的结果。(转去执行MOV R6,#250,同时R7中的值减1),最终DJNZ R6,D2这句话将被执行250*250=62500次,执行这么多次同一条指令干吗?就是为了延时。 4.一个问题:如果在R6中放入0,会有什么样的结果。

《单片机系统设计》实验报告(DOC)

短学期实验报告 (单片机系统设计) 题目: 专业: 指导教师: 学生姓名: 学号: 完成时间: 成绩:

基于单片机的交流电压表设计 目录 1系统的设计要求 (2) 2系统的硬件要求 (2) 2.1真有效值转换电路的分析 (2) 2.2放大电路的设计 (3) 2.3A/D转换电路的设计 (3) 2.4单片机电路的分析 (4) 2.5显示电路 (4) 3 软件设计 (5) 3.1 软件的总流程图 (5) 3.2 初始化定义与定时器初始化流程图 (5) 3.3 A/D转换流程图 (6) 3.4 数据处理流程图 (6) 3.5 数据显示流程图 (7) 4 调试 (7) 4.1 调试准备 (7) 4.2 关键点调试 (7) 4.3 测试结果 (8) 4.4 误差分析 (8) 5结束语 (8) 5.1 总结 (9) 5.2 展望 (9) 附录1 总原理图 (10) 附录2 程序 (10) 附录3 实物图 (14)

基于单片机的交流电压表设计 ****学院 ****专业 姓名 指导老师:******* 1 设计要求 (1)运用单片机实现真有效值的检测和显示。 (2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。 2 硬件设计 本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。 图2-1 原理框图 2.1 真有效值转换电路 真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。 图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。 2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。 A/D 转换 单片机 电路 显示 电路 转换 电路 交流 信号 放大 电路

单片机指令周期怎么计算

单片机指令周期怎么计算 指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。 来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。 指令周期是不确定的,因为她和该条指令所包含的机器周期有关。一个指令周期=1个(或2个或3个或4个)机器周期,像乘法或除法就含有4个机器周期,单指令就只含有1个机器周期。 对于大多说的51单片机来说,1个机器周期=12个时钟周期(或振荡周期) 也有部分单片机时钟周期和振荡周期不相等,例如,1个时钟周期=2个振荡周期。 该定义指的是执行一条指令所需要的时间,通常一个指令周期会由若干个机器周期组成。指令不同,所需的机器周期数也不同。 对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。 PIC单片机指令周期计算PIC单片机的每四个时钟周期为一个内部指令周期 例如:8MHz的晶振,则内部指令周期为1/(8/4)= 0.5 uS 实例一:35us,8MHz的晶振,8位定时器,分频比1/2 ,初值E4 实例二:156.25us ,32768Hz的晶振,8位定时器,分频比1/32 ,初值FC 计算方法一:35 = =(256-初值)*分频*4/晶振+ 14/分频=(256-初值)+14/2

80C51 单片机的硬件结构 思考题及答案复习过程

1 、如何理解51单片机存储空间在物理结构上可分为4个,而逻辑上又可划分为3个? 答: MCS-51在物理上有四个存储空间: 1、片内程序存储器 2、片外程序存储器、 3、片内数据存储器 4、片外数据存储器。从逻辑上划分有三个存储器地址空间: 1、片内外统一编址的64K字节程序存储器(0000H~0FFFFH) 2、内部256字节数据存储器地址空间(包括 128字节片内RAM和128字节的SFR) 3、外部64K字节数据存储器地址空间(0000H~0FFFFH) 2 、MCS-51片内RAM的容量?8051最大可配置的RAM/ROM容量?答: 1)MCS-51片内RAM的容量: 51子系列:128B 52子系列:256B 2)其ROM最大可扩展到64KB 注:片内数据存储区=片内RAM+SFR,51和52子系列的SFR容量都是128B 3 、8051的/PSEN、/RD、/WR的作用? 答: 1)/PSEN(外部程序存储器读选通信号): CPU访问片外ROM时,使/PSEN低电平有效,可实现片外ROM的读操作,其他情况下此引脚为高电平封锁状态。 2)/RD:外部RAM读信号 3)/WR:外部RAM写信号 4 、ALE线的作用?当8051不和RAM/ROM相连时,ALE线的输出频率是多少? 答: 1)ALE(地址锁存控制信号): 访问片外ROM,RAM时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存,实现低位地址和数据的分时传送。 不访问片外存储器时,可做为外部时钟使用。 2)当8051不和RAM/ROM相连时,ALE线的输出频率等于时钟周期的倒数

5 、MCS-51的工作寄存区包含几个通用工作寄存器组?每组的地址是什么?如何选用?开机复位后,CPU使用的是哪组工作寄存器?答: 1)MCS-51的工作寄存区包含4个通用工作寄存器组 2)第0组通用寄存器区地址:00H~07H 第1组通用寄存器区地址:08H~0FH 第2组通用寄存器区地址:10H~17H 第3组通用寄存器区地址:18H~1FH 3)选择哪个工作寄存器组是通过软件对程序状态字寄存器PSW的第 4、3位进行设置实现的 4 6、 MCS-51的内部RAM地址空间是如何安排的?共有多少个单元可以位寻址?位地址又是如何排列的? 答: 1)MCS-51的内部RAM地址的空间安排: 00H~1FH 寄存器区 20H~2FH 位寻址区 30H~7FH 数据缓冲区 80H~FFH 专用寄存器区 2)位寻址的单元个数:16B*8位/B=128位 3)位地址排列方式: 位地址为:00H~7FH 字节地址:20H~2FH 7 、MCS-51的程序计数器PC是几位寄存器?它是否为专用寄存器?PC的内容是什么信息? 答 1)MCS-51的程序计数器PC是16位寄存器

如何读单片机的时序图

https://www.doczj.com/doc/064687521.html,/itangcle CPE/EE 421 Microcomputers WEEK #10 Interpreting the Timing Diagram 如何读懂时序图 The 68000 Read Cycle A H U A H

2 4 U A H An alternative form of the timing diagram General form of the timing diagram Alan Cl ements 3 U A H Actual behavior of a D flip - f lop Timing Diagram of a Simple Flip - F lop Idealized form of the timing diagram Data hold time Data setup time Max time f or output to become v alid af ter clock

8 Address Timing 地址时序 ?We are interested in when the 68000 generates a new address for use in the current memory access 我们感兴趣的是当6800芯片能够生成一个新的地址供当前的内存访问 ?The next slide shows the relationship between the new address and the state of the 68000 ’s clock 下面展示的是新的地址跟6800芯片时钟的 关系 Alan Cl ements

80C51单片机的基本结构是由中央处理器CPU

80C51单片机的基本结构是由中央处理器CPU、存储器、输入/输出接口电路(I/O口)、定时和中断电路组成。 80C51的组成:微处理器、存储器、外部输入/输出接口电路(I/O接口)、中断系统、时钟电路、系统总线、 80C51的存储器 内部数据存储器:实际上80C51芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,供用户使用的只是前128单元,用于存放可读写的数据。 内部程序存储器:内部程序存储器是指ROM(4KB×8)。80C51共有4 KB掩膜ROM,用存放程序和原始数据。因此称之为程序存储器,简称“内部ROM”。 I/O口电路:80C51单片机共有4个8位的I/0口(P0-P3),以实现数据的并行输入输出。还有一个可编程全双工的串行口,它功能强大,可做异步通信收发器使用,也可用作同步移位器使用。 中断系统:80C51单片机的中断功能较强,以满足控制应用的需要。80C51共有5个中断源。即外部中断2个,定时/计数中断2个,串行中断1个。全部中断分为高优先级和低优先级共两级。 时钟电路:80C51单片机的内部具有时钟电路,但石英晶体振荡器和微调电容需外接。 总线:上述这些部件都是通过总线连接起来,才能构成一个完整的单片机系统。总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。 主电源引脚Uss和Ucc :Vss(20脚):接地Vcc(40脚):正常操作、对EPROM编程和验证时为+5V电源。 外接晶振引脚XTALl和XTAL2 XTALl(19脚):内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当使用外部时钟时,对于HMOS单片机,该引脚必须接地;对于CHMOS单片机,该引脚作为驱动端。XTAL2(18脚):内部振荡电路反相放大器的输出端,是外接晶体的另一端。若使用外部时钟时,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。 控制和其它电源复用引脚RST/VPD(9脚):复位信号输入引脚/备用电源输入引脚。ALE/PROG(30脚):地址锁存允许信号输出引脚/编程脉冲输入引脚。当访问外部存储器时,ALE的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE仍以不变的频率周期性的出现正脉冲信号,频率为振荡器频率的1/6。EA/VPP(31脚):当EA端保持电平时,访问内部程序存储器。当PC值超过0FFFH时,将自动转向,执行外部程序存储器的程序。当EA保持低电平时,则只访问外部数据存储器,不管是否有内部程序存储器。PSEN(29脚):外部程序存储器读选通信号。在由外部程序存储器取指令期间,每个机器周期两次PSEN有效。 并行I/O口引脚(32个,分成4个8位口) P0.0~P0.7:一般I/O口引脚或数据/低位地址总线复用引脚;P1.0~P1.7:一般I/O口引脚;P2.0~P2.7:一般I/O口引脚或高位地址总线引脚;P3.0~P3.7:一般I/O口引脚或第二功能引脚。 P3口的第二功能: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 外部RAM写选通P3.7:/RD 外部RAM读选通 3.3.2引脚的复用对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号上。对于9、30和31各引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。P3口线的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,总是先按需要优先选用它的第二功能,剩下不用的才作为口线使用。 内部数据存储器80C51单片机的内部数据存储器在物理上分为两个区:00H~7FH单元组成的低128字节单元和高128字节的特殊功能寄存器区(SFR)低128字节单元如图所示。80C51片内RAM共有128 B,分成工作寄存器区、位寻址区、通用用户区。 PSW当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器PSW的RSl、RS0位来选定。 程序状态字PSW 程序状态字是一个8位寄存器,它包含了程序状态信息。此寄存器各位的含义如表所示。其中PSW.1未用。程序状态字PSW 各位定义CY(PSW.7)进位标志。AC(PSW.6)辅助进位标志。F0(PSW.5)用户标志。RSl、RS0(PSW.4、PSW.3)寄存器区选择控制。OV(PSW.2)溢出标志。P(PSW.0)奇偶标志。 栈指针栈指针SP是一个8位特殊功能寄存器。它指示出堆栈顶部在内部RAM中的位置。系统复位后,SP初始化为07H,使得堆栈的存放事实上由08H单元开始。 数据指针数据指针DPTR是一个16位特殊功能寄存器,其高位字节寄存器用DPH表示,低位字节寄器用DPL表示,既可以作为一个16位寄存器DPTR来处理, 堆栈的作用堆栈主要是为子程序调用和中断操作而设立的。其具体功能有两个:保护断点和保护现场。 堆栈指针SP 堆栈共有两种操作:进栈和出栈。但不论是数据进栈还是数据出栈,都是对堆栈的栈顶单元进行的,堆栈使用方式堆栈的使用有两种方式。一种是自动方式,另一种是指令方式。

单片机时序分析

单片机时序分析 前面我们介绍了延时程序,但这还不完善,因为,我们只知道DJNZ R6,D2这句话会被执行62500次,但是执行这么多次需要多长时间呢?是否满足我们的要求呢?我们还不知道,所以下面要来解决这个问题。 先提一个问题:我们学校里什么是最重要的。(铃声)校长可以出差,老师可以休息,但学校一日无铃声必定大乱。整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。这个铃是按一定的时间安排来响的,我们可以称之为时序??时间的顺序。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严格的规定,一点也不能乱。计算机要完成的事更复杂,所以它的时序也更复杂。 我们已知,计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,我们规定:计算机访问一次存储器的时间,称之为一个机器周期。这是一个时间基准,好象我们人用秒作为我们的时间基准一样,为什么不干脆用秒,多好,很习惯,学下去我们就会知道用秒反而不习惯。 一个机器周期包括12个时钟周期。下面让我们算一下一个机器周期是多长时间吧。设一个单片机工作于12M晶振,它的时钟周期是1/12(微秒)。它的一个机器周期是12*(1/12)也就是1微秒。(请计算一个工作于6M晶振的单片机,它的机器周期是多少)。 MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。这也不难再解,不是吗?我让你扫地的执行要完成总得比要你完成擦黑板的指令时间要长。为了恒量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。INTEL对每一条指令都给出了它的指令周期数,这些数据,大部份不需要我们去记忆,但是有一些指令是需要记住的,如DJNZ指令是双周期指令。 下面让我们来计算刚才的延时。首先必须要知道晶振的频率,我们设所用晶振为12M,则一个机器周期就是1微秒。而DJNZ指令是双周期指令,所以执行一次要2个微秒。一共

单片机:51单片机的延时及时序分析

计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。 单片机的时序就是CPU在执行指令时所需控制信号的时间顺序,为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地控时序进行工作,在学习51单片机的时序之前,我们先来了解下时序相关的一些概念。 既然计算机是在统一的时钟脉冲控制下工作的,那么,它的时钟脉冲是怎么来的呢?要给我们的计算机CPU提供时序,就需要相关的硬件电路,即振荡器和时钟电路。 我们学习的8051单片机内部有一个高增益反相放大器,这个反相放大器的作用就是用于构成振荡器用的,但要形成时钟,外部还需要加一些附加电路。 8051单片机的时钟产生有以下两种方法: 1. 内部时钟方式:利用单片机内部的振荡器,然后在引脚XTAL1(18脚)和XTAL2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30PF左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHz-12MHz之间选择。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。 2. 外部时钟方式:此方式是利用外部振荡脉冲接入XTAL1或XTAL2。HMOS和CHMOS单片机外时钟信号接入方式不同,HMOS型单片机(例如8051)外时钟信号由XTAL2端脚注入后直接送至内部时钟电路,输入端XTAL1应接地。由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上接电阻。对于CHMOS型的单片机(例如80C51),因内部时钟发生器的信号取自反相器的输入端,故采用外部时钟源时,接线方式为外时钟信号接到XTAL1而XTAL2悬空。如下图

AT89C51单片机的基本结构

A T89C51单片机的主要工作特性: ·内含4KB 的FLASH 存储器,擦写次数1000次; ·内含28字节的RAM ; ·具有32根可编程I/O 线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V 且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1. 中央处理器 1.单片机的中央处理器(CPU )是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。 振荡器和时钟电路 数据存储器 128字节 程序存储器 14KB CPU 两个16位定时器 计数器 中断 控制 总线扩展控制器 并行可编程 I/O 口 可编程 串行口 内部总线 外部中断 扩展控制 P0 P1 P2 P3 RXD TXD B 寄存AC 暂存器2 暂存器1 片内ROM 地址寄存器 PC 增量器 程序计数器 指令指令定时PSEN ALE

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

相关主题
文本预览
相关文档 最新文档