1. <em id="3qmea"><ol id="3qmea"></ol></em>
    2. <em id="3qmea"></em>
      (玩电子) 电子技术学习与研究
      当前位置£º单片机教程网 >> 基础教程 >> 浏览文章

      第六课 C51运算符和表达式

      作者:佚名   来源:本站原创   点击数:x  更新时间£º2007年07月17日   ¡¾字体£º ¡¿

      上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧¡£这个语句就是 typedef£¬这是个很好用的语句£¬但我却不常用它£¬通常我定义变量的数据类型时都是使 用标准的关键字£¬这样别人能很方便的研读你的程序¡£如果你是个DELPHI 编程爱好者或是DELPHI程序员£¬你对变量的定义也许习惯了DELPHI 的关键字£¬如 int 类型常会用关键字Integer来定义£¬在用 单片机c语言时你还想用回这个的话£¬你能这样写£º

      typedef  int  integer;

      integer  a,b;

      这两句在编译时£¬其实是先把 integer 定义为 int£¬在以后的语句中遇到 integer 就用 int 置换,integer 就等于 int,所以 a,b 也就被定义为 int¡£typedef 不能直接用来定义变量£¬它 只是对已有的数据类型作一个名字?#31995;?#32622;换£¬并不是产生一个新的数据类型¡£下面两句就是一个错误的例子£º

      typedef  int  integer;

      integer  =  100;

      使用 typedef 能有方便程序的移植和简化较长的数据类型定义¡£用 typedef 还能定义结 构类型£¬这一点在后面详细解说结构类型时再一并说明¡£typedef 的语法是

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

      运算符£¬双目运算符和三目运算符¡£单目就是指需要有一个运算对象£¬双目就要求有两个运 算对象£¬三目则要三个运算对象¡£表达式则是由运算及运算对象所组成的具有特定含义的式 子¡£C 是一种表达式语言£¬表达式后面加“£»”号就构成了一个表达式语句¡£

      赋值运算符

      对于“=”这个符号大家不会?#21543;?#30340;£¬在 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 电?#36739;?#20114;转换的芯片和基本的引脚接线功能就行了¡£通常我会用两个小功?#31034;?#20307;管?#30001;?#37327;的电路去替换MAX232£¬能省一点£¬效 果也不错 £¨如有兴趣能查看 网站中的相关资料£©¡£下图就是 MAX232 的基本接线图¡£

      图 6£­1    MAX232

      在上两课的电路的基础?#20064;?#22270; 6£­3 加上 MAX232 就能了¡£串行口座用 DB9 的母头£¬这样 就能用买来的 PC 串行口延长线进行和电脑相连接£¬也能直接接到电脑 com 口上¡£


       

      图 6£­2    DB9 接头

      图 6£­3    加上了 MAX232 的实验电路 做好后£¬就先用回前面的“Hello World£¡”程序£¬用它来和你的电?#36816;?#22768; Hello!把程序

      烧到芯片上£¬把串行口连接好¡£嘿嘿£¬这个时候要打开你的串行口调试软件£¬没?#33455;?#36214;快到网上 DOWN 一个了¡£你会用 Windows 的超级终端也行£¬不过我从不用它¡£我用 http://emouze.com 的 comdebug£¬它是个不错的软件£¬我?#19981;?#23427;是因为它功能好而?#19968;?#26377;“线路状态”功能£¬这对


       

      我制作小玩意时很有用¡£串行口号£¬波特?#23454;?#22909;£¬打开串行口£¬单片机上电£¬就能在接收区看 到不断出现的“Hello  World!”¡£一定要先打开软件的串行口£¬再把单片机上电£¬不然可能因字符不对齐而看到乱码哦¡£

      图 6-4    调试结果

      ¡¾发表评论¡¿¡¾告诉好友¡¿¡¾收藏此文¡¿¡¾关闭窗口¡¿

      文章评论

      Çຣ11Ñ¡5appÏÂÔØ

        
        
        1. <em id="3qmea"><ol id="3qmea"></ol></em>
        2. <em id="3qmea"></em>

            
            
            1. <em id="3qmea"><ol id="3qmea"></ol></em>
            2. <em id="3qmea"></em>