第3章 80C51系列单片机的硬件基础知识_第1页
第3章 80C51系列单片机的硬件基础知识_第2页
第3章 80C51系列单片机的硬件基础知识_第3页
第3章 80C51系列单片机的硬件基础知识_第4页
第3章 80C51系列单片机的硬件基础知识_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

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

文档简介

10:22,1,第3章80C51系列单片机的硬件基础,单片机是一个大规模集成电路芯片,但仅有一块单片机不能完成特定的控制任务,只有当它与其他器件和设备有机地组合在一起并配以特定的程序时,才能构成一个真正的单片机应用系统,完成特定的任务。在单片机应用系统中单片机是核心器件,要设计单片机应用系统,必须首先掌握单片机的硬件基础知识。,10:22,2,8051系列单片机概述,3.1,80C51系列单片机引脚功能,3.2,80C51系列单片机的编程结构,3.3,80C51系列单片机的存储器,3.4,80C51单片机的工作方式,3.5,80C51系列单片机的时序,3.6,80C51单片机最小应用系统,3.7,第3章80C51系列单片机的硬件基础,10:22,3,3.18051系列单片机概述,1980年美国INTEL公司推出了高性能的8位单片机:MCS-51系列单片机。系列单片机是指同一厂家生产的具有相同系统结构的多种型号的单片机。MCS-51系列单片机又可分为51和52两个子系列。,3.1.1MCS-51系列单片机,10:22,4,各个子系列所含有的芯片型号及其硬件资源的区别如表3-1所示。,在不同型号的MCS-51系列单片机中,除片内存储器(ROM、RAM)容量与种类、定时器/计数器的个数、中断源的数量有所不同外,指令系统和芯片引脚是完全兼容的。,10:22,5,它们的主要硬件特性:,(1)8位CPU。(2)片内带振荡器,振荡频率fosc范围为1.212MHz;可有时钟输出。(3)128/256B的片内数据存储器。(4)0/4/8KB的片内程序存储器。(5)程序存储器的寻址范围为64KB。(6)片外数据存储器的寻址范围为64KB。(7)21/26个字节专用寄存器。,10:22,6,(8)4个8位并行IO接口:P0、P1、P2、P3。(9)1个全双工串行IO接口,可多机通信。(10)2/3个16位定时器计数器。(11)中断系统有5/6个中断源,可编程为两级优先级。(12)111条指令,含乘法指令和除法指令。(13)含布尔处理器,有强的位寻址、位处理能力。(14)片内采用单总线结构。(15)用单一+5V电源。,10:22,7,早期的MCS-51系列单片机是采用HMOS工艺制造的,具有高速度、高密度的特点,但功耗较大。出于对降低功耗的要求,MCS-51系列单片机后来推出的产品采用了CMOS和HMOS结合的CHMOS工艺。采用CHMOS工艺制造的51子系列对应的低功耗产品分别为80C31、80C51、87C51,52子系列对应的低功耗产品分别为80C32、80C52。,10:22,8,Features.CompatiblewithMCSR-51Products4KBytesofIn-SystemProgrammable(ISP)FlashMemory-Endurance:10,000Write/EraseCycles4.0Vto5.5VOperatingRangeFullyStaticOperation:0Hzto33MHzThree-levelProgramMemoryLock1288-bitInternalRAM32ProgrammableI/OLinesTwo16-bitTimer/CountersSixInterruptSourcesFullDuplexUARTSerialChannelLow-powerIdleandPower-downModesInterruptRecoveryfromPower-downModeWatchdogTimerDualDataPointerPower-offFlagFastProgrammingTimeFlexibleISPProgramming(ByteandPageMode)Green(Pb/Halide-free)PackagingOption,特点:AT89S51是51单片机家族中的一员,它可与家族中其他单片机兼容该单片机片内有容量为4Kbytes的Flash存储器作为程序存储器使用可进行在线编程,寿命为10000次的擦写操作。工作电压范围为4.0V-5.5V支持全静态操作,工作频率范围为0Hz-33MHz三级程序存储器锁片内RAM容量为128x8-bit32个可编程If0口两个16位的定时/计数器6个中断源全双工通用异步串行通信通道低功耗的休眠和停电模式停电模式下的中断恢复看门狗定时器双DPTR指针寄存器断电标志快速编程时间灵活的在线编程Byte和Page模式)环保封装选择(无铅/无卤化物),(a)技术特点英文描述(b)技术特点中文翻译图3-1AT89C51单片机技术手册中关于特点的概述,10:22,9,不同型号的80C51单片机,内部资源或多或少有些差异,我们在选择时,可从以下几个方面考虑:1.程序存储器2.数据存储器3.功耗4.体积,3.1.280C51系列单片机的选择依据,10:22,10,程序存储器用于存放单片机应用系统的目标程序。通过编程器或直接在系统编程(ISP)将目标程序写入单片机。单片机的程序存储器目前供应的类型有EPROM、OTPROM、MaskROM和FlashEEPROM。容量有1KB、2KB、4KB、8KB、16KB、32KB和64KB。由于EPROM型单片机使用不方便,现已很少使用,普遍采用FlashEEPROM型单片机代替;OTPROM单片机在中小批量的单片机产品中使用较多;MaskROM型单片机由于其程序存储的高可靠性和低成本特点,适合于大批量的单片机应用场合。由于片内存储器成本的降低,目前趋向于选择具有大容量的片内程序存储器的单片机,片外不用再扩展程序存储器。,1.程序存储器,10:22,11,单片机片内数据存储器目前供应的类型有SRAM静态数据存储器,少数单片机片内有EEPROM非易失性数据存储器。51子系列片内RAM有128B,52子系列片内RAM有256B,52子系列向下兼容51子系列,两者价格目前基本持平,选择52子系列在使用上更为方便、灵活。,2.数据存储器,10:22,12,4.体积,在应用系统的空间有限时,可选择相应型号的PLCC和QFP封装的单片机,外围芯片当然也要选择小型封装。在无外围扩展时也可选择非总线型的单片机,如Atmel公司的AT89C4051、AT89C2051和AT89C1051,Philips公司的P87LPCXXX系列。,新一代高性能的80C51单片机增加了模/数转换器(A/D)、脉宽调制输出(PWM)、第二串行口、串行扩展总线(I2CBUS)、现场总线(CAN),程序监视定时器(WDT)、在系统编程ISP等功能,使用户在进行单片机应用系统设计时有更大的选择范围。,10:22,13,3.280C51系列单片机引脚功能,在80C51系列单片机中,各种单片机的引脚是相互兼容的,只是功能略有差异。在器件引脚的封装上,80C51系列单片机常用的封装有三种,分别为双列直插式PDIP40脚封装、塑料扁平式PQFP/TQFP44脚封装和带引线的塑料芯片封装PLCC44脚封装。,10:22,14,图3-2PDIP封装引脚图,图3-3PDIP实物图,3.2.1引脚功能概述,10:22,15,图3-4PQFP/TQFP封装引脚图,图3-5PQFP/TQFP封装实物图,10:22,16,图3-6PLCC/LCC封装引脚图,图3-7PLCC/LCC封装实物图,10:22,17,80C51单片机引脚主要分为主电源引脚、外接晶体引脚、输入输出引脚与控制引脚四类,以PDIP封装的单片机为例,引脚介绍如下:主电源引脚(2条)2.外接晶体引脚(2条)3.输入/输出(I/O)引脚(32条)4.控制引脚(4条),10:22,18,1.主电源引脚(2条)VCC(40脚)和GND(20脚):分别接电源的正端和地端。不同型号单片机接入对应电压的电源,常压为+5V、低压为+3.3V。,2.外接晶体引脚(2条)XTAL1(19脚)、XTAL2(18脚):XTAL1为片内振荡电路的输入端,XTAL2为片内振荡电路的输出端。80C51单片机的时钟有两种方式,一种是片内时钟振荡方式,需在这两个脚外接石英晶体和振荡电容;另一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。,10:22,19,3.输入/输出(I/O)引脚(32条)输入/输出(I/O)引脚共有P0口、P1口、P2口、P3口四组,每组8条引脚。(1)P0口(39脚32脚):分别为P0.0P0.7,其中P0.7为最高位,P0.0为最低位。这8条引脚有两种不同的功能:1)作为通用输入输出(I/O口)使用。2)作为低8位的地址/数据复用总线。,10:22,20,(2)P1口(1脚8脚):分别为P1.0P1.7,其中P1.7为最高位,P1.0为最低位。P1口引脚也有两种不同的功能:1)作为准双向I/O口使用。2)对52子序列单片机,P1.0引脚的第二功能为T2定时器/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。,10:22,21,(3)P2口(21脚28脚):P2口的8条引脚也有两种不同的功能:1)准双向输入输出接口,每一位也可独立控制。2)在接有片外存储器或扩展IO接口时,P2口作为高8位地址总线。,10:22,22,(4)P3口(10脚17脚):P3口的8条引脚也有两种不同的功能:1)准双向输入输出接口,每一位同样可独立控制。2)P3口的每一条引脚都有第二功能,如表3-4所示。,10:22,23,单片机通过I/O口表现出控制能力,在第一功能时可以实现对外围输入/输出设备,如按键开关、键盘、发光二极管、数码管、液晶屏、电机、继电器等的控制。在单片机内部的存储器、接口电路等不够用而需要进行片外扩展时,这四组接口又表现出第二种功能,即作为对外扩展芯片的地址总线、数据总线与控制总线使用。每个端口的结构各不相同,它们在功能和用途上也存在差别。,总结:,10:22,24,10:22,25,4.控制引脚(4条)(1)RST(Reset,9引脚):复位信号输入端。(2)ALE/(AddressLatchEnable/Programming,30引脚):ALE为地址锁存允许信号,配合P0口引脚的第二功能使用。为本引脚的第二功能,表示编程脉冲输入端。(3)/VPP(EnableAddress/VoltagePulseofPrograming,31引脚):片内片外程序存储器选择控制端。(4)(ProgramStrobeEnable,29引脚):片外程序存储器(ROM)选通线。,10:22,26,3.2.2引脚与内部功能模块的关系,图3-9单片机引脚和内部功能模块之间的关系,10:22,27,图3-1080C51单片机对外三总线构成,3.2.3单片机对外扩展时三总线的构成,10:22,28,四个I/O端口P0、P1、P2、P3的作用总结:P2口负责输出高8位地址,P0口以分时方式承担输出低8位地址信息和数据输入/输出的双重任务。P3口则作为和外设沟通的控制线,P1口可随意用作I/O口。,51系列单片机的对外三总线总结:AB(地址总线):P2口负责高8位地址,P0口输出低8位地址。DB(地址总线):P0口作为8位数据输入/输出口。CB(地址总线):P3口作为和外设沟通的控制线。,10:22,29,3.380C51系列单片机的编程结构,80C51系列单片机的编程结构包括中央处理器(CPU)、内部存储器(ROM、RAM)、并行I/O接口、片内外设(定时器/计数器、中断系统、串行口)、振荡器等部分,各部分之间通过片内总线进行连接。80C51系列单片机内部采用单总线结构,地址、数据与控制信息都通过一组总线流通。,编程结构,即是从编程人员角度所看到的单片机内部结构,该结构便于人们从软件编程的角度去了解单片机系统的操作和运行。,所谓编程结构,就是从编程人员角度所看到的单片机内部结构。,编程结构便于人们从软件编程的角度去了解单片机系统的操作和运行。,3.380C51系列单片机的编程结构,10:22,31,图3-1180C51系列单片机的编程结构,10:22,80C51系列单片机的编程结构,CPU,1、中央处理器CPU,10:22,33,80C51系列单片机是8位CPU,它是整个单片机的核心部件,主要完成运算和控制功能,由运算器和控制器组成。(1)运算器运算器由算术逻辑单元(ALU)、累加器A(Accumulator)、暂存器TMP以及程序状态字PSW组成,用于算术运算和逻辑运算。(2)控制器控制器由程序计数器PC(ProgramCounter)、指令寄存器IR(InstructionRegister)、指令译码器ID(InstructionDecoder)、定时与控制电路等部分组成,使单片机各部分协调工作,从而完成指令规定的操作。,1.中央处理器(CPU),10:22,34,程序计数器PC(ProgramCounter)是一个16位的加1计数器,其中存放的是ROM中存储单元的地址。在开始执行程序时,给PC赋以程序中第一条指令所在的存储单元的地址,然后每从存储单元取一次内容,PC中的内容就会自动加1,以指向下一个存储单元,保证指令顺序执行。由此可见,程序计数器PC中存放的是下一条将要执行的指令所在的ROM存储单元的地址。,10:22,80C51系列单片机的编程结构,1、中央处理器CPU,CPU,完成运算和控制功能,由运算器和控制器组成。,运算器,运算器用于算术运算和逻辑运算。算术逻辑运算单元ALU是运算器的核心部分。,控制器用于识别指令,发出各种控制信号,完成指令规定的操作。,10:22,80C51系列单片机的编程结构,1、中央处理器CPU,CPU,程序计数器PC:ProgramCounter,是一个16位的加1计数器。,PC中存放的是ROM存储单元的地址。,程序计数器PC中存放的是下一条将要执行的指令所在的ROM存储单元的地址。,开始执行程序时,给PC赋以程序中第一条指令所在的存储单元的地址;然后每从存储单元取一次内容,PC中的内容就会自动加1,以指向下一个存储单元,保证指令顺序执行。,10:22,80C51系列单片机的编程结构,1、中央处理器CPU,CPU,指令寄存器IR(InstructionRegister)用来存放当前正在执行的指令代码。,指令译码器ID(Instructiondecoder)用来对指令代码进行分析、译码,根据指令译码的结果,输出相应的控制信号。,定时与控制电路发出相应的控制信号,完成指令功能,10:22,38,80C51系列单片机的存储器有片内和片外之分。片内存储器集成在芯片内部;片外存储器(外部存储器)是专用的存储器芯片,需要通过单片机引脚提供的三总线(即AB、DB和CB)与80C51连接。无论片内还是片外存储器,都可分为程序存储器和数据存储器。由于80C51单片机采用哈佛结构,因此程序存储器和数据存储器相互独立,有各自的寻址空间。,2、内部存储器,10:22,39,片内数据存储器为随机存取存储器,用于存放可读写的数据,常称为片内RAM。80C51系列单片机的片内RAM共有128/256B。片内程序存储器为只读存储器,用于存放程序指令、常数及数据表格,常称为片内ROM。80C51系列单片机内部有0/4/8KB的ROM。用于存放程序,也可以存放一些原始数据和表格等。,10:22,80C51系列单片机的编程结构,2、内部存储器,片内RAM为随机存取存储器,用于存放可读写的数据,80C51系列单片机内部RAM有128/256B。,片内ROM为只读存储器,用于存放程序指令、常数及数据表格。80C51系列单片机内部有0/4/8KB的ROM。,10:22,41,80C51片内有4个8位的I/O接口:P0、P1、P2和P3,每个I/O接口内部都有一个8位锁存器和一个8位驱动器,既可用作输出口,也可用作输入口。80C51单片机没有专门的I/O口操作指令,而是把I/O口当作寄存器使用,通过传送指令实现数据的输入和输出操作。,3.并行输入/输出端口(I/O口),10:22,80C51系列单片机的编程结构,3.并行输入/输出端口(I/O口),4个8位并行I/O接口:P0、P1、P2和P3,10:22,43,(1)定时器/计数器51子序列单片机中有两个16位的定时器/计数器,用于实现定时或外部计数的功能。(2)中断系统中断系统的主要作用是对来自单片机内部或外部的中断请求进行处理,完成中断源所要求的任务。51子系列共有5个中断源,其中外部中断源有2个,内部中断源有3个:2个定时器/计数器中断源和1个串行口中断源。全部中断可分为高级和低级两个优先级别。,4.片内外设,(3)串行口80C51单片机有一个全双工可编程串行口,用于实现单片机与外部设备之间的串行数据传送。,10:22,80C51系列单片机的编程结构,4、片内外设,片内外设:定时器/计数器中断系统串行口,10:22,80C51系列单片机的编程结构,5、振荡器,振荡器用于产生单片机工作时所需的时钟脉冲。,10:22,46,3.3.2在KeilVision中观察寄存器,例3-1加法汇编ORG0000H;设置起始地址MOVA,#6EH;A=6EHADDA,#58H;A=A+58H=C6H,PSW=44HMOVB,A;B=C6HSJMP$;程序在原地循环END;结束汇编,10:22,47,3.3.2在KeilVision中观察寄存器,图3-12Vision软件调试界面,10:22,48,3.3.2在KeilVision中观察寄存器,(a)执行MOVA,#6EH(b)执行ADDA,#58H(c)执行MOVB,A图3-13指令的执行和寄存器数值的变化,10:22,49,3.480C51系列单片机的存储器,存储器是用来存放程序或者程序中所需的数据的。不同的单片机,其存储器的类型与容量也不相同。,3.4.1半导体存储器1.随机存取存储器与只读存储器(1)随机存取存储器RAM(RandomAccessMemory)。CPU既可以将该存储器中的信息(数据)读出又可以将需要写入的信息写入。(2)只读存储器ROM(ReadOnlyMemory)。CPU只能读出存放在该存储器中的信息,不能写入。,10:22,50,表3-5随机存取存储器与只读存储器的对照表,10:22,51,按照存储信息的方式,随机存取存储器又可分为以下两种:静态RAM(SRAM:StaticRAM)。只要有电加在存储器上,数据就能长期保留。动态RAM(DRAM:DynamicRAM)。写入的信息只能保留几ms的时间,因此每隔一定时间需要重新写入一次(称为“刷新”),所以动态RAM的电路比较复杂。,2.随机存取存储器的分类,10:22,52,图3-14SRAM的存储单元,(1)静态RAM的存储单元,10:22,53,图3-1588bitSRAM中的存储单元,10:22,54,(2)动态RAM的存储单元,图3-16DRAM的一位存储单元,10:22,55,(2)动态RAM的存储单元,(a)将1写到存储单元中,(b)将0写到存储单元中,图3-17DRAM的存储单元的操作,10:22,56,(2)动态RAM的存储单元,(c)将1从存储单元读出,(d)对保存的1进行刷新,图3-17DRAM的存储单元的操作,10:22,57,静态RAM与动态RAM的对比,10:22,58,3.只读存储器的分类,E2PROM的最大缺点就是改写信息的速度慢,随着半导体存储技术的发展,各种新的可现场改写信息的非易失性存储器被推出,且发展速度很快,其中应用最广泛最流行的就是快擦写存储器(FlashMemory)。,ROM存储器按固化信息方式(向芯片内写入信息)的不同可分为以下4种:(1)掩膜ROM(MROM:MaskROM)。(2)可编程ROM(PROM:ProgramableROM)。(3)可擦除可编程ROM(EPROM:ErasablePROM)。(4)电可擦除可编程ROM(E2PROM:ElectricallyErasableROM)。,10:22,59,(1)MaskROM,MaskROM在生产时厂家会按照客户的要求把数据保存在其中,一旦MaskROM生产出来后,其中的数据是无法修改的,所以它通常存储一些不用修改而直接就拿来使用的数据信息。例如投影仪开机时显示的品牌名称和标志,计算机开机时显示的主板版本和厂商信息等。,(a)保存1(b)保存0,图3-18MaskROM的存储单元,10:22,60,(2)PROM,PROM要比maskROM稍微灵活一点,它提供给用户一次写入数据的机会,即用户可以在新买回来的PROM器件写入数据,写入完毕后PROM就像一个MaskROM使用,只能读取其中的数据而不能擦除。,图3-19PROM的存储单元结构,10:22,61,(3)EPROM,EPROM是可擦除可编程只读存储器,就是说EPROM不但在新买回来时可以往芯片里面烧写数据,还可在任何时候将数据擦除掉,再往其中写入新的数据,所以,EPROM是一种可以重复编程的ROM器件。,EPROM有两种主要类型的器件:一种是使用紫外线进行擦除的UVEPROM(ultravioletlighterasableprogrammableread-onlymemory)。另一种是使用电信号进行擦除的EEPROM(electricallyerasableprogrammableread-onlymemory)。,10:22,62,(3)EPROM,图3-20UVEPROM的透明小窗口,10:22,63,(3)EPROM,图3-20UVEPROM擦除器,10:22,64,(4)EEPROM,虽说UVEPROM可进行多次擦写,但是每次擦除都需要紫外线擦除器和花一定的时间毕竟不甚方便。于是使用电信号就能实现数据擦除和写入的EEPROM极大方便了数据存储的需要。EEPROM的擦除不需要什么紫外线擦除器,直接用电信号就能实现存储器中数据的擦除和写入。单片机就可以对EEPROM进行数据的擦除和写入,并在掉电后仍然保存这些数据。,10:22,65,(5)FlashROM,FlashROM芯片的出现满足了人们对存储器大容量、非易失性、在线擦写、快速访问与廉价的所有要求,而上面介绍的EEPROM、SRAM只是具备某个或者某几个特点,因此目前FlashROM广泛应用在各种数码产品中。,10:22,66,(5)FlashROM,FlashROM的存储单元结构如图3-22所示,其结构比较特别,其中的MOSFET包含两层栅极,一个是控制栅极(简称栅极),另一个是浮动栅,这种结构又称为叠栅结构。,(a)浮动栅拥有大量电子时,数据为0,图3-22FlashROM的存储单元,(b)浮动栅只有少数电子时,数据为1,10:22,67,(5)FlashROM,FlashROM的操作有3种:擦除操作、编程操作(也就是写操作)与读操作。,图3-23FlashROM存储单元的擦除操作,擦除操作:擦除就是把Flash中的数据给抹去,使所有的存储单元都变成1。擦除操作如图3-23所示,通过栅极接地(0)和给S极加一个擦除电压+VERASE,浮动栅上的电子因为+VERASE的吸引而逃离,结果浮动栅电子缺失而使存储单元变成了1。在Flash编程操作之前都会先对所有存储单元进行擦除操作。,10:22,68,(5)FlashROM,图3-24FlashROM存储单元的编程操作,编程操作:经过擦除操作后,所有Flash存储单元都为1。编程操作如图3-24所示,如果想让某个存储单元为0,则在栅极施加一个编程电压+VPROG,同时S极接地。这样由于+VPROG的吸引,电子从S极跑到了浮动栅中,于是存储单元保存了0。而如果想让存储单元保存1,则保留擦除之后的状态即可。,(a)写入0,(b)写入1,10:22,69,(5)FlashROM,图3-25FlashROM存储单元的读操作,读操作,(a)读出0,(b)读出1,10:22,70,(5)FlashROM,图3-26FlashROM内部结构示意图,Flash存储器是由以上存储单元与比较器等电路构成的,结构如图3-26所示,每一次只有一行被访问。如果某一个存储单元保存的是1,在读操作时会因MOSFET的导通使对应的位线产生电流,从而在有效负载上产生压降。这个压降在比较器中与参考电压相比会在数据线上输出1。如果存储单元保存的是0,位线上就不会有电流,于是比较器的输出为0。,10:22,71,3.4.2存储器的管理,1.存储器的组织结构,存储器内部都有一定的组织结构来存储数据,以一个容量为2K8bits的静态6116为例来进行说明。容量“2K8bits”中的“8”表示6116芯片以8bits(=1byte)为一个单元,共有2K(211=21024=2048)个这种单元。,10:22,72,3.4.2存储器的管理,1.存储器的组织结构,存储器内部都有一定的组织结构来存储数据,以一个容量为2K8bits的静态6116为例来进行说明。容量“2K8bits”中的“8”表示6116芯片以8bits(=1byte)为一个单元,共有2K(211=21024=2048)个这种单元。,10:22,73,3.4.2存储器的管理,一般存储器的组织结构可以归纳如下:(1)若存储器地址线的根数为n,则存储器包含2n个单元。(2)若存储器数据线的根数为m,则存储器每一个单元中包含m个位。(3)若存储器地址线的根数为n,数据线的根数为m,整个存储器的容量为2nmbits可见,在数据线位数一定的情况下(比如8位),地址线的位数越多,即n越大,存储器的容量也就越大。,10:22,74,3.4.2存储器的管理,2.存储器的读/写操作过程,读/写过程中存储器的地址线与数据线传输方向示意图,10:22,75,3.4.2存储器的管理,2.存储器的读/写操作过程,图3-29写操作过程示意图,10:22,76,3.4.2存储器的管理,2.存储器的读/写操作过程,图3-30读操作过程示意图,10:22,77,3.4.2存储器的管理,3.存储器的访问速度,存储器还有一个重要的指标就是访问速度。它用从地址线的信号准备完毕到数据出现在数据线上的时间差来衡量。一般访问速度从几个纳秒(lns=110-9s)到几百纳秒不等,取决于存储器的制造工艺和设计水平。访问速度越高,说明器件的性能越好,也就越贵。一般来说,RAM的访问速度(比如SRAM,DRAM等)较ROM(比如Flash,EEPROM要快,所以如果在选择片外数据存储器时,系统不需要掉电保存住数据,那首先应当考虑使用SRAM,DRAM等。,10:22,78,3.4.380C51单片机的存储器,80C51单片机存储器组织结构:哈佛结构(Harvard),1.80C51单片机存储器从物理结构上可分为:,10:22,79,2.从寻址空间分布可分为:,程序存储器,内部数据存储器,外部数据存储器,(a)51子系列单片机存储器(b)52子系列单片机存储器图3-3180C51单片机的程序存储器编址图,10:22,80,3.从功能上可分为:,程序存储器,内部数据存储器,外部数据存储器,特殊功能寄存器、,位地址空间,10:22,81,1程序存储器,(1)编址,编址:从0000H-FFFFH(64kB)。,EA=0时,执行片外程序,EA=1先执行片内程序,再执行片外程序,编址规律:先片内、后片外,片内、片外连续,二者一般不作重叠。,10:22,82,:复位后先执行片内程序存储器中的程序,当PC0FFFH时(4KB51子系列)或1FFFH(8KB52子系列),将自动转去执行片外程序存储器。,对8051、8751(或8052):,对于8031(8032):,因为它没有内部程序存储器。,:将强令执行片外程序存储器中程序。此时多在片外程序存储器中存放调试程序,使计算机工作在调试状态。片外程序存储器存放调试程序的部分,其编址与片内程序存储器的编址是可以重叠的,借EA的换接可实现分别访问。,执行次序:,10:22,83,1、程序存储器,(2)访问,访问方法:根据PC内容访问。,程序计数器PC(16位):存放将要执行的指令的地址。具有计数功能,每取出指令的一个字节后,其内容自行加1,指向下一字节的地址,以便依次自程序存储器取指令执行,完成某种程序。PC复位后的值为0。,图3-33PC理程序执行示意图,10:22,84,(3)七个特殊单元,0000H单元:复位单元。,0003H单元:外部中断0中断服务程序的入口地址,000BH单元:定时器/计数器0溢出中断服务程序的入口地址,00013H单元:外部中断1中断服务程序的入口地址,0001BH单元:定时器/计数器1溢出中断服务程序的入口地址,0023H单元:串行口中断服务程序的入口地址,0002BH单元:定时器/计数器2溢出中断服务程序的入口地址,10:22,85,单片机复位后程序计数器PC的内容为0000H,故必须从0000H单元开始取指令来执行程序。0000H单元是系统的起始地址,一般在该单元存放一条无条件转移指令,用户设计的程序是从转移后的地址开始存放执行的。,7个单元相互离得很近,只隔开几个单元,容纳不下稍长的程序段。所以其中实际存放的往往是一条无条件转移指令,使分别跳转到用户程序真正的起始地址或所对应的中断服务程序真正的入口地址。,说明,10:22,86,2.数据存储器,MCS-51系列单片机的数据存储器在物理上和逻辑上都分为两个地址空间:,0000H-FFFFH用数据指针DPTR寻址,10:22,87,RAM的编址,片内数据存储器,51系列的RAM编址图,片外数据存储器,10:22,88,根据使用功能不同,片内数据存储器可进一步细分为工作寄存器区、位寻址区、堆栈及数据缓冲区、特殊功能寄存器SFR(SpecialFunctionRegister)区。,10:22,89,(1)工作寄存器区内部RAM块的00H1FH区,共分4个组,每组有8个工作寄存器R0R7,共32个内部RAM单元。,10:22,90,同一时刻只有一个组工作,CPU根据程序状态字寄存器PSW中的RS0和RS1的值(由用户设定)来选择当前的工作组,如表3-8所示。,表3-8工作寄存器地址表,10:22,91,(2)位寻址区(20H2FH)位寻址区共有16字节,128位,位地址为00H7FH。CPU能直接寻址这些位,进行置1、清0、求“反”、传送和逻辑运算等位操作,这就是我们常说的80C51单片机所具有的布尔处理功能。在程序设计时,还常常将这些位用作软件标志位。,10:22,92,内部的可寻址位及位地址,10:22,93,位寻址区的存储单元既有字节地址又有位地址,因此既可作为一般存储单元进行字节寻址,也可对它们进行位寻址。位寻址区的位地址范围为00H7FH,字节地址范围是20H2FH,有地址重叠现象,进一步观察还可发现,内部RAM低128个单元的字节地址范围也为00H7FH,整个存储区的地址都是重叠的,但80C51单片机专门为位操作设置了一类指令,因此在实际应用中可以通过指令的类型来区分字节地址和位地址。,注意:,10:22,94,(3)堆栈及数据缓冲区(30H7FH)51子系列的内部RAM的堆栈及数据缓冲区共有80个单元,字节地址范围为30H7FH,52子系列的内部RAM的堆栈及数据缓冲区共有208个单元,字节地址范围为30HFFH,用于存放用户数据或作为堆栈区使用。堆栈区是存储器中一个特殊的存储区,数据按照“先进后出”或“后进先出”的方式进行存取操作。,10:22,95,特殊功能寄存器SFR(SpecialFunctionRegister)也称专用寄存器(不包括PC),主要用于管理片内和片外的功能部件,如定时器/计数器、中断系统、I/O接口等。SFR的编址从80HFFH,但是并没有128个,只有21个(51子系列)或26个(52子系列),在80H-FFH之间离散分布。,(4)特殊功能寄存器,图3-3651单片机特殊功能寄存器分布图,10:22,96,每个SFR都分配有符号名和字节地址,可对其进行直接寻址。表3-9是特殊功能寄存器一览表,其中字节地址能够被8整除的SFR(字节地址的末位是0或8H)每一位都具有位名称和位地址,能够进行位寻址。,(4)特殊功能寄存器,10:22,97,表3-1080C51单片机的特殊功能寄存器一览表,10:22,98,10:22,99,10:22,100,10:22,101,本章先介绍其中部分寄存器,其他SFR将在相关章节陆续介绍。,10:22,102,1)累加器A(Accumulator)A是8位寄存器,是最常用的寄存器。2)寄存器B寄存器B是8位寄存器,是专门为乘除法指令设计的。3)程序状态字PSW(ProgramStatusWord)程序状态字PSW是8位寄存器,用于存放程序运行的状态信息。,PSW.7PSW.0,(1)与CPU有关的特殊功能寄存器,10:22,103,(1)进位标志位Cy(PSW.7):8位加法(减法)运算时,如果运算结果的最高位D7有进位(借位),则C=1,否则C0C也为位累加器,(2)辅助进位标志位Ac(PSW.6):8位加法运算时,如果低半字节的最高位D3有进位,则AC1,否则AC0;8位减法运算时,如果D3有借位,则AC1,否则AC0。Ac在作BCD码运算时有用,PSW.7,PSW.0,(3)软件标志F0(PSW.5):是用户定义的一个状态标志。,10:22,104,(4)工作寄存器组选择位RS1、RS0(PSW.4、PSW.3):作用:用软件置位或清零,以确定四组工作寄存器中的哪一组工作。,(5)溢出标志OV(PSW.2):当执行算术运算时,由硬件置位或清零,以指示溢出状态。,(6)奇偶标志P(PSW.0):每执行一条指令,单片机都能根据A中1的个数的奇偶自动令P置位或清零:奇为1,偶为0。,PSW.7,PSW.0,RS1RS0000组(地址从00-07H)011组(地址从08-0FH)102组(地址从10-17H)113组(地址从18-1FH),10:22,105,例分析执行指令MOVA,#6EHADDA,#58H后,A、C、Ac、OV、P的内容是什么?,执行第l条指令后立即数6EH进入A,执行第2条指令将使58H与A中的6EH相加。,(A)C6H,C0、Ac1;次高位有进位、最高位无进位,OV1(和128),执行第1条指令后P1,执行第2条指令后P0。,10:22,106,4)堆栈指针SP(StackPointer),堆栈:是微机RAM中的一个特殊区域,是一组按照“先进后出”方式工作的,用于暂存信息的单元。,堆栈指针SP:指出堆栈顶部在内部RAM中的位置。(复位后为07H),设置堆栈指针:MOVSP,#data,10:22,107,例:,已知(A)=30H,(B)=40H,执行下列指令后,堆栈内容如何变化?MOVSP,#60HPUSHAPUSHB,堆栈工作示意图,;SP(SP)十1,(SP)(A),;SP(SP)十1,(SP)(B),;SP60H,(1)进栈指令或压入指令,PUSHdirect;SP(SP)十1,(SP)(direct),10:22,108,(2)出栈指令或弹出指令,POPdirect;(direct)(SP);SP(SP)-1,例:,执行下列两条弹出指令后,堆栈内容如何变化?MOVSP,#60HPUSHAPUSHBPOPAPOPB,堆栈工作示意图,;A(SP),SP(SP)-1,;B(SP),SP(SP)-1,10:22,109,5)数据指针DPTR(DataPointer)数据指针DPTR是16位的专用寄存器。高位字节寄存器用DPH(83H)表示,低位字节寄存器用DPL(82H)表示。,10:22,110,1)P0口锁存器P0(80H)P0中的数据就是P0.0P0.7上出现的数据。2)P1口锁存器P1(90H)P1中的数据就是P1.0P1.7上出现的数据。3)P2口锁存器P2(0A0H)P2中的数据就是P2.0P2.7上出现的数据。3)P3口锁存器P3(0B0H)P3中的数据就是P3.0P3.7上出现的数据。,(2)与并行口有关的特殊功能寄存器(4个),10:22,111,1)定时/计数器控制寄存器TCON(88H)TCON中包括Timer中断标志位、Timer运行控制位、外部中断触发方式控制位等。2)定时/计数器模式控制寄存器TMOD(89H)通过对TOMD的设置来控制Timer工作在定时或计数器模式,该寄存器还可对Time的工作模式进行设置。3)定时/计数器计数寄存器TL0、TL1、TH0、TH1(8A8DH)TL0与TH0组成Timer0的16位计数寄存器,TL1与TH1组成Timer1的16位计数寄存器。,(3)与定时器/计数器有关的特殊功能寄存器(6个),10:22,112,1)串行口控制寄存器SCON(98H)SCON用于设置串行口通信的模式,与串口通信有关的控制位、标志位均在SCON中。2)串口缓冲寄存器SBUF(99H)所有待发送和刚进入串口的数据都存放在此寄存器中。3)电源控制寄存器PCON(87H)PCON涉及串行通信中的波特率设定位、待机模式控制位、空闲模式控制位等。,(4)与串行口有关的特殊功能寄存器(3个),10:22,113,1)中断使能寄存器IE(A8H)IE可控制是否使能这5个中断源。2)中断优先级控制寄存器IP(B8H)可设置IP中相应的位来改变5个中断源的优先级。,(5)与中断有关的特殊功能寄存器(2个),10:22,114,3.580C51单片机的工作方式,80C51系列单片机的工作方式包括:复位方式、程序执行方式、低功耗方式等。单片机不同的工作方式,代表单片机处于不同的工作状态。单片机工作方式的多少,是衡量单片机性能的一项重要指标。,10:22,115,单片机在启动运行时,都需要先复位。复位是指通过某种方式,使单片机片内各寄存器的值变为初始状态的一种操作。当程序运行错误或由于错误操作而使单片机进入死锁状态时,也可以通过复位进行重新启动。80C51单片机在时钟电路工作以后,如果其RST端持续得到2个机器周期(24个振荡周期)以上的高电平信号,就可以完成复位操作。,3.5.1复位方式,10:22,116,80C51系列单片机的复位电路分为上电复位和手动复位两种方式。,(a)上电复位电路(b)开关复位电路图3-15复位电路,在晶振频率为11.0592MHz时,通常取C=10F,R1=10k,R2=1k。在晶振频率为6MHz时,通常取C=22F,R1=1k,R2=200。,10:22,117,表3-11单片机复位后内部各寄存器的状态,10:22,118,3.5.2程序执行方式,程序执行方式是单片机的基本工作方式,分为连续执行工作方式和单步执行工作方式。,1.连续执行工作方式单片机按照程序事先编写的任务,自动连续地执行下去。,2.单步执行工作方式这种方式主要用于用户调试程序。一般的单片机开发系统都会支持单片机单步运行程序。在单片机开发系统上有一专用的单步按键。按一次,单片机就执行一条指令(仅仅执行一条),这样就可以逐条检查程序,查看系统内部资源的当前状态,以便发现问题及时修改。,10:22,119,3.5.3低功耗方式,为了降低单片机的功耗,减少外界干扰,单片机通常都有可程序控制的低功耗工作方式,也称为省电方式。80C51系列单片机有两种低功耗方式:待机(空闲节电)方式和停机(掉电)方式。单片机的低功耗方式的选择由其内部的电源控制寄存器PCON中的相关位来控制。,电源控制寄存器PCON的控制格式,10:22,120,1.待机工作方式,当用户通过软件将PCON的IDL位置1后,系统就进入了待机工作方式。待机工作方式是在程序运行过程中,用户在CPU不执行程序时,进入的一种降低功耗的工作方式,常称为“休眠”状态。在此工作方式下,单片机的工作电流可降到正常工作方式时电流的15%左右。,在待机工作方式下,单片机的晶体振荡器继续工作,单片机内部只是把供给CPU的时钟信号切断,但时钟信号仍然继续提供给中断系统、串行口以及定时器模块。与CPU有关的SP、PC、PSW、A等的状态以及全部工作寄存器的内容被保留起来,I/O引脚状态也保持不变,ALE保持逻辑高电平。此时CPU工作暂停。,退出待机工作方式的方法有两种,一种是中断退出,一种是硬件复位退出。,10:22,121,2.掉电工作方式,当CPU执行一条置位PCON.1(PD)的指令后,系统即进入掉电工作方式。,在掉电工作方式下,单片机内部振荡器停止工作。由于没有振荡时钟,因此,单片机所有的功能部件都停止工作。但片内RAM区和特殊功能寄存器SFR的内容被保留,I/O端口的输出状态值被保存在对应的SFR中,ALE和PSEN都为低电平,此时耗电电流可降到15A以下,最小可降到6A,以最小耗电保存片内RAM的信息。,退出掉电工作方式的方法是硬件复位或中断退出。,10:22,122,3.680C51系列单片机的时序,时序是CPU在执行指

温馨提示

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

最新文档

评论

0/150

提交评论