刚开始练51时就用C语言,现在想再加强一下汇编,所以不得不对单片机的硬件结构,特别是地址空间的分配方面详细的做一下了解了。 于是决定拿起课本北航的《智能化测量控制仪表原理与设计》重新学一遍。书本是基础,然后应该把自己的一些应用体会实例什么的也加上去,这样学起来就事半功 倍了毕竟这是再学习不是入门了。 《51手记之寄存器&寻址篇》这篇内容主要探讨了51单片机的硬件结构,特别是寄存器和寻址方式。51单片机的存储器结构包括四个部分:片内ROM、片外ROM、片内RAM和片外RAM。其中,51单片机拥有4KB的片内ROM,而52单片机则有8KB。ROM地址空间为64KB,由16条地址线进行寻址。通过控制信号EA,可以选择从片内或片外存储器取指令。 在ROM中,0000-0002H单元作为所有执行程序的入口地址,复位后程序从0000H开始执行。0003-002AH单元用于5个中断服务程序的入口。中断服务程序的入口地址是通过在特定地址放置LJMP指令来设定的,当中断发生时,程序会跳转到对应的地址执行。 片内RAM的直接寻址区是00H-7FH,其中00H-1FH是工作寄存器区,分为4组,由PSW的RS0和RS1选择使用哪一组。20H-2FH是位寻址区,而80H-FFH则是特殊功能寄存器(SFR)区,包含如P0-P3、PSW、ACC、B等重要寄存器。52系列单片机有26个SFR,这些寄存器的定义在头文件reg52.h中列出。 关于时钟问题,51单片机通常使用12MHz的晶体振荡器,每个机器周期需要12个时钟周期,即1us。不同指令的执行时间不同,一般指令需要1-2个机器周期,而复杂的乘除指令可能需要4个机器周期。 51单片机的寻址方式包括7种:1) 寄存器寻址,如使用R0-R7作为操作数;2) 直接寻址,直接指定内存地址进行访问;3) 间接寻址,通过寄存器间接访问内存;4) 寄存器间接寻址,通过寄存器和偏移量访问内存;5) 相对寻址,根据当前指令地址计算相对偏移量;6) 位寻址,直接对位进行操作;7) 立即寻址,指令中直接包含操作数。这些寻址方式提供了灵活的数据访问和处理机制。 总结来说,这篇内容是对51单片机的硬件架构,尤其是寄存器和寻址方式的深入解析,旨在帮助读者理解51单片机的工作原理,并提高在汇编语言编程中的效率。通过结合教科书知识和实践经验,可以更好地掌握51单片机的使用。
- 粉丝: 1
- 资源: 950
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助