嵌入式(十八):单片机存储

1、单片机:计算机系统向“小”和“满足应用需要”方向发展的产物
2、单片机继续在技术支持下向“小而强”和“面向应用需要”方向发展,形成各种各样的的单片机系统
3、单片机小而强对应于嵌入式控制为主(MCU类)、SOC
4、单片机系统与通用计算机系统有很多共同的地方
5、51单片机系统结构:
a、资源:并口P1P2P3,串口,中断,定时器(与计数器实质相同)
b、可以抽象为总线+存储(ROM+RAM)+定时器+串口+并口+中断控制+51核(运算器+控制器+IR+PC)
在这里插入图片描述
c、系统扩展接口:
①、P2、P0、P3是并口,但可以复用,作为拓展
②、51是一个8位的计算机,说明CPU里面每次参与运算的数据是8位。一般来讲CPU和总线的宽度是一致的,但不是每次。
d、数据线(D7…D0)与低八位地址线(A7…A0)分时复用,同时与P0口引脚复用。低八位地址在ALE下降沿锁存到373
e、程序存储器与数据存储器/IO访问由PSEN控制
f、每个机器周期=12个时钟周期,单个操作需要机器周期1/2/4
假设S1为晶体周期,首先P0送地址,然后取出指令的地址,分别给P2和P0,然后取出指令(P0),此时由于译码不需要时间,所以可以同时得到指令译码结果,然后从指令译码结果中取出数据地址,分别给P2和P0,然后读数据(P0),传递给相应的位置(指令译码导致信号变化),至此这一指令执行完毕。
在这里插入图片描述
g、流水线:取指、译码、执行可以同时进行
6、地址MAP层面:
a、CPU、存储器、IO等单元对象的形式化、规范化标识问题
b、编址:每个单元赋予一个地址码
c、编制方法:地址码如何编写。常见的有:
①、存储器与IO分别编址,如8088
②、存储器与IO地址统一编址,如ARM、多数嵌入式CPU
编址方法对存储器/IO的读写速度有影响,对指令集也有影响
d、寻址:地址在机器指令中的表达方法
e、常见寻址方法:
①、立即数寻址
②、寄存器寻址
③、寄存器间接寻址
④、直接寻址
⑤、相对寻址
⑥、基址+变址间接寻址
7、X86编址:
a、CPU:intel 8086/80286
b、编址方法:IO编址与存储器独立编址
c、存储器地址:1M地址空间(1b/地址,20根地址线)
d、IO编址:1K地址空间(10根地址线)
e、IO地址安排:
系统板(主板)000h-1FFh,给每一个IO接口都有一个端口地址
扩展板(插槽)200h-3FFh
8、51编址:
a、BD:8b(数据总线宽度8,CPU也是8)
b、AD:16b(地址范围为0-216
c、编制方法:分片存储器与IO统一编址,即地址map
在这里插入图片描述
程序存储器ROM:0-65535(FFFFh)装程序的
片内数据存储器IO:0-255(FFh)内存,可以有两种寻址方式(上图)
片外数据存储器IO:0-65535(FFFFh)外存,冯氏里就是一个IO设备
区分:三种指令(三位邮递员MOVC、MOV、MOVX),通过指令集的不同来访问不同的地址空间。
d、程序存储器:
只读(ROM)、存储程序和固定数据等,不能写
七个特殊单元(标准51)
0000H:程序复位地址,上电后计算机先来这里执行
0003H:外部中断0入口地址
000BH:定时/计数器0入口地址
0013H:外部中断1入口地址
001BH:定时/计数器1入口地址
0023H:串行口中断入口地址
002BH:定时/计数器2入口地址(52系列)
e、片外存储器IO:
用MOVX指令访问
系统可扩展的片外资源:用户可根据MCS51总线规则,对数据进行各种各样的扩展
片内片外可以改变,及他们可以集成到片内,但逻辑上不同于MOV访问的RAM
f、片内RAM(MOV访问的RAM)
00-7FH(80H-FFH)共128/256单元,需拓展,拓展的部分需要间接寻址
工作寄存器区:00-1F,32单元
位寻址区:20-2F,16单元
通用:30-7F(FF),80(208)单元,就是内存
g、工作寄存器区
分四组:0-3
每组工作寄存器名:R0-R7
Rn在系统中的特殊地位和使用
h、位寻址区
16字节、128位
位地址:00-7FH
位寻址区的特殊作用
i、片内资源(CPU、IO)—SFR,特殊功能寄存器。COU的地址,IO的地址
SFR占用地址:80-FFH。就是磁头和输入输出。
标准51的SFR共21个字节,52为26个
标准51的21个SFR:
①、与CPU工作或状态相关(6个),CPU抽象出来就是这6个寄存器,但还有一个PC,但由于程序不需要进行访问,所以不用给地址:
A:累加器,算术运算和逻辑运算都要用
B:B寄存器,运算中产生溢出时需要辅助A
PSW:程序状态字,表示程序运行的状态(C、AC、F0、RS1、RS0、OV-P),其中RS1和RS0选择四组工作寄存器中的哪一组
SP:堆栈指针,但51里面只有堆,用来管理内存单元
DPH:数据指针(高)
DPL:数据指针(低)DPTR=DPH+DPL
②、与片内IO资源(功能部件)相关(15个):
定时器:TCON,TMOD,TH1,TL1,TH0,TL0
并口:P0、P1、P2、P3
串口:SBUF、SCON
中断:IE,IP
电源管理:PCON,可以休眠
j、特殊功能寄存器名:编址时,可以用21个特殊功能寄存器(SFR)的名字代替其地址。
k、位地址、位名称:特殊功能寄存器中的有些位赋予了位名称,有些赋予了位地址(80-FFH范围内)。只有那些有位地址的位才能进行位操作,此时他的位名称(如果有)代替其位地址。有些寄存器有寄存器的名称和地址,其中的某些位可能有位名称(变量,字母)或位地址(数字)。

猜你喜欢

转载自blog.csdn.net/qq_40851744/article/details/106426518