首页 » 网站建设 » 2490PHP技巧_C351和A351措辞与长缨8 STC编译器简介

2490PHP技巧_C351和A351措辞与长缨8 STC编译器简介

访客 2024-11-27 0

扫一扫用手机浏览

文章目录 [+]

“长缨8 STC编译器”是笔者为STC8系列单片机研制的C措辞编译器。
长缨8编译器是基于“STC 80351指令集”开拓的,“A351”是80351指令集汇编措辞的名称,C351是长缨8支持的C措辞规范的名称。
目前的长缨8编译器V3.x版支持STC 80351的L0和L1等级指令集。

研制长缨8编译器的目的是为新的采取80351指令集的STC32位单片机的软件工具链进行先行研究,因此并没有操持支持C51措辞的全部特色和规范。
C351措辞规范是Keil的C51的一个子集,子集的大小以能够用C351措辞开拓出一个8位单片机上的RTOS为标准。

2490PHP技巧_C351和A351措辞与长缨8 STC编译器简介

目前这个目标已经实现。
笔者的“泰山x51-RTOS”利用C351和A351措辞在STC8H8K64U单片机上开拓,详细的先容在STC论坛上笔者的《长缨x51(1)STC单片机软件工具链》帖子里有(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2490)。

2490PHP技巧_C351和A351措辞与长缨8 STC编译器简介
(图片来自网络侵删)

本文将用5个范例程序来先容C351与C51措辞的兼容性,先容A351与A51措辞的兼容性,先容A351中的80351汇编措辞格式以及先容C351编程方法。
范例在文末的附件里。

一、C351语法是C51的一个子集

(1)本文的范例是连接在P2端口上的8个LED灯交替闪烁。
下图是范例1的C51主程序:

(2)本文的范例是用Keil的IDE项目组织的,可以直策应用C51编译。
长缨8是一个独立的EXE文件,须要用MakeFile的方法来编译Keil的项目。
下图四本范例的子目录文件列表:

双击个中的“长缨8_MakeFile.bat”批处理文件就可以对项目进行编译。
目录中的“DEMO_STC8H.uvproj.MSG”是长缨8编译器天生的“编译信息”文件,这是一个文本文件,包含编译过程中涌现的提示、警告、出错等信息。
如果利用的是STC的IDE,这些信息将同步地显示在IDE信息框中。
下图是编译成功后的内容:

(3)长缨8作为研究版编译器,C351只支持C51中的大略数据构造、大略语句和大略表达式。
对付范例1这样大略的C51程序,不须要做任何简化修正就利用长缨8编译器编译通过,天生精确运行的代码。

二、A351语法是A51的超集

(4)STC 80351-L0指令集是Intel 8051指令集全集。
STC 80351-L1指令集则进一步包含了16位、32位的运算和内存操作。
长缨8 STC编译器既支持STC 80351-L0指令集,也支持STC 80351-L1指令集。
A351支持A51的全部汇编功能和部分宏措辞功能。

(5)Intel 8051指令集共有111条指令,范例2以A51汇编的形式给出了这些指令的实例,下图是范例程序开头的部分:

分别用Keil和长缨8对范例进行编译,对天生的HEX文件进行比较可以看到所有指令对应的代码完备同等,A351实现了对A51的全兼容。

(6)范例3是用A51汇编措辞实现的范例1的P2端口LED灯交替闪烁效果的程序。
分别用Keil和长缨8对范例进行编译,对天生的HEX文件进行比较可以看到两者对应的代码完备同等,A351实现了对A51的全兼容。

(7)范例4是用A351汇编措辞实现的范例1的P2端口LED灯交替闪烁效果的程序。
下图是个中延时函数的部分:

个中“AX”和“BX”是两个16位的寄存器,利用两层循环实现软件延时。

(8)上面A351程序涉及到STC 80351-L1指令集的指令有:“MVR”指令将右操作数的内容传送给左寄存器,“DECS”指令可以对8/16/32位的寄存器做减1操作,“IS_TRUE”指令判断操作数是否为零。

(9)由于Keil的IDE是主流的STC单片机集成开拓环境,而STC 80351指令集的A351汇编措辞尚未被C51/C251编译器接管,因此A351/C351措辞特殊增加了语法元素“配对的忽略符”:第25行的“/{”和第54行的“}/”:

在A351/C351措辞中,起始忽略符“/{”用在程序行的开头,C351/A351编译器将忽略该行程序。
第25行中的下一个“A351”指明下面的程序按照A351汇编措辞语法来编译。
在A351/C351措辞中,结束忽略符“}/”用在程序行的开头,后面不要写其他内容,单独占一行程序。

(10)配对的“忽略符”在程序中的用场是“欺骗”C51/C251这样编译器,使得这些编译器认为配对的“忽略符”之间的程序是“块注释”的无关内容,就不会再进行语法检讨。

三、C351编程的把稳事变

(11)由于C351是C51的子集,因此C351的编程方法参考C51就行了。
C351与C51最大的不同是C措辞的繁芜程度。
C51语法是按专业职员的编程水平设计的,可以支持很繁芜的语句构造。
C351语法是按初学者的编程水平设计的,语法繁芜程度掌握在谭浩强C措辞教材和大学生打算机等级C措辞考试的水平上。

如果C351编译器出错而用户又看不出来错在哪里,那么每每是表达式太繁芜造成的,用户可以试着引大略变量来简化程序。

(12)下图是范例5的主函数程序部分:

个中第23行和第45行是配对的“忽略符”程序。

(13)C351程序与C51/C251程序最大不同是许可将80351指令写在C措辞程序中,就像上面的第29行、第36和37行程序一样。
只不过在C351程序中这些指令仍旧是C措辞程序行,必须用分号结束。

标签:

相关文章

介绍网上源码商城,数字时代的创新引擎

我国数字产业呈现出蓬勃发展的态势。网上源码商城应运而生,成为推动我国数字产业创新的重要力量。本文将从网上源码商城的定义、发展历程、...

网站建设 2025-03-20 阅读0 评论0

夕颜SEO,介绍高效搜索引擎优化步骤

搜索引擎优化(SEO)已经成为企业提升网站排名、吸引潜在客户的重要手段。在我国,夕颜SEO凭借其独特的优化策略,赢得了众多企业的青...

网站建设 2025-03-20 阅读0 评论0

多站点SEO优化步骤,打造全网流量盛宴

企业之间的竞争日益激烈。为了在激烈的市场竞争中脱颖而出,越来越多的企业开始重视SEO优化。而多站点SEO优化策略则成为企业实现全网...

网站建设 2025-03-20 阅读0 评论0