版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及
接口技术汽车与交通工程学院Email:chenlinlin@主讲:陈林林第二章:单片机硬件组成本章重点:
MCS-51的基本组成(内部资源)
I/O口结构存储器、堆栈与特殊功能寄存器单片机的基本工作方式以及单片机的基本时序单片机的引脚通过本章的学习,应该对单片机的整体结构和工作原理有全面的了解,上述内容是学习和使用单片机指令系统以及设计单片机控制系统的基础。MCS-51单片机不同的具体型号,可能在以下方面有所不同片内数据存储器容量不同片内程序存储器容量和器件类型不同定时器数量不同串口数量不同回顾MCS-51系列单片机配置一览表系列片内存储器(字节)定时器计数器并行I/O串行I/O中断源片内ROM片内RAM无有ROM有EPROMIntelMCS-51子系列803180C31805180C51(4K字节)875187C51(4K字节)128字节2x164x8位15IntelMCS-52子系列803280C32805280C52(8K字节)875287C52(8K字节)256字节3x164x8位16注意:今后将会经常提到ATMEL的AT89C2051/51/52等MCU!ATEML89C系列(常用型)1051(1K)/2051(2K)/4051(4K)(20条引脚DIP封装)1282151589C51(4K)/89C52(8K)(40条引脚DIP封装)128/2562/33215/6MCS-51的基本组成MCS-51单片机内部资源8位的CPU,片内有振荡器和时钟电路,工作频率为
1~12MHz(Atmel89Cxx为0~24MHz)片内有
128/256字节
RAM片内有
0K/4K/8K字节程序存储器ROM可寻址片外
64K字节
数据存储器RAM可寻址片外
64K字节
程序存储器ROM片内
21/26个
特殊功能寄存器(SFR)4个8位
的并行I/O口(PIO)1个
全双工串行口(SIO/UART)2/3个16位定时器/计数器(TIMER/COUNTER)可处理
5/6个中断源,两级中断优先级内置1个布尔处理器和1个布尔累加器(Cy)MCS-51指令集含
111条指令MCS-51单片机的内部组成MCS-51单片机的P0、P2和P3并行接口在CPU控制下,可构成地址、数据和控制总线,用于外部设备扩展,MCS-51单片机可以扩展:片外数据存储器单元和I/O接口地址共64KB64KB片外程序存储器
MCS-51单片机的中央处理器单片机的CPU字长为8位,即对数据的处理、传输均按8位二进制数(一个字节)进行MCS-51系列单片机是8位机MCS-51系列单片机的CPU由运算器、控制器及相应的专用寄存器组成运算器运算器以算术/逻辑部件(ALU-具有加、减、逻辑运算和移位功能)为核心,加上累加器ACC、暂存寄存器、程序状态字寄存器PSW以及布尔处理器、BCD码运算调整电路等构成。运算器的功能包括:算术运算逻辑运算位操作控制器控制器是CPU的指挥调度中枢,它包括:定时控制逻辑指令寄存器指令译码器数据指针DPTR程序计数器PC堆栈指针SP地址寄存器地址缓冲器等运行时控制器对指令进行译码,然后通过定时和控制电路在规定时刻发出所需的内、外部控制信号,协调各部分的工作,完成指令规定的操作。
MCS-51控制器示意图程序计数器PC(ProgramCounter)为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器程序计数器PC是16位的寄存器,用来存放即将要执行的指令地址,当CPU按照PC指示的地址取出一条指令后,PC值将自动增加,指向下一条指令的首字节地址在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。程序计数器PC(ProgramCounter)数据指针DPTR(DATAPOINTER)数据指针DPTR是一个16位专用寄存器,由两个八位寄存器DPH和DPL组成。DPH为高八位字节,DPL为低八位字节。DPTR主要用来保存16位地址,当对64KB外部数据存储器空间寻址时,可作为间接寄存器使用。在访问程序存储器时,DPTR可作为基址寄存器。
DPTR是一个16位的寄存器,所以寻址范围是0-64K。那么就可以通过它来间接寻址访问内部或外部的存储器(不管是程序存储器,还是数据储存器)。
堆栈指针SP在片内RAM128B中开辟栈区,并随时跟踪栈顶地址它是按“先进后出”的原则存取数据。开机复位后,初始地址为07H主要用来保存临时数据,局部变量和中断/子程序的返回地址(保护现场/恢复现场)堆栈指针总是指向栈顶。所以数据入栈的时候,堆栈指针先加1,再压栈。出栈的时候先弹出数据,堆栈指针再减1。
堆栈指针SP指令寄存器指令寄存器用来存放指令代码CPU执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经指令译码器译码后由定时与控制电路发出相应的控制信号,完成指令功能单片机的I/O引脚结构众多功能各异的I/O引脚源于它结构的不同由软件控制写1时高电平,三极管导通写0时低电平,三极管断开当三极管截止时输出电压?输出输入当开关断开时输出电压?输出1时开关断开0时开关接通集电极oc开路(漏极开路od)输出结构当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很小的负载)到地,那么输出端的电平就被负载拉到低电平,所以这个电路是不能输出高电平。补充当开关断开时输出电压?输出1时开关断开0时开关接通输出+5V1Kohm上拉电阻如果开关闭合,则有电流从1k电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论,实际情况中开关电阻不为0,另外对于三极管还存在饱和压降),所以在开关上的电压为0,即输出电平为0。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的漏电流),所以流过的电流为0,因此在1k电阻上的压降也为0,所以输出端的电压就是5v,这样就能输出高电平。输出+5V1Kohm上拉电阻但是这个输出的内阻是比较大的(即1kohm),如果接一个电阻为r的负载,通过分压计算,就可以算得最后的输出电压为5*r/(r+1000)伏,即5/(1+1000/r)伏。所以,如果要达到一定的电压的话,r就不能太小。如果r真的太小,而导致输出电压不够的话,那我们只有通过减小那个1k的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值,另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。输出+5V1Kohm上拉电阻上拉电阻阻值的选择原则包括:从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。从确保足够的驱动电流考虑应当足够小;电阻小,电流大。对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理。上拉就是将不确定的信号通过一个电阻钳位在高电平!电阻同时起限流作用!下拉同理!上拉是对器件注入电流,下拉是输出电流。如果电平用OC(集电极开路,TTL)或OD(漏极开路,CMOS)输出,那么不用上拉电阻是不能工作的,这个很容易理解,管子没有电源就不能输出高电平。如果输出电流比较大,输出的电平就会降低(电路中已经有了一个上拉电阻,但是电阻太大,压降太高),就可以用上拉电阻提供电流分量,把电平“拉高”。(就是并一个电阻在IC内部的上拉电阻上,让它的压降小一点)。当然管子按需要该工作在线性范围的上拉电阻不能太小。当然也会用这个方式来实现门电路电平的匹配。单片机的引脚(P0口)P0.0—P0.7:双向I/O(内置场效应管上拉)
寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制引脚P0.X34Vcc多路转换开关T1T23态缓冲器控制=0时,此脚作I/O口(作输出口时,输出高电平需要外接上拉电阻;作输入口时事先必须对它写“1”使T2截止。)21DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制引脚P0.X3400100截止截止=0Vcc单片机的引脚(P0口)P0.0—P0.7:双向I/O(内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制引脚P0.X3400100截止截止=0Vcc需要注意的是,P0口某位作输入前如果曾经输出过“0”,则T2处于导通状态,会将外部的高电平信号钳位为“0”,不能读入“1”状态。因此,作输入口时事先必须对它写“1”使T2截止,保证输出正确。这种要作输入必须先输出某一状态,而不能无条件任意改变输入/输出功能的“双向”口称为准双向口。输出+5V1Kohm单片机P0.X
除了读取外部信号的状态,CPU有时还需要将以前的输出状态读回来,以决定下一步的操作。如输出方波。
如果直接读引脚有可能会因输出的高电平被外部电路拉成低电平而引起误操作。MCS-51设置了读锁存器功能,即通过“读锁存器”信号,将锁存器Q端的状态读回CPU进行判别。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(1)输出地址/数据=0
时1011=0导通截止=0Vcc单片机的引脚(P0口)P0.0—P0.7:双向I/O(内置场效应管上拉)
寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(2)输出地址/数据=1
时1100=1截止导通=1Vcc单片机的引脚(P0口)P0.0—P0.7:双向I/O(内置场效应管上拉)
寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(2)输出地址/数据=1
时1100=1截止导通=1Vcc注意:P0口内部不用上拉电阻,而将T1、T2两个场效应管设计成拉推输出电路,是为了P0口在作地址/数据信息输出时具有较强的输出驱动能力。单片机的引脚(P0口)P0.0—P0.7:双向I/O(内置场效应管上拉)
寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(3)输入输出数据时,输入输出指令将使引脚与内部总线直通Vcc截止21DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(3)输入输出数据时,输入输出指令将使引脚与内部总线直通Vcc截止注意:P0口作为数据线时,在读入数据前CPU会自动向锁存器写1,截止场效应管T2,这种情况下,P0口是一个真正的双向口。单片机的引脚(P1口)P1.0—P1.7:准双向I/O口(内置了上拉电阻)
输出时一切照常,仅在作输入口用时要先对其写“1”。21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻输出数据=1时110截止=1单片机的引脚(P1口)P1.0—P1.7:准双向I/O口(内置了上拉电阻)
输出时一切照常,仅在作输入口用时要先对其写“1”。21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻输出数据=0时001=0导通单片机的引脚(P1口)P1.0—P1.7:准双向I/O口(内置了上拉电阻)
输出时一切照常,仅在作输入口用时要先对其写“1”。输入数据时,要先对其写“1”21DQCK/Q读引脚=1读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻110截止单片机的引脚(P1口)P1.0—P1.7:准双向I/O口(内置了上拉电阻)
输出时一切照常,仅在作输入口用时要先对其写“1”。简单测控实例原理图P1.3作输入端口光路通畅,R亮
2K
光路阻断,R暗
400K
R亮<2.2K
R暗
>250K
JOB3:CLRP1.1;亮绿灯REDO:SETBP1.3
;P1.3作输入口必先置1CHECK:JNBP1.3,CHECK;检测通道是否被阻断?LOOP:…………;有入侵者,报警!
AJMPREDO;再跳回去检测任务三:红外防盗报警P1.3口用于输入状态检测的语句:R亮<2.2K
,红外线光路通畅时,P1.3端=低电平R暗>250K
,红外线光路阻断时,P1.3端=高电平单片机的引脚(P2口)P2.0—P2.7:双向I/O(内置了上拉电阻)
寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚读锁存器写锁存器内部总线地址高8位控制引脚P2.X3内部上拉电阻Vcc单片机的引脚(P2口)P2.0—P2.7:双向I/O(内置了上拉电阻)
寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=1读锁存器写锁存器内部总线地址高8位控制
引脚P2.X控制=0时,此脚作通用输入口:110截止3内部上拉电阻11Vcc=1=0输入数据时,要先对其写“1”21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制
引脚P2.X控制=0时,此脚作通用输出口:输出=1时110截止3内部上拉电阻11Vcc=1=0单片机的引脚(P2口)P2.0—P2.7:双向I/O(内置了上拉电阻)
寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制
引脚P2.X控制=0时,此脚作通用输出口:输出=0时001导通3内部上拉电阻00Vcc=0=0单片机的引脚(P2口)P2.0—P2.7:双向I/O(内置了上拉电阻)
寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制=1
引脚P2.X控制=1时,此脚作高8位地址A8—A15输出口:当输出=1时10截止3内部上拉电阻1=1Vcc=1单片机的引脚(P2口)P2.0—P2.7:双向I/O(内置了上拉电阻)
寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制=1
引脚P2.X01导通3内部上拉电阻0=0Vcc=0控制=1时,此脚作高8位地址A8—A15输出口:当输出=0时单片机的引脚(P2口)P2.0—P2.7:双向I/O(内置了上拉电阻)
寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。单片机的引脚(P3口)P3.0—P3.7:双功能口(内置了上拉电阻)
它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。21DQCK/Q读引脚读锁存器写锁存器内部总线第二功能输出引脚P3.X3内部上拉电阻Vcc第二功能输入4=021DQCK/Q读引脚读锁存器写锁存器内部总线第二功能输出(WR,RD,TxD)引脚P3.X3内部上拉电阻Vcc4第二功能输出时,内部自动D=1111反相器单片机的引脚(P3口)P3.0—P3.7:双功能口(内置了上拉电阻)
它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。=021DQCK/Q读引脚读锁存器写锁存器内部总线此端自动=1引脚P3.X3内部上拉电阻Vcc
第二功能输入(RxD,T0,T1,INT0,INT1)4第二功能输入时,信号经缓冲器4直接进入内总线1110截止单片机的引脚(P3口)P3.0—P3.7:双功能口(内置了上拉电阻)
它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。P3口第二功能表引脚第二功能P3.0RxD:串行口接收数据输入端P3.1TxD:
串行口发送数据输出端P3.2INT0:
外部中断申请输入端0P3.3INT1:
外部中断申请输入端1P3.4T0:
外部计数脉冲输入端0P3.5T1:
外部计数脉冲输入端1P3.6WR:
写外设控制信号输出端P3.7RD:
读外设控制信号输出端51单片机的4个8位的I/O口P0.0—P0.7:8位数据口和输出低8位地址复用口
(复用时是双向口;不复用时也是准双向口)P1.0—P1.7:通用I/O口(准双向口)P2.0—P2.7:
输出高8位地址(用于寻址时是输出口;不寻址时是准双向口)P3.0—P3.7:具有特定的第二功能(准双向口)注意:在不外扩ROM/RAM时,P0~P3均可作通用I/O口使用,而且都是准双向I/O口(例如:AT89C51)!
小结复位后,32个引脚均为高电平,故在初始化时应考虑是否满足外接电路的要求。P3口第二功能表引脚第二功能P3.0RxD:串行口接收数据输入端P3.1TxD:
串行口发送数据输出端P3.2INT0:
外部中断申请输入端0P3.3INT1:
外部中断申请输入端1P3.4T0:
外部计数脉冲输入端0P3.5T1:
外部计数脉冲输入端1P3.6WR:
写外设控制信号输出端P3.7RD:
读外设控制信号输出端
小结存储器、堆栈、SFR数据存储器——RAM(RandomAccessMemory)程序存储器——ROM(ReadOnlyMemory)闪速存储器——FlashMemoryEPROM——(UV)ErazibleProgrammableROMEEPROM/E2PROM——ElectricalErasableProgrammableROM静态存储器
SRAM——StaticRAM
(动态存储器
DRAM——DynamicRAM)按字节寻址:每个字节(8个位)占一个地址按位寻址:有的存储器每一个位就有一个地址单片机的存储器——几个有关的概念:MCS-51单片机存储器配置片内RAM128字节(00H—7FH);片内RAM前32个单元是工作寄存器区(00H—1FH)
片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H—7FH,分布在20H—2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被8整除的SFR中的各位也可按位寻址(P.33-34)可寻址片外RAM64K字节(0000H—FFFFH)可寻址片外ROM64K字节(0000H—FFFFH)片内FlashROM4K字节(000H—FFFH)存储器配置(片内RAM)片内RAM
128字节(00H—7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中92个位可位寻址80HFFH所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器8051128字节片内RAM前32个单元是工作寄存器区(00H—1FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区存储器配置(片内RAM)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区3工作寄存器区2工作寄存器区1工作寄存器区00FH10H17H18H片内RAM前32个单元是工作寄存器区(00H—1FH)存储器配置(片内RAM)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区片内RAM中有128个可按位寻址的位。
位地址:00H—7FH
分布在:20H—2FH单元存储器配置(片内RAM)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区27H22H21H20H26H24H25H23H28H2FH单元地址07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241407F7E7D7C7B7A7978位地址总共128个可按位寻址的位片内RAM中有128个可按位寻址的位。
位地址:00H—7FH
分布在:20H—2FH单元存储器配置(片内RAM)可寻址片外RAM64K字节
(0000H—FFFFH);可寻址片外ROM64K字节
(0000H—FFFFH);片内FlashROM4K字节
(000H—FFFH);FFFFH0000H可寻址片外RAM64K字节FFFFH0000H可寻址片外ROM64K字节FFFH000H可寻址片内FlashROM4K字节89C517FH00H片内RAM128字节FFH80H存储器配置(片内RAM)堆栈:
在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。功用:1)子程序调用和中断服务时CPU自动将当前PC
值压栈保存,返回时自动将PC值弹栈。2)保护现场/恢复现场3)数据传输00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SP栈顶下一个进栈的数据将存在此数据进栈已经进栈的数据存放在此初始SP复位后SP=07H,数据进栈时:首先SP+1指向08H单元,第一个放进堆栈的数据将放进08H单元,然后SP再自动增1,仍指着栈顶……堆栈区由特殊功能寄存器堆栈指针SP管理
堆栈区可以安排在RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶……00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SP栈顶当前要出栈的数据数据出栈SP-1指向下一个将要出栈的数据初始SP堆栈区由特殊功能寄存器堆栈指针SP管理
堆栈区可以安排在RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶……00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SP-1指向新的栈顶,也就是下一个将要出栈的数据数据出栈初始SP堆栈区由特殊功能寄存器堆栈指针SP管理
堆栈区可以安排在RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。8051特殊功能寄存器(SFR)▼特殊功能寄存器SFR(专用寄存器)专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。▼不同的SFR管理不同的硬件模块,负责不同的功能——各司其职换言之:要让单片机实现预订的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。程序计数器PC(ProgramCounter)PC
不是一个特殊功能寄存器SFR,但其作用又十分重要和特殊!!!特点:▼它是16位的按机器周期自动增1计数器▼一切分支/跳转/调用/中断/复位等操作的本质就是:改变PC值▼总指向下一条指令所在首地址(当前PC值)特殊功能寄存器(PC)8051有21个SFR(89C52有26个)P.33~34
已知的P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表。堆栈指针寄存器SP(StackPointer):总是指向栈顶,压栈时先(SP)+1然后数据进栈;弹栈时数据先出栈然后(SP)-1。累加器ACC:一个被众多指令用得最频繁的特殊功能寄存器(如:运算、数据传输…)。副累加器B:一个经常与ACC
配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也经常当作普通寄存器使用。特殊功能寄存器(P0—P3,SP,A,B)程序状态字寄存器
PSW:CYACF0RS0OVPRS1PSW.7PSW.0▼CY(PSW.7)进位/借位标志位。若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。它也是布尔处理器的位累加器,可用于布尔操作。▼AC(PSW.6)半进位/借位标志位。若ACC在运算过程中,D3位向D4位发生了进位或借位,则CY=1,否则=0。机器在执行“DAA”指令时自动要判断这一位,我们可以暂时不关心它。▼F0(PSW.5)可由用户定义的标志位。PSW.6PSW.5特殊功能寄存器(PSW)程序状态字寄存器
PSW(续):CYACF0RS0OVPRS1PSW.7PSW.0▼RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。RS1,RS0=01则选择了工作寄存器组
1区R0~R7分别代表08H~0FH单元。RS1,RS0=10则选择了工作寄存器组
2区R0~R7分别代表10H~17H单元。RS1,RS0=11则选择了工作寄存器组
3区R0~R7分别代表18H~1FH单元。PSW.4PSW.3RS1,RS0=00则选择了工作寄存器组
0区R0~R7分别代表08H~0FH单元。片内RAM前32个单元(00H—1FH)是工作寄存器区
(由PSW中的RS1,RS0决定)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区3工作寄存器区2工作寄存器区1工作寄存器区0
程序状态字寄存器
PSW(续):CYACF0RS0OVPRS1PSW.7PSW.0▼OV(PSW.2)溢出标志位。
OV=1时特指累加器在进行带符号数(-128—+127)运算时出错(超出范围);OV=0时未出错。▼PSW.1未定义。▼P(PSW.0)奇偶标志位。
P=1表示累加器中“1”的个数为奇数
P=0表示累加器中“1”的个数为偶数
CPU随时监视着ACC中的“1”的个数,并反映在PSW中PSW.2PSW.1PC与SFR复位状态表寄存器复位状态寄存器复位状态PC0000HTCON00HA00HT2CON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0-P3FFHSCON00HIPXX000000BSBUFXXHIE0X000000BPCON0XXX0000BTMOD00H
回顾89C51单片机存储器配置片内RAM128字节(00H—7FH);片内RAM前32个单元是工作寄存器区(00H—1FH)
片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H—7FH
分布在:20H—2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被8整除的SFR中的各位也可按位寻址可寻址片外RAM64K字节(0000H—FFFFH)可寻址片外ROM64K字节(0000H—FFFFH)片内FlashROM4K字节(000H—FFFH)
小结存储器配置(片内RAM)片内RAM
128字节(00H—7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中92个位可位寻址80HFFH所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器128字节
小结单片机存储器配置(片外RAM/ROM)
可寻址片外RAM64K字节
(0000H—FFFFH);可寻址片外ROM64K字节
(0000H—FFFFH);片内FlashROM4K字节(000H—FFFH);FFFFH0000H可寻址片外RAM64K字节FFFFH0000H可寻址片外ROM64K字节FFFH000H可寻址片内FlashROM4K字节89C517FH00H片内RAM
128字节FFH80H
小结单片机的引脚定义从一片集成电路的角度去认识单片机认识单片机的引脚MCS-51单片机40脚Vcc,GND
2XTAL1,XTAL2
2RESET
1EA/Vpp1ALE/PROG1PSEN
1P0.0—P0.78P1.0—P1.78P2.0—P2.78P3.0—P3.78MCS-51单片机的基本结构示意图单片机的引脚(电源端)Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同。单片机的引脚(晶振端)Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同。XTAL1,XTAL2:片内振荡电路输入/输出端单片机的引脚(晶振端)Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入/输出端15~45pfx21~12MHz(MCS-51)
0~24MHz(Atmel-89C)XTAL1XTAL2也可以由
XTAL1端接入外部时钟,此时应将
XTAL2接地:XTAL2XTAL1外部时钟通常外接一个晶振两个电容单片机的引脚(晶振端)Vcc,GND:正电源端与接地端(+5V/3.3V/2.7V)XTAL1,XTAL2:片内振荡电路输入、输出端CPU总是按照一定的时钟节拍与时序工作:振荡周期/时钟周期:
Tc=晶振频率fosc(或外加频率)的倒数状态周期:Ts=2个时钟周期(Tc)(很少用到此概念)机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc)指令周
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婴幼儿辅食添加科学指导方案
- 餐饮部节能降耗方案
- 2026-2030中国舒筋活血片市场营销渠道及投资规划建议研究报告
- 2025年海洋碳汇金融产品创新研究
- 2026年辽宁锦州文旅(集团)有限公司计划招录15人备考题库附答案详解
- 2026广东揭阳市揭东区审计局招聘政府雇员1人备考题库及1套参考答案详解
- 2026年兰州大学学报(医学版)编辑部聘用制B岗人员招聘备考题库及一套参考答案详解
- 2026四川省自然资源厅所属事业单位选调4人备考题库及1套完整答案详解
- 2026重庆武隆福康医院招聘护士15人备考题库有答案详解
- 2026吉林辽源市东辽县事业单位选聘42人备考题库完整答案详解
- 2025初诊肺癌合并阻塞性肺炎临床诊疗专家共识
- 【语文】浙江省丽水市2024-2025学年高一下学期期末考试试题(解析版)
- 二级建造师执业能力提升指南
- 《健康养老服务基础》智慧健康养老服务与管理全套教学课件
- 【高考真题】福建省2025年高考物理试卷(含答案)
- 2025年高考湖北卷物理真题(解析版)
- DB31∕T 682-2025 古树名木和古树后续资源管护技术规范
- 中学学生仪容仪表(暂行)规定
- T/CCIAS 009-2023减盐酱油
- T/CAQI 244-2021室内LED健康照明设计要求
- 设备调试、试运行方案
评论
0/150
提交评论