部分单片机硬件基础知识.ppt
第二讲:单片机硬件基础本讲重点:MCS-51的基本特性;单片机的引脚与I/O口结构;存储器、堆栈与特殊功能寄存器;低功耗运行方式 最小系统设计MCS-51单片机基本特性8 8 位的位的 CPUCPU,片内有振荡器和时钟电路片内有振荡器和时钟电路,工作频率为工作频率为 1 112MHz12MHz(AtmelAtmel 89Cxx 89Cxx为为0 024MHz24MHz)片内有片内有 128/256128/256字节字节 RAMRAM片内有片内有 4K/8K4K/8K字节字节 程序存储器程序存储器ROMROM可寻址片外可寻址片外 64K64K字节字节 数据存储器数据存储器RAMRAM可寻址片外可寻址片外 64K64K字节字节 程序存储器程序存储器ROMROM片内片内 21/2621/26个个 特殊功能寄存器特殊功能寄存器(SFRSFR)4 4个个8 8位位 的并行的并行I/OI/O口口(PIOPIO)1 1个个 全双工串行口全双工串行口(SIO/UARTSIO/UART)2/32/3个个1616位位 定时器定时器/计数器计数器(TIMER/COUNTERTIMER/COUNTER)可处理可处理 5/65/6个个中断源,中断源,两级两级中断优先级中断优先级内置内置1 1个个布尔处理器布尔处理器和和1 1个个布尔累加器布尔累加器(CyCy)MCS-51MCS-51指令集含指令集含 111111条指令条指令MCS-51系列单片机配置一览表系列系列片内存储器(字节)片内存储器(字节)定时器定时器计数器计数器并行并行I/OI/O串行串行I/OI/O中中断断源源片内片内ROMROM片内片内RAMRAM无无有有ROMROM有有EPROMEPROMIntelIntelMCS-51MCS-51子系列子系列8031803180C3180C318051805180C5180C51(4K(4K字节字节)8751875187C5187C51(4K(4K字节字节)128128字节字节2x162x164x84x8位位1 15 5IntelIntelMCS-52MCS-52子系列子系列8032803280C3280C328052805280C5280C52(8K(8K字节字节)8752875287C5287C52(8K(8K字节字节)256256字节字节3x163x164x84x8位位1 16 6注意:今后将会经常提到ATMEL的AT89C2051/51/52等MCU!ATEMLATEML89C89C系列系列(常用型常用型)10511051(1K)(1K)/20512051(2K)(2K)/40514051(4K)(4K)(2020条引脚条引脚DIPDIP封装)封装)1281282 215151 15 589C5189C51(4K)(4K)/89C5289C52(8K)(8K)(4040条引脚条引脚DIPDIP封装)封装)128/128/2562562/32/332321 15/65/6.P PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PRST/VPDRST/VPDRXDRXD P PTXDTXD P PINT0INT0 P PINT1INT1 P PT0T0 P PT1T1 P PWRWR P PRDRD P PXTAL2XTAL2XTAL1XTAL1VVCCCCVVSSSSEA/VEA/VPPPPALE/PROGALE/PROGPSENPSEN1 1202021214040MCS-51MCS-51MCSMCS5151单片机的硬件结构单片机的硬件结构存储器I/O 接口CPU中断系统定时/计数器C P U时钟电路时钟电路RAM定时定时/计数器计数器并行接口并行接口串行接口串行接口中断系统中断系统 T0 T1P0 P1 P2 P3TXD RXD INT0 INT1ROMMCS51单片机的基本组成框图单片机的基本组成框图MCS-51MCS-51单片机单片机内部内部结构结构展开图展开图1288RAMRAM地址寄存器P3口P1口P2口P0口锁存器锁存器锁存器锁存器中断控制定时/计数器串行I/O口SP寄存器B累加器A暂存器1 暂存器2程序状态字PSW指令寄存器IR指令译码器ID数据指针DPTR缓冲器程序计数器PC增1程序地址寄存器AR定时与控制4K8ROMALUCPU控制信号控制信号 CPUCPU+1单片机的引脚定义从一片集成电路的角度去认识单片机认识单片机的引脚MCS-51MCS-51单片机单片机4040脚脚VccVcc,GNDGND 2 2XTAL1XTAL1,XTAL2XTAL2 2 2RESETRESET 1 1EAEA/Vpp /Vpp 1 1ALEALE/PROG /PROG 1 1PSENPSEN 1 1P0.7 P0.7 8 8P1.7 P1.7 8 8P2.7 P2.7 8 8P3.7 P3.7 8 8单片机的引脚(电源端)lVcc,GNDVcc,GND:正电源端与接地端正电源端与接地端(+5V/3.3V/2.7V)+5V/3.3V/2.7V)不同的单片机可以允许不同不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不的工作电压,不同的单片机表现出的功耗也不同。同。单片机的引脚(晶振端)lVcc,GND:Vcc,GND:正电源端与接地端正电源端与接地端(+5V/3.3V/2.7V)+5V/3.3V/2.7V)不同的单片机可以允许不同不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不的工作电压,不同的单片机表现出的功耗也不同。同。XTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入片内振荡电路输入/输出端输出端单片机的引脚(晶振端)lVcc,GND:Vcc,GND:正电源端与接地端正电源端与接地端 (+5V/3.3V/2.7V)(+5V/3.3V/2.7V)lXTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入片内振荡电路输入/输出端输出端151545pf45pfx2x21 112MHz12MHz(MCS-51MCS-51)0 024MHz24MHz(Atmel-89CAtmel-89C)XTAL1XTAL1XTAL2XTAL2也可以由也可以由 XTAL1XTAL1端接入外部时钟,端接入外部时钟,此时应将此时应将 XTAL2XTAL2接地:接地:XTAL2XTAL2XTAL1XTAL1外部时钟外部时钟通常通常外接外接一个晶振一个晶振两个电容两个电容单片机的引脚(晶振端)lVcc,GND:Vcc,GND:正电源端与接地端(正电源端与接地端(+5V/3.3V/2.7V)+5V/3.3V/2.7V)lXTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入、输出端片内振荡电路输入、输出端CPUCPU总是按照一定的时钟节拍与时序工作:总是按照一定的时钟节拍与时序工作:振荡周期振荡周期/时钟周期:时钟周期:TcTc=晶振频率晶振频率foscfosc(或外加频率)的倒数(或外加频率)的倒数状态周期:状态周期:TsTs=2 2个时钟周期个时钟周期(TcTc)(很少用到此概念)(很少用到此概念)机器周期:机器周期:TmTm=6 6个状态周期个状态周期(TsTs)=)=1212个振荡周期个振荡周期(TcTc)指令周期指令周期:Ti:Ti:执行一条指令所需的机器周期执行一条指令所需的机器周期(TmTm)数数牢牢记住牢牢记住:振荡周期振荡周期 =晶振频率晶振频率foscfosc的倒数;的倒数;1 1个机器周期个机器周期 =12=12个振荡周期;个振荡周期;1 1个指令周期个指令周期 =1=1、2 2、4 4个机器周期个机器周期单片机的引脚(复位端)lVcc,GND:Vcc,GND:电源端电源端 (+5V/3.3V/2.7V)+5V/3.3V/2.7V)lXTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入、输出端片内振荡电路输入、输出端lRESET:RESET:复位端(正脉冲有效,宽度复位端(正脉冲有效,宽度 8 8 mSmS)复位使单片机进入某种确定的复位使单片机进入某种确定的初始状态初始状态:PCPC值归零(值归零(0000H0000H););各个各个SFRSFR被赋予初始值(见):被赋予初始值(见):P0P0P3=0FFHP3=0FFH,Acc=0Acc=0,B=0B=0,TH0=0TH0=0,TL0=0TL0=0,TH1=0TH1=0,TL0=0TL0=0,SP=7SP=7,PSW=0 PSW=0 退出处于节电工作方式的停顿状态、退出一切退出处于节电工作方式的停顿状态、退出一切程序进程、退出程序的死循环,程序进程、退出程序的死循环,从头开始从头开始。单片机的引脚(复位端)lVcc,GND:Vcc,GND:电源端电源端 (+5V/3.3V/2.7V)+5V/3.3V/2.7V)lXTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入、输出端片内振荡电路输入、输出端lRESET:RESET:复位端(正脉冲有效,宽度复位端(正脉冲有效,宽度 8 8 mSmS)PC与SFR复位状态表寄存器寄存器复位状态复位状态寄存器寄存器复位状态复位状态PCPC0000H0000HTCONTCON00H00HA A00H00HT2CONT2CON00H00HB B00H00HTH0TH000H00HPSWPSW00H00HTL0TL000H00HSPSP07H07HTH1TH100H00HDPTRDPTR0000H0000HTL1TL100H00HP0P3P0P3FFHFFHSCONSCON00H00HIPIPXX000000BXX000000BSBUFSBUFXXHXXHIEIE0X000000B0X000000BPCONPCON0XXX0000B0XXX0000BTMODTMOD00H00H单片机的引脚(复位端)+5V10uF10KVccRSTGND上电复位上电复位10uF10KVccRSTGND手动手动&上电复位上电复位1KlVcc,GND:Vcc,GND:电源端电源端 (+5V/3.3V/2.7V)+5V/3.3V/2.7V)lXTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入、输出端片内振荡电路输入、输出端lRESET:RESET:复位端复位端 (正脉冲有效,宽度(正脉冲有效,宽度 8 8 mSmS)+5V单片机的引脚(EA端)lVcc,GND:Vcc,GND:电源端电源端 (+5V/3.3V/2.7V)+5V/3.3V/2.7V)lXTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入、输出端片内振荡电路输入、输出端lRESET:RESET:复位端复位端 (正脉冲有效,宽度(正脉冲有效,宽度 8 8 mSmS)lEA/EA/VppVpp:寻址外部寻址外部ROMROM控制端控制端/编程电源输入端。编程电源输入端。低有效低有效,片内,片内无无ROMROM时时必须必须接地接地;片内片内有有ROMROM时时应当应当接高电平接高电平;对片内对片内ROMROM编程时编程正电源加到此端。编程时编程正电源加到此端。单片机的引脚(ALE端)lVcc,GND:Vcc,GND:电源端电源端 (+5V/3.3V/2.7V)+5V/3.3V/2.7V)lXTAL1,XTAL2:XTAL1,XTAL2:片内振荡电路输入、输出端片内振荡电路输入、输出端lRESET:RESET:复位端复位端 (正脉冲有效,宽度(正脉冲有效,宽度 8 8 mSmS)lEA/EA/VppVpp:寻址外部寻址外部ROMROM控制端控制端/编程电源输入端。编程电源输入端。lALE/PROG:ALE/PROG:地址锁存允许地址锁存允许/编程脉冲输入端。编程脉冲输入端。P0P0口寻址外部低口寻址外部低8 8位地址位地址时时接外部锁存器接外部锁存器 G G端;端;ALEALE端端平时会输出周期正脉冲平时会输出周期正脉冲:f f fosc/6fosc/6 ;对片内对片内ROMROM编程时编程脉冲由此端加入。编程时编程脉冲由此端加入。单片机的引脚(PSEN端)lPSENPSEN:寻址外部程序存储器时选通外部寻址外部程序存储器时选通外部EPROMEPROM的的 读控制端读控制端(OEOE)低有效。低有效。单片机单片机锁存器锁存器74LS373ALEPSEN8D8QOEA8-A12A0-A7D0-D7GEAOECEEPROM单片机的引脚(PSEN端)lPSENPSEN:寻址外部程序存储器时选通外部寻址外部程序存储器时选通外部EPROMEPROM的的 读控制端读控制端(OEOE)低有效。低有效。单片机的I/O引脚结构众多功能各异的I/O引脚源于它结构的不同单片机的引脚(P1口)lP1.7:P1.7:准双向准双向I/OI/O口口(内置内置了上拉电阻)了上拉电阻)输出时一切照常,输出时一切照常,仅在作仅在作输入口输入口用时要先对其用时要先对其 写写“1 1”。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线Vcc引脚引脚内部上拉电阻内部上拉电阻21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线Vcc引脚引脚内部上拉电阻内部上拉电阻输输出出数据数据=1 时时110截截止止=1单片机的引脚(P1口)lP1.7:P1.7:准双向准双向I/OI/O口口(内置内置了上拉电阻)了上拉电阻)输出时一切照常,输出时一切照常,仅在作仅在作输入口输入口用时要先对其用时要先对其 写写“1 1”。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线Vcc引脚引脚内部上拉电阻内部上拉电阻输输出出数据数据=0 时时001=0导导通通单片机的引脚(P1口)lP1.7:P1.7:准双向准双向I/OI/O口(口(内置内置了上拉电阻了上拉电阻)输出时一切照常,输出时一切照常,仅在作仅在作输入口输入口用时要先对其用时要先对其 写写“1 1”。21DQCK/Q读引脚读引脚 读锁存器读锁存器写锁写锁存器存器内部内部总线总线Vcc引脚引脚内部上拉电阻内部上拉电阻输输入入数据时,要先对其写数据时,要先对其写“1”110截截止止单片机的引脚单片机的引脚(P1P1口)口)lP1.7:P1.7:准双向准双向I/OI/O口(口(内置内置了上拉电阻了上拉电阻)输出时一切照常,输出时一切照常,仅在作仅在作输入口输入口用时要先对其用时要先对其 写写“1 1”。简单测控实例原理图作输入端口光路通畅,光路通畅,R亮亮 2K 光路阻断,光路阻断,R暗暗 400K JOB3:CLR P1.1 ;亮绿灯REDO:作输入口必先置1CHECK:JNB P1.3,CHECK;检测通道是否被阻断?LOOP:;有入侵者,报警!AJMP REDO ;再跳回去检测任务三:红外防盗报警口用于输入状态检测的语句:红外线光路通畅时,端低电平红外线光路阻断时,端高电平单片机的引脚(P0口)lP0.7:P0.7:双向双向I/O I/O(内置(内置场效应管场效应管上拉)上拉)寻址外部程序存储器时寻址外部程序存储器时分时分时作为作为双向双向8 8位数据口位数据口和和输出低输出低8 8位地址位地址复用口复用口;不接外部程序存储器不接外部程序存储器时可时可作为作为8 8位位准双向准双向I/OI/O口口使用。使用。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址地址/数据数据 控制控制引脚引脚34VccMOV P0,#0FFH;作作I/O总线用;总线用;MOVX DPTR,A;作地址作地址/数据总线用。数据总线用。21DQCK/Q读引脚读引脚 读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址地址/数据数据 控制控制引脚引脚34控制控制=0 时时,此脚作,此脚作输入口输入口(事先必须对它写(事先必须对它写“1”)00100截截止止截截止止=0Vcc单片机的引脚(P0口)lP0.7:P0.7:双向双向I/O I/O(内置(内置场效应管场效应管上拉)上拉)寻址外部程序存储器寻址外部程序存储器时分时作为时分时作为双向双向8 8位数据口位数据口和和输出低输出低8 8位地址位地址复用口;不接外部程序存储器复用口;不接外部程序存储器时可作为时可作为8 8位位准双向准双向I/OI/O口口使用。使用。21DQCK/Q读引脚读引脚 读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址地址/数据数据 控制控制=1引脚引脚34控制控制=1时,此脚作地址时,此脚作地址/数据数据复用口复用口:(1)输出地址输出地址/数据数据=0 时时1011=0导导通通截截止止=0Vcc单片机的引脚(P0口)lP0.7:P0.7:双向双向I/O I/O(内置(内置场效应管场效应管上拉)上拉)寻址外部程序存储器时分时作为寻址外部程序存储器时分时作为双向双向8 8位数据口位数据口和和输出低输出低8 8位地址位地址复用口;不接外部程序存储器复用口;不接外部程序存储器时可作为时可作为8 8位位准双向准双向I/OI/O口口使用。使用。21DQCK/Q读引脚读引脚 读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址地址/数据数据 控制控制=1引脚引脚34控制控制=1时,此脚作地址时,此脚作地址/数据数据复用口复用口:(2)输出地址输出地址/数据数据=1 时时1100=1截截止止导导通通=1Vcc单片机的引脚(P0口)lP0.7:P0.7:双向双向I/O I/O(内置(内置场效应管场效应管上拉)上拉)寻址外部程序存储器时分时作为寻址外部程序存储器时分时作为双向双向8 8位数据口位数据口和和输出低输出低8 8位地址位地址复用口;不接外部程序存储器复用口;不接外部程序存储器时可作为时可作为8 8位位准双向准双向I/OI/O口口使用。使用。单片机的引脚(P2口)lP2.7:P2.7:双向双向I/O I/O(内置了上拉电阻)(内置了上拉电阻)寻址外部程序存储器时寻址外部程序存储器时输出高输出高8 8位地址位地址;不接外不接外部程序存储器时可部程序存储器时可作为作为8 8位位准双向准双向I/OI/O口口使用。使用。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址高地址高8位位 控制控制引脚引脚 3内部上拉电阻内部上拉电阻Vcc21DQCK/Q读引脚读引脚 读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址高地址高8位位 控制控制 引脚引脚控制控制=0时,此脚作通用时,此脚作通用输出口输出口:输出输出=1时时110截截止止3内部上拉电阻内部上拉电阻11Vcc=1=0单片机的引脚(P2口)lP2.7:P2.7:双向双向I/O I/O(内置了上拉电阻)(内置了上拉电阻)寻址外部程序存储器时寻址外部程序存储器时输出高输出高8 8位地址位地址;不接外;不接外部程序存储器时可作为部程序存储器时可作为8 8位位准双向准双向I/OI/O口口使用。使用。21DQCK/Q读引脚读引脚 读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址高地址高8位位 控制控制 引脚引脚控制控制=0时,此脚作通用时,此脚作通用输出口输出口:输出输出=0时时001导导通通3内部上拉电阻内部上拉电阻00Vcc=0=0单片机的引脚单片机的引脚(P2P2口)口)lP2.7:P2.7:双向双向I/O I/O(内置了上拉电阻)(内置了上拉电阻)寻址外部程序存储器时寻址外部程序存储器时输出高输出高8 8位地址位地址;不接外;不接外部程序存储器时可作为部程序存储器时可作为8 8位位准双向准双向I/OI/O口口使用。使用。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址高地址高8位位 控制控制=1 引脚引脚控制控制=1 时,此脚作时,此脚作高高8位地址位地址A8A15输出口:输出口:当当输出输出=1 时时10截截止止3内部上拉电阻内部上拉电阻1=1Vcc=1单片机的引脚(P2口)lP2.7:P2.7:双向双向I/O I/O(内置了上拉电阻)(内置了上拉电阻)寻址外部程序存储器时寻址外部程序存储器时输出高输出高8 8位地址位地址;不接外;不接外部程序存储器时可作为部程序存储器时可作为8 8位位准双向准双向I/OI/O口口使用。使用。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线地址高地址高8位位 控制控制=1 引脚引脚01导导通通3内部上拉电阻内部上拉电阻0=0Vcc=0控制控制=1 时,此脚作时,此脚作高高8位地址位地址A8A15输出口:输出口:当当输出输出=0 时时单片机的引脚单片机的引脚(P2P2口)口)lP2.7:P2.7:双向双向I/O I/O(内置了上拉电阻)(内置了上拉电阻)寻址外部程序存储器时寻址外部程序存储器时输出高输出高8 8位地址位地址;不接外;不接外部程序存储器时可作为部程序存储器时可作为8 8位位准双向准双向I/OI/O口口使用。使用。单片机的引脚(P3口)lP3.7:P3.7:双功能口双功能口(内置了上拉电阻)(内置了上拉电阻)它它具有特定的第二功能具有特定的第二功能。在不使用它的第二功。在不使用它的第二功能时它就是普通的能时它就是普通的通用准双向通用准双向I/OI/O口口。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线第二功能输出第二功能输出引脚引脚 3内部上拉电阻内部上拉电阻Vcc第二功能输入第二功能输入421DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线第二功能输出第二功能输出(WRWR,RDRD,TxDTxD)引脚引脚 3内部上拉电阻内部上拉电阻Vcc4第二功能输出时,内部自动第二功能输出时,内部自动 D=1D=1111反相器反相器单片机的引脚(P3口)lP3.7:P3.7:双功能口双功能口(内置了上拉电阻)(内置了上拉电阻)它它具有特定的第二功能具有特定的第二功能。在不使用它的第二功。在不使用它的第二功能时它就是普通的能时它就是普通的通用准双向通用准双向I/OI/O口口。21DQCK/Q读引脚读引脚读锁存器读锁存器写锁写锁存器存器内部内部总线总线此端自动此端自动1 1引脚引脚 3内部上拉电阻内部上拉电阻Vcc 第二功能输入第二功能输入(RxDRxD,T0T0,T1T1,INT0INT0,INT1INT1)4第二功能输入时,信号经第二功能输入时,信号经缓冲器缓冲器4 4 直接进入内总线直接进入内总线1 11 11 10 0截截止止单片机的引脚(P3口)lP3.7:P3.7:双功能口双功能口(内置了上拉电阻)(内置了上拉电阻)它它具有特定的第二功能具有特定的第二功能。在不使用它的第二功。在不使用它的第二功能时它就是普通的能时它就是普通的通用准双向通用准双向I/OI/O口口。P3口第二功能表(P.31 表23)引引引引 脚脚脚脚第第第第 二二二二 功功功功 能能能能 P3.0P3.0P3.0P3.0RxD:RxD:RxD:RxD:串行口接收数据串行口接收数据串行口接收数据串行口接收数据输输入端入端入端入端P3.1P3.1P3.1P3.1TxD:TxD:TxD:TxD:串行口串行口串行口串行口发发送数据送数据送数据送数据输输出端出端出端出端P3.2P3.2P3.2P3.2INT0:INT0:INT0:INT0:外部中断申外部中断申外部中断申外部中断申请输请输入端入端入端入端 0 0 0 0P3.3P3.3P3.3P3.3INT1:INT1:INT1:INT1:外部中断申外部中断申外部中断申外部中断申请输请输入端入端入端入端 1 1 1 1P3.4P3.4P3.4P3.4T0:T0:T0:T0:外部外部外部外部计计数脉冲数脉冲数脉冲数脉冲输输入端入端入端入端 0 0 0 0P3.5P3.5P3.5P3.5T1:T1:T1:T1:外部外部外部外部计计数脉冲数脉冲数脉冲数脉冲输输入端入端入端入端 1 1 1 1P3.6P3.6P3.6P3.6WR:WR:WR:WR:写外写外写外写外设设控制信号控制信号控制信号控制信号输输出端出端出端出端P3.7P3.7P3.7P3.7RD:RD:RD:RD:读读外外外外设设控制信号控制信号控制信号控制信号输输出端出端出端出端51单片机的8个特殊引脚lVcc,GNDVcc,GND:电源端电源端lXTAL1,XTAL2XTAL1,XTAL2:片内振荡电路输入、输出端片内振荡电路输入、输出端lRESETRESET:复位端复位端 正脉冲有效(正脉冲有效(宽度宽度 8 8 mSmS)lEAEA/VppVpp:寻址外部寻址外部ROMROM控制端控制端。低有效。低有效 片内有片内有ROMROM时应当接高电平。时应当接高电平。lALEALE/PROG/PROG:地址锁存允许地址锁存允许控制端控制端。lPSENPSEN:选通外部:选通外部ROMROM的读的读(OE)(OE)控制端控制端。低有效低有效 小结小结51单片机的4个8位的I/O口P0.7:P0.7:8 8位数据口位数据口和和输出低输出低8 8位地址位地址复用口复用口 (复用时是复用时是双向口双向口;不复用时也是;不复用时也是准双向口准双向口)P1.7:P1.7:通用通用I/OI/O口口(准双向口)(准双向口)P2.7:P2.7:输出高输出高8 8位地址位地址(用于寻址时是(用于寻址时是输出口;输出口;不寻址时是不寻址时是准双向口准双向口)P3.7:P3.7:具有特定的第二功能具有特定的第二功能(准双向口)(准双向口)注意:注意:在不外扩在不外扩ROM/RAMROM/RAM时,时,P0P0P3P3均可作通用均可作通用I/OI/O口使用,而且口使用,而且都是都是准双向准双向I/OI/O口口(例如例如:AT89C51AT89C51)!小结小结存储器、堆栈、SFR数据存储器数据存储器RAMRAM(Random Access MemoryRandom Access Memory)程序存储器程序存储器ROMROM(Read Only MemoryRead Only Memory)闪速存储器闪速存储器Flash MemoryFlash MemoryEPROMEPROM(UVUV)ErazibleErazible Programmable ROM Programmable ROMEEPROM/EEEPROM/E2 2PROMPROMElectrical Erasable Electrical Erasable Programmable ROM Programmable ROM静态存储器静态存储器 SRAMSRAMStatic RAMStatic RAM (动态存储器(动态存储器 DRAMDRAMDynamic RAMDynamic RAM)按字节寻址:每个字节按字节寻址:每个字节(8(8个位个位)占一个地址占一个地址按位寻址:有的存储器每一个位就有一个地址按位寻址:有的存储器每一个位就有一个地址单片机的存储器几个有关的概念:89C51单片机存储器配置l片内片内RAMRAM 128 128字节(字节(00H00H7FH7FH););片内片内RAMRAM前前3232个单元是工作寄存器区个单元是工作寄存器区(00H(00H1FH)1FH)片内片内RAMRAM有有128128个可按位寻址的位,占个可按位寻址的位,占1616个单元。个单元。位地址编号为:位地址编号为:00H00H7FH7FH,分布在,分布在20H20H2FH2FH单元单元l片内片内2121个特殊功能寄存器个特殊功能寄存器(SFRSFR)中:地址号能被中:地址号能被 8 8整除的整除的 SFRSFR中的各位中的各位也可也可按位寻址按位寻址l可寻址片外可寻址片外RAMRAM 64K 64K字节字节 (0000H0000HFFFFHFFFFH)l可寻址片外可寻址片外ROMROM 64K 64K字节字节 (0000H0000HFFFFHFFFFH)l片内片内 Flash Flash ROMROM 4K 4K字节字节 (000H000HFFFHFFFH)存储器配置(片内RAM)l片内片内RAMRAM 128128字节字节(00H00H7FH7FH)00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区SFR分布在分布在80H-FFH其中其中92个位个位可位寻址可位寻址80H80HFFHFFH所有的所有的RAMRAM区区(包括包括位位寻址区、工作寄存器寻址区、工作寄存器区)都可以用于存放区)都可以用于存放数据,故也称为数据,故也称为数据数据缓存寄存器缓存寄存器89C51 128128字节字节l片内片内RAMRAM前前3232个单元是个单元是工作寄存器区工作寄存器区 (00H(00H1FH)1FH)00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区存储器配置(片内RAM)00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区工作寄存器区3工作寄存器区工作寄存器区2工作寄存器区工作寄存器区1工工作作寄寄存存器器区区00FH10H17H18Hl片内片内RAMRAM前前3232个单元是个单元是工作寄存器区工作寄存器区 (00H(00H1FH)1FH)存储器配置(片内RAM)00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区l片内片内RAMRAM中有中有128128个可按位寻址的位。个可按位寻址的位。位地址位地址:00H00H7FH 7FH 分布在分布在:20H20H2FH2FH单元单元存储器配置(片内RAM)00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区27H22H21H20H26H24H25H23H28H2FH单元地址单元地址07 06 05 04 03 02 01 000F 0E 0D 0C 0B 0A 09 0817 16 15 14 13 12 11 101F 1E 1D 1C 1B 1A 19 1827 26 25 24 23 22 21 202F 2E 2D 2C 2B 2A 29 2837 36 35 34 33 32 31 303F 3E 3D 3C 3B 3A 39 3847 46 45 44 43 42 41 407F 7E 7D 7C 7B 7A 79 78位地址位地址总共总共128个可个可按位按位寻址寻址的位的位l片内片内RAMRAM中有中有128128个可按位寻址的位。个可按位寻址的位。位地址位地址:00H00H7FH 7FH 分布在分布在:20H20H2FH2FH单元单元存储器配置(片内RAM)l可寻址片外可寻址片外RAM 64KRAM 64K字节字节 (0000H0000HFFFFHFFFFH););l可寻址片外可寻址片外ROM 64KROM 64K字节字节 (0000H0000HFFFFHFFFFH););l片内片内 Flash ROM 4KFlash ROM 4K字节字节 (000H000H FFFH FFFH););FFFFH0000H可寻址可寻址片外片外RAMRAM 64K字节字节FFFFH0000H可寻址可寻址片外片外ROMROM 64K字节字节FFFH000H可寻址可寻址片内片内 Flash Flash ROMROM4K 字节字节89C5189C517FH00H片内片内 RAMRAM 128字节字节FFH80H存储器配置(片内RAM)堆栈:在在片内片内RAMRAM中,常常要指定一个专门的区域来中,常常要指定一个专门的区域来存放某些存放某些特别的特别的数据数据,它遵循它遵循顺序存取顺序存取和和后进后进先出先出(LIFO/FILO(LIFO/FILO)的原则的原则,这个这个RAMRAM区区叫叫堆栈堆栈。功用功用:1 1)子程序调用)子程序调用和和中断服务中断服务时时CPUCPU自动将当前自动将当前PCPC 值值压栈保存,返回时自动将压栈保存,返回时自动将PCPC值弹栈。值弹栈。2 2)保护现场)保护现场/恢复现场恢复现场3 3)数据传输)数据传输00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区 SP栈顶栈顶下一个进栈的下一个进栈的数据将存在此数据将存在此数据数据进栈进栈已经进栈的数已经进栈的数据存放在此据存放在此初始初始 SP复位后复位后 SP=07HSP=07H,数据进栈时:数据进栈时:首先首先SP+1SP+1指向指向08H08H单元,第一个放进堆栈单元,第一个放进堆栈的数据将放进的数据将放进08H08H单元,然后单元,然后SPSP再自再自动增动增 1 1,仍指着栈顶,仍指着栈顶堆栈区由特殊功能寄存器堆栈区由特殊功能寄存器堆栈指针堆栈指针SPSP管理管理 堆栈区可以安排在堆栈区可以安排在 RAMRAM区任意位置,一般不安排在区任意位置,一般不安排在工作寄存器区和可按位寻址的工作寄存器区和可按位寻址的RAMRAM区,通常区,通常放在放在RAMRAM区的区的靠后靠后的位置。的位置。从堆栈取出数据时从堆栈取出数据时:取出的数据是取出的数据是最近放进去的一个数据,也就是当最近放进去的一个数据,也就是当前栈顶的数据。然后前栈顶的数据。然后SPSP再自动减再自动减1 1,仍指着栈顶,仍指着栈顶00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区 SP栈顶栈顶当前要出栈的数据当前要出栈的数据数据数据出栈出栈SP-1指向下一个指向下一个将要出栈的数据将要出栈的数据初始初始 SP堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在堆栈区可以安排在 RAMRAM区任意位置,一般不安排在区任意位置,一般不安排在工作寄存器区和可按位寻址的工作寄存器区和可按位寻址的RAMRAM区,通常区,通常放在放在RAMRAM区的区的靠后靠后的位置。的位置。从堆栈取出数据时从堆栈取出数据时:取出的数据是取出的数据是最近放进去的一个数据,也就是当最近放进去的一个数据,也就是当前栈顶的数据。然后前栈顶的数据。然后SPSP再自动减再自动减1 1,仍指着栈顶,仍指着栈顶00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区SP-1 指向新的栈指向新的栈顶顶,也就是下一个也就是下一个将要出栈的数据将要出栈的数据数据数据出栈出栈初始初始 SP堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在堆栈区可以安排在 RAMRAM区任意位置,一般不安排在区任意位置,一般不安排在工作寄存器区和可按位寻址的工作寄存器区和可按位寻址的RAMRAM区,通常区,通常放在放在RAMRAM区的区的靠后靠后的位置。的位置。89C51特殊功能寄存器(SFR)特殊功能寄存器特殊功能寄存器SFRSFR(专用寄存器)(专用寄存器)专用于专用于控制、选择、管理、存放控制、选择、管理、存放单片机内部各部分单片机内部各部分的工