|
应广 Mini-c编程指南,pdf文档,Mini-c语法规则和举例& A4 V2 Z4 M6 N. d& N
尚诚科技杨帆,电话% i2 X# A, r* g& u
,应广大陆技术支持,销售全系列应广空片,并承接小方案川发
9 z) Y9 I$ b2 ?) p3)条件编译
5 ^: @5 [+ m6 ` S+ X#if标识符. o$ s2 o3 v1 r; V2 S/ I" {
statement+ H5 R5 Z# U% O# Z
#else6 P( X2 d* l `- v
Statement 2/ O/ m- U1 f2 K8 b: p( b% f: R
fendi! K1 Z7 O! p( S* `& L C8 ^
测试井if后面是否为真,为真则编译圩if和*else之间的程序,否则编译井else和# endif之间的稈序。其
5 q1 w& ^/ Y# r. u( g5 f- O中标识符只能为
" Q/ P! \2 N& T2 ]7 f( s+ z或者定义的标识符
8 f- M* @) _- E) g) w6 G3 P3 j标识符1 A' j1 V: o& j/ b7 A/ w7 {
测试后面的标识符是否用+ _' ]; `- Y" {' _1 t0 U
定义过,如果定义过则编译和之间的程序,否则编译
% u5 e) z$ A9 W! n/ i和之间程序。
& c" _2 I& Y9 ?$ L$ p+ C6 r标识符
, S/ n/ o" E, t- {: x测试& L; s s6 f& r3 G# ~. _
后面的标识符是否用
, ]; G- }, I* O. D z. r( l定义过,如果没有定义过则编译. k- m& |6 i0 Y1 W5 @9 `! @
和之间的程序,否则" N- s4 K" z, F$ Z/ X& N/ I
编译和之间程序。
2 Y0 Y5 {/ [( T/ u$ D, _2 b标识符! v6 z/ a, z C+ o) H1 O
标识符的名称包含连续的字母、数字或下划线,并遵守下列规则:
" C8 m! v+ T9 j# i第一个字符不可为数字, Q1 J5 X$ ~& b8 r5 \( x
最长只能为27个字符
: ?, ^5 z- `& q0 B●区分大小写# H8 _' c1 r3 p+ M3 A# k
●不可以使用保留字) d; Z: V/ c9 j
MINI-C语言中的保留字
# G- I C5 s: s/ W( c9 n2 P& eBreak. case, const, continue, default& P( w E2 h9 h& x8 `: A, g
do, else, extern,
! W9 p& Q! c; e$ ld. word, dword, int return switch void, while
4 x" J$ p6 C$ zasm bit, interrup
# ~/ C9 ~" W/ _* D6 S! u. q: I/ N1.5数据类型:, @5 S s* G, F
MINI-C,支持的所有数据都是无符号数字,位长度有1位,8位,16位,24位,32位,分别如下表描: r. X+ K. e$ l9 E1 N
1.4数据类长度(bit)长度(byte)值域范围8 x8 n# |' E% E1 ]$ `8 F, F
型数据类型- p4 f1 |" M5 N9 J3 H
bit2 m. G/ `9 X6 v9 ?
byte
2 J2 l) Q' Q6 v6 w' B1 G% w( {' B. y8: P$ _, l3 k& J U" j& Y7 s
0~255
& V W6 a' W( ~- I. Z/ O8 Kint
* c q/ {7 ]* j+ f5 r88 m) h; y9 G% X9 Z+ q: s+ d
0~65535
( H; c9 N2 B% K0 _& A我的博客空间:' a' O& C) i( `2 s
欢迎光临;我的拍拍店. }2 E; q9 p# d3 q4 n
第页# M' X/ Z6 h: H" I" O# F
+ u* q c) L) C! f4 q( R尚诚科技杨帆,电话0 y$ m( w7 n7 y) H
’应广大陆技术支持,销售全乐列应广空片,并承接小方案川发$ ~' ^! F2 B0 `* l" Y
ewer5 O* p, N( \, D
0~16777215# H* j- x" H/ I( r. [) e
dword
9 ]/ u2 J1 |2 ?7 b' C32
Y. r0 S- J9 Y: ?/ l+ u$ h F4
' p2 m4 O( {: G( O" }0~42949672955 W" j! e2 r, @3 t
常量' y* c$ ^1 j9 T* T- R
数字常量:
/ O6 \1 n& `6 h- K2 z支持二进制,十进制以及进制的常数' `9 z, F4 F9 u+ l, d
(1).十六进制,以0x开头或者H结尾:例如:0xAB,0CDh
& j+ f: g" t; L+ Q* i(2).进制,以D结尾或者不写: {' M0 d3 m3 h8 M. @! E
例如:12,34d, q& B( S- n# G0 ^2 f: N/ R1 d4 ^
进制,以OB开头或者B结尾:例如:OB11001100,01011010B$ d; C; J. h& d; p( S
(4).在二进制中,可以增加¨,以提高程序撰写的可读性- Y2 m6 }; V- l% h
(5)
" p( {4 W; u2 Y6 x( S- d2 }4 w7 V( p范例:2 n; i8 R0 X \
mov A 31h2 U4 n0 {, C1 @/ {. l! U; J' j
MOV6 o- o6 j( {% O" K$ o8 T% i% J
A,498 u( R4 w/ Y' W% p
MOV" n1 l) e7 P, F) W! E8 \/ [
A,OB110001/ T: M2 a. @, j9 c3 {2 @3 Q; J4 H
MOVA,’17 E2 ?" Z: ]& f* b' r# g
字符常量:可以为^A~Z,az^,,0~9作为常量的丌头,字符常量使用前需要
" A3 s7 E% o# j: u. A |2 I# ~7 g定义具体的数字,定义字符常量的作用是方便程序阅读。比如:
: ?! L3 b+ b+ r6 v' ?tdefine c ledon 0
) N/ Y6 ?" z! g1 B D) [6 ~井 define C BrIGhtNESS mAⅩ220;
- S4 u) J) u* L5 i9 K变量
3 `9 K2 S0 ^6 P9 w) R, u; X, i(1).变量名称不分人小写,变量开头为英文字母或者下滑线,如AZ,
' d, w) n5 N/ @' N' E9 @- ca z
5 N8 M5 `3 H# |" Z0 B. z0 M; q2).@不能做变量名称之开头,@用于系统定义最近的向前或者向后跳转地址
# _/ V$ B' \9 H1 f3 `(3).非变量之名称开头则可以为AZ,az
+ e2 `$ h& P: R, V- q0 @$ l3 c5 m(4).变量字符串长度不限。7 \4 r4 C1 H* r
(5).变量分位变量,单字节变量,双字节变量,三字节变量,和4字节变量。
/ _. H/ n4 N# ~; Q- ~请见1.4的数据类型表。
- a! c4 z) b0 w4 N |0 R范例; w; k+ W( D" `+ A
位变量的定义:! A( ^. @: t1 W& q. B0 o- o5 f
在单核的单片机中,位变量必须存放在RAM前16,或者前32字节内,具体
1 b. ?$ a! \1 G6 w$ P! }根据IC的型号确定。位变量,可以指定具体RAM的位,也可以& V. L; \$ T+ k: ]" A3 \! R5 e
由系统分配
) ?& |. F9 X- |( \! n( C定义一个具体RAM的位时,需要先定义一个或者儿个字节的变量
! H' x+ K0 |+ I, o1 N定义格式:bit位变量名:具体RAM名.x(x由07组成,或者更大的数字031)/ c( g7 N+ e+ {; U. ]
如$ E/ v8 X) J9 s2 v! i" b
Byte my flag://先定义一个字节,作为一些标志定义
- |0 X. t; C- _/ e8 F, {Bit f key busy: my flag.0;/指定具休变量的具休第0位 y& }9 ?( f4 r: T* M
Bit fled on: my flag.1;//指定具体变量的具体第1位
4 Y. |7 r S! ^8 ]( P' _, F$ D& Q当不指定RAM位置的位定义,则具体RAM位置由系统分配,直接由bit定义:
- C5 j& n8 l7 s定义格式:bit位变量名+ N5 L) z3 h7 A+ A6 x
如
. J+ a5 A4 p1 s1 h, w5 ]! C/ LBit f usb on1 }! A: D n) T/ B
我的博客空间:7 I/ p# e9 p3 w( B0 b$ A- {% k- y
欢迎光临;我的拍拍店
* Z2 \) `2 j" z. Q% o$ y第页
) {+ t$ g S+ E$ ? J& Z4 S
0 ^/ M# z) Z+ k1 Q# E, k尚诚科技杨帆,电话
$ \& s5 ]% t: c9 p’应广大陆技术支持,销售全乐列应广空片,并承接小方案川发
: `/ J$ c3 J4 y; }9 GBit f charge full F$ {/ {* o4 x# f2 g6 L
变量的定义:) v1 }. m3 h% c- l6 s$ x5 W
变量的定义格式:数据类型变量名;
# J: k1 Y% q% u# B6 g& @比如: g) q* F+ G9 H1 t
Byte my flag1 W7 g3 d3 U' U$ S+ i& X
Word t16 cnt7 |( N# V' f1 }7 s7 ]5 P& Z
Word user piont;
. [; p4 z9 D/ a" r- V8 \Dword timer 10ms
/ Z/ q1 h8 J" `0 H1 c1.8表达式:
/ G1 c/ \8 I% Z: l1 J6 c算术表达式】# T) A/ p. x$ i3 z" w
本发展系统已提供、+、-、&、|、、()、=、+=、-、&=、‖& F. m0 M& d" a. R( }0 G, `6 Z
等操作数。* T6 O& ^* r7 y9 y: Z2 T
以下为例:! r. I# y& w; w
BB1, Q& O2 ?3 ?/ K. \ k8 H( |. y
BB2; O- i$ P' ~) C5 q& x
+-(WW2+BY2)81234h) S4 J" m8 @! `
不过以下三点请注意:- K7 _+ P& `( N7 j8 t7 X
(1).尚未提供连等的表达式,如下范例:0 A. e5 O& c0 T) x/ I, X
BB1
|1 h4 Y/ M: }$ s(BB2BB3)+2;
K8 s" s# X, H* g1 R/ E' c( Q! kBBI% L$ r2 Q8 C' c, w+ }6 G0 ~
BB2= BB3
7 ^7 h5 ?, w0 P, @& ]: b) ~, x6 T3 n(2).对于++、-的操作数,暂时只允许如下单一格式。
) a: N, T0 _# @5 [/ D' NBB1++;$ ~9 s0 W% X) }6 B. y; q7 H
WWI
9 t- n+ U$ a5 v(3).对于 |
|