首页> 单片机教学(C言语教程)  
第七课 运算符和表达式(1)

   上课到这一课相隔了好长一段时间,这些日子里收到不少网友的来信支撑和激励,要求尽快完成余下的部门。出门在外的人不得不先为吃饭而勤奋,似乎这也成为我的饰辞,当前每晚抽暇打一些吧多么大师也就能够不消隔太久就能看到一些新东西。大概我的笔记并不是很精确,但我尽量的包管每课的测验考试城市亲身做一次,包罗硬件的部门,已求不会误人后辈。
跟着拜候量不竭的添加,网站已启用了www.cdle.net的国际域名,在这里我感激各位不断支撑磁动力工作室的伴侣,更要感激打动身在远方不断默默支撑我的女友。
                     明浩 2003-7-14 晚
   呵,费话少说了。上两课说了常量和变量,先来弥补一个用以从头定义数据类型的的语句吧。这个语句便是typedef,这是个很好用的语句,但我本人却不常用它,凡是我定义变量的数据类型时都是使用尺度的环节字,多么别人能够很便当的研读你的法式。若是你是个DELPHI编程欢愉喜爱者或是法式员,你对变量的定义也许习惯了DELPHI的环节字,如int类型常会用环节字Integer来定义,在用C51时你又一次想用回这个的话,你能够多么写:
     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言语中,+,/,便是算术运算符。C51中的算术运算符有如下几个,此中只需取正值和取负值运算符是单目运算符,其它则都是双目运算符:
    + 加或取正值运算符
    - 减或取负值运算符
    * 乘运算符
    / 除运算符
    % 取余运算符
算术表达式的形式:
    表达式1 算术运算符 表达式2

如:a+b*(10-a), (x+9)/(y-a)

   除法运算符和一般的算术运算法例有所不合,如是两浮点数相除,其成果为浮点数,如10.0/20.0所得值为0.5,而两个整数相除时,所得值便是整数,如7/3,值为2。像此外言语一样C的运算符与有优先级和连系性,同样可用用括号"()"来改变优先级。这些和咱们小时候学的数学几乎是一样的,我也不必过多的申了然。
   :( 又一次有这么多运算符呀!临时停一停吧,咱们先来做一个测验考试吧。进修运算符和别的一些学问时,咱们仍是给咱们的测验考试板加个串行接口吧。借助电脑转件直观的看单片机的输出成果,当前我又一次会用一些简单的实例讲解单片机和PC串口通信的简单使用和编程。若是你用的是成品测验考试板或仿真器,那你就能够跳过这一段了。
   在制造电路前咱们先来看看要用的MAX232,这里咱们不去具体会商它,只需晓得它是TTL和RS232电平相互转换的芯片和根底的引脚接线功能就行了。凡是我会用两个小功率晶体管加少量的电路去替代MAX232,能够省一点,成果也不错(如有乐趣能够查看http://www.cdle.net网站中的相关材料)。下图便是MAX232的根底接线图。


图7-1 MAX232

  在上两课的电路的底子上按图7-3加上MAX232就能够了。这大热天的拿烙铁焊焊,又一次真的是热气迫人来呀:P串口座用DB9的母头,多么就能够用买来的PC串口耽搁线进行和电脑相连接,也能够间接接到电脑com口上。

图7-2 DB9接头

图7-3 加上了MAX232的测验考试电路
  做好后咱们就先用回一课的"Hello World!"法式,用它来和你的电脑说声Hello!把法式烧到芯片上,把串口连接好。嘿嘿,这时要打开你的串口调试软件,没有就赶紧到网上DOWN一个了。你会用Windows的超等中端也行,不外我从不消它。我用http://emouze.com的comdebug,它是个不错的软件,我爱好它是由于它功能好并且又一次有"线路情况"功能,这对我制造小玩意时很有用。串标语,波特率调好,打开串口,单片机上电,就能够在领受区看到不竭出现的"Hello World!"。必然要先打开软件的串口,再把单片机上电,不然可能因字符不对齐而看到乱码哦。

图7-4 调试成果
联系地址:浙江省杭州市西湖科技园西园七路3号4层 邮政编码:310011 Email:hificat@163.com xu169@sina.com
德律:0571-87615070 传真:0571-87615070 手机:13185018567 QQ:420951892 MSN:hificat@hotmail.com
杭州电子&算计机工作室 版权所有 COPYRIGHT2003——2007 HangZhou Electron&Computer Studio. All rights reserved