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

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

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 10:30:19 | 显示全部楼层
最后一个选项是:



Large

在Large模型中,默认,所有变量都驻留在外部数据存储器中(最多64KB)
这与使用XDATA存储器类型说明符显式声明它们相同



数据指针(DPTR)用于寻址外部存储器需要注意的是,通过数据指针访问存储器效率低且速度慢。特别是对于长度为两个或更多字节的变量。这种类型的数据访问机制生成的代码比XTiny模型或XSmall模型要多

需要扩展的数据指针,低DPXL


截图202511171028128987.jpg
截图202511171030157908.jpg
截图202511171031301126.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 10:35:05 | 显示全部楼层
这种情况,代码长很多,还要指向外部空间:

截图202511171035037415.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 10:36:31 | 显示全部楼层
再看看何老师的详细介绍:

一定慢很多,大很多
截图202511171036079836.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 10:39:03 | 显示全部楼层
接着在新建项目里添加文件,这个好理解

不进一步举例说明了

接着姚总介绍,如何书写学习心得,遇到哪些坑,怎么解决的?

不是随便贴图,要真动手动脑,用心学习才有心得,才能慢慢提高能力解决问题。

现在MCS-251下的STC32位机,真的是开辟了8051的新时代,好好学,会有收获的

CISC架构的生命是很强的,一定会大行其道,不是说一定要用RISC架构,很多场合对功耗并不是太高要求!


真要编程,还是CISC架构功能强大顺手。



EDATA 就是Memory Model: XSmall: near vars, far const, ptr-4
容量留1K给堆栈,我们用3K做变量区,应该足够了

好了,第七集就这样结束!
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 12:17:11 | 显示全部楼层
现在开始 第八集单片机软件开发基础-keil应用程序开发 的学习!


学单片机,C和汇编都是离不开的,先写C程序,接着反汇编,慢慢理解汇编


先创建一个项目,添加C语言文件进去:



截图202511171214112710.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 12:20:35 | 显示全部楼层
何老师接着介绍了各种文件的用途和意义

截图202511171220325107.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 13:03:29 | 显示全部楼层
接下来我们要驱动LED灯,先看电路图:
截图202511171303262164.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 13:41:13 | 显示全部楼层
主程序就很简单,我们主要目的是看反汇编:
  1. sfr P4 = 0xc0;          //P4端口地址映射
  2. sfr P4M1 = 0xb3;        //P4端口配置端口地址映射
  3. sfr P4M0 = 0xb4;                //P4端口配置端口地址映射
  4. sfr P6 = 0xe8;                        //P6端口地址映射
  5. sfr P6M1 = 0xcb;                //P6端口配置端口地址映射
  6. sfr P6M0 = 0xcc;                //P6端口配置端口地址映射
  7. void main()
  8. {
  9.         unsigned volatile long i;
  10.         P4M0 = 0X00;
  11.         P4M1 = 0X00;                                         //设置P4为准双向端口模式
  12.         P6M0 = 0X00;
  13.         P6M1 = 0X00;                                        //设置P6为准双向端口模式       
  14.         P4 = 0;                                                    //P4端口赋值为0,打开led灯总开关
  15.         while (1)
  16.         {
  17.         P6=0x00;                                                      //P6赋值为低,点亮所有led灯
  18.         //for(i=0;i<100000UL;i++);//计数延时,调试时,去掉该行代码。
  19.         P6=0xFF;
  20.         //for(i=0;i<100000UL;i++);//计数延时,调试时,去掉该行代码。
  21.         }
  22. }
复制代码
编译后开始Debug:
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 13:41:52 | 显示全部楼层
这段C程序在我机器上Debug:

截图202511171341505996.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 13:51:27 | 显示全部楼层
Keil μVision应用程序开发
编译器优化选项设置
C251编译器是一个优化编译器:

接着看优化等级:

具体看参数设置中的C251选项:



截图202511171350087674.jpg
截图202511171351212209.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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