(1条消息) 一、应广单片机的Mini

爱在深秋

爱在深秋

2020-10-18

一、概述

项目需要性价比高一点的芯片,在澄海这边,台湾的芯片占了很大的市场。台湾芯片的特点是便宜,没办法,玩具出口生产量太大,1分钱的差价都有可能累积出大价钱。选型时选了应广单片机。对于用惯了C开发的人,用汇编来开发还是有些抗拒的。看了一下简介,应广单片机支持Mini-C语言,一看就跟C语言有关,我们来了解一下:

二、Mini-C介绍

应广科技的MINI-C语法结构,是一种界于标准C和汇编的一种语言,对于小资源的MCU来说,该语法非常精简实用。


也就是说,对比汇编程序,它的编写方法基本保留了C语言的风格。非常适合刚入手这款芯片的朋友。

三、基础规则

1、变量定义:大多数新手在C51中用 unsigned char 定义8位变量,unsigned int 定义16位变量,但是在Mini-C里。实验使用: BYTE 为 8-BIT 数据型态;

WORD 为 16 BIT;

EWORD 为 24 BIT;

DWORD 为 32 BIT。

相当于#define BYTE

unsigned char ; #define WORD

unsigned int 已经内部帮你设置好了。对比中应该看到我用了大写,我们知道在汇编中,没有大小写的区分,在这个 Mini-C 语言中,也没有大小写的区分

所有的 WORD 变量,皆可以当 Point 使用。读取 ROM 的方法,一般有如下三种语法:

○ *Point$L (取 Low Byte)。
○ *Point$H (取 High Byte)。

○ *Point$W (取 WORD)。

四、程序表达

C语言作为面向过程的语言,在这个Mini-C里表现的尤为彻底,先说一个短板,函数表达式不能带参数,也不能传出参数。这个玩法确实有点坑,不过好在汇编的语法它也支持一点,这样就好办了,我们用 累加器A 充当帮运工,带进数据和带出数据。

优点在于,程序表达是保留了很多指令,这就为程序设计提供了很好的便捷性了。举个例子:

WORD ww;

BIT Bit_1;

Bit_1 = 1; // 等同于 SET1 Bit_1

Bit_1 = 0; // 等同于 SET0 Bit_1

ww.15 = 1; // 等同于 SET1 ww.15,等同于 SET1 hb@ww.7

.DELAY 50; //延时50个指令周

通过查阅芯片的中文手册,即可得到芯片支持的指令。对于未知指令是否支持,也可以使用一下方法来查询:

语法:_SYS(OP:指令) : 如果指令存在,则回传 1。
指令的格式,采用各系列 IC 的 datasheet 的指令集命名方法。

#if _SYS (OP:SWAPC IO.n) // 判断是否有 swapc IO.n 的指令
swapc_ EQU swapc // 将 swapc_ 直接代换成 swapc 指令
#else
swapc_ macro iob // 以宏指令取代 swapc 指令
iob = 0;
t0sn CF;
iob = 1;
endm
#endif

swapc_ IO_Bit; // swapc_ 就可变成通用命令。

其他类似命令,如 _SYS (OP:COMP A I) // A 跟立即值比较
_SYS (OP:PUSHW index) // pushw word_memory
_SYS (OP:SWAP M) // swap byte_memory
_SYS (OP:XOR IO A) // xor register, A
_SYS (OP:STOPEXE) //
_SYS (OP:PMODE N) //

都可以用来判断指令是否支持。

精彩推荐

粤ICP备16095388号-1