zoukankan      html  css  js  c++  java
  • 单片机结构和原理

    89C51单片机结构框图

    1、一个8位 的微处理器CPU。
    2、片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。
    3、片内4kB程序存储器Flash ROM(4KB):用以存放程序、一些原始数据和表格。
    4、四个8位并行I/O(输入/输出)接口 P0~P3:每个口可以用作输入,也可以用作输出。
    5、两个或三个定时/计数器: 每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制
    6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。
    7、片内振荡器和时钟产生电路:但需外接晶振和电容。
    8、五个中断源的中断控制系统。
    9、具有节电工作方式:休闲方式及掉电方式。
    在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15 μA以下,最小可降到0�6 μA。
     
    结构:
    由中央处理单元(CPU)、存储器(ROM及RAM)和I/O接口组成。89C51单片机内部结构如图所示:

     下面介绍的是mcs-51
    MCS-51单片机存储器的配置特点

    ① 内部集成了4K的程序存储器ROM;                        

    ② 内部具有256B的数据存储器RAM;                         

    ③ 可以外接64K的程序存储器ROM和 数据存储器RAM。

    从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。
    从逻辑上讲(既编程的角度),51单片机的存储系统实际上分为三个存储空间。
    1.  片内数据存储器RAM;
    2.  片外数据存储器RAM;
    3.  片内或外的程序存储器ROM(由EA电平决定)。

    1.程序存储器ROM用于存放程序、常数或表格。
    2.在51单片机中,由引脚 /EA 上的电平选择内、外ROM: EA=1时,CPU执行片内的4KROM中的程序; EA=0时,CPU选择片外ROM中的程序。
    3.无论是使用片内还是使用片外ROM,程序的起始地址都是从ROM的0000H单元开始。
    4.尽管系统可以同时具备片内ROM和外部ROM,但是在一般正常使用情况下,通过/EA的设定来选择其一(或者使用内部ROM,或者使用外部ROM)。
    5.如果EA=1(执行片内程序存储器中程序时):如果程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动的转向片外的ROM存储器且从1000H单元开始执行程序(无法使用片外ROM的低4K空间)。
    6.当程序超过4K时,有两种使用程序存储器ROM的方法:

    ①设置EA=0,使用外部ROM。从地址=0000H开始;

    ②设置EA=1,使用内部的4KROM和外部ROM(地址从1000H开始的单元)。

    程序存储器六个特殊的单元:

    在ROM中有六个单元具有特定功能。

    0000H单元:复位时程序计数器PC所指向的单元,因此用来  存放程序中的第一条指令;

    0003H单元:外部中断/INT0的矢量入口地址;

    000BH单元:定时器T0溢出中断的矢量入口地址;

    0013H单元:外部中断/INT1的矢量入口地址;

    001BH单元:定时器T1的溢出中断矢量入口地址;

    0023H单元:串行口接收、传送的中断矢量入口地址。

    矢量入口单元:在编写中断程序时,写入对应的“跳板指令”

    单片机第一条指令的两个特征:

    ①存放在ROM的0000H单元;

    ②必须是“跳转指令”以跳过下面的5个中断矢量,转到后面的真正的主程序入口0100H单元。

      ORG  0000H  LJMP  0100H

      ORG  0100H

    START:  MOV  A,#00H

         ∶  ∶

         ∶  ∶

         ∶  ∶

         ∶  ∶

          END

    外部程序存储器:

    当单片机使用外ROM存储器时(扩展系统),必须设定/EA=0,此时单片机的端口功能就要发生相应的改变:

     ① P0、P2作为外部ROM的地址和数据总线;

     ② 使用引脚/psen信号来选通外部ROM的数据三态输出。

    内部数据存储器RAM:

    无论在物理上还是逻辑上,系统中RAM 都可分为两个独立空间:内部和外部RAM。由不同的指令来访问。
    1.访问内部数据存储单元时,使用 MOV 指令;
    2.访问外部数据存储器时,使用 MOVX 指令。内部RAM从功能上将256B空间分为二个不同的块:
    1.低128B的RAM块;
    2.高128B的SFR(Special Function Register )块。

    在低128B的RAM存储单元中又可划分为:

    1.工作寄存器区;
    2.位寻址区;
    3.通用存储数据的“便签区”。
    高128B的专用寄存器区SFR中仅仅使用了21寄存器(51系列),其它107个单元不能使用。

  • 相关阅读:
    如何在main之后做一些事情
    Flash Component不显示[待解决]
    C++函数后面的throw()
    为甚马脚本中修改Text Sprite的Blend无效?
    sprite(channel).type的意义
    IDXGIDevice接口
    Director中调用AS3.0对象getVariable 附源码 20151228update
    MultiUser 03 – Serverside Script
    MultiUser02 使用Xtra和Server建立连接
    一部职场寓言——读《团队的五种机能障碍》
  • 原文地址:https://www.cnblogs.com/yzl050819/p/5976498.html
Copyright © 2011-2022 走看看