




已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 at89c51单片机结构和原理,2.1 at89c51单片机概述 2.2 at89c51单片机引脚及其功能 2.3 at89c51存储器 2.4 at89c51单片机工作方式 2.5 at89c51时钟电路与时序 习题与思考题,2.1 at89c51单片机概述 mcs-51系列单片机采用两种半导体工艺生产。一种是hmos工艺,即高速度、高密度、短沟道mos工艺。另外一种是chmos工艺,即互补金属氧化物的hmos工艺。芯片型号中带有字母“c”的,为chmos芯片,其余均为一般的hmos芯片。 chmos是cmos和hmos的结合,除保持了hmos高速度和高密度的特点之外,还具有cmos低功耗的特点。例如8051的功耗为630 mw,而80c51的功耗只有120 mw。在便携式、手提式或野外作业仪器设备上,低功耗是非常有意义的,因此,在这些产品中必须使用chmos的单片机芯片。,在片内存储器的配置上,早期有三种形式:掩模rom、eprom和无片内存储器。现在一般采用flash rom,如at89c51和at89s51。 89s51相对于89c51增加的新功能包括: - 新增加很多功能,性能有了较大提升,价格基本不变,甚至比89c51更低! - isp在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。 - 最高工作频率为33mhz,89c51的极限工作频率是24m,就是说s51具有更高工作频率,从而具有了更快的计算速度。 - 具有双工uart串行通道。 - 内部集成看门狗计时器,不再需要像89c51那样外接看门狗计时器单元电路。,2.2 at89c51单片机的结构和应用模式,一、基本结构 at89系列单片机在结构上基本相同,只是在个别模块和功能上有些区别。图2-1是at89c51单片机的内部结构框图。它包含了作为微型计算机所必需的基本功能部件,各功能部件通过片内单一总线连成一个整体,集成在一块芯片上。,图2-1 at89c51内部结构框图,芯片内部集成有: 一个8位的cpu 128/256字节的内部ram(数据存储器) 4kb/8kb内部 flash rom(程序存储器) 一组特殊功能寄存器 (sfr) 一个可位寻址的布尔处理器 4个输出输入口(32根) 一个全双工串行口 2个16定时器/计数器 5个中断源,两个优先级 可进行64kb的寻址,二、单片机应用模式 带总线扩展引脚的产品(总线型) 一般的微处理器都设有单独的地址、数据、控制总线。但单片机由于芯片引脚数量限制,数据总线和地址总线才有复用方式。典型产品如at89c51。 1)扩展总线模式 在需要扩展并行接口芯片或内部没有rom(如8031)情况下。一般用p0和p2口来扩展芯片。,2)不扩展总线模式 即“多i/o模式”,这时p0和p2口不用来扩展,只做通用i/o口用。该模式使用于有大量i/o口需求的系统。也是我们学习的主要模式。,2. 没有总线扩展引脚的产品(非总线型) 即将用于外部扩展用的引脚省略掉,从而使得引脚数量减少,大大缩短体积。典型产品如at89s2051、at89s4051。,表2-1 不同类型和型号的单片机对照表,2.3 80c51典型产品与引脚封装 一、典型产品,二、封装和引脚 at89c51单片机的封装形式有两种:双列直插封装(dip)形式和方形封装形式,如图2-2所示。还可按总线型和非总线型划分。 总线型的at89c51有40条引脚,与其他51系列单片机引脚是兼容的。这40条引脚可分为i/o端口线、电源线、控制线、外接晶体线四部分。 非总线型的at89s2051有20条引脚,少了扩展用的p0口和p2口及一些扩展控制线。,图2-2 at89c51封装和引脚分配图 (a) 双列直插式封装;(b) 方形封装,1. p0p3口 p0口:一般i/o口引脚或数据/低位地址总线复用引脚 p1口:一般i/o口引脚 p2口:一般i/o口引脚或高位地址总线引脚 p3口:一般i/o口引脚或第二功能引脚 2.电源线 at89c51单片机的电源线有以下两种: (1) vcc:+5 v电源线。 (2) vss:接地线。,3. 外接晶体引脚 at89c51单片机的外接晶体引脚有以下两种: (1) xtal1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。 (2) xtal2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。采用外部振荡器时,该引脚悬空。,4. 控制线 at89c51单片机的控制线有以下几种: (1) rst:复位输入端,高电平有效。 (2) ale/ :地址锁存允许/编程线。 (3) :外部程序存储器的读选通线。 (4) /vpp:片外rom允许访问端/编程电源端。,2.4 单片机的cpu结构 一、中央处理器(cpu) cpu是单片机内部的核心部件,是一个8位二进制数的中央处理单元,主要由运算器、控制器和寄存器阵列构成。 1. 运算器 运算器用来完成算术运算和逻辑运算功能,它是at89c51内部处理各种信息的主要部件。运算器主要由算术逻辑单元(alu)、累加器(acc)、暂存寄存器(tmp1、tmp2)和状态寄存器(psw)组成。,(1) 算术逻辑单元(alu):at89c51中的alu由加法器和一个布尔处理器组成(图中未具体画出)。 (2) 累加器(acc):用来存放参与算术运算和逻辑运算的一个操作数或运算的结果。 (3) 暂存寄存器(tmp1、tmp2):用来存放参与算术运算和逻辑运算的另一个操作数,它对用户不开放。 (4) 状态寄存器(psw):psw是一个8位标志寄存器,用来存放alu操作结果的有关状态。,表2-2 psw各位定义表, 进位标志位cy:表示累加器a在加减运算过程中其最高位a7有无进位或借位。 辅助进位位ac:表示累加器a在加减运算时低4位(a3)有无向高4位(a4)进位或借位。 用户标志位f0:是用户定义的一个状态标志位,根据需要可以用软件来使它置位或清除。, 寄存器选择位rs1、rs0:at89c51共有四组,每组八个工作寄存器r0r7。编程时用于存放数据或地址。但每组工作寄存器在内部ram中的物理地址不同。rs1和rs0的四种状态组合就是用来确定四组工作寄存器的实际物理地址的。rs1、rs0状态与工作寄存器r0r7的物理地址关系如表2-3所示。,表2-3 工作寄存器组r0r7的物理地址, 溢出标志位ov:当执行算术指令时,由硬件自动置位或清零,表示累加器a的溢出状态。 奇偶标志位p:用于指示运算结果中1的个数的奇偶性,若累加器a中1的个数为奇数,则p=1;若1的个数为偶数,则p=0。,2. 控制器 控制器是单片机内部按一定时序协调工作的控制核心,是分析和执行指令的部件。控制器主要由程序计数器pc、指令寄存器ir、指令译码器id和定时控制逻辑电路等构成。 程序计数器pc是专门用于存放现行指令的16位地址的。cpu就是根据pc中的地址到rom中去读取程序指令码和数据,并送给指令寄存器ir进行分析。,指令寄存器ir用于存放cpu根据pc地址从rom中读出的指令操作码。 指令译码器id是用于分析指令操作的部件,指令操作码经译码后产生相应于某一特定操作的信号。 定时控制逻辑中定时部件用来产生脉冲序列和多种节拍脉冲。,3寄存器阵列 寄存器阵列是单片机内部的临时存储单元或固定用途单元,包括通用寄存器组和特殊功能寄存器(专用寄存器)组。 通用寄存器组用来存放过渡性的数据和地址,提高cpu的运行速度。 特殊功能寄存器组主要用来指示当前要执行指令的内存地址,存放特定的操作数,指示指令运行的状态等。,4.其他寄存器 1)程序计数器pc:是一个16位的计数器。它总是存放着下一个要取的指令的存储单元的16位首地址。 也就是说,cpu总是把pc的内容作为地址,按该地址从内存中取出指令码或含在指令中的操作数。 单片机上电或复位时,pc自动清0,即装入地址0000h,这就保证了单片机上电或复位后,程序从0000h地址开始执行。 注意:pc不属于特殊功能寄存器sfr。其内容是处理器自动修改的,用户不能对其赋值。,2)数据指针dptr:是一个16位的寄存器,它由2个8位的寄存器dph和dpl组成,用来存放16位的ram单元地址。利用间接寻址可以访问片外的数据存储单元。 3)堆栈指针sp:是8位的寄存器。它总是指向堆栈的顶部。单片机的堆栈通常设在片内ram的30h7fh的区域内,但单片机初始化时,(sp)=07h,使用时一般要修改。堆栈操作的原则是:先进后出。 4)工作寄存器r0r7:在片内ram单元中占32个地址,分4组,每组8个。当前工作寄存器组由psw的rs1和rs0两位指定。,二、单片机的时钟与时序 单片机的工作过程是:取一条指令、译码、执行指令,再取一条指令、译码、执行指令单片机自动地、一步一步地按顺序完成各种指令规定的功能。各指令的微操作在时间上有严格的次序,这种微操作的时间次序我们称作时序。单片机的时钟信号用来为单片机芯片内部各种微操作提供时间基准。 1) 8051的时钟产生方式 一是内部振荡方式,二是外部时钟方式。,(a)内部时钟方式 (b)外部时钟方式,图2-3 单片机时钟方式,在8051单片机内部有一个高增益反相放大器,只要在单片机的xtall和xtal2引脚外接晶体振荡器(简称晶振)就构成了自激振荡器并在单片机内部产生时钟脉冲信号。晶振cys的振荡频率范围在1.2-12 mhz间选择,典型值为6mhz 、12mhz或11.0592mhz 。 当单片机要与pc机通信时,应选择11.0592mhz的晶振,这样便于将波特率的设定为标称值。 外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多片 8051单片机同时工作,以便于各单片机的同步。一般要求外部信号高电平的持续时间大于20 ns,且为频率低于12 mhz的方波 。,2)时钟信号 单片机以晶体振荡器的振荡周期(或外部引入的时钟信号的周期)为最小的时序单位。所以,片内的各种微操作都以晶振周期为时序基准。如图2-4所示。,图2-4 单片机时钟信号,(1 )晶振周期:也叫振荡周期,晶振周期为最小的时序。 (2)时钟周期:时钟信号的周期也称为机器状态时间,它是振荡周期的2倍。即一个时钟周期包含2个振荡周期。 晶振频率经分频器后形成两相错开的时钟信号p1和p2。在每个时钟周期的前半周期,相位1(p1)信号有效,在每个时钟周期的后半周期,相位2(p2)信号有效。每个时钟周期(常称状态s)有两个节拍(相)pl和p2, cpu就是以两相时钟p1和p2为基本节拍指挥8051的各个部件协调地工作。 (3)机器周期(也称m周期):晶振频率12分频后形成机器周期。一个机器周期包含12个振荡周期或6个s状态。由于每个s状态有两个节拍p1和p2,因此,每个机器周期的12个振荡周期可以表示为sip1,sip2,s2p1,52p2,s6p2。 (4)指令周期:指令的执行时间称作指令周期。 8051单片机的指令按执行时间可以分为三类:单周期指令、双周期指令和四周期指令。四周期指令只有乘、除两条指令。,四者的关系: 若外接晶振频率为fosc=12 mhz,则四个基本周期的具体数值为: (1) 振荡周期=1/12 s。 (2) 时钟周期=1/6 s。 (3) 机器周期=1 s。 (4) 指令周期=14 s。 晶振周期、时钟周期、机器周期和指令周期均是单片机时序单位。晶振周期和机器周期是单片机内计算其他时间值(如波特率、定时器的定时时间等)的基本时序单位。,3)典型时序 (1)单周期指令 对于单周期单字节指令,在s1p2把指令码读入指令寄存器,并开始执行指令,但在s4p2读的下一指令的操作码要丢弃,且pc不加1。对于单周期双字节指令,在s1 p2把指令码读入指令寄存器,并开始执行指令。在s4p2读入指令的第二字节。无论是单字节还是双字节均在s6p2结束该指令的操作。如图2-5所示。,图2-5 单周期指令时序,(2)双周期指令 对于单字节双周期指令,在两个机器周期之内要进行4次读操作。只是后3次读操作无效。,2. 5 at89c51存储器,相关概念 1、地址:存储器由许多存储单元组成,每个单元有一个编号,称为该存储单元的地址。 每个存储单元可存放一个8位的二进制数(即一字节)。 注意:1个字节 (byte)= 8 位二进制数(bit) 程序存储器的地址通常常采用16位二进制表示如:0000h. 片内数据存储器的地址采用8位表示,如:00h;而片外数据存储器则采用 16位二进制表示,如:0000h. 2、容量:存储器所能存放的二进制位数。一般用字节数来表示。单位一般用kb、mb。 1k=210=1024 如一个具有12根地址线的存储器芯片,其容量为:212 = 4096b=4kb 存储器(或单片机)容量的计算: 有n根地址线的存储器(或单片机)芯片,容量为2nb。,3、存储器分类 ram(随机存储器):它是一种可读可写的存储器,存取速度快,但掉电后,信息会丢失。用来存放原始和中间数据及结果,又称为数据存储器。 rom(只读存储器) :掉电后信息不会丢失。用来存放程序、常用数据、表格。又称为程序存储器。 分类:掩膜式rom,eprom, eeprom、 flash rom。 at89c51单片机存储器结构采用哈佛型结构,即将程序存储器(rom)和数据存储器(ram)分开,它们有各自独立的存储空间、寻址机构和寻址方式。这是单片机区别于普通计算机的标志之一。其典型结构如图2-7所示。,图2-7 at89c51存储器结构图,1、访问片内ram单元用mov指令 2、访问片外ram单元用movx指令 3、访问rom单元用movc指令,一、程序存储器 at89c51程序存储器有片内和片外之分。片内有4 kb字节的flash程序存储器,地址范围为0000h0fffh。当不够使用时,可以扩展片外程序存储器,因程序计数器pc和程序地址指针dptr都是16位的,所以片外程序存储器扩展的最大空间是64 kb,地址范围为0000hffffh。,ea引脚的作用 ea引脚为访问内部或外部程序存储器的选择端。 当ea引脚接高电平时,cpu将首先访问内部存储器,当指令地址超过0fffh时,自动转向片外rom去取指令。 当ea引脚接低电平时(接地),cpu只能访问外部程序存储器。外部程序存储器的地址从0000h开始编址。对于8031单片机,由于其内部无程序存储器,只能采用这种接法。,3程序存储器低端的一些地址被固定地用作特定程序的入口地址。 编程时,通常在这些入口地址开始的二三个单元中,放入一条转移指令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应。仅在中断服务程序较短时,才可以将中断服务程序直接放在相应的入口地址开始的几个单元中。,二、数据存储器 at89c51数据存储器也有片内和片外之分。片内有128个字节ram,地址范围为00h7fh。片外数据存储器可扩展64 kb存储空间,地址范围为0000hffffh,但两者的地址空间是分开的,各自独立的,结构分配如图2-7所示。,1. 片内数据存储器 at89c51单片机片内数据存储器可分为两部分:00h7fh单元空间的128字节为ram区;80hffh单元空间的128字节为专用寄存器(sfr)区。两部分的地址空间是连续的。 (1) 片内ram区:共128字节,它又可划分为通用寄存器区、位寻址区、普通ram区,如图2-8所示。,图2-8 at89c51内部ram空间分配, 通用寄存器区:00h1fh这32个单元为通用寄存器区,分为四组,每组占八个 ram单元,地址由小到大分别用代号r0r7表示。通过设置程序状态字psw中的rs1、rs0状态来决定哪一组寄存器工作,如表2-2所示,默认情况下,是选择0组。 位寻址区:20h2fh这16个单元为位寻址区。它有双重寻址功能,既可以进行位寻址操作,也可以同普通ram单元一样按字节寻址操作。对应的位地址范围为:00h7fh。 区分:位地址和字节地址 (举例), 普通ram区:30h7fh这80个单元为普通ram区。用于存放用户数据,只能按字节存取。 堆栈区:堆栈是片内ram存储器中的特殊群体。 它是用来保护数据的特殊区域。 一般,我们把堆栈区设置在普通ram区。即堆栈的起始地址(栈定地址)设在片内ram中地址为30h或30h之后。故在实际应用中堆栈指针(sp)要大于等于30h。,(2) 专用寄存器区:片内80hffh这一区间,at89c51集合了一些特殊用途的寄存器,一般称之为特殊功能寄存器sfr。每个sfr占有一个ram单元,总共有21个。它们离散地分布在80hffh地址范围内,如表2-4所示。,表2-4 at89c51特殊功能寄存器sfr一览表,没有被sfr占据的地址可能在片内并不存在。对这些地址读出时,通常会得到随机的数据,而写入时将会有不确定的效应,因此软件设计时不要使用这些单元。特殊功能寄存器通常用寄存器寻址,但也可以用直接寻址方式进行字节访问。其中11个寄存器还可进行位寻址(其字节地址能被8整除)操作,其位地址的分配如表2-5所示。,表2-5 sfr中的位地址分配,2片外数据存储器 at89c51单片机可扩展片外64 kb空间的数据存储器,地址范围为0000hffffh,它与程序存储器的地址空间是重合的,但两者的寻址指令和控制线不同。 访问片外ram时用movx指令。,2.6 单片机并行口结构与复位电路,一、并行口结构及应用 8051单片机有4个8位的并行1/0端口p0,p1,p2和p3。各端口均由端口锁存器、输出驱动器和输入缓冲器组成。各端口除可以用作输入输出字节外,它们的每一条输入输出线也可以单独地用作位输入输出线。,1. p0口 1)p0口的结构 它由一个输出锁存器,一个转换开关mux,两个三态缓冲器,输出驱动电路和输出控制电路组成。p0口是一个三态双向i/o口,它有两种不同的功能,用于不同的工作环境。 注意:p0口内部无上拉电阻,做i/o口输出时需外接上拉电阻。,图2-8 p0口的位结构,2)p0口应用 (1)p0用作通用i/o口 p0口在作为一般的i/o口时,属于准双向口。 cpu在执行“mov”类输入指令时(如:mov a, p0),内部产生的操作信号是“读引脚”。必须注意,在执行输入指令前要把锁存器写入1,目的是使场效应管t2截止,从而使引脚处于悬浮状态,可以作为高阻抗输入。否则,在作为输入方式之前曾向锁存器输出过“0”,则t2导通会使引脚钳位在“0”电平,使输入高电平“1”无法读入。,(2) p0用作地址数据总线 即作数据线和低8位地址线,分时使用。 当需要在单片机芯片外部进行扩展时,读片外程序存储器采用movc指令(此时ea=0),读/写片外ram或i/o口采用movx指令。在这种情况下,单片机内硬件自动使c=1,mux开关接向反向器的输出端,这时与门的输出仅由地址数据线的状态决定。,a. 输出数据时 cpu在执行输出指令时,低8位地址信息和数据信息分时地出现在地址数据总线上。 若地址数据总线的状态为1,则场效应管t1,导通,t2截止,引脚状态为1;若地址/数据总线的状态为0,则场效应管t1截止、t2导通,引脚状态为0。可见p0. x引脚的状态正好与地址数据线的信息相同。,b.输入数据时 cpu在执行输入指令时,首先低8位地址信息出现在地址数据总线上,p0. x引脚的状态与地址数据总线的地址信息相同。然后,cpu自动地使模拟转换开关mux拨向锁存器,并向p0口写入0ffh,同时“读引脚”信号有效,数据经缓冲器读入内部数据总线。 可以认为,p0口作为地址数据总线使用时是一个真正的双向口。,2. p2口 1)p2口的结构 其输出驱动电路与p0口不同,内部设有上拉电阻 。在作i/o线用时不需要外接上拉电阻,如图2-5所示。,图2-9 p2口位结构图,2)p2口作用 (1) p2口在作为一般的i/o口时,也属于准双向口。 (2) p2主要用作扩展地址总线,用来输出地址的高8位 。 3. p1口 输出驱动电路与p2口相同,内部设有上拉电阻。 p1口只能用作通用的准双向i/o口。输出高电平时,能向外提供拉电流负载,不必再接上拉电阻。当端口用作输入时,须向对应的端口锁存器写入1。,4. p3口 内部结构与p1、p2口类似,设有上拉电阻。它有两种用途: 1)p3用作第一功能的通用i/o口,与p1、p2口使用类似。 2) p3用作第二功能使用 p3口作为第二功能使用时各引脚的定义如 表2-5所示。,表2-5 p3口各位的第二功能,p3口相应的端口线处于第二功能,应满足的条件是: (1)串行i/o口处于运行状态(rxd,txd); (2)外部中断已经打开(int0,int1); (3)定时器计数器处于外部计数状态(t0,t1); (4)执行读写外部ram的指令(rd,wr)。,注意: p0p3口都可作为普通i/o口来使用。当作为输入口使用时,必须先向该口的锁存器中写入“1”,然后再从读引脚缓冲器中读入引脚状态,这样的读入结果才正确(前面已分析过)。,二、单片机的复位电路及复位状态 1.复位电路 它有三种复位电路,如图2-10所示。,图2-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保采砂船租赁合同范本
- 汽修厂入伙协议合同模板
- 深圳商住楼购买合同范本
- 预制桥梁承包协议书模板
- 自动售药机合作协议合同
- 物业公司合同工合同范本
- 联通终止合同协议书范本
- 珠宝买卖服务合同协议书
- 黄冈还建房卖房合同范本
- 销售网络合作协议书范本
- 火龙罐技术课件
- 输水管道施工监理实施细则
- 搅拌器设计计算
- 关于个人现实表现材料德能勤绩廉【六篇】
- 【吊车租赁合同范本】吊车租赁合同
- 电梯井道脚手架施工方案
- 《游戏力养育》读书笔记PPT模板思维导图下载
- 琦君散文-专业文档
- 企业会计准则、应用指南及附录2023年8月
- 初中数学浙教版九年级上册第4章 相似三角形4.3 相似三角形 全国公开课一等奖
- DLT 5066-2010 水电站水力机械辅助设备系统设计技术规定
评论
0/150
提交评论