单片机实用技术第二章.ppt

上传人:sh****n 文档编号:12719234 上传时间:2020-05-19 格式:PPT 页数:66 大小:1.80MB
返回 下载 相关 举报
单片机实用技术第二章.ppt_第1页
第1页 / 共66页
单片机实用技术第二章.ppt_第2页
第2页 / 共66页
单片机实用技术第二章.ppt_第3页
第3页 / 共66页
点击查看更多>>
资源描述
第二章MCS-51单片机的基本结构及工作原理,学习目的和要求本章的基本任务是学习MCS-51系列单片机基本结构和基本工作原理等知识,为后续章节提供必要的概念基础。学时:8;其中:讲课6学时,录象或研究室讲课2学时教学内容:2-1MCS51单片机的基本结构2-2MCS51的存储器结构2-3专用功能寄存器的SFR2-4单片机的工作方式和最小系统教学要求:1)掌握CPU(运算器和控制器以及定时控制部件和时序、输入输出端口结构及负载能力和接口要求、MCS-5l引脚及功能。2)掌握程序存储器、数据存储器的分布和使用。3)专用功能寄存器SFR:重点掌握程序状态寄存器的使用。4)掌握单片机的工作方式与最小应用系统:单片机的工作方式(复位方式)、单片机最小应用系统设计,第一节MCS-51单片机的基本结构,教学内容:一、MCS-51单片机内部结构二、CPU三、输入输出端口结构四、端口负载能力和接口要求五、MCS-5l引脚及功能学时:4;其中:讲课3学时,录象1学时教学要求:熟练掌握:MCS51单片机结构;单片机的工作原理;CPU(运算器和控制器以及定时控制部件和CPU时序;输入/输出端口的功能、负载能力和接口要求;MCS-5l引脚及功能。了解:输入/输出端口结构,MCS-51系列典型产品型号及配置:,不同型号MCS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。,硬件配置基本配置:,1.8位CPU2.片内ROM/EPROM、RAM3.片内并行I/O接口4.片内16位定时器/计数器5.片内中断处理系统6.片内全双工串行I/O口,一、MCS-51内部结构,图218051的功能部件图,图2.2MCS-51单片机内部结构,二CPU,主要功能:产生各种控制信号,去控制存储器、输入输出端口的数据传送、数据的算术运算、逻辑运算以及位操作处理等。(一)算术逻辑运算单元ALU(8位)组成:运算器由算逻运算部件ALU、累加器Acc、暂存器、程序状态字寄存器PSW、BCD码运算调整电路等组成。实现+、算术运算,与、或、非、异或逻辑运算、循环移位、位处理。(二)控制器组成:由程序计数器PC、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等组成。功能:对来自存储器中的指令进行译码,通过定时控制电路,在规定的时刻发出各种操作所需的全部内部和外部控制信号,协调各功能元件的工作,完成指令所规定的功能。,1程序计数器PC(ProgramCounter)一个16位的专用寄存器,用来存放下一条指令的地址。它具有自动加1的功能。2指令寄存器一个8位的寄存器,用于暂存待执行的指令,等待译码。3指令译码器对指令寄存器中的指令进行译码,将指令转变为执行此指令所需要的电信号。4数据指针DPTR是一个16位的专用地址指针寄存器。它主要用来存放16位地址,作间址寄存器使用。DPTR也可以拆成两个独立8位寄存器,即DPH(高8位字节)和DPL(低8位字节),分别占据83H和82H两个地址。,5.定时控制部件与时序,功能:在规定的时刻发出各种操作所需的全部内部和外部的控制信号,协调各功能元件工作,完成指令所规定的功能。主要任务:产生一个工作时序,其工作需要时钟电路提供一个工作频率。(1)时钟电路设计(震荡器与时钟电路)MCS-51内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源即可构成时钟电路。单片机的生产工艺不同,时钟的产生方式也不同。有内部和外部两种时钟产生方式。见图2-3,内部时钟产生方式:在XTALl和XTAL2两端接晶体或陶瓷谐振器,与内部反向器构成稳定的自激振荡器。参数选取:C1、C2微调时钟频率。外接晶振时:Cl和C2选择1030pF。外接陶瓷谐振器时:C1和C2的典型值约为4010pF。设计印刷电路板时,晶体或陶瓷谐振器和电容应尽可能安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定和可靠工作。为了提高温度稳定性,应采用NPO电容。振荡频率范围一般是1.2MHz12MHz,有的可达40MHz。外部时钟产生方式:时钟脉冲完全由外部电路产生。CMOS与CHMOS型的外部时钟源的接法不同,(2)MCS-51单片机的时序,1)基本概念时钟周期T:时序中最小的时间单位。其值由外接晶体或外输入时钟来决定,其值为石英振荡器频率的倒数。例如:在单片机外接1MH的晶体,则单片机的系统时钟的频率为1M,时钟周期为1us。机器周期:完成特定功能所需要的时间,在MCS-51单片机中机器周期由12个时钟周期构成,并分为6个状态(S1-S6),每个状态又分为P1和P2两拍(两个震荡周期)。这样一个机器周期的12个震荡周期可以表示为:S1P1,S1P2,S2P1,S2P2,S3P1,S3P2S6P1,S6P2将12个震荡周期用6个状态和2拍来替代。,指令周期:这是时序图中最大的时间单位,既执行一条指令所需要的时间。在MCS-51系统中,不同的指令它所包含的机器周期数不同.它们分别是:单机器周期指令;双机器周期指令;四机器周期指令前已介绍:一个机器周期包含了12个震荡周期。如果我们使用一个12M的晶体震荡器,那么:一个机器周期为1us,两个机器周期为2us,四个机器周期为4us.由此,可见一条指令的运算速度与它所包含的机器周期数有关。机器周期数越少,执行的速度就越快。在MCS-51单片机的指令系统中,除了乘、除法指令为四个机器周期外,其余都是单周期和双周期指令。,2)MCS-51单片机的时序,时序:CPU执行指令时,在时间上的一系列操作顺序。CPU执行指令的一系列动作都是在定时控制部件控制下按照一定的时序一拍一拍的进行。指令字节数不同,操作数的寻址方式也不相同,故执行不同指令所需的时间差异也较大,工作时序也有区别。为了便于说明,通常按指令的执行过程将时序化为几种周期,即时钟周期、机器周期和指令周期。指令的字节数与指令周期之间的关系:在MCS-51单片机的指令系统中有:单字节;双字节;三字节指令。在MCS-51的111条指令中,可以分为六种基本的时序:1,单字节单周期指令;4,双字节单周期指令;2,单字节双周期指令;5,双字节双周期指令;3,单字节四周期指令;6,三字节双周期指令.,MCS-51的取指令执行时序,双字节单周期指令时序,指令特点:一条指令长度为两个字节,并存储在ROM相邻的两个单元中。要想完整的将这样的指令执行完,必须从ROM中读两次操作码。如:ADDa,#01在ALE第一次有效时,CPU从ROM的n单元中取出指令的第一个字节OP1-1,送入译码器,并使PC加一,并通过译码CPU知道这是一条双字节指令,然后在ALE第二次有效时,从ROM的n+1单元取出指令的第二个字节OP1-2送入IR,并将PC加一,再对指令进行译码,产生对应的操作。最后在S6P2时完成本条指令的运行。,单字节双周期指令的时序,指令特点:单字节,需要两个机器周期运行.如:INCDPTRDPTR为两个8位的寄存器,加一时,必须分两步完成.既第一步DPL加一,如果DPL加一有进位则还要进行第二步对DPH加一.在指令周期的第一个ALE时,将ROM中的操作码OP取出,PC+1,然后,经IR译码后得知为单字节双周期指令,所以一面执行该指令,同时封锁后面三次ALE有效时的PC,在第二个机器周期的S6P2时,完成操作.,读外部数据存储器RAM的指令时序MOVXa,DPTR,分成两个执行阶段:阶段1:根据PC所指定的程序存储器的地址,将movx指令从片外ROM中取出;阶段2:经译码后将DPTR提供的外数据存储器RAM中的数据地址取出数据,经P0口送累加器A.在第一阶段CPU产生/Psen信号用来选通外部程序存储器ROM;在第二阶段CPU输出/RD信号(低电平),用来选通并读取外部数据存储器RAM的数据.,举例说明:,设外部RAM2000H单元中有一个数x,且DPTR中已存有该数地址2000H.则CPU执行外部ROM中的指令:MOVXA,DPTR;将外RAM的x送A,1,在S2P2时,ALE的第一个下降沿将P0口输出的外程序ROM的低八位地址锁存到74LS373锁存器中;2,在S3P2的Psen为低电平时,选中外ROM,并根据单片机P0、P2口输出的16位地址选中movx指令(单字节),通过P0口送至单片机内部IR中译码.经译码后产生下列的一系列操作;3,CPU将DPTR中的高8位(20H)送P2口输出,低八位(00H)经P0口输出,在S5P1时ALE第二次下降沿时,将P0口的低八位地址锁存;4,在第二个机器周期的S1-S3中单片机输出/RD信号(低电平),选中外部RAM,并根据单片机提供的2000H这16位地址中取出数据x.5,CPU在S2-S3期间,将外部RAM2000H单元送到P0口上的数据送入累加器A中.,三、输入输出端口结构,有4个IO端口,共32根IO线,都是准双向口。每个口都包含一个锁存器,即专用寄存器P0P3,一个输出驱动器和输入缓冲器。通常把4个端口和其中的锁存器(即专用寄存器)都统称为P0P3。(一)功能P0口:可作为一般IO口用,但当应用系统采用外部总线结构时,它分时作低8位地址线和8位双向数据总线用。是“通用数据I/O端口”和“地址、数据复用总线”端口。P1口:每1位均可独立作为IO口。P2口:可作一般IO口用,当应用系统采用外部总线结构时,它仅能作为高8位地址线。P3口:双功能口。第一功能使用时同P1口,每1位均可独立作为IO口。每1位均具有第二功能,两个功能不能同时使用。,(二)各端口的结构与操作,1.结构各端口的结构见图2-5。,2.操作,1)P0口的I/O操作特点:“通用数据I/O端口”和“地址、数据复用总线”端口,硬件组成:1)一个输出锁存器(D型触发器);2)二个三态门(控制读引脚或读锁存器);3)与门和MUX等元件组成的输出控制电路;4)一对场效应晶体管FET构成的输出电路,1)通用I/O端口时,在P0口作为通用I/O端口时,控制电路中的“控制”为“0”电平,多路开关MUX接入下方的锁存器的/Q端。由于与门的一个输入端为“0”,所以它使上端的FET截止.这就是P0口在做I/O口时输出为“漏极开路”的结构原因.输出操作及注意问题:在执行以口为目标的指令时,数据送到锁存器的“D”端,经“/Q”端送场效管应输出极.若送“1”时,/Q=“0”,使下端的FET截止.这样出现输出极的两个FET全部截止,输出级为漏级开路电路.在这种情况下,若要驱动NMOS或其它拉电流负载时,引脚上应外接上拉电阻。这样在上拉电阻的作用下,使端口为高电平.同理,若总线向口送“0”时,锁存器的/Q=1,使下端的FET导通(上面的FET仍然截止),这样端口呈现“0”电平.,输入操作(读引脚,输入前写1)读引脚,读外部送到端口引脚的电平,即通常所说的输入操作(如:MOVA,P0).此时,单片机控制“读引脚”的三态门,使引脚处的外部电平经三态门送入内部总线.注意:输入时应先写“1”:在端口电路中,可以发现一个问题:端口在输入(读引脚)时,原来锁存器的状态可能要影响引脚电平的输入。例如:原来锁存器的状态为“0”态,既输出极的下端FET是饱和状态,这样如果外电路向引脚输入高电平时,电路将不能正确读入.要解决的方法就是让下端的FET截止,即事先向端口写一个“1”.请注意下面的一段程序:MOVA,#0FFH;0FFH送累加器AMOVP0,A;向P0口“写1”MOVA,P0;从P0口输入数据到A你能正确的分析出指令的操作吗?,引脚改写操作:(读存器),引脚改写操作实质是修改引脚上的信息:单片机在结构上这样的安排是为了适应“读修改写”一类指令的需要。这类指令实质是用于输出信号,当P0口的某位是输出状态时,为了改变该端口的内容,避免干扰信号的影响,由于读锁存器中的内容等于端口内容,可直接读锁存器的内容并进行修改,然后重新输出。在MCS-51的指令系统中这种“读修改写”的操作有:ORL、XRL、JBC、CPL、INC、DEC、DJNZ、MOVPx,y、CLRPx,y和SETPx,y。如:ORLP0,A;P0AP0,2)P0口的总线方式(系统使用外存储器时),控制电路的“控制”=1,此时与门打开,MUX接向“地址/数据”信号.在这种情况下,输出极的两个FET都处于正常的工作状态。操作分为两种情况:一种是以P0口引脚输出地址数据信息。这时CPU内部发出高电平的控制信号,打开与门,同时使多路开关MUX把CPU内部地址数据总线反向后与输出驱动场效应管VT2的栅极接通。VT1和VT2两个FET管构成了推拉式的输出电路,其负载能力大大增强。另一种情况由P0口输入数据,此时输入的数据是从引脚通过图2-5a)所示的下面一个三态输入缓冲器进入内部总线的。访问外部存储器的指令movx、movc,就是使用P0口来输出外部存储器的低八位地址和输入、输出存储器的数据。在进行单片机的硬件系统的设计中,如果使用了外部存储器(或使用movx指令来访问外部接口电路)时,P0口成为整个系统的地址/数据复用总线。换句话,P0口不能再作为通用的I/O端口的形式直接与外部连接,P0口特点小结:,1.做通用数据I/O端口时,输出级上端的FET处于截止状态,为漏级开路电路,若要驱动NMOS或其它拉电流负载时,所以与NMOS器件连接时,必须接“上拉电阻”,否则不能正确的输出高电平;2.做通用数据I/O端口时,在输入操作前,为了保证输入正确,必须先向端口“写1”;3.“读锁存器”为引脚改写操作。凡是“读修改写”的操作,CPU读的都是端口锁存器中的数据。4.为了提高电路的可靠性,端口引脚不要直接与三极管一类的器件直接连接,应加隔离电路或与三极管之间加一个电阻.5.在总线方式时,P0口不能再做通用的I/O端口。它分时输出地址、数据总线的信息(此时引脚不用外接上拉电阻)。,(2)P1口的特点,特点:单纯的通用I/O端口,负载能力为3个TTL输入。与P0口的区别在于内部具有上拉电阻,所以输出时不用外接上拉电阻。,(3)P2口:“通用数据I/O端口”和“高八位地址总线”端口,P2口特点:,与P0口一样,P2口在系统使用外部存储器时,做高八位的地址总线。P2口使用时注意:a)当应用系统扩展有大于256B而小于64kB的外部存储器,且P2口用于输出高8位地址时,P2口不能再作通用IO口使用。使用如:movxa,dptr;访问外部数据存储器movca,a+dptr;访问外部程序存储器这里使用了16位的寄存器DPTRb)在不接外部存储器或片外存储器容量小于256字节的系统中,可以使用“MOVXRi”类指令访问片外存储器,仅由P0口输出低8位地址,此时P2口可作通用IO口用。c)在外部扩充的存储器容量大于256B而小于64kB时,可以采用软件方法利用P1P3中的某几位口线输出高8位地址,而保留P2口中的部分或全部口线作通用IO口用。,(4)P3口特点:通用I/O端口、多用途端口,在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器Q端为“1”电平以保证与门是打开的。在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。,并行端口在使用时应注意的几个问题,“拉电流”还是“灌电流”-与大电流负载的连接(我们以美国ATMEL公司生产的AT8951为例)1,使用灌电流的方式与电流较大的负载直接连接时,端口可以吸收约20mA的电流而保证端口电平不高于0.45V(见右上图)。2,采用拉电流方式连接负载时,AT89C51所能提供“拉电流”仅仅为80A,否则输出的高电平会急剧下降.如果我们采用右下图的方式,向端口输出一个高电平去点亮LED,会发现,端口输出的电平不是“1”而是“0”!当然,不是所有的单片机都是这样,PIC单片机就可以提供30mA的拉电流和灌电流。单对于大多数IC电路,最好还是使用“灌电流”去推动负载。,单片机与继电器等大电流负载的接口,我们知道:AT89C51的端口可以吸收约20mA的电流.对于继电器等大于20mA的负载,单片机可以采用右图的接法,用一个三极管来承担负载所需的大电流.若于负载电流易造成干扰单片机的环境,应采用右下图”光电隔离”的方式.其中:A、B两处没有任何电的联系.,四、端口负载能力和接口要求1P0口的每一位输出可驱动8个LSTTL负载。当把它作通用IO口输出时,输出级是开漏电路,当它驱动NMOS或其它拉电流负载时,需要外接上拉电阻才有高电平输出。当作地址数据总线时,无需外接上拉电阻,此时不能作通用IO口使用。2P1P3口的输出级均接有上拉电阻,他们的每一位的输出均可以驱动4个LSTTL负载。对HMOS型的单片机,当Pl和P3口作输入时,任何TTL或NMOS电路都能以正常的方法驱动这些口。无论是HMOS型还是CHMOS型的单片机,它们的P1P3口的输入端都可以被集电极开路或漏极开路电路所驱动,而无需再外接上拉电阻。CHMOS端口只能提供几毫安的输出电流,应注意。3P0P3口都是准双向IO口。作输入时,必须先向相应端口的锁存器写入“1”,使下拉场效应管截止。P0口作为输入口时呈高阻态;P1P3口内部有上拉电阻;当系统复位时,P0P3端口锁存器全为“1”。,五、MCS-51单片机的引脚定义,MCS-51单片机有两种封装形式:a.40脚的双列直插DIP封装;b.44脚的PLCC。,1,主电源引脚:Vcc(+5V-40脚)和Vss(GND20脚);2,外接晶体引脚:XTAL1(19脚)、XTAL2(18脚),只要在这两脚之间接入一个晶体震荡器,单片机就可以以此晶体的频率开始工作。常用的晶体频率有0-24M,频率越高,单片机的工作速度就越快,但单片机的功耗就要增加。3,控制或与电源复用引脚:RST/Vpd、ALE/PROG、/PSEN和VddRST/Vpd(9脚):在系统上电震荡器开始工作时,在内部加在此引脚上有一个两个时钟周期的高电平使单片机复位。但为了使系统复位可靠,建议外加一个上电复位电路,延长复位的时间。当单片机掉点时,此引脚可以接入备用电源向单片机内部的RAM供电,以防止RAM中的数据丢失。,ALE/PROG(30脚):以一个不变的频率(系统时钟fosc/6)周期性输出正脉。当单片机使用外部存储器时,此信号可作为低八位地址的锁存信。对于EPROM型的单片机,此脚还是用于写程序时,输入编程脉冲。/PSEN(29脚):外部程序程序存储器的选通信号。当单片机使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲。注意,访问外部数据存储器时,此信号无效。/EA/Vdd(31脚):外部程序存储器的选择端控制端:当此脚加入“1”电平是,单片机使用内部的程序存储器;当EA加入低电平时,系统只使用外部的程序存储器。但要特别注意:如果EA=1既使用单片机内部的程序存储器时,如果程序计数器PC的值超过0FFFH时,单片机将自动转向外部程序存储器1000H开始的单元。对于EPROM型的单片机,此脚还是用于写程序时,加入21伏的编程电压。,4,并行输入输出端口引脚(P0-P3)P0.0-P0.7P0端口线(39-32脚):输出能力最强的端口,可以带动8个TTL负载。驱动一个MOS负载时,应接一个10K左右的上拉电阻。如果系统使用外接存储器时,该口还作为地址(低八位)总线和数据总线,注意在这种情况下,P0口就不能通用的I/O端口。P1.0-P1.7P1端口线(18脚):负载能力为4个TTL负载。P2.0P2.7P2端口线(2128脚):通用I/O端口。除了做通用I/O端口外,当系统使用外接存储器时,该口还作为地址(高八位)总线,在这种情况下,P0口就不能通用的I/O端口。负载能力为4个TTL。P3.0P3.7P3端口线(1017脚):P3口除了做通用的I/O端口外,同时它还有第二功能),负载能力为4个TTL。,2.2MCS-51单片机的存储器结构,教学内容:一、存储器空间分布二、程序存储器三、数据存储器学时:讲课2学时教学要求:熟练掌握:1)MCS-51单片机的存储器空间分布2)程序存储器(片内与片外)使用。3)MCS-51片内分布和使用。包括工作寄存器区与位寻址区和位地址。,一、MCS-51单片机的存储器空间分布,特点:在MCS-51单片机的内部集成了4K的程序存储器和256B的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是64K。从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。从逻辑上讲(既用户编程的角度讲)51单片机的存储系统又可分为三个存储空间。既片内RAM,片外RAM和片内、外的程序存储器ROM。,从物理结构上单片机系统的存储器结构图(四个部分),二、程序存储器(片内与片外),程序存储器是用来存放编好的程序、常数和表格的。不同型号的机型,片内的程序存储器结构和空间也不同。MCS-5l的片外最多能扩展64k字节。片内外的ROM是统一编址的。如果/EA端保持高电平,805l的程序计数器PC在0000H0FFFH地址范围内(即前4kB地址)是执行片内ROM中的程序;当PC在1000HFFFFH地址范围时,即当PC值超过0FFFH(4K),自动执行片外程序存储器中的程序。如果/EA保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址,地址范围为0000H0FFFH(片外存储器)。,4.无论是使用片内还是使用片外的ROM(既EA=1或EA=0),其起始地址都是从0000H单元开始。,MCS-51单片机片内、外程序存储器的使用示意图,5.7个单元被保留用于特定的程序入口地址(中断服务程序入口地址)。编程者是不能随便使用的。由于系统复位后的PC内容为0000H,故系统从0000H单元开始取指令,执行程序。它是系统的启动地址。一般在该单元设置转移指令,使之转向用户主程序处。因此,0000H0002H单元被保留用于初始化。从0003H0002BH单元被保留用于6个中断源的中断服务程序的入口地址,故以下7个特定地址应被保留。0000H:复位或非屏蔽中断0003H:外部中断0入口地址000BH:定时器0中断入口地址0013H:外部中断1入口地址00lBH:定时器1中断入口地址0023H:串行口中断入口地址002BH:定时器2溢出或T2EX(P1.1)端负跳变时的入口地址(仅80328052所特,三数据存储器,数据存储器无论在物理上还是逻辑上都分为两个地址空间,既一个内部和一个外部的数据存储空间。访问内部数据存储单元时,使用MOV指令;而访问外部数据存储器时,使用MOVX指令。内部数据存储器从功能上又将256B空间分为二个不同的块:1)低128B的RAM块;2)高128B的SFR(SpecialFunctionRegister)块。在低128B的RAM存储单元中又可划分为:工作寄存器区、可位寻址区、通用存储数据的便签区。高128B的专用寄存器区中仅仅使用了21寄存器(51系列),其它单元未定义不能使用。,MCS-51片内、片外数据存储器示意图,注意:1,访问片内RAM20H存储单元;MOVA,20H2,访问片外RAM存储单元;MOVR0,#20hMOVXA,R03,尽管片内与片外的RAM单元的00H-FFH地址相重叠但由于指令的不同不会发生地址混乱。,1.片内RAM低128B字节功能分配图,通用的RAM区地址:30H-7FH,位寻址区16个单元20H-2FH,共有128可寻址位个位。位地址:00H-7FH注意:位地址与字节地址的区别,四个工作寄存器区每个区中有R0-R7八个工作寄存器,(2)片内RAM(20H-2FH)中的位寻址区结构图,2FH,20H,字节地址,表2-3,位寻址区内的地址是位地址。共有00-7FH(共128个位);要区分字节地址和位地址这两个不同的地址概念:从物理的角度,每一个字节地址内包含了8个位,既:D7,D6,D5,D4,D3,D2,D1,D0在一般情况,我们提到的RAM地址都是字节地址。从逻辑的角度讲,字节地址和位地址是靠不同类型的指令来区分的。如:MOVA,20h;将RAM的20单元内容送累加器A;MOVC,20h;将RAM位寻址区中20H位送CY中。在这二个例子中,第一条指令为字节传送指令,所以20H为字节地址;第二个例子中的指令为位操作指令,所以20H为位地址。有关详细内容将在第二章中描述。,(3)真正的RAM区,地址范围:30H7FH真正用作RAM:非常灵活应合理安排;如:堆栈区,显示区单片机软件水平的高低与RAM区的应用有很大关系,第三节特殊功能寄存器SFR-高128字节RAM,教学内容:MCS-51的23个特殊功能寄存器学时:讲课1学时教学要求:熟练掌握:MCS-51的23个特殊功能寄存器的功能与应用,特殊功能寄存器SFR(SpecialFunctionRegister)见表2-4,MCS-51特殊功能寄存器有23个,其中3个仅8032、8052有,5个是双字节寄存器,11个具有位寻址能力。分布在片内RAM的高128字节地址中。特殊用途寄存器的集合。用来设定单片机内部各个部件的工作方式,存放相关部件的状态,定时器初值寄存器,并行端口的锁存器等等。尽管特殊功能寄存器与RAM在同一个单元中,但不能作为普通的RAM存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。如中断方式的设定、定时器工作模式的设定,查询串行口发送或接收是否结束等等,下面介绍部分特殊功能寄存器(SFR),其余将在后续的章节中讲述。累加器ACC(E0H)简称为A,累加器ACC是8051最常用、最繁忙的8位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算结果也存放于ACC中。在一般指令中用“A”表示,在位操作和栈操作指令中用“Acc”表示。寄存器B(FOH)在乘、除指令中,用到了8位B寄存器。乘法指令的两个操作数分别取自A和B,乘积存于B、A两个8位寄存器中。除法指令中,A中存放被除数,B中放除数,商存放于A中,B中存放余数。在其它指令中,B可作为一般通用寄存器或一个RAM单元使用,SP堆栈指针:8位寄存器,用来指示堆栈的位置,可由软件修改。在MCS-51单片机的设计中,片内RAM区为堆栈的可用空间。上电或复位时,SP被初始化为07H,既堆栈底部被确定在RAM的07H单元。由于08H1FH单元分属于工作寄存器13区,若程序中要用到这些区,则最好把SP值改为1FH或更大的值。堆栈操作过程:进栈:PUSHACC指令(设SP=07H),1,SP+1送SP,此时SP=08H;2,ACC送RAM的08H单元;出栈:POPACC(设SP=08H);1,将RAM中08H单元内容送A;2,SP-1送SP,此时SP=07H。,程序状态字PSW:8位寄存器.表征程序执行的状态信息。CY(PSW.7)进位标志:在加减法运算中,累加器A的最高位A7有进位,则CY=1,否则CY=0.同理,在减法运算中,如果A7有借位,则CY=1.因此CY往往作为无符号数运算是否有溢出的标志。AC(PSW.6):辅助进位位:用来判断加减法运算时,低四位是否向高四位进位或借位(既A3的进位或借位).往往用来判断压缩的BCD码的运算处理.F0(PSW.5)用户标志位:完全由用户来定义和使用。RS1,RS0工作寄存器区选择位:确定工作寄存器R0-R7在哪个区中.单片机在上电或复位后RS1、RS0=00。当需要人为的修改RS1,RS0的值来改变工作寄存器区的位置。,OV(PSW.2)溢出标志位:判断符号数加减法运算时是否有溢出.OV的结果可以用一个算法来表示:OV=C6异或C7其中:C7为D7的进位,C6为D6的进位。OV=1表明有溢出。P(PSW.0)奇偶标志位:用来标志累加器A中运算后1的个数。当P=1时,表明A中1的个数为奇数个,反之为偶数个。【举例】:有两个数0FH和F8H,试将两数相加MOVA,#0FH;将立即数0fh送累加器AADDA,#0F8H;A的内容与立即数0f8h相加,结果送A00001111运算结果:A=07H,CY=1,+11111000CS=1,OV=0(因为C7=1,C6=1)Cy100000111AC=1,P=1如何根据PSW来分析运算结果是否正确?是否有溢出?1,若数据为无符号数。即15+248=263=107H既CY=1,A=07H。2,若数据为有符号数。即+15加-8=+7=07H,OV=0表明无溢出。,第四节单片机的工作方式与最小应用系统,教学内容:一、单片机的工作方式二、单片机最小应用系统设计学时:2;教学要求:熟练掌握:1)MCS-51单片机的复位、程序执行、掉电操作、低功耗等工作方式的特点与应用2)掌握三种复位电路的典型电路图3)单片机的最小系统的概念和设计。,(一)复位方式复位是使CPU和系统中其它部件都处于一个确定的初始状态,并从这个状态开始工作。1MCS-51单片机复位结构,无论是HMOS型还是CHMOS型的单片机,在振荡器正在运行的情况下,复位是靠在RSTVPD或RST引脚上施加持续2个机器周期(即24个振荡周期)的高电平来实现的。若使用频率为6MHz的晶振,则复位信号持续时间应超过4s才能完成复位操作。在RST引脚出现高电平后的第二个周期执行内部复位,以后每个周期重复一次,直至RST端变低。,复位后内部各专用寄存器状态如下,2复位方式及电路MCS-51单片机通常采用上电自动复位、按钮电平复位、外部脉冲复位、上电+按钮电平复位、程序运行监视复位等方式。(1)简单的上电自动复位、外部脉冲复位、按钮电平复位、上电+按钮电平复位。,图2-10简单复位电路,设计复位电路时应注意:1)要保证加在RST引脚上的高电平持续2个机器周期,才能使单片机有效地复位。2)在实际的应用系统中,有些外围芯片也需要复位。如果这些复位端的复位电平要求与单片机复位一致,则可以与之相连。3)在图2-10的简单复位电路中,干扰易串入复位端,在大多数情况下不会造成单片机的错误复位,但会引起内部某些寄存器错误复位。这时,可在RST引脚上接一个去耦电容。4)在应用系统中,为了保证复位电路可靠地工作,常将RC电路先接史密特电路,然后再接入单片机复位端和外围电路复位端。这样,当系统有多个复位端时,能保证可靠地同步复位,且具有抗扰作用。,(2)程序运行监视复位程序运行监视复位通常是由各种类型的程序监视定时器WDT(WatchdogTimer)俗称为“看门狗”实现。WDT可保证程序非正常运行(如程序“飞逸”、“死机”)时,能及时进入复位状态,恢复程序正常运行。WDT通常有几种实现方法供用户选择:1)单片机内部带有WDT单元。2)选择P监视控制器件,这些器件中大多有WDT电路,如Max705芯片。3)在单片机外部设置WDT电路。,图2-11自动复位电路,原理为:程序运行正常时,单片机通过I/O在A端施加一个按一定周期T变化的信号,两个延时元件均达不到延时时间输出低电平,“或门”输出为“0”,不使单片机复位,当程序出现“飞逸”或“死机”时,加在A端的电平停止变化,不论是高电平还是低电平,均有一个延时元件经一定延时后输出高电平,通过“或门”起动单稳触发器,强迫单片机复位,二、单片机最小应用系统设计,单片机加上适当的外围器件和应用程序,构成的应用系统称为最小系统。(一)单片机最小应用系统举例18751最小应用系统,其应用特点为:(1)有较多的I/O口线。P0、P1、P2、P3均作为用户I/O口使用。(2)内部存储器容量有限。(3)应用系统开发具有特殊性。如8051的应用软件须依靠半导体厂家用半导体掩膜技术置入,故8051应用系统一般用作大批量生产的应用系统。另外,P0、P2口的应用与开发环境差别较大。,(二)最小应用系统设计,最小应用系统设计是单片机应用系统的设计基础。它包片机的选择,时钟系统设计、复位电路设计、简单I/O口扩展、掉电保护等,对于CHMOS单片机还包括低功耗运行设计。,例1:用MCS-51单片机的定时器和中断功能试制一个“航标灯”。要求:航标灯在黑夜应能定时闪闪发光,设定时间隔为2s,即亮2s,熄灭2s周期循环进行;当白天到来时,航标灯应熄灭,停止定时器工作;fosc=12MHz。该例为简单I/O口的扩展。目的是扩大MCS-51的驱动能力,实现上述功能的具体方案为:(1)航标灯的控制电路见2-17;8051定时的启停控制信号由来控制。(2)指示灯利用达林堆管驱动,由P1.7控制。(3)采用T0加软件计数的方法实现定时2s钟。(4)白天与黑夜的识别:用如图2-17所示的光敏三极管来区分白天与黑夜。,例2:开关量输出回路,开关量输出通常采用并行接口输出来控制有接点的继电器的方法。,为了提高抗干扰能力,并行接口与继电器之间用光电隔离。该图的功能是用中间继电器驱动一个大容量的电器装置,只要由软件使P1.0输出“0”,P1.1输出“1”,就可使与非门H1输出低电平,光敏三极管导通,继电器K吸合。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!