2、单片机最小应用系统。 有一个简单的方法可以判断单片机芯片和时钟系统是否正常工作。 即用万用表测量单片机晶振引脚(18、19脚)对地电压。 如果单片机工作正常,则使用数字万用表。 例如测量:18脚对地约为2.24V,19脚对地约为2.09V。 对于怀疑复位电路有故障而无法正常工作的单片机,也可以采用模拟复位的方法来判断。 单片机正常工作时,9脚对地电压为零。 可以用一根线短时间接5V来模拟上电复位。 如果单片机能正常工作,则说明复位电路有问题。 4、单片机的内部结构 单片机由五个基本部分组成,包括中央处理器CPU、存储器、输入/输出端口、定时器/计数器、中断系统等,如图4-1所示。 中央处理器只读存储器
3. RAM 总线时钟电路 并行接口 串行接口 中断系统 定时器/计数器 图 4-1 单片机内部结构 4.1 单片机内部结构及功能 CPU 51 单片机内部有一个 8 位 CPU,包括运算单元、控制器以及几个寄存器等,如问题4-2所示。 4-2 单片机CPU 结构 从上图中我们可以看出,虚线框内就是CPU 的内部结构。 8 位 MCS-51 微控制器的 CPU 具有算术逻辑单元 (ALU) 和累加器。 A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针IP,16位)、地址寄存器AR(16位)、数据寄存器DR (8位),指令寄存器
4、由IR(8位)、指令译码器ID、控制器等部件组成。 1、算术单元(ALU)的主要功能 A)算术和逻辑运算,可对半字节(一个字节为8位,一个半字节为4位)和单字节数据进行操作。 B) 加、减、乘、除、加1、减1、比较等算术运算。 C) 逻辑运算,例如 AND、OR、XOR、补码和循环。 D) 位处理函数(即布尔处理器)。 由于ALU内部没有寄存器,所以参与运算的操作数必须放在累加器A中。累加器A还用于存储运算结果。 例如:执行指令 ADD A, B。执行该指令时,累加器 A 的内容通过输入端口 In_1 输入到 ALU,寄存器 B 通过内部数据总线通过输入端口 In_2 输入到 ALU,A 的结果+B通过ALU的输出端口输入到ALU。 输出,内部数据总线,
5. 返回累加器A。 2. 程序计数器PC PC 用于存储要执行的指令的地址。 它总共有16位,可以直接寻址64K ROM。 PC的低8位通过P0口输出,高8位通过P2口输出。 也就是说,无论程序执行到哪里,程序计数器PC都指向它,并且它始终跟随程序的执行。 我们知道,用户程序存储在内部ROM中。 如果我们要执行程序,就必须从ROM中逐字节读出,然后在CPU中执行。 那么ROM执行的是哪一行呢? 这需要我们的程序计数器PC来指示。 程序计数器PC具有自动加1的功能,即从存储器中读取一个字节的指令代码后,PC自动加1(指向下一个存储单元)。 3.指令寄存器IR
6, 0; 指令寄存器的作用是存储要执行的指令代码。 这里我们首先简单了解一下CPU执行指令的过程。 首先,从程序存储器(ROM)中读取指令代码并将其发送到指令寄存器。 经译码器译码后,定时及控制电路发出相应的控制信号。 ,从而完成指令的功能。 关于单片机内部指令的执行过程,我们会在后面的另一课中详细讲解。 4. 指令译码器ID 用于对发送到指令寄存器的指令进行译码。 所谓译码就是将指令转换成执行指令所需的电信号。当指令发送到译码器时,译码器对指令进行译码。 CPU控制电路根据译码器输出的信号,定时产生执行指令所需的各种控制信号,以便单片机正确执行。
7、程序所需的各种操作。 5、地址寄存器AR(16位) AR的作用是存储要寻址的外部存储单元的地址信息。 指令代码所在存储单元的地址码由程序计数器PC产生,指令中操作数的存储位置为单元地址码由指令的操作数给出。 从上图我们可以看到地址寄存器AR通过地址总线AB与外部存储器相连。 6. 数据寄存器DR 用于存储写入外部存储器或I/O 端口的数据信息。 可见数据寄存器对输出数据具有锁存功能。 数据寄存器直接连接到外部数据总线DB。 7、程序状态字PSW用于记录运行过程中的状态,例如是否有溢出、进位等。例如累加器A的内容为83H,执行
8.:添加A,#8AH; 将累加器A与立即数8AH相加,并将结果存入A中。该指令执行后,求和结果为10DH,但累加器A只有8位,只能存放低8位,即0DH。 结果中的最高位 B8 存储在元素方法中。 为此,在CPU中设置进位标志C。 当加法运算时出现进位时,进位标志C为1。 8、计时部件由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的信号。 定时脉冲信号。 4.2 单片机的存储器 存储器是用来存储程序和数据的部件。 MCS-51单片机芯片的内部存储器包括程序存储器和数据存储器两类。程序存储器(ROM)一般用于存储固定的程序和数据。 特点是程序编写后可以长期保存,不会因断电而丢失。 MSC-51系列
9、单片机内部有4KB程序存储空间,可外部扩展至64KB,如图4-3所示。 0FFFH0000H 外部 0FFFH0000H 内部 4KB64KB0000HFFFFH4KBFFFFH1000H60KB 图 4-3 内部程序存储器和外部程序存储器 数据存储器(RAM)主要用于存储各种数据。 内部结构如图4-4所示。 优点:可随机读入或读出,读写速度快,读写方便。 缺点:断电后,存储的信息丢失。 00H07H08H0FH10H17H18H1FHR0R7R0R7R0R7R0R7 Group 3 Group 2 Group 1 Group 0 通用工作寄存器区 20H2FH 位寻址区 30H7FH 用户数据存储区低 128 高 128 21SFR 特殊功能寄存器
10. 存储区 图4-4 数据存储器的内部结构。 位寻址区的位地址映射如表1-1所示。 表 1-1 位寻址区域的位地址映射 表 4.2。 单片机并行I/OP0端口的端口线逻辑电路。 P0口的口线逻辑电路如图4-5所示。 图4-5 P0口的端口线逻辑电路如图所示。 P1 端口的端口线逻辑电路如图 4-6 图 4-6 P1 端口的端口线逻辑电路 P2 端口 P2 端口的端口线逻辑电路如图 4-7 图 4-7 P2 端口端口线逻辑电路图 P3 端口 P3 端口的端口线逻辑电路如图 4-8 图 4-8 P3 端口的端口线逻辑电路图 4.3 所示。 单片机的时钟与定时时钟电路 单片机的时钟电路通常有两种形式:内部振荡方式和外部振荡方式 MCS-51单片机有一个高增益反相放大器用来构成振荡器。 引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。 将放大器与晶振相连,形成内部自激振荡器,并产生振荡时钟脉冲。 外部振荡方法是将外部现有时钟信号直接连接到XTAL1端子并引入单片机,而XTAL2端子不使用。 定时振荡周期:向单片机提供时钟信号的振荡源的周期。 时钟周期:是将振荡源信号二分频后形成的时钟脉冲信号。 因此,时钟周期是振荡周期的两倍,即一个S周期,分为两个节拍P1和P2。 指令周期:CPU执行一条指令所需的时间(以机器周期表示)。 各个时序之间的关系如图4-9所示。 图4-9 时序关系