200 likes | 371 Views
单片机应用技术. 项目一 循环彩灯装置. 第 3 讲 8051 单片机的存储器. 《 单片机应用技术 》 精品课程组. 湖北职业技术学院机电工程系. 单片机应用技术. 本讲主要内容. 3-1. 51 架构与 51 单片机的程序存储器 3-2. 51 单片机的数据存储器 3-3. 51 单片机的特殊寄存器. 单片机应用技术. 3.1.1 51 单片机的架构. 外部. RAM. 64. K. (. ). 程序存储器. 数据存储器. 单片机应用技术. 3.1.2 51 单片机的存储器. 单片机应用技术.
E N D
单片机应用技术 项目一 循环彩灯装置 第3讲8051单片机的存储器 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系
单片机应用技术 本讲主要内容 3-1. 51架构与51单片机的程序存储器 3-2. 51单片机的数据存储器 3-3. 51单片机的特殊寄存器
单片机应用技术 3.1.1 51单片机的架构
外部 RAM 64 K ( ) 程序存储器 数据存储器 单片机应用技术 3.1.2 51单片机的存储器
单片机应用技术 3.1. 3 51单片机的程序存储器管理 • 关于51系列单片机的程序存储器ROM • 程序存储器用于存放程序和表格等固定数据,掉电数据不丢失 • 每种单片机在其内部都会有0~64K容量不等的ROM • 如果单片机片内ROM空间不够,可以在单片机外部扩展ROM,但建议用户尽量避免外扩ROM,51系列单片机1000多种型号,一定可以找到内部ROM容量符合要求的单片机。即便是单片机略微贵点 也值得 • 目前市面上的单片机ROM主要有 Flash Memory和OTP (One Time Programmable)两种,PROM、EPROM等形式的单片机已经很少见了。就开发而言Flash Memory的单片机更加合适,如ATMEL公司的AT89CXX单片机和PHILIPS公司的P89CXX单片机
单片机应用技术 3.1.3 51单片机的程序存储器管理 • 51系列单片机的程序存储器管理 • 每个ROM单元(byte)对应一个唯一的16bit地址编码(Address) • CPU要到某个ROM单元去取指令,是通过把地址写入一个16bit的特殊功能寄存器——程序计数器PC(Program Counter)来实现,因此,51系列单片机的地址的编码范围(通常称为寻址范围): • 0000 0000 0000 0000B ~ 1111 1111 1111 1111B(二进制) • 0 0 0 0 H ~ F F F F H(十六进制) • 0 ~ 65535 (十进制) • 通常习惯说51系列单片机的ROM寻址范围是64K • PC的值是CPU根据用户程序的运行流程自动装载的,它的值代表单片机下一条要执行的指令在ROM中的存放位置,用户不能直接对PC进行操作
单片机应用技术 3.1.3 51单片机的程序存储器管理 • 51单片机程序存储器分配 0000H:系统的启动单元 系统复位后,单片机从此处开 始取指令开始执行 0003H:外部中断0入口地址 000BH:定时器/计数器0中断入口地址 0013H :外部中断1入口地址 001BH:定时器/计数器1中断入口地址 0023H:串行中断入口地址
单片机应用技术 3.2.151系列单片机的RAM结构 51系列单片机RAM结构图 在左图中,单片机内部低128字节RAM和特殊功能寄存器区是每种51单片机都具备的,高128字节RAM和内部扩展RAM只是部分增强型单片机才具有。 大多数单片机应用系统都需要片外扩展RAM,但不绝对。
单片机应用技术 3.2.2 51单片机的数据存储器管理 • 51系列单片机的数据存储器管理 • 51系列单片机对数据存储器RAM的管理是通过16bit的特殊功能寄存器DPTR(Data Pointer)来实现,每个RAM单元(byte)也对应一个特定的地址编码(Address),因此,51系列单片机的地址的编码范围(通常称为寻址范围): • 0000 0000 0000 0000B ~ 1111 1111 1111 1111B(二进制) • 0 0 0 0 H ~ F F F F H(十六进制) • 0 ~ 65535 (十进制) • 因此51系列单片机的RAM寻址范围也是64K • 51系列单片机ROM和RAM 的地址编码范围都是0000H~FFFFH,但由于在寻址时硬件电路上有区别,所以不会混淆。 • 51系列单片机中,单片机外接的接口芯片如A/D、D/A等都有互不相同的地址,这些地址都是占用单片机外部RAM 的地址编号。
单片机应用技术 3.2.251单片机的数据存储器管理 • 51系列单片机的数据存储器管理 • 目前的51系列单片机视型号不同内部有128-1024byte不等的RAM空间。用户最好选择合适的单片机型号,避免外扩RAM存储器。
FFH 80字节 用户区 7FH 特殊功能 寄存器区 30H 80H 2FH 16字节 位寻址区 7FH 低128字节 RAM 20H 1FH 32字节 工作寄存器区 00H 00H 单片机应用技术 3.2.2 51单片机的数据存储器管理 • 标准51系列单片机的内部RAM • 所有51单片机内部都含有低128B字节RAM和特殊功能寄存器区
1FH 3组 18H 2组 10H 1组 08H 0组 00H 单片机应用技术 3.2.2 51单片机的数据存储器管理 • 标准51系列单片机的内部RAM——低128B • 低端32个字节分成4个工作寄存器组,每组8个单元(R0~R7)。当前工作寄存器组的机制便于快速现场保护。 • 特殊功能寄存器PSW的RS1、RS0两位决定当前工作寄存器组号。 32字节 工作寄存器区
80字节 用户区 7FH 30H 2FH 16字节 位寻址区 20H 1FH 32字节 工作寄存器区 00H 单片机应用技术 3.2.2 51单片机的数据存储器管理 • 标准51系列单片机的内部RAM ——低128B 16字节 位寻址区
单片机应用技术 80字节 用户区 7FH 单元地址 30H 2FH 16字节 位寻址区 20H 1FH 32字节 工作寄存器区 位地址 00H 单元地址 3.2.2 51单片机的数据存储器管理 • 标准51系列单片机的内部RAM ——低128B • 该区域每个单元可以作为一般RAM单元整体使用。 • 例如:MOV 20H,#23H;将20H单元赋值为23H指令执行后: • 单元中每一位也可以作为独立的可寻址位单独使用。 • 例如:20H单元的最低位可表示为 • 00H——位地址 20H.0——存储单元地址加位例如:SETB 20H;将24H单元的最低位置为1 • 指令执行后: 20H 20H 24H
单片机应用技术 3.2.2 51单片机的数据存储器管理 • 标准51系列单片机的内部RAM ——低128B • 位寻址区之后的30H-7FH共80个字节为通用RAM区,也称用户区,这些单元可以作为数据缓冲器使用。这一区域的操作指令非常丰富,数据处理方便灵活。 • 在实际应用中,常需在此区设置堆栈。
单片机应用技术 3.2.2 51单片机的数据存储器管理 • 标准51系列单片机的内部RAM——堆栈 • 堆栈——是在RAM区中划定的一个区域,对该区域RAM单元的读写操作必须遵守特定的顺序。比如先入先出,或先入后出原则。 • 堆栈的作用——主要用在子程序的调用过程中或作为特殊的数据交换区。 • 堆栈的开辟 • 栈顶的位置由SP(堆栈指针)寄存器指示。 • 复位时SP的初值为07H,在系统初始化时可以根据用户的需要重新设置。 • 标准8051的堆栈一般设在30H~7FH的范围内。
单片机应用技术 3.2.2 51单片机的数据存储器管理 • 标准51系列单片机的内部RAM——堆栈 • 堆栈的操作 入栈过程 出栈过程 PUSH x PUSH Y PUSH Z POP L POP M POP N
单片机应用技术 3.3.1 51单片机的特殊寄存器 • 标准51系列单片机的内部RAM ——SFR • 51单片机内部都含有128B的特殊功能寄存器区,其地址为80H—FFH。 • 但不同的单片机内部特殊功能寄存器的个数是不等的。 • 这些特殊功能寄存器用于存放单片机中相应功能部件的控制命令、状态或数据。
单片机应用技术 3.3.1 51单片机的特殊寄存器 • 标准51系列单片机的内部RAM —SFR • 列举其中的几个:
单片机应用技术 3.3.1 51单片机的特殊寄存器 • 标准51系列单片机的内部RAM —SFR • 使用方法: • 在这个存储区中,除了特殊功能寄存器之外剩余的空闲单元,用户不得使用; • 必须使用直接寻址方式进行访问,可使用寄存器的名称或地址: • 例如: 0E0H——累加器的地址 • A——累加器的名称 • 只有具有位地址和位名称的寄存器才可以位寻址; • 例如:0D7H——程序状态字最高位的位地址 • CY——程序状态字最高位的位名称 • 0D0H.7——程序状态字字节地址加位 • PSW.7——程序状态字字节名称加位