找回密码
 立即注册
楼主: wuzhengmin

跟着何宾老师学习STC32位8051单片机原理及应用-STC32G12K128

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-20 13:32:59 | 显示全部楼层
所有外设都可以去DMA,而DMA可以去存储器(EDATA+XDATA)Memory ,CPU越来越被淡化。8051主频不能光用CPU来算,CISC一条指令可以完成RISC的几条指令。

其实跟何老师学单片机基本原理,是蛮枯燥的,我是真心想和1982年的Z80对比一下,看看我们的基本原理和架构

有多大变化,起码汇编是差距不太大,继续努力!

好了,今天我们第十集下就到此结束!
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:20:12 | 显示全部楼层
今天我们继续学习第十一集处理器内核和存储空间

汇编和系统原理确实很枯燥,学了的几集,我体会和我在1982年第一次学习Z80

的原理很相似,是块难啃的骨头,慢慢来........

先看看堆栈:


截图202511211020107389.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:22:00 | 显示全部楼层
51在256个字节的基本数据区开了一块区域
用来保存现场(当前的各个寄存器数值,状态寄存器的值,下一条指令的地址等等),以便中断后回来继续执行当前的程序。这块区域也要保存个首地址,由堆栈指针寄存器SP堆栈(Stack)负责。这个SP保存的是开在片内数据区的存储器的地址。堆栈的具体地址要根据指令集架构的规约来选择合适的位置。

下面看看进堆栈和出堆栈的过程:

截图202511211021173859.jpg
截图202511211021317905.jpg
截图202511211021425516.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:23:13 | 显示全部楼层
这个入栈和出栈,和1982年的Z80一模一样。

堆栈的入堆规约就是先地址+1,再把要入栈的数据压进去。

堆栈的出栈规约就是把数据弹出去,再地址-1,存入堆栈指针SP,实际是指向第二个数据。先进堆栈的后出去,后进堆栈的先出去,就像子弹的弹仓一样

从上面的过程可以看出,随着数据的进出栈操作,(SP)递增或递减,SP总是指向最新保存的数据的存储器的位置,也就是通常所说的,SP总是指向栈顶的位置。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:24:24 | 显示全部楼层
在Debug中,spx 就是堆栈指针寄存器。详细见下图:
截图202511211024126610.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:25:30 | 显示全部楼层
注意看下图:




就是说你最好使用地址在128-255这段存储空间。不过C语言会自动处理的

截图202511211025268574.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:29:43 | 显示全部楼层
下面看运算器ALU:

还可以说保含A寄存器(累加器)    B寄存器……………
截图202511211029249049.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:31:27 | 显示全部楼层
为了提高算力,我们会在ALU外面增加辅助计算单元来硬件加速,甚至增加一些片内外部设备。

截图202511211031253831.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:33:11 | 显示全部楼层
再看看累加器ACC:

实际上,累加器是寄存器,器件上是类似于
触发器和锁存器这样的机制或概念。
从51存储器映射来看。51可以让特殊功能寄存器和高128字节的片内数据区复用在同一地址空间上,但2者又是相互独立的。SFR显然是寄存器的概念,在片内218字节的SRAM区域,实际是存储器。这2块在逻辑上,地址空间上是共享的,实际物理是独立的2个空间。


当然,我直接说共享地址,会让人发蒙,其实是有指令配合来区分,SFR就只能直接寻址,ARM就间接寻址。这样就可以区分这128个字节到底是用存储器还是寄存器SFR!(我记得很清楚,1982年的时候,我是追到老师家,才问清楚的,其实当时也没理解,只是把它记在本子上啦)
截图202511211032281495.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-21 10:47:55 | 显示全部楼层
接着看B寄存器:
截图202511211047531355.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-4-1 02:43 , Processed in 0.113628 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表