<meta name="keywords" content="必胜时时彩开户,keywords" /> 第六课 C51运算符和表达式 联系我们

第六课 C51运算符和表达式

上两课说了常量和变量,先来填补一个用以重新界说数据类型的的语句吧。这个语句就是 typedef,这是个很好用的语句,但我却不经常应用它,通常我界说变量的数据类型时都是使 用尺度的要害字,这样他人能很便利的研读你的法式模范模范。假定你是个DELPHI 编程喜欢者或是DELPHI法式模范模范员,你对变量的界说或许习气了DELPHI 的要害字,如 int 类型常会用要害字Integer来界说,在用 单片机c语言时你还想用回这个的话,你能这样写:

typedef  int  integer;

integer  a,b;

这两句在编译时,着实是先把 integer 界说为 int,在以后的语句中遇到 integer 就用 int 置换,integer 就即是 int,以是 a,b 也就被界说为 int。typedef 不克不及直接用来界说变量,它 只是对已有的数据类型作一个名字上的置换,着实不是发生一个新的数据类型。下面两句就是一个弱点的例子:

typedef  int  integer;

integer  =  100;

应用 typedef 能有便利法式模范模范的移植和简化较长的数据类型界说。用 typedef 还能界说结 构类型,这一点在前面详细解说结构类型时再一并诠释。typedef 的语法是

typedef  已有的数据类型    新的数据类型名 运算符就是完成某种特定运算的符号。运算符按其表达式中与运算符的关系可分为单目

运算符,双目运算符和三目运算符。单目就是指须要有一个运算工具,双目就请求有两个运 算工具,三目则要三个运算工具。表达式则是由运算及运算工具所组成的具有特定寄义的式 子。C 是一种表达式语言,表达式前面加“;”号就组成了一个表达式语句。

赋值运算符

关于“=”这个符号年夜家不会生疏的,在 C 中它的功效是给变量赋值,称之为赋值运算 符。它的作用不用多说年夜家也明确,就是但数据赋给变量。如,x=10;因此可知应用赋值运 算符将一个变量与一个表达式毗连起来的式子为赋值表达式,在表达式前面加“;”便组成 了赋值语句。应用“=”的赋值语句名堂以下:

变量  =  表达式; 示例以下

a  =  0xFF;  //将常数十六进制数 FF 赋于变量 a

b  =  c  =  33;  //同时赋值给变量 b,c d  =  e;  //将变量 e 的值赋于变量 d

f  =  a+b;  //将变量 a+b 的值赋于变量 f 由下面的例子能知道赋值语句的意义就是先盘算出“=”左边的表达式的值,然后将取得 的值赋给左边的变量。而且左边的表达式能是一个赋值表达式。

在一些同伙的来信中会泛起“==”与“=”这两个符号混淆的弱点原码,问为何编译报 错,浅易就是错在 if (a=x)之类的语句中,错将“=”用为“==”。“==”符号是用来阻拦相 等关系运算。

算术,增减量运算符

关于 a+b,a/b 这样的表达式年夜家都很熟悉,用在 C 语言中,+,/,就是算术运算符。单片机c语言 中的算术运算符有以下几个,其中只需取正值和取负值运算符是单目运算符,其它则都是双 目运算符:

+    加或取正值运算符


 

-    减或取负值运算符

*    乘运算符

/    除运算符

%    取余运算符 算术表达式的形式:

表达式 1    算术运算符    表达式 2 如:a+b*(10-a),  (x+9)/(y-a)

除法运算符和浅易的算术运算规则有所纷歧样,如是两浮点数相除,其效果为浮点数,如

10.0/20.0 所得值为 0.5,而两个整数相除时,所得值就是整数,如 7/3,值为 2。像别的语 言一样 C 的运算符与有优先级和联络性,异常可用用括号“()”来改变优先级。这些和我们 小时间学的数学简直是一样的,也不用过量的说清晰了了。

++    增量运算符

--    减量运算符

这两个运算符是 C 语言中特有的一种运算符。在 VB,PASCAL 等都是没有的。作用就是 对运算工具作加 1 和减 1 运算。要重视的是运算工具在符号前或后,其寄义都是纷歧样的,虽 然同是加 1 或减 1。如:I++,++I,I--,--I。

I++(或 I--)    是先应用 I 的值,再推行 I+1(或 I-1)

++I(或--I)    是先推行 I+1(或 I-1),再应用 I 的值。增减量运算符只允许用于变量的运算中,不克不及用于常数或表达式。 先来做一个实验吧。学习运算符和另外一些知识时,我们还是给我们的实验板加个串行

接口吧。借助电脑转件直不雅不雅的看单片机的输入效果,假定你用的是制品实验板或仿真器,那你便可以跳过这一段了。

在制造电路前我们先来看看要用的  MAX232,这里不去详细议论辩说它,只需知道它是 TTL和 RS232 电平相互转换的芯片和基本的引脚接线功效就好了。通常我会用两个小功率晶体管加年夜批的电路去替换MAX232,能省一点,效 果也不错 (若有兴趣能检查 网站中的相关质料)。下图就是 MAX232 的基本接线图。

图 6-1    MAX232

在上两课的电路的基础上按图 6-3 加上 MAX232 便可以了。串行口座用 DB9 的母头,这样 便可以用买来的 PC 串行口延伸线阻拦和电脑相毗连,也能直接接到电脑 com 口上。


 

图 6-2    DB9 谈论辩说

图 6-3    加上了 MAX232 的实验电路 做好后,就先用回前面的“Hello World!”法式模范模范,用它来和你的电脑说声 Hello!把法式模范模范

烧到芯片上,把串行口毗连好。嘿嘿,这个时间要掀开你的串行口调试软件,没有就赶忙到网上 DOWN 一个了。你会用 Windows 的超级终端也行,不外我从不用它。我用 的 comdebug,它是个不错的软件,我喜欢它是由于它功效好而且尚有“线路状态”功效,这对


 

我制造小玩意时很有用。串行口号,波特率调好,掀开串行口,单片机上电,便可以在吸收区看 到赓续泛起的“Hello  World!”。一定要先掀开软件的串行口,再把单片机上电,否则能够因字符纰谬齐而看到乱码哦。

图 6-4    调试效果