340 likes | 455 Views
智能控制电路项目实践. 单片机开发工具的使用. 简易仪器仪表设计制作. 秒表的设计制作. 里程表的设计制作. LED 电子显示屏的设计制作. LED 流水灯设计制作. 简易计算器的设计制作. 五. 四. 七. 三. 六. 八. 二. 学习项目. 单片机最小系统构建. 一. 任务 1. 任务 3. 任务 2. 单片机中数据使用. 单片机最小系统构建. 单片机程序和数据存储. 项目一 单片机最小系统构建. 任务2 单片机程序和数据存储. 任务要求. 单片机系统应用程序大概 1KB , 其中 主程序 500B , 子程序 400B ,
E N D
单片机开发工具的使用 简易仪器仪表设计制作 秒表的设计制作 里程表的设计制作 LED电子显示屏的设计制作 LED流水灯设计制作 简易计算器的设计制作 五 四 七 三 六 八 二 学习项目 单片机最小系统构建 一
任务1 任务3 任务2 单片机中数据使用 单片机最小系统构建 单片机程序和数据存储 项目一 单片机最小系统构建
任务2单片机程序和数据存储 • 任务要求 单片机系统应用程序大概1KB, 其中主程序500B,子程序400B, 定时器0中断服务程序100B; 原始数据有200B,位数据8位, 分别分配存储空间。
任务2 单片机程序和数据存储 • 任务分析 单片机运行的程序和运算及处理的数据都是存储在存储器中,本任务要求了解单片机的存储器结构,以便正确合理的存储系统程序和数据。
任务2 单片机程序和数据存储 完成本任务需要掌握的知识: (1)89C51单片机内部结构 (2)89C51单片机工作过程 (3)89C51单片机程序存储器结构 (4)89C51单片机数据存储器结构
任务2 单片机程序和数据存储 • 1. 89C51单片机内部结构 • 主要包括CPU、内部存储器、定时与中断系统、并行I/O口、串行I/O口和时钟电路等部分
时钟源 T0 T1 ROM 时钟电路 SFR 和 RAM 定时 / 计数器 内 部 总 线 CPU 并行端口 串行端口 中断系统 P0 P1 P2 P3 TXD RXD INT0 INT1 任务2 单片机程序和数据存储
任务2 单片机程序和数据存储 CPU • 也叫中央处理器 • 是单片机的核心部件 • 主要用于完成单片机的运算和控制功能。 • 其内部由运算器和控制器组成。
任务2 单片机程序和数据存储 内部存储器 • 程序存储器(ROM): • 只读存储器 • 用于存放程序指令、原始数据及表格 • 数据存储器(RAM): • 随机存储器 • 用于存放数据
任务2 单片机程序和数据存储 定时与中断系统 • 内部有两个16位的定时器/计数器 • 用于实现定时或计数功能 • 89C51单片机有中断系统 • 共有5个中断源,两级中断
任务2 单片机程序和数据存储 并行I/O口 • 89C51单片机内部共有 • 4个8位的并行I/O 口 • P0、P1、P2、P3 • 主要用于实现数据的并行输入和输出。
任务2 单片机程序和数据存储 串行I/O口 • 89C51单片机有一个全双工的串行口, • 用于实现与外部的串行数据传送和与外部设备串行通信。
任务2 单片机程序和数据存储 时钟电路 • 89C51单片机的内部有时钟电路 • 需外接石英晶体振荡器 • 时钟电路为单片机产生时钟脉冲序列,用于协调和控制其工作。
任务2 单片机程序和数据存储 • 2. 单片机的工作过程和ROM • (1)单片机的工作过程 • 是自动执行程序的过程 • 即一条条执行指令的过程 • 指令:要求单片机执行的各种操作用命令的形式写下来 • 一条命令对应一条指令 • 一系列指令的集合称为程序
ROM …… 0x05 0x12 0x23 0xD2 0x22 0x75 0x40 0xA3 0xE4 …… 执行……指令 PC 加一指令 执行加一指令 移位指令 执行移位指令 置1指令 执行置1指令 传送指令 执行传送指令 执行清零指令 清零指令
任务2 单片机程序和数据存储 • (2)程序存储器ROM • 在单片机内部,专门用来存放程序 • ROM 写入信息后不能改写,只能读出存储器。 • 断电后,ROM 中的信息保留不变 • ROM 用来存放固定的程序或数据。
任务2 单片机程序和数据存储 • 89C51是一种带Flash ROM的单片机 • Flash ROM是一种快速存储式只读存储器 • 可以电擦写,掉电后程序依然保存 • 编程寿命可以达到一千次左右。
系统引导程序 外部0中断服务程序 定时器0中断服务程序 外部1中断服务程序 定时器1中断服务序 任意存放 串行口中断服务程序
任务2 单片机程序和数据存储 • (3)地址和数据 • 每个存储单元在存储器中所处的位置是以地址标识的 • 一个存储单元对应一个地址 • 可以将地址理解为每个存储单元前面的编号 • 不同地址根数,所确定的存储空间也不一样。
任务2 单片机程序和数据存储 0 1 000 001 010 011 100 101 110 111 00 01 10 11 n根地址线 对应的存储空间有2n个存储单元 存储单元的编号范围是0~(2n-1)
任务2 单片机程序和数据存储 • 89C51单片机提供16根地址线 • 最大寻址空间为216 ,即64K • (0x0000~0xffff) • 但芯片内部ROM容量只有4K • (0x0000~0x0fff)。 • 宏晶公司生产的STC89E516单片机的内部ROM容量已达到63KB。
任务2 单片机程序和数据存储 片外RAM • 2、数据存储器RAM 0xffff . . . . . . 0x0000 数据存储空间 64K 片内RAM 0xff …… 0x80 0x7f …… 0x00 专用寄存器 存储空间 128B 数据存储空间 128B
0x7f . . . 0x30 通用数据区 80个 • 片内RAM • (1)片内数据存储器空间 • 1)工作寄存器区 • 2)位地址区 • 3)通用RAM区 0x2f … 0x20 位地址区 16个 0x1f 0x18 0x17 0x10 0x0f 0x08 0x07 0x00 32个
任务2 单片机程序和数据存储 专用寄存器PSW • RS1 RS0 当前寄存器组 • 0 0 0组 • 0 1 1组 • 1 0 2组 • 1 1 3组 0x1f 0x18 0x17 0x10 0x0f 0x08 0x07 0x00
任务2 单片机程序和数据存储 0x2f … 0x20 • 共有128位 • 每一位都有相对应的位地址, • 位地址范围从0x00~0x7F。 0x2f … 0x20 位地址区 • 有双重寻址功能 • 可以进行位寻址操作 • 也可以按字节寻址操作 1 0 1 0 1 0 1 0 1 位地址:0x17 位地址:0x07 位地址:0x00
0x7f . . . 0x30 通用数据区 • 数据缓冲器区。 • 用于存放用户数据, • 只能按字节存取。 • 通常可用于中间数据的保存, • 也用作堆栈的数据单元。
任务2 单片机程序和数据存储 • (2) 特殊功能寄存器(专用寄存器) • 89C51单片机的专用寄存器总数为21个, • 占用了0x80H~0xFF中的一小部分 • 其他空间虽然未安排寄存器,但也不能进行读、写操作。
任务2 单片机程序和数据存储 表1-3 特殊功能寄存器一览表
任务2 单片机程序和数据存储 • (3) 外部数据存储器 • 单片机最大可扩展片外64KB空间的数据存储器,地址范围为0x0000~0xFFFF。
决策 任务2 单片机程序和数据存储 外部 程序存储器 64K 外部 程序存储器 64K 外部 数据存储器 64K 特殊功能 寄存器区 通用数据区 位地址区 寄存器区 或 加 内部 程序存储器 4K
总结 任务2 单片机程序和数据存储 (1)单片机内部结构; (2)单片机工作过程和ROM; (3)数据存储器RAM;
思考 任务2 单片机程序和数据存储 • 89C51单片机内部结构包含哪几部分? • 各部分的主要功能是什么? • 2. 单片机是如何实现自动运行程序的? • 3. 对于容量有4kB的程序存储器,其地址线需要多少根? • 4. 简述89C51单片机片内RAM的空间分配。 • 各部分主要功能是什么? • 5.片内RAM中包含哪些可位寻址单元?