【单片机基础知识】
单片机,全称单片微型计算机,是一种高度集成的微型计算机系统,主要用于控制各种设备和系统。MCS-51系列是单片机中的一种,其内部包含的主要功能部件如下:
1. **8bit CPU**:这是单片机的核心部分,负责执行指令和进行逻辑计算。
2. **片震荡器及时钟电路**:提供稳定的时钟信号,控制整个系统的运行速度。
3. **ROM**:程序存储器,存储预编译好的程序代码和表格。
4. **RAM**:数据存储器,存储运行时的临时数据和常量。
5. **定时器/计数器**:用于定时和计数,常用于实现延时、测量频率等功能。
6. **I/O口**:32根可编程的输入/输出引脚,可以独立设置为输入或输出。
7. **串行口**:全双工串行通信接口,用于与其他设备进行串行数据交换。
8. **中断源**:提供中断功能,使得单片机能够响应外部事件。
【89S51/52存储器结构】
89S51/52单片机的存储器分为物理上的4个空间:
- 片内程序存储器(4K ROM)
- 片外程序存储器
- 片内数据存储器(128B RAM)
- 片外数据存储器
逻辑上,存储器分为3个地址空间:
- 64KB的程序存储器空间(包括片内和片外)
- 256B的片内数据存储器空间
- 64KB的片外数据存储器空间
【工作寄存器和堆栈】
开机复位后,CPU使用第0组工作寄存器,地址范围为00H~07H。通过改变PSW中的RS0和RS1位,可以切换到其他工作寄存器组。堆栈是用于临时存储数据和地址的特殊区域,主要用在子程序调用和中断处理中。堆栈指针SP在复位后初始化为07H,需要根据程序需求重新设定以确保足够的空间。
【时钟周期和指令周期】
时钟周期是最基本的时间单位,机器周期是执行一个基本操作所需的时间,由12个时钟周期组成。指令周期是执行一条指令所需时间,不同指令的周期数不同。对于8MHz的时钟频率,一个机器周期等于1.5μs。
【总线和冲突避免】
在89S51/52扩展系统中,片外程序和数据存储器使用不同的指令访问,避免了总线冲突。
【程序状态字寄存器PSW】
PSW用于存储程序运行状态,包括进位标志CY、辅助进位标志AC、用户标志F0、存放器组选择位RS1和RS0、溢出标志OV、未定义位以及奇偶校验位P。
【位地址和字节地址】
字节地址如7CH表示存储器中的一个8位单元,而位地址7CH则是这个单元中的一个位,位于字节地址2FH的第4位。
【I/O端口】
I/O端口是单片机与外部设备交互的桥梁,89S51/52的4个I/O端口(P0-P3)都是8位双向口,每个端口都有锁存器、输出驱动器和输入缓冲器。在无片外扩展存储器的情况下,它们可以作为通用I/O口使用。
【总线分配】
片外数据总线(8根)通过P0口输出,地址总线(16根)通过P0(低8位)和P2(高8位)口输出,控制总线包括PSEN、ALE、RD、WR和EA,主要通过P3口管理。