注:
1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。
51单片机是EPROM,所谓的EPROM是可擦除的只读存储器。可以把原来的程序擦除了,再写一个新的进去。
断电后是可以保存的,数据存储器(RAM)是不能保存的。
RAM只能在程序执行的时候不断地重新存储定义的变量。如int x,int y
可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源
2.RAM:随机存取存储器,用于存储定义的变量等,速度快
51单片机的RAM存储容量远小于ROM,但是速度非常之快
内部详细图示
内部的结构看似十分复杂,但是大致上可以分为两个部分:运算器(红色框)和控制器(蓝色框)。
运算器:主要作用是进行加减乘除和逻辑运算
内部的结构可以上网查询
控制器:控制单片机的各种操作
程序执行过程
1.程序地址
程序开始的时候,要先知道第一条程序的地址,这个通过PC(程序计数器)知道。
比如刚开始的时候地址是0000H,这个是16进制的。
当这个地址送给地址寄存器后,即取出第一条指令后,PC自动加1,准备取出下一条指令。
2.程度读取
地址寄存器知道指令的地址后,就从ROM(只读存储器)里面取出地址所指向的一条指令。
并把取出来的指令放到指令寄存器中,经过指令编码器编译
3.数据处理
指令有可能要用到加减乘除和赋值语句的判断。经过指令编码器,就知道要取出那些定义的数据或者哪些赋值语句。
通过总线来调取我们要用到的数据。并通过运算器来运算。
比如说我们定义了int x和int y,这两个数据放在RAM中。
当我们取出了一个a = x + y 的指令后,需要x和y的值来计算。
那么通过上一张图的取数据的过程后取出了x和y的数据
通过运算器来运算。
如图,取出x和y进入黑色框(运算器)中来的到最终结果
最终的结果还会通过a这个变量存储在数据存储器(RAM)中
4.操作器件
当然,除了计算这种步骤外,还有一种情况就是来直接控制IO口的高低电平或者其他的器件了。