一、 单片机的琐碎知识
- 基本概念:它一般指“物理”层面的概念,是指的某个芯片,只不过芯片内部集成了一个很小型的计算机系统而已。
通常,单片机指的是无操作系统的软硬件系统,我们在硬件上直接开发驱动程序和应用程序。 - IAP和ISP
开发人员在电脑端完成单片机上的程序开发后,就需要将程序固化到单片机内部的程序存储器。
- IAP(in application programing)
它是从结构上将FLASH存储器映射为两个存储空间。当运行一个存储体空间的用户程序时,可对另一个存储空间重新编程,然后,将控制从一个存储空间转向另一个存储空间。所以,IAP的实现更加灵活。 - ISP(in system programing)
通过单片机专用的串行编程接口和STC提供的串口固化程序软件,对单片机内部的Flash存储器进行编程。一般来说,实现ISP只需要很少的外部电路。
注:A.串行编程接口(USB)
B.经过比较可以得知:支持ISP方式的单片机,比一定支持IAP方式;但是支持IAP方式的单片机,一定支持ISP方式。
- 引脚(P0和P1口)
这一部分因不同的单片机,会有不同的装法,所以不再详细说明。但是引脚主要有两个功能:供电和输入输出信息。这两个口的功能强大。 - 命名规则
根据说明手册就可看懂,故而只需了解即可。 - 中断(打断计算机正常执行的程序)
a. 内部中断:自己中断
b. 外部中断:外部电路中断 - 并行口:同一个时刻,在一条直线上,用一条指令,可以控制八个灯。
- 计算机的心脏
外时钟 时序
振荡器 晶振
8. ROM:程序存储器
RAM:数据存储器
9. 串行口:在同一时刻,只有一位。
二、 单片机的整体结构
1.51—单片机的硬件功能
i. 计算机结构:CPU(中央处理单元)——I/O设备——存储器,这样三个部分由三条总线组成。
ii. 总线:公共的地址通道/数据通道。
分类:1 数据总线 2 地址总线 3 控制总线
iii. MCU:微控制器
iv. 指令:计算机运行的最小单位。
2.硬件系统结构
i. 字节:1BYTE=8bit
ii. RAM数据存储器,暂时存放程序。
iii. 主要的功能图(极为重要,记住)
共性:
- 一个8位的CPU
- 片内震荡和定时电路
- 128字节内部RAM(00H-7FH)
- 4个8位并行I/O口
- 2个16位可编程定时器/计数器
- 一个全双工串行口
- 中断是为了使整个系统协调工作
- 5个中断源(可编程为两个优先级)
- 22个SFR(除了PC外,其余21个分散在80H——FFH之间)
- 堆栈深度可达80B(30H——7FH)
- 16B(128位,20H——2FH)可寻址区
三、 CPU内部结构 - 算术逻辑运算单元(ALU 8位)
进行普通运算和逻辑运算。 - 存储器阵列(数据结果放在其中)
(一) 工作寄存器R0—R7(8位)
暂存运算数据和中间结果
4个工作寄存器区,工作寄存器0区——3区。每个区均含8个寄存器R0——R7.(一般用0区)
用PSW(程序状态字)中的两位PSW.4和PSW.3来切换工作寄存器,选用一个工作寄存器区进行读写操作。
(寄存器:能够将二进制数放在里面。)
(二) 累加器(ACC 8位)
需要ALU(算术逻辑运算单元)处理的数据和计算结果多数要经过ACC(累加器)。
(三) 寄存器B(8位)
与ACC(累加器)配合执行普通运算,也可以用作通用的寄存器。
(四) 程序状态字(PSW 8位)
存放ALU运算过程的标志状态。
(五) 数据指针(DPTR 16位)
存放片外存储器地址,作为片外存储器的指针。可分为两个8位寄存器DPH和DPL使用。
(六) 堆栈指针(SP 8位)
堆栈是按“先进后出”的原则,存取数据的存储区,51单片机的堆栈在片内RAM区。数据入栈/出栈时,SP自动加/减,其内容始终为栈顶地址,复位时,SP=07H.
(七) 程序计数器(PC 16位)
CPU总是按照PC的指示读取程序,PC可自动加1.因此,CPU执行程序时,一般是顺序方式。当发生转移,子程序调用时,中断和复位等操作时,PC被强制改写,程序执行顺序也发生改变。
复位时,PC=0000H
注:存储器是存储量以字节作为计算单位,即八位二进制。
四、 存储器结构(很重要,要记住)
注:最大可存储空间为:64K.
A. 数据存储器:
i. 从00H——1FH的32B单元是4个工作寄存器组。
ii. 地址20H——2FH的16B共128位,是可位寻址的内部RAM区,他们既可字节寻址,也可位寻址。
iii. 其他80B是只能按字节寻址的内部RAM区,位用户区。
B. 标志位
- 功能:CY(1)执行算术运算时,最高位前进,进位或借位时,CY为1;否则,CY=0.
(2)在位操作时,作“位”累加器
五、 I/O端口 - MCS-51有4个双向8位并行口:P0——P3
- 每一个口都有一个8位的锁存器
- 复位后他们的初始状态全为
- 负载:4——8个TTL(毫安)
注:a.P0口是三态双向口。即可作为并行I/O口,也可以作为数据总线口。当外部扩展了存储器或I/O口,则只能作数据总线和地址总线低8位。
b.三态:在数字电路中,只有0和1两种状态,还有一种高阻状态,相当于断开。
C.双向:既可输出也可输入
六、 CPU时序 - CPU执行一条指令的时间称为指令周期,它是以机器周期为单位的,MCS——51典型的指令周期是一个机器周期。
- 每个机器周期由6个状态周期组成,每个状态周期由2个震荡周期组成,状态周期即S1,S2,S3,S4,S5,S6,而每个状态周期由两个字节P1和P2构成。
- 大多数8051指令执行的时间为一个机器周期,MUL(乘法)和DIV(除法)需4个机器周期。
注:1.一个机器周期可以执行一条指令 - 一个机器周期由12个时钟周期组成
- 时序:计算机基于脉冲信号,将其分为了机器周期。
七、 CPU引脚功能 - 双列直插式封装
- 引脚功能;
a. 端口线(4*8=32条)
i. P0.0-P0.7
ii. P1.0-P1.7
iii. P2.0-P2,.7
iv. P3.0-P3.7
b. 电源线两条:VCC(电源线)和VSS(地线)。
c. 控制线(6条)
ALE/PROG:地址所存允许/编程线
EA/vpp:允许访问片外存储器/编程电源线
PSEN:片外ROM选通线
RST/VPD:复位/备用电源线
XTAL1和XTALZ:片内震荡电路输入/输出
注:复位时,程序计数器(PC)和堆栈指针(SP)变为0,I/O口变输入,内部RAM不变。