找回密码
 立即注册
查看: 132|回复: 4

金水32051编译器的安装与使用

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2026-05-11 01:12:23

164

主题

1329

回帖

5084

积分

荣誉版主

积分
5084
发表于 2026-5-1 20:52:36 | 显示全部楼层 |阅读模式
金水32051编译器是为88051系列单片机开发的C语言编译器。金水32051编译器采用C351作为C语言规范,采用A351作为汇编语言规范。以下将金水32051编译器使用的C语言简称为C351,将金水32051编译器使用的汇编语言简称为A351
一、金水32051编译器基础
C语言编译器的角度,STC单片机目前分为8位的STC89系列、STC15系列和STC8系列,以及双核的AI8051U位单片机系列。为了保护用户现有的C语言程序甚至汇编语言程序资源,能够顺利地应用到STC各个系列的单片机,金水32051编译器采用虚拟的“金石32051单片机”模型和“金水明32051指令集”作为编译器模型,以此为基础向用户提供A351汇编语言和C351单片机控制语言。
金水明32051指令集是8051指令集的一个超集。金水明32051指令集包含了完整的“8051指令集”以及8051没有的16/32位整数加减乘除等指令和32位浮点数的加减乘除指令。金水明32051指令集采用共享寄存器的技术,支持32位寄存器与数据处理。
金水32051编译器在88051单片机上模拟实现了金水明32051指令集,用户可以使用A351汇编语言的8位、16位和32位指令来编写在8051单片机上运行的程序。用A351C351编写的程序可以继续在STC未来的8位和32位的单片机上继续使用,为用户从8位单片机向32位单片机过渡提供了方便。

二、金水32051编译器软件包
这次推出的金水32051编译器软件放在“00000_金水32051编译器目录下:
Fig_01_EXE目录.jpg
1)其中子目录”0000_金水32051_EXE”包含了执行文件和库:
Fig_02_EXE.jpg
该目录下除了执行程序“金水32051.exe”外,还有一个子目录“LIBSTC”,下面存放金水32051编译器的函数库。子目录“Data”是空的临时文件存放目录。
2)金水32051编译器是一个Windows环境下的命令行EXE程序,使用前请将整个“0000_金水32051编译器”子目录完整地复制到C盘根目录下:“C:\ 0000_金水32051编译器”,因为每个范例中的批处理文件中的执行程序都被预写为这个目录。
如果用户放在其他目录下,请修改批处理文件的内容即可。
3)打包文件“0000_金水32051编译器.rar”为子目录”0000_金水32051编译器压缩包。
4)“0001_C351_INC”子目录下存放了金水32051编译器库函数的头文件。

三、金水32051编译器软件开发环境
金水32051编译器建议使用Keil评估版/学习版作为集成开发环境。
KeilC5188051单片机广泛使用的软件集成开发环境,C351继承了C51的大部分语法规范,可以看作是C51的一个子集,因此可以使用KeilC51作为集成开发环境,并在编辑源程序的过程中初步检查C351语言语法错误。
C351源程序是文本程序,可以用各种文本编辑器编写和修改,也可以使用Keil集成环境来编辑,同时利用该集成环境来对程序进行C语言语法检查,检查比如括号不配对,函数调用格式不一致等常见的C语言程序错误。本指南的范例就是使用Keil评估版作为项目管理器,作为源程序编辑器和C语法初步检查器。
对于有多个源程序和OBJ模块的单片机项目,用户可以用Keil的项目管理器来管理这些模块。由于金水32051编译器编译时是读磁盘上的Keil的项目文件,因此,用户在项目中添加或者删除了模块文件后应该退出集成环境,确保让Keil把项目的变化保存到磁盘文件中。
金水32051编译器没有进行寄存器优化,它使用XRAMxdata)作为变量空间,相当于Keil的大模式。对于许多简单的程序,Keil也可以编译出HEX文件,烧录后程序也可以运行,但是两者的运行效果未必相同。
由于金水32051编译器可以产生最终的HEX烧录文件,因此作为集成开发环境,只要使用Keil的免费的评估版软件就可以了,它产生不产生HEX结果无所谓。
金水32051编译器除了输出HEX文件,还输出编译信息文件(.MSG为后缀)和汇编列表文件(.LST为后缀),两者都是文本文件,用户可以用记事本或写字板打开查看。
金水32051编译器只对文本源程序进行编译,产生HEX烧录文件。在编译过程中碰到程序中的语法错误,出错信息输出到编译信息文件中。如果出现致命错误,则不生成HEX文件(但也不删除现有的)。

四、 88051单片机的架构
88051单片机使用8051内核,具有以下的特点:
1)由于8051指令集的限制,通用寄存器和累加器都是8位的,因此不能直接在汇编指令中支持16/32位基本运算指令。
28051指令集有5个存储空间:64KBCODE程序空间、64KBXRAMxdata)扩展RAM空间、256字节的DATA内部直接存取RAM空间、256字节的IDATA内部间接存取RAM空间和256位的BIT位存取空间。
其中DATAIDTABIT存储空间在8位的存取地址上有重叠。
3)除了DPTR外,没有其他的通用16位指针来存取CODEXRAMxdata)空间的数据,对于C语言指针数据和局部变量的存取不方便。
4)没有间接+偏移这样的寻址方式,对C语言结构类型数据的存取不方便。
58051指令集的SP寄存器是8位的,系统堆栈最多为256字节,不能采用通常C语言的BP+SP组合来实现标准C语言局部变量存储模型。

五、金水32051编译器满足了88051单片机对C语言的需求
金水32051编译器采用金水明32051指令集实现的C351语言满足了88051单片机对C语言的需求
1)金水明32051指令集支持8位整型数据变量和操作。作为8位单片机,支持8位操作指令是必须的。A351C351支持8位的有符号和无符号的变量以及运算,支持8位的端口定义和操作。
2)金水明32051指令集支持16位整型数据变量和运算STC15STC8等高性能的88051单片机片上已经有了10位和12位的高速ADC,因此需要处理16位数据。A351C351支持16位的有符号和无符号的变量以及运算。
C351虽然支持16位的端口定义和操作,但是STC8位单片机是8位内部数据总线,16位端口操作必须分高低8位两次进行。由于有些片上设备16位的端口,存取高低8位必须按指定的次序进行,因此建议用户分别使用高低8位端口进行操作。
3)金水明32051指令集支持32位整型数据变量和运算ADC是单片机应用的一个重要领域,将16位的探测量转换为物理量就需要32位运算。比如将12位的AD变换值V归一化到05005.00伏),按照变换公式:V*500/4095,要想得到正确的结果,必须将这个表达式中的三个运算量转换为32位整型后再进行运算才行。
A351C351支持32位的有符号和无符号的变量以及运算。
4)金水明32051指令集支持32位浮点数变量和操作8位单片机的一个重要应用领域是作为物理量探测器的数据处理核心,因此必须要有浮点数变量来支持取值范围很大的物理量处理。A351C351支持32位的浮点数变量以及运算。
5)金水明32051指令集支持Bit位数据变量和操作8位单片机的很多应用涉及单端口控制,比如控制一个电源开关。另外还有专门的单总线等数据通讯协议只用少数几根线。因此单片机必须要有Bit变量来处理这些单个逻辑值的状态。A351C351支持单独的Bit位变量以及运算。


回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:816
  • 最近打卡:2026-05-11 09:04:25

5

主题

65

回帖

1517

积分

金牌会员

积分
1517
发表于 7 天前 | 显示全部楼层
何处有下载链接?

点评

金水32051 编译器是正式出书时的名字,现在的名称是长缨-I和金水151: STCIDE + 金水151 + AIapp-ISP:全国产纯绿色的80x51单片机软件开发工具链 https://www.stcaimcu.com/thread-10532-1-1.html (出处: 国芯人工  详情 回复 发表于 7 天前
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2026-05-11 01:12:23

164

主题

1329

回帖

5084

积分

荣誉版主

积分
5084
发表于 7 天前 | 显示全部楼层
wpy62*** 发表于 2026-5-4 20:59
何处有下载链接?

金水32051 编译器是正式出书时的名字,现在的名称是长缨-I和金水151:


STCIDE + 金水151 + AIapp-ISP:全国产纯绿色的80x51单片机软件开发工具链
https://www.stcaimcu.com/thread-10532-1-1.html
(出处: 国芯人工智能技术交流网站)

Ai8051U单片机,从入门到精通(3):使用长缨-I号C351编译器的中文编程方法
https://www.stcaimcu.com/thread-9959-1-1.html
(出处: 国芯人工智能技术交流网站)

AI8051U单片机,从入门到精通(4):长缨-II号C351编译器与AI8051U单片机的32BIT模式
https://www.stcaimcu.com/thread-10151-1-1.html
(出处: 国芯人工智能技术交流网站)

Ai8051U单片机,从入门到精通(9):金山151-RTOS单片机实时多任务操作系统
https://www.stcaimcu.com/thread-10771-1-1.html
(出处: 国芯人工智能技术交流网站)

Ai8051U单片机,从入门到精通(10):虚拟开发板、虚拟单片机和实时任务独立编程
https://www.stcaimcu.com/thread-10813-1-1.html
(出处: 国芯人工智能技术交流网站)



回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:816
  • 最近打卡:2026-05-11 09:04:25

5

主题

65

回帖

1517

积分

金牌会员

积分
1517
发表于 7 天前 | 显示全部楼层
杨*** 发表于 2026-5-4 22:49
金水32051 编译器是正式出书时的名字,现在的名称是长缨-I和金水151:

好的,谢谢杨老师。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-05-07 14:20:26

0

主题

5

回帖

100

积分

注册会员

积分
100
发表于 4 天前 | 显示全部楼层
期待杨老师的新版本与教程
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-11 09:13 , Processed in 0.108882 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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