89C51单片机结构框图
1.一个8位微处理器CPU。
2.片内数据存储器(RAM128B/256B):用于存储可读写的数据,如运算的中间结果和最终结果以及要显示的数据。
3.片内4kB程序存储器Flash ROM(4KB):用于存储程序、一些原始数据和表格。
4.四个8位并行I/O(输入/输出)接口P0~P3:每个端口都可以作为输入或输出。
5.两个或三个定时器/计数器:每个定时器/计数器可设置为计数模式以计数外部事件或定时模式,并可根据计数或定时结果由计算机控制。
6.一个全双工UART的串行I/O口:可以实现单片机与单片机或其他微机之间的串行通信。
7.片内振荡器和时钟产生电路:但需要外部晶体振荡器和电容。
8.具有五个中断源的中断控制系统。
9.它有省电工作模式:休闲模式和关机模式。
在空空闲模式下,CPU停止工作,而RAM、定时器/计数器、串口和中断系统都继续工作。此时电流可以降到正常工作模式的15%左右。在掉电模式下,片内振荡器停止工作。因为时钟被“冻结”,所有功能都被挂起,所以只有片内RAM的内容被保存,直到下一次硬件复位。这样,电流可降至15 μA以下,最低可降至06μA。
结构:
它由中央处理器(CPU)、存储器(ROM和RAM)和I/O接口组成。89C51单片机的内部结构如图所示:
下面是mcs-51。
MCS-51单片机存储器的配置特点
①内部集成的4K程序存储器ROM;
②内部数据存储器RAM用256B
③可外接64K程序存储器ROM和数据存储器ram。
从物理结构上看,51单片机的存储系统可分为四个存储空室:片内rom和RAM,片外ROM和RAM。
从逻辑上讲(从编程的角度讲),51单片机的存储系统实际上分为三个存储空室。
1.片上数据存储器RAM;
2.片外数据存储器RAM;
3.片内或片外程序存储器ROM(由EA水平决定)。
1.程序存储器ROM用于存储程序、常数或表格。
2.51单片机中,引脚/EA上的电平选择的内外ROM:EA = 1:EA = 1时,CPU执行片上4KROM中的程序;当EA=0时,CPU选择片外ROM中的程序。
3.无论使用片内rom还是片外ROM,程序的起始地址都是从ROM的0000H单元开始。
4.虽然系统可以同时有片内ROM和外ROM,但是在正常使用下,可以通过设置/EA选择其中一个(内部ROM或者外部ROM)。
5.如果EA=1(执行片内程序存储器中的程序时):如果程序计数器的指针PC值超过0FFFH(4K),微控制器将自动转向片外rom存储器,从1000H单元开始执行程序(片外ROM的低位4K空不能使用)。
6.当程序超过4K时,有两种方法可以使用程序存储器ROM:
①设置EA=0并使用外部ROM。从地址=0000H开始;
②设置EA=1,使用内部4KROM和外部ROM(地址从1000H开始的单元)。
六个特殊的程序存储器单元:
ROM中有六个具有特定功能的单元。
0000H单位:复位时程序计数器PC指向的单位,所以用来存储程序中的第一条指令;
单元0003H:外部中断/INT0的向量入口地址;
000BH单元:定时器T0溢出中断的向量入口地址;
单元0013H:外部中断/INT1的向量入口地址;
001BH单元:定时器T1的溢出中断向量入口地址;
单元0023H:串口收发中断向量的入口地址。
向量入口单元:写中断程序时,写相应的“跳板指令”
单片机第一条指令的两个特点:
①存储在ROM中的0000H单位;
②跳过后面五个中断向量,到后面真正的主程序入口0100H单元,必须是“跳转指令”。
ORG 0000H LJMP 0100H
组织0100H
开始:MOV A,#00H
∶ ∶
∶ ∶
∶ ∶
∶ ∶
目标
外部程序存储器:
当MCU使用外部ROM存储器(扩展系统)时,必须设置/EA=0,MCU的端口功能会相应改变:
① P0和P2作为外部ROM的地址和数据总线;
②使用pin /psen信号选通外部ROM的数据三态输出。
内部数据存储器RAM:
物理上和逻辑上,系统中的RAM可以分为两个独立的空室:内部RAM和外部RAM。由不同的指令访问。
1.当访问内部数据存储单元时,使用MOV指令;
2.当访问外部数据存储器时,使用MOVX指令。RAM在内部将256B空分成两个不同的模块:
1.下部为128B的闸板;
2.SFR(特殊功能寄存器)模块,高度为128B。
在低128B RAM存储单元中,它可以分为:
1.工作寄存器区;
2.位寻址区;
3.用于一般数据存储的“便笺区域”。
高128B的专用寄存器区SFR只使用了21个寄存器(51系列),其他107个单元无法使用。